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