]> git.proxmox.com Git - mirror_edk2.git/blob - Tools/Source/MigrationTools/org/tianocore/migration/MsaTreeEditor.java
Fix EDKT191.
[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
8 import org.tianocore.ModuleSurfaceAreaDocument;
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(ModuleInfo m, UI u, ModuleSurfaceAreaDocument md) {
17 mi = m;
18 ui = u;
19 msadoc = md;
20
21 //rootNode = msadoc.getDomNode();
22 rootNode = new DefaultMutableTreeNode("Root Node");
23 treeModel = new DefaultTreeModel(rootNode);
24
25 tree = new JTree(treeModel);
26 tree.setEditable(true);
27 tree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);
28 tree.setShowsRootHandles(false);
29 tree.addMouseListener(mouseadapter);
30
31 JScrollPane scrollPane = new JScrollPane(tree);
32 add(scrollPane);
33
34 popupmenu = new JPopupMenu();
35 menuitemadd = new JMenuItem("addNode");
36 menuitemdel = new JMenuItem("deleteNode");
37 popupmenu.add(menuitemadd);
38 popupmenu.add(menuitemdel);
39 menuitemadd.addActionListener(actionListener);
40 menuitemdel.addActionListener(actionListener);
41
42 addNode(rootNode, "1st");
43 addNode(rootNode, "2nd");
44 }
45 */
46 MsaTreeEditor(ModuleInfo m, UI u) {
47 mi = m;
48 ui = u;
49
50 rootNode = new DefaultMutableTreeNode("Root Node");
51 treeModel = new DefaultTreeModel(rootNode);
52
53 tree = new JTree(treeModel);
54 tree.setEditable(true);
55 tree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);
56 tree.setShowsRootHandles(false);
57 tree.addMouseListener(mouseadapter);
58
59 JScrollPane scrollPane = new JScrollPane(tree);
60 add(scrollPane);
61
62 popupmenu = new JPopupMenu();
63 menuitemadd = new JMenuItem("addNode");
64 menuitemdel = new JMenuItem("deleteNode");
65 popupmenu.add(menuitemadd);
66 popupmenu.add(menuitemdel);
67 menuitemadd.addActionListener(actionListener);
68 menuitemdel.addActionListener(actionListener);
69
70 addNode(rootNode, "1st");
71 addNode(rootNode, "2nd");
72 }
73
74 private ModuleInfo mi;
75 private UI ui;
76 //private ModuleSurfaceAreaDocument msadoc;
77
78 private JTree tree;
79 private DefaultMutableTreeNode rootNode;
80 private DefaultTreeModel treeModel;
81 private JMenuItem menuitemadd, menuitemdel;
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 }
99 }
100 };
101
102 private void delNode() {
103 treeModel.removeNodeFromParent((DefaultMutableTreeNode)(tree.getSelectionPath().getLastPathComponent()));
104 }
105
106 private void addNode() {
107 addNode((DefaultMutableTreeNode)(tree.getSelectionPath().getLastPathComponent()), ui.getInput("Input Node Name"));
108 }
109
110 private void addNode(DefaultMutableTreeNode parentNode, Object child) {
111 DefaultMutableTreeNode childNode = new DefaultMutableTreeNode(child);
112 treeModel.insertNodeInto(childNode, parentNode, parentNode.getChildCount());
113 tree.scrollPathToVisible(new TreePath(childNode.getPath()));
114 }
115 /*
116 public static void init(ModuleInfo mi, UI ui, ModuleSurfaceAreaDocument msadoc) throws Exception {
117 init(mi, ui);
118 }
119 */
120 public static void init(ModuleInfo mi, UI ui) throws Exception {
121 UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
122
123 JFrame frame = new JFrame("MsaTreeEditor");
124 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
125
126 MsaTreeEditor mte = new MsaTreeEditor(mi, ui);
127 mte.setLayout(new GridBagLayout());
128 mte.setOpaque(true);
129 frame.setContentPane(mte);
130
131 frame.pack();
132 frame.setVisible(true);
133 }
134 }