1 package net.sourceforge.pmd.util.viewer.gui.menu;
2
3 import net.sourceforge.pmd.ast.Node;
4 import net.sourceforge.pmd.ast.SimpleNode;
5 import net.sourceforge.pmd.util.viewer.model.ViewerModel;
6 import net.sourceforge.pmd.util.viewer.util.NLS;
7
8 import javax.swing.*;
9 import java.text.MessageFormat;
10
11
12 /***
13 * submenu for the simple node itself
14 *
15 * @author Boris Gruschko ( boris at gruschko.org )
16 * @version $Id: SimpleNodeSubMenu.java,v 1.9 2006/02/10 14:15:31 tomcopeland Exp $
17 */
18 public class SimpleNodeSubMenu
19 extends JMenu {
20 private ViewerModel model;
21 private SimpleNode node;
22
23 /***
24 * constructs the submenu
25 *
26 * @param model model to which the actions will be forwarded
27 * @param node menu's owner
28 */
29 public SimpleNodeSubMenu(ViewerModel model, SimpleNode node) {
30 super(MessageFormat.format(NLS.nls("AST.MENU.NODE.TITLE"), new Object[]{node.toString()}));
31 this.model = model;
32 this.node = node;
33 init();
34 }
35
36 private void init() {
37 StringBuffer buf = new StringBuffer(200);
38 for (Node temp = node; temp != null; temp = temp.jjtGetParent()) {
39 buf.insert(0, "/" + temp.toString());
40 }
41 add(new XPathFragmentAddingItem(NLS.nls("AST.MENU.NODE.ADD_ABSOLUTE_PATH"), model, buf.toString()));
42 add(new XPathFragmentAddingItem(NLS.nls("AST.MENU.NODE.ADD_ALLDESCENDANTS"), model,
43 "//" + node.toString()));
44 }
45 }
46
47