1 package org
.tianocore
.migration
;
4 import java
.awt
.event
.*;
6 import javax
.swing
.tree
.*;
8 public class MsaTreeEditor
extends JPanel
{
9 MsaTreeEditor(ModuleInfo m
, UI u
) {
13 rootNode
= new DefaultMutableTreeNode("Root Node");
14 treeModel
= new DefaultTreeModel(rootNode
);
16 tree
= new JTree(treeModel
);
17 tree
.setEditable(true);
18 tree
.getSelectionModel().setSelectionMode(TreeSelectionModel
.SINGLE_TREE_SELECTION
);
19 tree
.setShowsRootHandles(false);
20 tree
.addMouseListener(mouseadapter
);
22 JScrollPane scrollPane
= new JScrollPane(tree
);
25 popupmenu
= new JPopupMenu();
26 JMenuItem menuitemadd
= new JMenuItem("addNode");
27 JMenuItem menuitemdel
= new JMenuItem("deleteNode");
28 popupmenu
.add(menuitemadd
);
29 popupmenu
.add(menuitemdel
);
30 menuitemadd
.addActionListener(actionListener
);
31 menuitemdel
.addActionListener(actionListener
);
33 addNode(rootNode
, "1st");
34 addNode(rootNode
, "2nd");
37 private ModuleInfo mi
;
41 private DefaultMutableTreeNode rootNode
;
42 private DefaultTreeModel treeModel
;
44 private JPopupMenu popupmenu
;
45 private MouseAdapter mouseadapter
= new MouseAdapter() {
46 public void mouseReleased(MouseEvent me
) {
47 if (me
.getClickCount() == 1 && SwingUtilities
.isRightMouseButton(me
)) {
48 tree
.setSelectionPath(tree
.getPathForLocation(me
.getX(), me
.getY()));
49 popupmenu
.show(tree
, me
.getX(), me
.getY());
53 private ActionListener actionListener
= new ActionListener() {
54 public void actionPerformed(ActionEvent ae
) {
59 public void addNode() {
60 addNode((DefaultMutableTreeNode
)(tree
.getSelectionPath().getLastPathComponent()), ui
.getInput("Input Node Name"));
64 public void addNode(DefaultMutableTreeNode parentNode
, Object child
) {
65 DefaultMutableTreeNode childNode
= new DefaultMutableTreeNode(child
);
66 treeModel
.insertNodeInto(childNode
, parentNode
, parentNode
.getChildCount());
67 tree
.scrollPathToVisible(new TreePath(childNode
.getPath()));
70 public static void init(ModuleInfo mi
, UI ui
) throws Exception
{
71 UIManager
.setLookAndFeel(UIManager
.getSystemLookAndFeelClassName());
73 JFrame frame
= new JFrame("MsaTreeEditor");
74 frame
.setDefaultCloseOperation(JFrame
.EXIT_ON_CLOSE
);
76 MsaTreeEditor mte
= new MsaTreeEditor(mi
, ui
);
77 mte
.setLayout(new GridBagLayout());
79 frame
.setContentPane(mte
);
82 frame
.setVisible(true);