Package org.dyno.visual.swing.widgets

Source Code of org.dyno.visual.swing.widgets.JRadioButtonMenuItemAdapter

/************************************************************************************
* Copyright (c) 2008 William Chen.                                                 *
*                                                                                  *
* All rights reserved. This program and the accompanying materials are made        *
* available under the terms of the Eclipse Public License v1.0 which accompanies   *
* this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html *
*                                                                                  *
* Use is subject to the terms of Eclipse Public License v1.0.                      *
*                                                                                  *
* Contributors:                                                                    *
*     William Chen - initial API and implementation.                               *
************************************************************************************/

package org.dyno.visual.swing.widgets;

import java.awt.Component;

import javax.swing.ButtonGroup;
import javax.swing.DefaultButtonModel;
import javax.swing.JPopupMenu;
import javax.swing.JRadioButtonMenuItem;

import org.dyno.visual.swing.plugin.spi.CompositeAdapter;
import org.dyno.visual.swing.plugin.spi.IAdapter;
import org.dyno.visual.swing.plugin.spi.InvisibleAdapter;
import org.dyno.visual.swing.plugin.spi.WidgetAdapter;

@SuppressWarnings("unchecked")
public class JRadioButtonMenuItemAdapter extends WidgetAdapter {
  public JRadioButtonMenuItemAdapter(){
    super(null);
  }

  @Override
  protected Component createWidget() {
    JRadioButtonMenuItem jmi = new JRadioButtonMenuItem();
    requestGlobalNewName();
    jmi.setText(getName());
    jmi.setSize(jmi.getPreferredSize());
    jmi.doLayout();
    return jmi;
  }
  @Override
  public String getBasename() {
    String className = getWidgetClass().getName();
    int dot = className.lastIndexOf('.');
    if (dot != -1)
      className = className.substring(dot + 1);
    return Character.toLowerCase(className.charAt(0)) + className.substring(1);
 
  public boolean isMoveable() {
    return true;
  }
  public boolean isResizable() {
    return false;
  }
  @Override
  protected Component newWidget() {
    return new JRadioButtonMenuItem();
  }
  public CompositeAdapter getParentAdapter() {
    Component me = getWidget();
    JPopupMenu jpm = (JPopupMenu) me.getParent();
    Component parent = jpm.getInvoker();
    return (CompositeAdapter) WidgetAdapter.getWidgetAdapter(parent);
  }
  @Override
  public Component cloneWidget() {
    JRadioButtonMenuItem jmi = (JRadioButtonMenuItem) super.cloneWidget();
    JRadioButtonMenuItem origin = (JRadioButtonMenuItem)getWidget();
    jmi.setText(origin.getText());
    jmi.setSelected(origin.isSelected());
    return jmi;
  }
 
  @Override
  public Class getWidgetClass() {
    return JRadioButtonMenuItem.class;
  }
  @Override
  public IAdapter getParent() {
    JRadioButtonMenuItem jb = (JRadioButtonMenuItem) getWidget();   
    DefaultButtonModel dbm = (DefaultButtonModel) jb.getModel();
    ButtonGroup bg = dbm.getGroup();
    if (bg != null) {
      for (InvisibleAdapter invisible : getRootAdapter().getInvisibles()) {
        if (invisible instanceof ButtonGroupAdapter) {
          if (bg == ((ButtonGroupAdapter) invisible).getButtonGroup())
            return invisible;
        }
      }
    }
    return super.getParent();
  }
  @Override
  public void deleteNotify() {
    JRadioButtonMenuItem jb = (JRadioButtonMenuItem) getWidget();
    DefaultButtonModel dbm = (DefaultButtonModel) jb.getModel();
    ButtonGroup bg = dbm.getGroup();
    if(bg!=null){
      bg.remove(jb);
    }
  } 
}

TOP

Related Classes of org.dyno.visual.swing.widgets.JRadioButtonMenuItemAdapter

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.