]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/DynamicTree.java
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@710 6f19259b...
[mirror_edk2.git] / Tools / Source / FrameworkWizard / src / org / tianocore / frameworkwizard / platform / ui / DynamicTree.java
index bd3d4feb52e003246d41dd4f01b827782ec15828..e54c7f0b6c21ff20a33118001d8a1bf0c0926ea2 100644 (file)
-/** @file\r
\r
- The file is used to create tree view sections\r
\r
- Copyright (c) 2006, Intel Corporation\r
- All rights reserved. This program and the accompanying materials\r
- are licensed and made available under the terms and conditions of the BSD License\r
- which accompanies this distribution.  The full text of the license may be found at\r
- http://opensource.org/licenses/bsd-license.php\r
\r
- THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
- WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
\r
- **/\r
-package org.tianocore.frameworkwizard.platform.ui;\r
-import java.awt.GridLayout;\r
-import java.awt.Toolkit;\r
-\r
-import javax.swing.ImageIcon;\r
-import javax.swing.JPanel;\r
-import javax.swing.JScrollPane;\r
-import javax.swing.JTree;\r
-import javax.swing.tree.DefaultMutableTreeNode;\r
-import javax.swing.tree.DefaultTreeCellRenderer;\r
-import javax.swing.tree.DefaultTreeModel;\r
-import javax.swing.tree.MutableTreeNode;\r
-import javax.swing.tree.TreePath;\r
-import javax.swing.tree.TreeSelectionModel;\r
-import javax.swing.event.TreeModelEvent;\r
-import javax.swing.event.TreeModelListener;\r
-\r
-\r
-public class DynamicTree extends JPanel {\r
-    protected DefaultMutableTreeNode rootNode;\r
-    protected DefaultTreeModel treeModel;\r
-    protected JTree tree;\r
-    private Toolkit toolkit = Toolkit.getDefaultToolkit();\r
-\r
-    public DynamicTree() {\r
-        super(new GridLayout(1,0));\r
-        \r
-        rootNode = new DefaultMutableTreeNode("Sections");\r
-        treeModel = new DefaultTreeModel(rootNode);\r
-        treeModel.addTreeModelListener(new MyTreeModelListener());\r
-\r
-        tree = new JTree(treeModel);\r
-        DefaultTreeCellRenderer renderer = (DefaultTreeCellRenderer) tree.getCellRenderer();\r
-        renderer.setOpenIcon(new ImageIcon("junk.gif"));\r
-        renderer.setClosedIcon(new ImageIcon("junk.gif"));\r
-        renderer.setLeafIcon(new ImageIcon("junk.gif"));\r
-        tree.setEditable(true);\r
-        tree.getSelectionModel().setSelectionMode\r
-                (TreeSelectionModel.SINGLE_TREE_SELECTION);\r
-        tree.setShowsRootHandles(true);\r
-\r
-        JScrollPane scrollPane = new JScrollPane(tree);\r
-        add(scrollPane);\r
-    }\r
-\r
-    /** Remove all nodes except the root node. */\r
-    public void clear() {\r
-        rootNode.removeAllChildren();\r
-        treeModel.reload();\r
-    }\r
-\r
-    public String getCurrentNodeText() {\r
-        DefaultMutableTreeNode currentNode = (DefaultMutableTreeNode)tree.getLastSelectedPathComponent();\r
-        if (currentNode != null){\r
-            return (String)currentNode.getUserObject();\r
-        }\r
-        return null;\r
-    }\r
-    /** Remove the currently selected node. */\r
-    public void removeCurrentNode() {\r
-        TreePath currentSelection = tree.getSelectionPath();\r
-        if (currentSelection != null) {\r
-            DefaultMutableTreeNode currentNode = (DefaultMutableTreeNode)\r
-                         (currentSelection.getLastPathComponent());\r
-            MutableTreeNode parent = (MutableTreeNode)(currentNode.getParent());\r
-            if (parent != null) {\r
-                treeModel.removeNodeFromParent(currentNode);\r
-                return;\r
-            }\r
-        } \r
-\r
-        // Either there was no selection, or the root was selected.\r
-        toolkit.beep();\r
-    }\r
-\r
-    /** Add child to the currently selected node. */\r
-    public DefaultMutableTreeNode addObject(Object child) {\r
-        DefaultMutableTreeNode parentNode = null;\r
-        TreePath parentPath = tree.getSelectionPath();\r
-\r
-        if (parentPath == null) {\r
-            parentNode = rootNode;\r
-        } else {\r
-            parentNode = (DefaultMutableTreeNode)\r
-                         (parentPath.getLastPathComponent());\r
-        }\r
-\r
-        return addObject(parentNode, child, true);\r
-    }\r
-\r
-    public DefaultMutableTreeNode addObject(DefaultMutableTreeNode parent,\r
-                                            Object child) {\r
-        return addObject(parent, child, false);\r
-    }\r
-\r
-    public DefaultMutableTreeNode addObject(DefaultMutableTreeNode parent,\r
-                                            Object child, \r
-                                            boolean shouldBeVisible) {\r
-        DefaultMutableTreeNode childNode = \r
-                new DefaultMutableTreeNode(child);\r
-\r
-        if (parent == null) {\r
-            parent = rootNode;\r
-        }\r
-\r
-        treeModel.insertNodeInto(childNode, parent, \r
-                                 parent.getChildCount());\r
-\r
-        //Make sure the user can see the lovely new node.\r
-        if (shouldBeVisible) {\r
-            tree.scrollPathToVisible(new TreePath(childNode.getPath()));\r
-        }\r
-        return childNode;\r
-    }\r
-\r
-    class MyTreeModelListener implements TreeModelListener {\r
-        public void treeNodesChanged(TreeModelEvent e) {\r
-            DefaultMutableTreeNode node;\r
-            node = (DefaultMutableTreeNode)\r
-                     (e.getTreePath().getLastPathComponent());\r
-\r
-            /*\r
-             * If the event lists children, then the changed\r
-             * node is the child of the node we've already\r
-             * gotten.  Otherwise, the changed node and the\r
-             * specified node are the same.\r
-             */\r
-            try {\r
-                int index = e.getChildIndices()[0];\r
-                node = (DefaultMutableTreeNode)\r
-                       (node.getChildAt(index));\r
-            } catch (NullPointerException exc) {}\r
-\r
-            System.out.println("The user has finished editing the node.");\r
-            System.out.println("New value: " + node.getUserObject());\r
-        }\r
-        public void treeNodesInserted(TreeModelEvent e) {\r
-        }\r
-        public void treeNodesRemoved(TreeModelEvent e) {\r
-        }\r
-        public void treeStructureChanged(TreeModelEvent e) {\r
-        }\r
-    }\r
-}\r
-\r
-\r
+/** @file
+ The file is used to create tree view sections
+ Copyright (c) 2006, Intel Corporation
+ All rights reserved. This program and the accompanying materials
+ are licensed and made available under the terms and conditions of the BSD License
+ which accompanies this distribution.  The full text of the license may be found at
+ http://opensource.org/licenses/bsd-license.php
+ THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+ **/
+package org.tianocore.frameworkwizard.platform.ui;
+import java.awt.GridLayout;
+import java.awt.Toolkit;
+
+import javax.swing.ImageIcon;
+import javax.swing.JPanel;
+import javax.swing.JScrollPane;
+import javax.swing.JTree;
+import javax.swing.tree.DefaultMutableTreeNode;
+import javax.swing.tree.DefaultTreeCellRenderer;
+import javax.swing.tree.DefaultTreeModel;
+import javax.swing.tree.MutableTreeNode;
+import javax.swing.tree.TreePath;
+import javax.swing.tree.TreeSelectionModel;
+import javax.swing.event.TreeModelEvent;
+import javax.swing.event.TreeModelListener;
+
+
+public class DynamicTree extends JPanel {
+    /**
+     * 
+     */
+    private static final long serialVersionUID = 1L;
+    protected DefaultMutableTreeNode rootNode;
+    protected DefaultTreeModel treeModel;
+    protected JTree tree;
+    private Toolkit toolkit = Toolkit.getDefaultToolkit();
+
+    public DynamicTree() {
+        super(new GridLayout(1,0));
+        
+        rootNode = new DefaultMutableTreeNode("Sections");
+        treeModel = new DefaultTreeModel(rootNode);
+        treeModel.addTreeModelListener(new MyTreeModelListener());
+
+        tree = new JTree(treeModel);
+        DefaultTreeCellRenderer renderer = (DefaultTreeCellRenderer) tree.getCellRenderer();
+        renderer.setOpenIcon(new ImageIcon("junk.gif"));
+        renderer.setClosedIcon(new ImageIcon("junk.gif"));
+        renderer.setLeafIcon(new ImageIcon("junk.gif"));
+        tree.setEditable(true);
+        tree.getSelectionModel().setSelectionMode
+                (TreeSelectionModel.SINGLE_TREE_SELECTION);
+        tree.setShowsRootHandles(true);
+
+        JScrollPane scrollPane = new JScrollPane(tree);
+        add(scrollPane);
+    }
+
+    /** Remove all nodes except the root node. */
+    public void clear() {
+        rootNode.removeAllChildren();
+        treeModel.reload();
+    }
+
+    public String getCurrentNodeText() {
+        DefaultMutableTreeNode currentNode = (DefaultMutableTreeNode)tree.getLastSelectedPathComponent();
+        if (currentNode != null){
+            return (String)currentNode.getUserObject();
+        }
+        return null;
+    }
+    /** Remove the currently selected node. */
+    public void removeCurrentNode() {
+        TreePath currentSelection = tree.getSelectionPath();
+        if (currentSelection != null) {
+            DefaultMutableTreeNode currentNode = (DefaultMutableTreeNode)
+                         (currentSelection.getLastPathComponent());
+            MutableTreeNode parent = (MutableTreeNode)(currentNode.getParent());
+            if (parent != null) {
+                treeModel.removeNodeFromParent(currentNode);
+                return;
+            }
+        } 
+
+        // Either there was no selection, or the root was selected.
+        toolkit.beep();
+    }
+
+    /** Add child to the currently selected node. */
+    public DefaultMutableTreeNode addObject(Object child) {
+        DefaultMutableTreeNode parentNode = null;
+        TreePath parentPath = tree.getSelectionPath();
+
+        if (parentPath == null) {
+            parentNode = rootNode;
+        } else {
+            parentNode = (DefaultMutableTreeNode)
+                         (parentPath.getLastPathComponent());
+        }
+
+        return addObject(parentNode, child, true);
+    }
+
+    public DefaultMutableTreeNode addObject(DefaultMutableTreeNode parent,
+                                            Object child) {
+        return addObject(parent, child, false);
+    }
+
+    public DefaultMutableTreeNode addObject(DefaultMutableTreeNode parent,
+                                            Object child, 
+                                            boolean shouldBeVisible) {
+        DefaultMutableTreeNode childNode = 
+                new DefaultMutableTreeNode(child);
+
+        if (parent == null) {
+            parent = rootNode;
+        }
+
+        treeModel.insertNodeInto(childNode, parent, 
+                                 parent.getChildCount());
+
+        //Make sure the user can see the lovely new node.
+        if (shouldBeVisible) {
+            tree.scrollPathToVisible(new TreePath(childNode.getPath()));
+        }
+        return childNode;
+    }
+
+    class MyTreeModelListener implements TreeModelListener {
+        public void treeNodesChanged(TreeModelEvent e) {
+            DefaultMutableTreeNode node;
+            node = (DefaultMutableTreeNode)
+                     (e.getTreePath().getLastPathComponent());
+
+            /*
+             * If the event lists children, then the changed
+             * node is the child of the node we've already
+             * gotten.  Otherwise, the changed node and the
+             * specified node are the same.
+             */
+            try {
+                int index = e.getChildIndices()[0];
+                node = (DefaultMutableTreeNode)
+                       (node.getChildAt(index));
+            } catch (NullPointerException exc) {}
+
+            System.out.println("The user has finished editing the node.");
+            System.out.println("New value: " + node.getUserObject());
+        }
+        public void treeNodesInserted(TreeModelEvent e) {
+        }
+        public void treeNodesRemoved(TreeModelEvent e) {
+        }
+        public void treeStructureChanged(TreeModelEvent e) {
+        }
+    }
+}
+
+