]> git.proxmox.com Git - mirror_edk2.git/blob - Tools/Source/MigrationTools/org/tianocore/migration/MsaTreeEditor.java
add lisence
[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 public class MsaTreeEditor extends JPanel {
9 /**
10 * Define class Serial Version UID
11 */
12 private static final long serialVersionUID = 3169905938472150649L;
13 /*
14 MsaTreeEditor(ModuleInfo m, UI u, ModuleSurfaceAreaDocument md) {
15 mi = m;
16 ui = u;
17 msadoc = md;
18
19 //rootNode = msadoc.getDomNode();
20 rootNode = new DefaultMutableTreeNode("Root Node");
21 treeModel = new DefaultTreeModel(rootNode);
22
23 tree = new JTree(treeModel);
24 tree.setEditable(true);
25 tree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);
26 tree.setShowsRootHandles(false);
27 tree.addMouseListener(mouseadapter);
28
29 JScrollPane scrollPane = new JScrollPane(tree);
30 add(scrollPane);
31
32 popupmenu = new JPopupMenu();
33 menuitemadd = new JMenuItem("addNode");
34 menuitemdel = new JMenuItem("deleteNode");
35 popupmenu.add(menuitemadd);
36 popupmenu.add(menuitemdel);
37 menuitemadd.addActionListener(actionListener);
38 menuitemdel.addActionListener(actionListener);
39
40 addNode(rootNode, "1st");
41 addNode(rootNode, "2nd");
42 }
43 */
44 MsaTreeEditor() {
45 rootNode = new DefaultMutableTreeNode("Root Node");
46 treeModel = new DefaultTreeModel(rootNode);
47
48 tree = new JTree(treeModel);
49 tree.setEditable(true);
50 tree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);
51 tree.setShowsRootHandles(false);
52 tree.addMouseListener(mouseadapter);
53
54 JScrollPane scrollPane = new JScrollPane(tree);
55 add(scrollPane);
56
57 popupmenu = new JPopupMenu();
58 menuitemadd = new JMenuItem("addNode");
59 menuitemdel = new JMenuItem("deleteNode");
60 popupmenu.add(menuitemadd);
61 popupmenu.add(menuitemdel);
62 menuitemadd.addActionListener(actionListener);
63 menuitemdel.addActionListener(actionListener);
64
65 addNode(rootNode, "1st");
66 addNode(rootNode, "2nd");
67 }
68
69 //private ModuleSurfaceAreaDocument msadoc;
70
71 private JTree tree;
72 private DefaultMutableTreeNode rootNode;
73 private DefaultTreeModel treeModel;
74 private JMenuItem menuitemadd, menuitemdel;
75
76 private JPopupMenu popupmenu;
77 private MouseAdapter mouseadapter = new MouseAdapter() {
78 public void mouseReleased(MouseEvent me) {
79 if (me.getClickCount() == 1 && SwingUtilities.isRightMouseButton(me)) {
80 tree.setSelectionPath(tree.getPathForLocation(me.getX(), me.getY()));
81 popupmenu.show(tree, me.getX(), me.getY());
82 }
83 }
84 };
85 private ActionListener actionListener = new ActionListener() {
86 public void actionPerformed(ActionEvent ae) {
87 if (ae.getSource() == menuitemadd) {
88 addNode();
89 } else if (ae.getSource() == menuitemdel) {
90 delNode();
91 }
92 }
93 };
94
95 private void delNode() {
96 treeModel.removeNodeFromParent((DefaultMutableTreeNode)(tree.getSelectionPath().getLastPathComponent()));
97 }
98
99 private void addNode() {
100 addNode((DefaultMutableTreeNode)(tree.getSelectionPath().getLastPathComponent()), MigrationTool.ui.getInput("Input Node Name"));
101 }
102
103 private void addNode(DefaultMutableTreeNode parentNode, Object child) {
104 DefaultMutableTreeNode childNode = new DefaultMutableTreeNode(child);
105 treeModel.insertNodeInto(childNode, parentNode, parentNode.getChildCount());
106 tree.scrollPathToVisible(new TreePath(childNode.getPath()));
107 }
108 /*
109 public static void init(ModuleInfo mi, UI ui, ModuleSurfaceAreaDocument msadoc) throws Exception {
110 init(mi, ui);
111 }
112 */
113 public static void init() throws Exception {
114 UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
115
116 JFrame frame = new JFrame("MsaTreeEditor");
117 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
118
119 MsaTreeEditor mte = new MsaTreeEditor();
120 mte.setLayout(new GridBagLayout());
121 mte.setOpaque(true);
122 frame.setContentPane(mte);
123
124 frame.pack();
125 frame.setVisible(true);
126 }
127 }