wiki-convert/wiki-asciidoc/DevFaqAddActionToMembersOrHierarchyView.asciidoc (121 lines of code) (raw):

// // Licensed to the Apache Software Foundation (ASF) under one // or more contributor license agreements. See the NOTICE file // distributed with this work for additional information // regarding copyright ownership. The ASF licenses this file // to you under the Apache License, Version 2.0 (the // "License"); you may not use this file except in compliance // with the License. You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, // software distributed under the License is distributed on an // "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY // KIND, either express or implied. See the License for the // specific language governing permissions and limitations // under the License. // = DevFaqAddActionToMembersOrHierarchyView :jbake-type: wiki :jbake-tags: wiki, devfaq, needsreview :jbake-status: published === How do I add an action to the context menu of the members or hierarchy view? Since 7.3 ([1], [2]) it is possible to extend the context menu of the newly redesigned members and hierarchy view. Plugin your action at the following extension points [source,java] ---- Navigator/Actions/Members/text/x-java Navigator/Actions/Hierarchy/text/x-java ---- Then you get the "TreePathHandle" from the Node's lookup. ==== A more or less complete example: [source,java] ---- package de.markiewb.netbeans.sample.extendMembersAndHierarchyView; import java.util.ArrayList; import java.util.List; import static javax.swing.Action.NAME; import javax.swing.JMenuItem; import javax.swing.JOptionPane; import org.netbeans.api.java.source.TreePathHandle; import org.openide.awt.*; import org.openide.nodes.Node; import org.openide.util.HelpCtx; import org.openide.util.NbBundle; import org.openide.util.actions.CookieAction; import org.openide.util.actions.Presenter; @ActionID(category = "Edit", id = "de.markiewb.netbeans.sample.extendMembersAndHierarchyView.SampleAction") @ActionRegistration( displayName = "SampleAction") @ActionReferences({ @ActionReference(path = "Navigator/Actions/Members/text/x-java", position = 1150), @ActionReference(path = "Navigator/Actions/Hierarchy/text/x-java", position = 1150), @ActionReference(path = "Menu/File", position = 0) }) /** * Shows the usage of the extensionpoints of the context menu in the members and * hierarchy views. This is new to NetBeans 7.3. See * http://netbeans.org/bugzilla/show_bug.cgi?id=220057 and * http://netbeans.org/bugzilla/show_bug.cgi?id=224499. * * @author markiewb@netbeans.org */ public final class SampleAction extends CookieAction implements Presenter.Popup { public SampleAction() { putValue(NAME, "Hello TreePathHandle(s)"); } @Override public String getName() { return "Hello TreePathHandle(s)"; } @Override public JMenuItem getPopupPresenter() { return new JMenuItem(this); } @Override public HelpCtx getHelpCtx() { return null; } @Override protected boolean enable(Node[] activatedNodes) { //.. use tph from lookup in node for (Node node : activatedNodes) { if (null != node.getLookup().lookup(TreePathHandle.class)) { return true; }; } return false; } @Override protected int mode() { return CookieAction.MODE_ALL; } @Override protected Class[] cookieClasses() { return new Class[]{Node.class}; } @Override protected void performAction(Node[] nodes) { List<TreePathHandle> treePathHandles = new ArrayList<TreePathHandle>(); for (Node node : nodes) { treePathHandles.add(node.getLookup().lookup(TreePathHandle.class)); } //show all treePathHandles JOptionPane.showMessageDialog(null, "Hello\n" + treePathHandles); } } ---- See [1] link:http://netbeans.org/bugzilla/show_bug.cgi?id=220057[http://netbeans.org/bugzilla/show_bug.cgi?id=220057] [2] link:http://netbeans.org/bugzilla/show_bug.cgi?id=224499[http://netbeans.org/bugzilla/show_bug.cgi?id=224499] [3] link:https://github.com/markiewb/nb-api-samples/tree/master/ExtendMembersAndHierarchyView[https://github.com/markiewb/nb-api-samples/tree/master/ExtendMembersAndHierarchyView] [4] link:http://benkiew.wordpress.com/2013/01/06/netbeans-ide-7-3-how-to-extend-the-context-menu-of-the-members-and-hierarchy-view/[http://benkiew.wordpress.com/2013/01/06/netbeans-ide-7-3-how-to-extend-the-context-menu-of-the-members-and-hierarchy-view/] === Apache Migration Information The content in this page was kindly donated by Oracle Corp. to the Apache Software Foundation. This page was exported from link:http://wiki.netbeans.org/DevFaqAddActionToMembersOrHierarchyView[http://wiki.netbeans.org/DevFaqAddActionToMembersOrHierarchyView] , that was last modified by NetBeans user Markiewb on 2013-01-06T22:53:28Z. *NOTE:* This document was automatically converted to the AsciiDoc format on 2018-01-10, and needs to be reviewed.