Package org.dyno.visual.swing.widgets

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

/************************************************************************************
* 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 java.awt.Dimension;

import javax.swing.JMenu;
import javax.swing.JMenuBar;

import org.dyno.visual.swing.base.ExtensionRegistry;
import org.dyno.visual.swing.plugin.spi.CompositeAdapter;
import org.dyno.visual.swing.plugin.spi.WidgetAdapter;

@SuppressWarnings("unchecked")
public class JMenuBarAdapter extends CompositeAdapter {
  public JMenuBarAdapter() {
    super(null);
  }

  @Override
  public Component cloneWidget() {
    JMenuBar copy = (JMenuBar) super.cloneWidget();
    JMenuBar origin = (JMenuBar) getWidget();
    int count = origin.getMenuCount();
    for (int i = 0; i < count; i++) {
      Component child = getChild(i);
      WidgetAdapter adapter = WidgetAdapter.getWidgetAdapter(child);
      copy.add(adapter.cloneWidget());
    }
    return copy;
  }

  public boolean isResizable() {
    return false;
  }
  @Override
  public boolean isMoveable() {
    return true;
  }

  @Override
  public int getChildCount() {
    JMenuBar origin = (JMenuBar) getWidget();
    return origin.getMenuCount();
  }

  @Override
  public Component getChild(int index) {
    JMenuBar origin = (JMenuBar) getWidget();
    return origin.getMenu(index);
  }

  @Override
  public void addChild(Component widget) {
    JMenuBar origin = (JMenuBar) getWidget();
    origin.add(widget);
  }

  @Override
  public void removeAllChild() {
    JMenuBar origin = (JMenuBar) getWidget();
    origin.removeAll();
  }

  @Override
  public boolean removeChild(Component child) {
    JMenuAdapter jmenuAdapter=(JMenuAdapter)WidgetAdapter.getWidgetAdapter(child);
    jmenuAdapter.hidePopup();
    JMenuBar origin = (JMenuBar) getWidget();   
    origin.remove(child);
    origin.doLayout();
    origin.repaint();
    Dimension size=child.getPreferredSize();   
    child.setSize(size);
    child.doLayout();
    return true;
  }

  @Override
  protected Component createWidget() {
    JMenuBar jmb = new JMenuBar();
    WidgetAdapter menuAdapter = ExtensionRegistry
        .createWidgetAdapter(JMenu.class);
    JMenu jmenu = (JMenu) menuAdapter.getWidget();
    jmb.add(jmenu);
    jmb.setSize(100, 25);
    jmb.doLayout();
    return jmb;
  }

  @Override
  protected Component newWidget() {
    return new JMenuBar();
  }

  @Override
  public void addChildByConstraints(Component child, Object constraints) {
  }

  @Override
  public Object getChildConstraints(Component child) {
    return null;
  }

  @Override
  public Class getWidgetClass() {
    return JMenuBar.class;
  }

}

TOP

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

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.