Package org.dyno.visual.swing.widgets.menucontext

Source Code of org.dyno.visual.swing.widgets.menucontext.JComponentMenuContext$DeletePopupAction

package org.dyno.visual.swing.widgets.menucontext;

import java.awt.Component;

import javax.swing.JComponent;
import javax.swing.JPopupMenu;

import org.dyno.visual.swing.base.CompositeMenuContext;
import org.dyno.visual.swing.base.ExtensionRegistry;
import org.dyno.visual.swing.base.JavaUtil;
import org.dyno.visual.swing.plugin.spi.IWidgetListener;
import org.dyno.visual.swing.plugin.spi.WidgetAdapter;
import org.dyno.visual.swing.plugin.spi.WidgetEvent;
import org.dyno.visual.swing.widgets.JPopupMenuAdapter;
import org.eclipse.jface.action.Action;
import org.eclipse.jface.action.MenuManager;

public class JComponentMenuContext extends CompositeMenuContext {
  public void fillContextAction(MenuManager menu) {
    Component widget = adaptable.getWidget();
    if (widget instanceof JComponent) {
      JComponent jcomp = (JComponent) widget;
      JPopupMenu jpm = JavaUtil.getComponentPopupMenu(jcomp);
      if (jpm != null && WidgetAdapter.getWidgetAdapter(jpm) != null) {
        menu.add(new HideShowPopupAction(widget));
        menu.add(new DeletePopupAction(widget));
      }
    }
   
    super.fillContextAction(menu);
  }
  class DeletePopupAction extends Action {
    private Component widget;
    private JPopupMenu popup;
    private JPopupMenuAdapter popupAdapter;
    public DeletePopupAction(Component widget) {
      this.widget = widget;
      JComponent jcomp = (JComponent) widget;
      popup = JavaUtil.getComponentPopupMenu(jcomp);
      popupAdapter = (JPopupMenuAdapter) WidgetAdapter.getWidgetAdapter(popup);
      setText("Delete Popup Menu " + popupAdapter.getID());
    }
    @Override
    public void run() {
      JComponent jcomp = (JComponent) widget;     
      JavaUtil.hideMenu();
      jcomp.setComponentPopupMenu(null);
      WidgetAdapter widgetAdapter = WidgetAdapter.getWidgetAdapter(widget);
      widgetAdapter.setDirty(true);
      widgetAdapter.addNotify();
      popupAdapter.deleteNotify();
      WidgetEvent we = new WidgetEvent(widgetAdapter, popupAdapter);
      for(IWidgetListener listener:ExtensionRegistry.getWidgetListeners()){
        listener.widgetRemoved(we);
      }
      widgetAdapter.repaintDesigner();
    }
  }

}
TOP

Related Classes of org.dyno.visual.swing.widgets.menucontext.JComponentMenuContext$DeletePopupAction

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.