+++ /dev/null
-/** @file\r
- \r
- The file is used to override JTree to provides customized interfaces \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
-\r
-package org.tianocore.frameworkwizard.common.ui;\r
-\r
-import javax.swing.JTree;\r
-import javax.swing.tree.DefaultMutableTreeNode;\r
-import javax.swing.tree.DefaultTreeModel;\r
-import javax.swing.tree.TreeNode;\r
-import javax.swing.tree.TreePath;\r
-\r
-import org.tianocore.frameworkwizard.common.Identifications.Identification;\r
-\r
-/**\r
- The class is used to override JTree to provides customized interfaces \r
- It extends JTree\r
-\r
- **/\r
-public class ITree extends JTree {\r
- ///\r
- /// Define class Serial Version UID\r
- ///\r
- private static final long serialVersionUID = -7907086164518295327L;\r
-\r
- //\r
- // Define class members\r
- //\r
- DefaultTreeModel treeModel = null;\r
-\r
- /**\r
- This is the default constructor\r
- \r
- **/\r
- public ITree() {\r
- super();\r
- }\r
-\r
- /**\r
- This is the overrided constructor\r
- Init class members with input data\r
- \r
- @param iDmtRoot The root node of the tree\r
- \r
- **/\r
- public ITree(IDefaultMutableTreeNode iDmtRoot) {\r
- super(iDmtRoot);\r
- treeModel = (DefaultTreeModel) this.getModel();\r
- }\r
-\r
- /**\r
- Get category of selected node\r
- \r
- @return The category of selected node\r
- \r
- **/\r
- public int getSelectCategory() {\r
- int intCategory = 0;\r
- TreePath path = this.getSelectionPath();\r
- IDefaultMutableTreeNode node = (IDefaultMutableTreeNode) path.getLastPathComponent();\r
- intCategory = node.getCategory();\r
- return intCategory;\r
- }\r
-\r
- /**\r
- Add input node as child node for current selected node\r
- \r
- @param strNewNode The name of the node which need be added\r
- \r
- **/\r
- public void addNode(String strNewNode) {\r
- DefaultMutableTreeNode parentNode = null;\r
- DefaultMutableTreeNode newNode = new DefaultMutableTreeNode(strNewNode);\r
- newNode.setAllowsChildren(true);\r
- TreePath parentPath = this.getSelectionPath();\r
-\r
- /**\r
- * Get parent node of new node\r
- */\r
- parentNode = (DefaultMutableTreeNode) (parentPath.getLastPathComponent());\r
-\r
- /**\r
- * Insert new node\r
- */\r
- treeModel.insertNodeInto(newNode, parentNode, parentNode.getChildCount());\r
- this.scrollPathToVisible(new TreePath(newNode.getPath()));\r
- }\r
-\r
- /**\r
- Add input node as child node for current selected node\r
- \r
- @param newNode The node need be added\r
- \r
- **/\r
- public void addNode(IDefaultMutableTreeNode newNode) {\r
- IDefaultMutableTreeNode parentNode = null;\r
- newNode.setAllowsChildren(true);\r
- TreePath parentPath = this.getSelectionPath();\r
- parentNode = (IDefaultMutableTreeNode) (parentPath.getLastPathComponent());\r
- treeModel.insertNodeInto(newNode, parentNode, parentNode.getChildCount());\r
- this.scrollPathToVisible(new TreePath(newNode.getPath()));\r
- }\r
-\r
- /**\r
- Add input node as child node for current selected node\r
- \r
- @param newNode The node need be added\r
- \r
- **/\r
- public void addNode(IDefaultMutableTreeNode parentNode, IDefaultMutableTreeNode newNode) {\r
- treeModel.insertNodeInto(newNode, parentNode, parentNode.getChildCount());\r
- this.scrollPathToVisible(new TreePath(newNode.getPath()));\r
- }\r
-\r
- /**\r
- Remove the selected node\r
- \r
- @param strRemovedNode\r
- \r
- **/\r
- public void removeSelectedNode() {\r
- TreePath treePath = this.getSelectionPath();\r
- removeNodeByPath(treePath);\r
- }\r
-\r
- /**\r
- Remove the node by tree path\r
- \r
- @param strRemovedNode\r
- \r
- **/\r
- public void removeNodeByPath(TreePath treePath) {\r
- if (treePath != null) {\r
- DefaultMutableTreeNode selectionNode = (DefaultMutableTreeNode) treePath.getLastPathComponent();\r
- TreeNode parent = (TreeNode) selectionNode.getParent();\r
- if (parent != null) {\r
- treeModel.removeNodeFromParent(selectionNode);\r
- }\r
- }\r
- }\r
- \r
- /**\r
- Return a node by input tree path\r
- \r
- @param treePath\r
- @return\r
- \r
- **/\r
- public IDefaultMutableTreeNode getNodeByPath(TreePath treePath) {\r
- if (treePath != null) {\r
- IDefaultMutableTreeNode selectionNode = (IDefaultMutableTreeNode) treePath.getLastPathComponent();\r
- return selectionNode;\r
- }\r
- return null;\r
- }\r
-\r
- /**\r
- Remove all child nodes under current node\r
- \r
- **/\r
- public void removeNodeChildrenByPath(TreePath treePath) {\r
- if (treePath != null) {\r
- DefaultMutableTreeNode currentNode = (DefaultMutableTreeNode) treePath.getLastPathComponent();\r
- for (int index = currentNode.getChildCount() - 1; index > -1; index--) {\r
- treeModel.removeNodeFromParent((DefaultMutableTreeNode) currentNode.getChildAt(index));\r
- }\r
- }\r
- }\r
-\r
- /**\r
- Remove all nodes of the tree\r
- \r
- **/\r
- public void removeAllNode() {\r
- DefaultMutableTreeNode rootNode = (DefaultMutableTreeNode) treeModel.getRoot();\r
- rootNode.removeAllChildren();\r
- treeModel.reload();\r
- }\r
-\r
- public IDefaultMutableTreeNode getSelectNode() {\r
- TreePath treepath = this.getSelectionPath();\r
- IDefaultMutableTreeNode selectionNode = null;\r
- if (treepath != null) {\r
- selectionNode = (IDefaultMutableTreeNode) treepath.getLastPathComponent();\r
- }\r
- return selectionNode;\r
- }\r
-\r
- public IDefaultMutableTreeNode getNodeById(IDefaultMutableTreeNode node, Identification id) {\r
- for (int index = 0; index < node.getChildCount(); index++) {\r
- IDefaultMutableTreeNode iNode = (IDefaultMutableTreeNode) node.getChildAt(index);\r
- if (iNode.getId().equals(id)) {\r
- return iNode;\r
- }\r
- }\r
- return null;\r
- }\r
-\r
- public IDefaultMutableTreeNode getNodeById(IDefaultMutableTreeNode node, Identification id, int category) {\r
- for (int index = 0; index < node.getChildCount(); index++) {\r
- IDefaultMutableTreeNode iNode = (IDefaultMutableTreeNode) node.getChildAt(index);\r
- if (iNode.getId().equals(id) && iNode.getCategory() == category) {\r
- return iNode;\r
- }\r
- IDefaultMutableTreeNode childNode = getNodeById(iNode, id, category);\r
- if (childNode != null) {\r
- return childNode;\r
- }\r
- }\r
- return null;\r
- }\r
-\r
- public TreePath getPathOfNode(IDefaultMutableTreeNode node) {\r
- if (node != null) {\r
- TreePath treePath = new TreePath(treeModel.getPathToRoot(node));\r
- return treePath;\r
- }\r
- return null;\r
- }\r
-}\r