]> git.proxmox.com Git - mirror_edk2.git/blame - Tools/Java/Source/MigrationTools/org/tianocore/migration/MsaTreeEditor.java
Coding Style
[mirror_edk2.git] / Tools / Java / Source / MigrationTools / org / tianocore / migration / MsaTreeEditor.java
CommitLineData
90503bad 1package org.tianocore.migration;\r
2\r
71f30e51 3import java.awt.GridBagLayout;\r
4import java.awt.event.ActionEvent;\r
5import java.awt.event.ActionListener;\r
6import java.awt.event.MouseAdapter;\r
7import java.awt.event.MouseEvent;\r
8\r
9import javax.swing.JFileChooser;\r
10import javax.swing.JFrame;\r
11import javax.swing.JMenuItem;\r
12import javax.swing.JPanel;\r
13import javax.swing.JPopupMenu;\r
14import javax.swing.JScrollPane;\r
15import javax.swing.JTree;\r
16import javax.swing.SwingUtilities;\r
17import javax.swing.UIManager;\r
18import javax.swing.tree.DefaultMutableTreeNode;\r
19import javax.swing.tree.DefaultTreeModel;\r
20import javax.swing.tree.TreePath;\r
21import javax.swing.tree.TreeSelectionModel;\r
22import javax.xml.parsers.DocumentBuilder;\r
23import javax.xml.parsers.DocumentBuilderFactory;\r
24\r
25import org.w3c.dom.Document;\r
26import org.w3c.dom.Element;\r
27import org.w3c.dom.Node;\r
28import org.w3c.dom.NodeList;\r
90503bad 29\r
30public class MsaTreeEditor extends JPanel {\r
71f30e51 31 /**\r
32 * Define class Serial Version UID\r
33 */\r
34 private static final long serialVersionUID = 3169905938472150649L;\r
35\r
36 MsaTreeEditor() throws Exception {\r
37 rootNode = new DefaultMutableTreeNode("Root Node");\r
38 treeModel = new DefaultTreeModel(rootNode);\r
39\r
40 tree = new JTree(treeModel);\r
41 tree.setEditable(true);\r
42 tree.getSelectionModel().setSelectionMode(\r
43 TreeSelectionModel.SINGLE_TREE_SELECTION);\r
44 tree.setShowsRootHandles(false);\r
45 tree.addMouseListener(mouseadapter);\r
46\r
47 JScrollPane scrollPane = new JScrollPane(tree);\r
48 // scrollPane.setSize(800, 600);\r
49 add(scrollPane);\r
50\r
51 popupmenu = new JPopupMenu();\r
52 menuitemadd = new JMenuItem("Add Node");\r
53 menuitemdel = new JMenuItem("Delete Node");\r
54 menuitemedit = new JMenuItem("Edit Node");\r
55 popupmenu.add(menuitemadd);\r
56 popupmenu.add(menuitemdel);\r
57 popupmenu.add(menuitemedit);\r
58 menuitemadd.addActionListener(actionListener);\r
59 menuitemdel.addActionListener(actionListener);\r
60 menuitemedit.addActionListener(actionListener);\r
61\r
62 genDomTree(MigrationTool.ui.getFilepath("Select a msa file",\r
63 JFileChooser.FILES_AND_DIRECTORIES));\r
64 }\r
65\r
66 // private ModuleSurfaceAreaDocument msadoc;\r
67\r
68 private JTree tree;\r
69\r
70 private DefaultMutableTreeNode rootNode;\r
71\r
72 private DefaultTreeModel treeModel;\r
73\r
74 private JMenuItem menuitemadd, menuitemdel, menuitemedit;\r
75\r
76 private JPopupMenu popupmenu;\r
77\r
78 private MouseAdapter mouseadapter = new MouseAdapter() {\r
79 public void mouseReleased(MouseEvent me) {\r
80 if (me.getClickCount() == 1\r
81 && SwingUtilities.isRightMouseButton(me)) {\r
82 tree.setSelectionPath(tree.getPathForLocation(me.getX(), me\r
83 .getY()));\r
84 popupmenu.show(tree, me.getX(), me.getY());\r
85 }\r
86 }\r
87 };\r
88\r
89 private ActionListener actionListener = new ActionListener() {\r
90 public void actionPerformed(ActionEvent ae) {\r
91 if (ae.getSource() == menuitemadd) {\r
92 addNode();\r
93 } else if (ae.getSource() == menuitemdel) {\r
94 delNode();\r
95 } else if (ae.getSource() == menuitemedit) {\r
96 editNode();\r
97 }\r
98 }\r
99 };\r
100\r
101 private void editNode() {\r
102 DefaultMutableTreeNode node = (DefaultMutableTreeNode) (tree\r
103 .getSelectionPath().getLastPathComponent());\r
104 Element element = (Element) node.getUserObject();\r
105 System.out.println(element.getTextContent());\r
106 }\r
107\r
108 private void delNode() {\r
109 treeModel.removeNodeFromParent((DefaultMutableTreeNode) (tree\r
110 .getSelectionPath().getLastPathComponent()));\r
111 }\r
112\r
113 private void addNode() {\r
114 addNode((DefaultMutableTreeNode) (tree.getSelectionPath()\r
115 .getLastPathComponent()), MigrationTool.ui\r
116 .getInput("Input Node Name"));\r
117 }\r
118\r
119 private DefaultMutableTreeNode addNode(DefaultMutableTreeNode parentNode,\r
120 Object child) {\r
121 DefaultMutableTreeNode childNode = new DefaultMutableTreeNode(child);\r
122 treeModel.insertNodeInto(childNode, parentNode, parentNode\r
123 .getChildCount());\r
124 tree.scrollPathToVisible(new TreePath(childNode.getPath()));\r
125 return childNode;\r
126 }\r
127\r
128 private final void handleNode(Node node, DefaultMutableTreeNode parentNode) {\r
129 DefaultMutableTreeNode curNode = null;\r
130 if (node.getNodeType() == Node.ELEMENT_NODE) {\r
131 System.out.println("elem");\r
132 curNode = addNode(parentNode, node);\r
133 } else if (node.getNodeType() == Node.DOCUMENT_NODE) {\r
134 System.out.println("doc");\r
135 curNode = addNode(parentNode, "MsaDocum"); // can Docum be with\r
136 // Root Node?\r
137 }\r
138\r
139 NodeList nodelist = node.getChildNodes();\r
140 for (int i = 0; i < nodelist.getLength(); i++) {\r
141 handleNode(nodelist.item(i), curNode);\r
142 }\r
143 }\r
144\r
145 private final void genDomTree(String filename) throws Exception {\r
146 DocumentBuilder builder = DocumentBuilderFactory.newInstance()\r
147 .newDocumentBuilder();\r
148 Document document = builder.parse(filename);\r
149 handleNode(document, rootNode);\r
150 }\r
151\r
152 public static final void init() throws Exception {\r
153 UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());\r
154\r
155 JFrame frame = new JFrame("MsaTreeEditor");\r
156 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);\r
157\r
158 MsaTreeEditor mte = new MsaTreeEditor();\r
159 mte.setLayout(new GridBagLayout());\r
160 mte.setOpaque(true);\r
161 frame.setContentPane(mte);\r
162\r
163 frame.pack();\r
164 frame.setVisible(true);\r
165 }\r
90503bad 166}