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