com.metamatrix.common.tree
Class RuledTreeViewImpl

java.lang.Object
  extended by com.metamatrix.common.tree.AbstractTreeView
      extended by com.metamatrix.common.tree.RuledTreeViewImpl
All Implemented Interfaces:
PropertiedObjectView, UserTransactionFactory, TreeView
Direct Known Subclasses:
RuledDirectoryEntryViewImpl

public class RuledTreeViewImpl
extends AbstractTreeView
implements TreeView


Constructor Summary
RuledTreeViewImpl(TreeView tree, ChildRules rules)
           
RuledTreeViewImpl(TreeView tree, TreeNode root, ChildRules rules)
           
 
Method Summary
 boolean allowsChild(TreeNode parent, TreeNode potentialChild)
          Determine whether the specified parent TreeNode may contain the specified child node.
 boolean allowsChildren(TreeNode entry)
          Determine whether the specified TreeNode may contain children.
 UserTransaction createReadTransaction()
          Create a new instance of a UserTransaction that may be used to read information.
 UserTransaction createWriteTransaction()
          Create a new instance of a UserTransaction that may be used to write and/or update information.
 UserTransaction createWriteTransaction(java.lang.Object source)
          Create a new instance of a UserTransaction that may be used to write and/or update information.
 java.util.List getChildren(TreeNode parent)
          Obtain the set of entries that are considered the children of the specified TreeNode.
protected  ChildRules getChildRules()
           
 TreeNode getHome()
          Obtain the TreeNode that represents the home for the underlying system.
 java.util.Set getMarked()
          Return the set of marked nodes for this view.
 TreeNode getParent(TreeNode node)
          Determine the parent TreeNode for the specified node, or null if the specified node is a root.
 java.lang.String getPath(TreeNode node)
          Obtain the abstract path for this TreeNode.
 PropertiedObjectEditor getPropertiedObjectEditor()
          Return the propertied object editor for this view.
 java.util.List getPropertyDefinitions()
          Get the definitions of the properties for the TreeNode instances returned from this view.
 java.util.List getRoots()
          Returns the single root of this Composite TreeNode system.
 java.lang.String getSeparator()
          Obtain the character (as a String) that is used to separate names in a path sequence for the abstract path.
 char getSeparatorChar()
          Obtain the character that is used to separate names in a path sequence for the abstract path.
 TreeNodeEditor getTreeNodeEditor()
          Return the tree node editor for this view.
protected  TreeView getTreeView()
           
protected  java.util.List getUnhiddenNodes(java.util.List nodes)
           
protected  java.util.Set getUnhiddenNodes(java.util.Set nodes)
           
 boolean isAncestorOf(TreeNode ancestor, TreeNode descendent)
          Determine whether the specified node is a descendent of the given ancestor node.
 boolean isHidden(TreeNode node)
          Determine whether the specified TreeNode is hidden.
 boolean isMarked(TreeNode node)
          Return the marked state of the specified node.
protected  boolean isNodeHidden(TreeNode node)
           
 boolean isParentOf(TreeNode parent, TreeNode child)
          Determine whether the specified node is a child of the given parent node.
 java.util.Iterator iterator()
          Obtain an iterator for this whole view, which navigates the view's nodes using pre-order rules (i.e., it visits a node before its children).
 java.util.Iterator iterator(TreeNode startingPoint)
          Obtain an iterator for the view starting at the specified node.
 void print(java.io.PrintStream stream)
           
 void setMarked(TreeNode node, boolean markedState)
          Set the marked state of the specified entry.
protected  void setViewRoots(java.util.List roots)
          Set the roots for this view.
 
Methods inherited from class com.metamatrix.common.tree.AbstractTreeView
getComparator, getFilter, isRoot, setComparator, setFilter
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface com.metamatrix.common.tree.TreeView
getComparator, getFilter, isRoot, setComparator, setFilter
 

Constructor Detail

RuledTreeViewImpl

public RuledTreeViewImpl(TreeView tree,
                         ChildRules rules)

RuledTreeViewImpl

public RuledTreeViewImpl(TreeView tree,
                         TreeNode root,
                         ChildRules rules)
Method Detail

getTreeView

protected TreeView getTreeView()

getPropertiedObjectEditor

public PropertiedObjectEditor getPropertiedObjectEditor()
Return the propertied object editor for this view.

Specified by:
getPropertiedObjectEditor in interface PropertiedObjectView
Specified by:
getPropertiedObjectEditor in class AbstractTreeView
Returns:
the PropertiedObjectEditor instance

getPropertyDefinitions

public java.util.List getPropertyDefinitions()
Get the definitions of the properties for the TreeNode instances returned from this view.

Specified by:
getPropertyDefinitions in interface TreeView
Specified by:
getPropertyDefinitions in class AbstractTreeView
Returns:
the unmodifiable list of PropertyDefinition instances; never null

getRoots

public java.util.List getRoots()
Returns the single root of this Composite TreeNode system.

Specified by:
getRoots in interface TreeView
Specified by:
getRoots in class AbstractTreeView
Returns:
the unmodifiable list of TreeNode instances that represent the root of this view.

setViewRoots

protected void setViewRoots(java.util.List roots)
Set the roots for this view.

Parameters:
roots - the roots for the view; if null, the view will use the same roots as the view's original tree (model)

getUnhiddenNodes

protected java.util.List getUnhiddenNodes(java.util.List nodes)

getUnhiddenNodes

protected java.util.Set getUnhiddenNodes(java.util.Set nodes)

isHidden

public boolean isHidden(TreeNode node)
Determine whether the specified TreeNode is hidden.

Specified by:
isHidden in interface TreeView
Specified by:
isHidden in class AbstractTreeView
Parameters:
node - the TreeNode instance that is to be checked; may not be null
Returns:
true if the node is hidden, or false otherwise.

isNodeHidden

protected boolean isNodeHidden(TreeNode node)

isMarked

public boolean isMarked(TreeNode node)
Return the marked state of the specified node.

Specified by:
isMarked in interface TreeView
Specified by:
isMarked in class AbstractTreeView
Returns:
the marked state of the node.

setMarked

public void setMarked(TreeNode node,
                      boolean markedState)
Set the marked state of the specified entry.

Specified by:
setMarked in interface TreeView
Parameters:
true - if the node is to be marked, or false if it is to be un-marked.

getMarked

public java.util.Set getMarked()
Return the set of marked nodes for this view.

Specified by:
getMarked in interface TreeView
Parameters:
the - unmodifiable set of marked nodes; never null

getHome

public TreeNode getHome()
Obtain the TreeNode that represents the home for the underlying system. which for a MetadataTreeView is the same as the root of the view.

Specified by:
getHome in interface TreeView
Specified by:
getHome in class AbstractTreeView
Returns:
the node that represents the home, or null if no home concept is supported.

getPath

public java.lang.String getPath(TreeNode node)
Obtain the abstract path for this TreeNode.

Specified by:
getPath in interface TreeView
Specified by:
getPath in class AbstractTreeView
Returns:
the string that represents the abstract path of this node; never null

getSeparatorChar

public char getSeparatorChar()
Obtain the character that is used to separate names in a path sequence for the abstract path. This character is completely dependent upon the implementation.

Specified by:
getSeparatorChar in interface TreeView
Specified by:
getSeparatorChar in class AbstractTreeView
Returns:
the charater used to delimit names in the abstract path.

getSeparator

public java.lang.String getSeparator()
Obtain the character (as a String) that is used to separate names in a path sequence for the abstract path.

Specified by:
getSeparator in interface TreeView
Specified by:
getSeparator in class AbstractTreeView
Returns:
the string containing the charater used to delimit names in the abstract path; never null

getParent

public TreeNode getParent(TreeNode node)
Determine the parent TreeNode for the specified node, or null if the specified node is a root.

Specified by:
getParent in interface TreeView
Specified by:
getParent in class AbstractTreeView
Parameters:
node - the TreeNode instance for which the parent is to be obtained; may not be null
Returns:
the parent node, or null if there is no parent

allowsChildren

public boolean allowsChildren(TreeNode entry)
Determine whether the specified TreeNode may contain children.

Specified by:
allowsChildren in interface TreeView
Parameters:
entry - the TreeNode instance that is to be checked; may not be null
Returns:
true if the entry can contain children, or false otherwise.

allowsChild

public boolean allowsChild(TreeNode parent,
                           TreeNode potentialChild)
Determine whether the specified parent TreeNode may contain the specified child node.

Specified by:
allowsChild in interface TreeView
Parameters:
parent - the TreeNode instance that is to be the parent; may not be null
potentialChild - the TreeNode instance that is to be the child; may not be null
Returns:
true if potentialChild can be placed as a child of parent, or false otherwise.

getChildren

public java.util.List getChildren(TreeNode parent)
Obtain the set of entries that are considered the children of the specified TreeNode.

Specified by:
getChildren in interface TreeView
Specified by:
getChildren in class AbstractTreeView
Parameters:
parent - the TreeNode instance for which the child entries are to be obtained; may not be null
Returns:
the unmodifiable list of TreeNode instances that are considered the children of the specified node; never null but possibly empty

isParentOf

public boolean isParentOf(TreeNode parent,
                          TreeNode child)
Determine whether the specified node is a child of the given parent node.

Specified by:
isParentOf in interface TreeView
Specified by:
isParentOf in class AbstractTreeView
Returns:
true if the node is a child of the given parent node.

isAncestorOf

public boolean isAncestorOf(TreeNode ancestor,
                            TreeNode descendent)
Determine whether the specified node is a descendent of the given ancestor node.

Specified by:
isAncestorOf in interface TreeView
Specified by:
isAncestorOf in class AbstractTreeView
Returns:
true if the node is a descendent of the given ancestor node.

getTreeNodeEditor

public TreeNodeEditor getTreeNodeEditor()
Return the tree node editor for this view.

Specified by:
getTreeNodeEditor in interface TreeView
Specified by:
getTreeNodeEditor in class AbstractTreeView
Returns:
the TreeNodeEditor instance

createReadTransaction

public UserTransaction createReadTransaction()
Create a new instance of a UserTransaction that may be used to read information. Read transactions do not have a source object associated with them (since they never directly modify data).

Specified by:
createReadTransaction in interface UserTransactionFactory
Specified by:
createReadTransaction in class AbstractTreeView
Returns:
the new transaction object

createWriteTransaction

public UserTransaction createWriteTransaction()
Create a new instance of a UserTransaction that may be used to write and/or update information. The transaction will not have a source object associated with it.

Specified by:
createWriteTransaction in interface UserTransactionFactory
Specified by:
createWriteTransaction in class AbstractTreeView
Returns:
the new transaction object

createWriteTransaction

public UserTransaction createWriteTransaction(java.lang.Object source)
Create a new instance of a UserTransaction that may be used to write and/or update information. The source object will be used for all events that are fired as a result of or as a product of this transaction.

Specified by:
createWriteTransaction in interface UserTransactionFactory
Specified by:
createWriteTransaction in class AbstractTreeView
Parameters:
source - the object that is considered to be the source of the transaction; may be null
Returns:
the new transaction object

iterator

public java.util.Iterator iterator()
Obtain an iterator for this whole view, which navigates the view's nodes using pre-order rules (i.e., it visits a node before its children).

Specified by:
iterator in interface TreeView
Overrides:
iterator in class AbstractTreeView
Returns:
the view iterator

iterator

public java.util.Iterator iterator(TreeNode startingPoint)
Obtain an iterator for the view starting at the specified node. This implementation currently navigates the subtree using pre-order rules (i.e., it visits a node before its children).

Specified by:
iterator in interface TreeView
Overrides:
iterator in class AbstractTreeView
Parameters:
startingPoint - the root of the subtree over which the iterator is to navigate; may not be null
Returns:
the iterator that traverses the nodes in the subtree starting at the specified node; never null

getChildRules

protected ChildRules getChildRules()

print

public void print(java.io.PrintStream stream)


Copyright © 2009. All Rights Reserved.