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