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