Java Code Examples for org.openide.util.actions.Presenter#Popup

The following examples show how to use org.openide.util.actions.Presenter#Popup . You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: ToolsActionTest.java    From netbeans with Apache License 2.0 6 votes vote down vote up
public void testIsPopupVisible() throws Exception {
    ToolsAction ta = ToolsAction.get(ToolsAction.class);

    Lookup lkp = Lookups.singleton(this);
    FileObject fo = FileUtil.createFolder(FileUtil.getConfigRoot(), "UI/ToolActions");
    assertNotNull("ToolActions folder found", fo);

    fo.createFolder("Cat1").createData("org-openide-actions-SaveAction.instance").setAttribute("position", 100);

    Action a = ta.createContextAwareInstance(lkp);
    assertTrue("It is menu presenter", a instanceof Presenter.Popup);
    Presenter.Popup pp = (Presenter.Popup)a;
    JMenuItem item = pp.getPopupPresenter();

    assertTrue("Item is enabled", item.isEnabled());
    DynamicMenuContent dmc = (DynamicMenuContent)item;
    assertEquals("One presenter to delegte to", 1, dmc.getMenuPresenters().length);
}
 
Example 2
Source File: EJBActionGroup.java    From netbeans with Apache License 2.0 6 votes vote down vote up
public JPopupMenu getPopupMenu() {
    if (getItemCount() == 0) {
        Action[] grouped = grouped();
        for (int i = 0; i < grouped.length; i++) {
            Action action = grouped[i];
            if (action == null && getItemCount() != 0) {
                addSeparator();
            } else {
                if (action instanceof ContextAwareAction) {
                    action = ((ContextAwareAction)action).createContextAwareInstance(lookup);
                }
                if (action instanceof Presenter.Popup) {
                    add(((Presenter.Popup)action).getPopupPresenter());
                }
            }
        }
    }
    return super.getPopupMenu();
}
 
Example 3
Source File: ContextMenuWarmUpTask.java    From netbeans with Apache License 2.0 5 votes vote down vote up
/** Warms up tools action popup menu item. */
private static void warmUpToolsPopupMenuItem() {
    SystemAction toolsAction = SystemAction.get(ToolsAction.class);
    if(toolsAction instanceof ContextAwareAction) {
        // Here is important to create proper lookup
        // to warm up Tools sub actions.
        Lookup lookup = new org.openide.util.lookup.ProxyLookup(
            new Lookup[] {
                // This part of lookup causes warm up of Node (cookie) actions.
                new AbstractNode(Children.LEAF).getLookup(),
                // This part of lookup causes warm up of Callback actions.
                new TopComponent().getLookup()
            }
        );
        
        Action action = ((ContextAwareAction)toolsAction)
                            .createContextAwareInstance(lookup);
        if(action instanceof Presenter.Popup) {
            JMenuItem toolsMenuItem = ((Presenter.Popup)action)
                                            .getPopupPresenter();
            if(toolsMenuItem instanceof Runnable) {
                // This actually makes the warm up.
                // See ToolsAction.Popup impl.
                ((Runnable)toolsMenuItem).run();
            }
        }
    }
}
 
Example 4
Source File: Annotations.java    From netbeans with Apache License 2.0 5 votes vote down vote up
private static JMenuItem getPopupMenuItem(Action action) {
    JMenuItem popupItem = null;
    if (action instanceof BaseAction) {
        popupItem = ((BaseAction) action).getPopupMenuItem(null);
    }
    if (popupItem == null) {
        if (action instanceof Presenter.Popup) {
            popupItem = ((Presenter.Popup) action).getPopupPresenter();
        }
    }
    return popupItem;
}
 
Example 5
Source File: RefactoringContextActionsProvider.java    From netbeans with Apache License 2.0 5 votes vote down vote up
private static void resolveInstance(Object instance, List<JComponent> result) throws IOException {
   if (instance instanceof Presenter.Popup) {
       JMenuItem temp = ((Presenter.Popup) instance).getPopupPresenter();
       result.add(temp);
   } else if (instance instanceof JSeparator) {
       result.add(null);
   } else if (instance instanceof JComponent) {
       result.add((JComponent) instance);
   } else if (instance instanceof Action) {
       Actions.MenuItem mi = new Actions.MenuItem((Action) instance, true);
       result.add(mi);
   } else {
       throw new IOException(String.format("Unsupported instance: %s, class: %s", instance, instance.getClass())); // NOI18N
   }
}
 
Example 6
Source File: LookupSensitiveActionBase.java    From netbeans with Apache License 2.0 5 votes vote down vote up
private JMenuItem item(Action a, boolean menu) {
    if (menu) {
        if (a instanceof Presenter.Menu) {
            return ((Presenter.Menu) a).getMenuPresenter();
        } else {
            return new JMenuItem(a);
        }
    } else {
        if (a instanceof Presenter.Popup) {
            return ((Presenter.Popup)a).getPopupPresenter();        
        } else {
            return new JMenuItem(a);
        }
    }
}
 
Example 7
Source File: ProjectMenuItem.java    From netbeans with Apache License 2.0 5 votes vote down vote up
private JMenuItem createmenuItem(Action action) {
    JMenuItem item;
    if (action instanceof Presenter.Menu) {
        item = ((Presenter.Menu) action).getMenuPresenter();
    } else if (action instanceof Presenter.Popup) {
        item = ((Presenter.Popup) action).getPopupPresenter();
    } else {
        item = new JMenuItem();
        Actions.connect(item, action, true);
    }
    return item;
}
 
Example 8
Source File: Utils.java    From netbeans with Apache License 2.0 5 votes vote down vote up
/**
 * Creates a menu item from an action.
 * 
 * @param action an action
 * @return JMenuItem
 */
public static JMenuItem toMenuItem(Action action) {
    JMenuItem item;
    if (action instanceof Presenter.Menu) {
        item = ((Presenter.Menu) action).getMenuPresenter();
    } else if (action instanceof Presenter.Popup) {
        item = ((Presenter.Popup) action).getPopupPresenter();
    } else {
        item = new JMenuItem();
        Actions.connect(item, action, false);
    }
    return item;
}
 
Example 9
Source File: CollectSystemAction.java    From netbeans with Apache License 2.0 5 votes vote down vote up
private JMenuItem[] createMenu (Collection coll) {
    if ( Util.THIS.isLoggable() ) /* then */ Util.THIS.debug (
        "\n--> CollectSystemAction.createMenu: ( " + coll + " )");

    ArrayList items = new ArrayList ();

    Iterator it = coll.iterator();
    while (it.hasNext ()) {
        SystemAction a = (SystemAction) it.next();
        
        if ( Util.THIS.isLoggable() ) /* then */ Util.THIS.debug (
            "-*- CollectSystemAction.createMenu: next action " + a +
                         " -- " + ( a.isEnabled() ? "<enabled>" : "[disabled]" ) );
        
        if ( a.isEnabled() ) {
            JMenuItem item = null;
            if (a instanceof Presenter.Popup) {
                item = ((Presenter.Popup)a).getPopupPresenter ();
            }

            if ( Util.THIS.isLoggable() ) /* then */ Util.THIS.debug
                ("-*- CollectSystemAction.createMenu: menu item = " + item);

            // test if we obtained the item
            if (item != null) {
                items.add (item);
            }
        }
    }

    if ( Util.THIS.isLoggable() ) /* then */ Util.THIS.debug
        ("<-- CollectSystemAction.createMenu: all items = " + items + "\n");

    JMenuItem[] array = new JMenuItem [items.size ()];
    items.toArray (array);
    return array;
}
 
Example 10
Source File: LookupSensitiveActionBase.java    From netbeans with Apache License 2.0 4 votes vote down vote up
private void doTestRefreshAfterBeingHidden(boolean clone, boolean menu) throws IOException {
    InstanceContent ic = new InstanceContent();
    Lookup context = new AbstractLookup(ic);
    
    
    Action instance;
    if (clone) {
        Action a = create(Lookup.EMPTY);
        instance = ((ContextAwareAction)a).createContextAwareInstance(context);
    } else {
        instance = create(context);
    }
    
    if (!(instance instanceof Presenter.Popup)) {
        // cannot test, skipping
        return;
    }
    
    
    CharSequence log1 = Log.enable("org.netbeans.modules.project.ui.actions", Level.FINER);
    assertFalse("Disabled", instance.isEnabled());
    if (!log1.toString().contains("Refreshing")) {
        fail("Should be refreshing: " + log1);
    }
    
    JMenuItem item = item(instance, menu);
    JMenu jmenu = new JMenu();
    jmenu.addNotify();
    assertTrue("Peer created", jmenu.isDisplayable());
    jmenu.getPopupMenu().addNotify();
    assertTrue("Peer for popup", jmenu.getPopupMenu().isDisplayable());
    
    item.addPropertyChangeListener(this);
    jmenu.add(item);
    assertEquals("anncessor properly changes, this means the actions framework is activated", 1, ancEvent);
    
    
    assertFalse("Not enabled", item.isEnabled());
    FileObject pfo = TestSupport.createTestProject(FileUtil.createMemoryFileSystem().getRoot(), "yaya");
    FileObject pf2 = TestSupport.createTestProject(FileUtil.createMemoryFileSystem().getRoot(), "blabla");
    MockServices.setServices(TestSupport.TestProjectFactory.class);
    Project p = ProjectManager.getDefault().findProject(pfo);
    Project p2 = ProjectManager.getDefault().findProject(pf2);
    if (p instanceof TestSupport.TestProject) {
        enhanceProject((TestSupport.TestProject)p);
    }
    if (p2 instanceof TestSupport.TestProject) {
        enhanceProject((TestSupport.TestProject)p2);
    }
    
    assertNotNull("Project found", p);
    assertNotNull("Project2 found", p2);
    OpenProjects.getDefault().open(new Project[] { p }, false);
    ic.add(p);
    assertTrue("enabled", item.isEnabled());
    assertEquals("One change", 1, change);

    if (menu) {
        item.removeNotify();
        CharSequence log2 = Log.enable("org.netbeans.modules.project.ui.actions", Level.FINER);
        ic.remove(p);
        ic.add(p2);
        if (log2.length() > 0) {
            fail("Nothing shall happen:\n" + log2);
        }
    } // irrelevant for popups
}
 
Example 11
Source File: ExplorerContextMenuFactory.java    From visualvm with GNU General Public License v2.0 4 votes vote down vote up
private static JMenuItem createItem(Action action) {
    if (action instanceof Presenter.Popup) return ((Presenter.Popup)action).getPopupPresenter();
    else return new DataSourceItem(action);
}