X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=blobdiff_plain;f=Tools%2FSource%2FFrameworkWizard%2Fsrc%2Forg%2Ftianocore%2Fframeworkwizard%2Fplatform%2Fui%2FDynamicTree.java;h=e54c7f0b6c21ff20a33118001d8a1bf0c0926ea2;hp=bd3d4feb52e003246d41dd4f01b827782ec15828;hb=440537339ee813c0d52ab4e88746cd3fe42fdc33;hpb=0b5e1cc313c6ca047ab97dd89a17043029b05e27 diff --git a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/DynamicTree.java b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/DynamicTree.java index bd3d4feb52..e54c7f0b6c 100644 --- a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/DynamicTree.java +++ b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/DynamicTree.java @@ -1,160 +1,164 @@ -/** @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 { - 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) { - } - } -} - - +/** @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) { + } + } +} + +