]>
Commit | Line | Data |
---|---|---|
90503bad | 1 | package org.tianocore.migration;\r |
2 | \r | |
3 | import java.awt.*;\r | |
4 | import java.awt.event.*;\r | |
5 | import javax.swing.*;\r | |
6 | import javax.swing.tree.*;\r | |
7 | \r | |
fed802b1 | 8 | import org.tianocore.ModuleSurfaceAreaDocument;\r |
9 | \r | |
90503bad | 10 | public class MsaTreeEditor extends JPanel {\r |
609384c5 | 11 | /**\r |
12 | * Define class Serial Version UID\r | |
13 | */\r | |
14 | private static final long serialVersionUID = 3169905938472150649L;\r | |
fed802b1 | 15 | /*\r |
16 | MsaTreeEditor(ModuleInfo m, UI u, ModuleSurfaceAreaDocument md) {\r | |
17 | mi = m;\r | |
18 | ui = u;\r | |
19 | msadoc = md;\r | |
20 | \r | |
21 | //rootNode = msadoc.getDomNode();\r | |
22 | rootNode = new DefaultMutableTreeNode("Root Node");\r | |
23 | treeModel = new DefaultTreeModel(rootNode);\r | |
609384c5 | 24 | \r |
fed802b1 | 25 | tree = new JTree(treeModel);\r |
26 | tree.setEditable(true);\r | |
27 | tree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);\r | |
28 | tree.setShowsRootHandles(false);\r | |
29 | tree.addMouseListener(mouseadapter);\r | |
30 | \r | |
31 | JScrollPane scrollPane = new JScrollPane(tree);\r | |
32 | add(scrollPane);\r | |
33 | \r | |
34 | popupmenu = new JPopupMenu();\r | |
35 | menuitemadd = new JMenuItem("addNode");\r | |
36 | menuitemdel = new JMenuItem("deleteNode");\r | |
37 | popupmenu.add(menuitemadd);\r | |
38 | popupmenu.add(menuitemdel);\r | |
39 | menuitemadd.addActionListener(actionListener);\r | |
40 | menuitemdel.addActionListener(actionListener);\r | |
41 | \r | |
42 | addNode(rootNode, "1st");\r | |
43 | addNode(rootNode, "2nd");\r | |
44 | }\r | |
45 | */\r | |
90503bad | 46 | MsaTreeEditor(ModuleInfo m, UI u) {\r |
47 | mi = m;\r | |
48 | ui = u;\r | |
49 | \r | |
50 | rootNode = new DefaultMutableTreeNode("Root Node");\r | |
51 | treeModel = new DefaultTreeModel(rootNode);\r | |
52 | \r | |
53 | tree = new JTree(treeModel);\r | |
54 | tree.setEditable(true);\r | |
55 | tree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);\r | |
56 | tree.setShowsRootHandles(false);\r | |
57 | tree.addMouseListener(mouseadapter);\r | |
58 | \r | |
59 | JScrollPane scrollPane = new JScrollPane(tree);\r | |
60 | add(scrollPane);\r | |
61 | \r | |
62 | popupmenu = new JPopupMenu();\r | |
fed802b1 | 63 | menuitemadd = new JMenuItem("addNode");\r |
64 | menuitemdel = new JMenuItem("deleteNode");\r | |
90503bad | 65 | popupmenu.add(menuitemadd);\r |
66 | popupmenu.add(menuitemdel);\r | |
67 | menuitemadd.addActionListener(actionListener);\r | |
68 | menuitemdel.addActionListener(actionListener);\r | |
69 | \r | |
70 | addNode(rootNode, "1st");\r | |
71 | addNode(rootNode, "2nd");\r | |
72 | }\r | |
73 | \r | |
74 | private ModuleInfo mi;\r | |
75 | private UI ui;\r | |
fed802b1 | 76 | //private ModuleSurfaceAreaDocument msadoc;\r |
90503bad | 77 | \r |
78 | private JTree tree;\r | |
79 | private DefaultMutableTreeNode rootNode;\r | |
80 | private DefaultTreeModel treeModel;\r | |
fed802b1 | 81 | private JMenuItem menuitemadd, menuitemdel;\r |
90503bad | 82 | \r |
83 | private JPopupMenu popupmenu;\r | |
84 | private MouseAdapter mouseadapter = new MouseAdapter() {\r | |
85 | public void mouseReleased(MouseEvent me) {\r | |
86 | if (me.getClickCount() == 1 && SwingUtilities.isRightMouseButton(me)) {\r | |
87 | tree.setSelectionPath(tree.getPathForLocation(me.getX(), me.getY()));\r | |
88 | popupmenu.show(tree, me.getX(), me.getY());\r | |
89 | }\r | |
90 | }\r | |
91 | };\r | |
92 | private ActionListener actionListener = new ActionListener() {\r | |
93 | public void actionPerformed(ActionEvent ae) {\r | |
fed802b1 | 94 | if (ae.getSource() == menuitemadd) {\r |
95 | addNode();\r | |
96 | } else if (ae.getSource() == menuitemdel) {\r | |
97 | delNode();\r | |
98 | }\r | |
90503bad | 99 | }\r |
100 | };\r | |
101 | \r | |
fed802b1 | 102 | private void delNode() {\r |
103 | treeModel.removeNodeFromParent((DefaultMutableTreeNode)(tree.getSelectionPath().getLastPathComponent()));\r | |
104 | }\r | |
105 | \r | |
106 | private void addNode() {\r | |
90503bad | 107 | addNode((DefaultMutableTreeNode)(tree.getSelectionPath().getLastPathComponent()), ui.getInput("Input Node Name"));\r |
90503bad | 108 | }\r |
109 | \r | |
fed802b1 | 110 | private void addNode(DefaultMutableTreeNode parentNode, Object child) {\r |
90503bad | 111 | DefaultMutableTreeNode childNode = new DefaultMutableTreeNode(child);\r |
112 | treeModel.insertNodeInto(childNode, parentNode, parentNode.getChildCount());\r | |
113 | tree.scrollPathToVisible(new TreePath(childNode.getPath()));\r | |
114 | }\r | |
fed802b1 | 115 | /*\r |
116 | public static void init(ModuleInfo mi, UI ui, ModuleSurfaceAreaDocument msadoc) throws Exception {\r | |
117 | init(mi, ui);\r | |
118 | }\r | |
119 | */\r | |
90503bad | 120 | public static void init(ModuleInfo mi, UI ui) throws Exception {\r |
121 | UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());\r | |
122 | \r | |
123 | JFrame frame = new JFrame("MsaTreeEditor");\r | |
124 | frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);\r | |
125 | \r | |
126 | MsaTreeEditor mte = new MsaTreeEditor(mi, ui);\r | |
127 | mte.setLayout(new GridBagLayout());\r | |
128 | mte.setOpaque(true);\r | |
129 | frame.setContentPane(mte);\r | |
130 | \r | |
131 | frame.pack();\r | |
132 | frame.setVisible(true);\r | |
133 | }\r | |
134 | } |