com.sas.dataselectors.filters
Class DefaultFilterLogicTree

com.sas.dataselectors.filters.DefaultFilterLogicTree
All Implemented Interfaces:
FilterLogicTreeInterface, java.io.Serializable, javax.swing.tree.TreeModel
Direct Known Subclasses:
SimpleFilterLogicTree

public class DefaultFilterLogicTree
implements FilterLogicTreeInterface, java.io.Serializable

The new filter logic tree class. This class will implement all the tree node manipulation functions for the "ideal" filter logic tree model.

See Also:
Serialized Form

Field Summary
static boolean DEBUG
           
protected  boolean markGroups
           
protected  boolean modifiable
           
protected  boolean modified
           
 
Constructor Summary
DefaultFilterLogicTree()
           
DefaultFilterLogicTree(FilterLogicBaseNodeInterface root)
           
DefaultFilterLogicTree(FilterLogicBaseNodeInterface root, boolean modifiable)
           
DefaultFilterLogicTree(FilterLogicBaseNodeInterface root, boolean modifiable, boolean standardize)
           
 
Method Summary
 boolean add(javax.swing.tree.TreeNode node)
           
protected  boolean applyAdd(javax.swing.tree.TreeNode node)
           
protected  boolean applyAnd(javax.swing.tree.TreeNode node, javax.swing.tree.TreeNode sibling)
           
protected  boolean applyDelete(javax.swing.tree.TreeNode node)
           
protected  boolean applyGroup(javax.swing.tree.TreeNode first, javax.swing.tree.TreeNode last, boolean explicitlyCreated)
           
protected  boolean applyMoveDown(javax.swing.tree.TreeNode node)
           
protected  boolean applyMoveUp(javax.swing.tree.TreeNode node)
           
protected  boolean applyNot(javax.swing.tree.TreeNode node)
           
protected  boolean applyOr(javax.swing.tree.TreeNode node, javax.swing.tree.TreeNode sibling)
           
protected  boolean applySplit(javax.swing.tree.TreeNode member)
           
 boolean canGroup(javax.swing.tree.TreeNode first, javax.swing.tree.TreeNode last)
           
 boolean canMoveDown(javax.swing.tree.TreeNode node)
           
 boolean canMoveDown(javax.swing.tree.TreeNode node, boolean includingParents)
           
 boolean canMoveUp(javax.swing.tree.TreeNode node)
           
 boolean canMoveUp(javax.swing.tree.TreeNode node, boolean includingParents)
           
 boolean canSplit(javax.swing.tree.TreeNode node)
           
 void clear()
           
 FilterLogicTreeInterface copy()
           
protected  void copyChildren(AbstractFilterLogicBaseNode parent)
           
protected  void destroy(javax.swing.tree.TreeNode node)
           
 ConditionalRelationType getConditionalRelationType(javax.swing.tree.TreeNode node, javax.swing.tree.TreeNode sibling)
           
protected  javax.swing.tree.MutableTreeNode getMutableTreeNode(javax.swing.tree.TreeNode node)
           
protected  javax.swing.tree.TreeNode getOuterMostGroupRoot(javax.swing.tree.TreeNode node)
           
 boolean getQueryStandardization()
           
 boolean group(javax.swing.tree.TreeNode first, javax.swing.tree.TreeNode last)
           
 void insertNodeInto(javax.swing.tree.MutableTreeNode newChild, javax.swing.tree.MutableTreeNode parent, int index)
           
protected  boolean isGrouped(javax.swing.tree.TreeNode node)
           
 boolean isModifiable()
          A flag specifying whether the tree can/should be modified.
 boolean isModified()
          A flag specifying whether the tree has been modified since it was last initialized.
 boolean isNegated(javax.swing.tree.TreeNode node)
          Determines whether a node has been negated.
 boolean moveDown(javax.swing.tree.TreeNode node)
           
 boolean moveUp(javax.swing.tree.TreeNode node)
           
 boolean negate(javax.swing.tree.TreeNode node)
           
static LogicalConditionNodeInterface newLogicalConditionNode(ConditionalRelationType lc)
           
static LogicalConditionNodeInterface newLogicalConditionNode(ConditionalRelationType lc, boolean explicitlyCreated)
           
static NotNodeInterface newNotNode()
           
 void printTree()
          Prints a text representation of the tree structure to standard out.
protected  FilterLogicBaseNodeInterface removeNode(FilterLogicBaseNodeInterface node)
          Removes the given node from the tree and optimizes the remaining tree structure to eliminate waste.
protected  void replaceNode(javax.swing.tree.TreeNode oldNode, javax.swing.tree.TreeNode node)
           
 void setModifiable(boolean modifiable)
           
 boolean setNegated(javax.swing.tree.TreeNode node, boolean value)
           
 void setQueryStandardization(boolean value)
           
 void setRoot(javax.swing.tree.TreeNode root)
          Sets the root node of this tree.
 boolean split(javax.swing.tree.TreeNode node)
           
 

Field Detail

DEBUG

public static final boolean DEBUG
See Also:
Constant Field Values

modifiable

protected boolean modifiable

modified

protected boolean modified

markGroups

protected boolean markGroups
Constructor Detail

DefaultFilterLogicTree

public DefaultFilterLogicTree()

DefaultFilterLogicTree

public DefaultFilterLogicTree(FilterLogicBaseNodeInterface root)

DefaultFilterLogicTree

public DefaultFilterLogicTree(FilterLogicBaseNodeInterface root,
                              boolean modifiable)

DefaultFilterLogicTree

public DefaultFilterLogicTree(FilterLogicBaseNodeInterface root,
                              boolean modifiable,
                              boolean standardize)
Method Detail

canSplit

public boolean canSplit(javax.swing.tree.TreeNode node)
Specified by:
canSplit in interface FilterLogicTreeInterface

canMoveUp

public boolean canMoveUp(javax.swing.tree.TreeNode node)
Specified by:
canMoveUp in interface FilterLogicTreeInterface

canMoveUp

public boolean canMoveUp(javax.swing.tree.TreeNode node,
                         boolean includingParents)

canMoveDown

public boolean canMoveDown(javax.swing.tree.TreeNode node)
Specified by:
canMoveDown in interface FilterLogicTreeInterface

canMoveDown

public boolean canMoveDown(javax.swing.tree.TreeNode node,
                           boolean includingParents)

isGrouped

protected boolean isGrouped(javax.swing.tree.TreeNode node)

getOuterMostGroupRoot

protected javax.swing.tree.TreeNode getOuterMostGroupRoot(javax.swing.tree.TreeNode node)

group

public boolean group(javax.swing.tree.TreeNode first,
                     javax.swing.tree.TreeNode last)
Specified by:
group in interface FilterLogicTreeInterface

split

public boolean split(javax.swing.tree.TreeNode node)
Specified by:
split in interface FilterLogicTreeInterface

moveUp

public boolean moveUp(javax.swing.tree.TreeNode node)
Specified by:
moveUp in interface FilterLogicTreeInterface

moveDown

public boolean moveDown(javax.swing.tree.TreeNode node)
Specified by:
moveDown in interface FilterLogicTreeInterface

negate

public boolean negate(javax.swing.tree.TreeNode node)

isModifiable

public boolean isModifiable()
Description copied from interface: FilterLogicTreeInterface
A flag specifying whether the tree can/should be modified.

Specified by:
isModifiable in interface FilterLogicTreeInterface
Returns:
Returns the modifiable.

isModified

public boolean isModified()
Description copied from interface: FilterLogicTreeInterface
A flag specifying whether the tree has been modified since it was last initialized. This flag does not distinguish between changes within a tree node and changes to the tree structure.

Specified by:
isModified in interface FilterLogicTreeInterface
Returns:
true if the tree has been modified, false otherwise. TODO decide if this is worthwhile or if we should rely on the consumer using a TreeModelListener to watch for changes?

clear

public void clear()
Specified by:
clear in interface FilterLogicTreeInterface

add

public boolean add(javax.swing.tree.TreeNode node)
Specified by:
add in interface FilterLogicTreeInterface

setNegated

public boolean setNegated(javax.swing.tree.TreeNode node,
                          boolean value)
Specified by:
setNegated in interface FilterLogicTreeInterface

isNegated

public boolean isNegated(javax.swing.tree.TreeNode node)
Description copied from interface: FilterLogicTreeInterface
Determines whether a node has been negated.

Specified by:
isNegated in interface FilterLogicTreeInterface
Parameters:
node - the node to examine
Returns:
true if the node is negated, false otherwise

setRoot

public void setRoot(javax.swing.tree.TreeNode root)
Sets the root node of this tree.

Overrides:
setRoot in class javax.swing.tree.DefaultTreeModel
Parameters:
root - the new root node - may be null or a valid logic tree node type
Throws:
java.lang.IllegalArgumentException - if the tree w/ the given root node contains any nodes that are not of valid types

insertNodeInto

public void insertNodeInto(javax.swing.tree.MutableTreeNode newChild,
                           javax.swing.tree.MutableTreeNode parent,
                           int index)
Overrides:
insertNodeInto in class javax.swing.tree.DefaultTreeModel

setModifiable

public void setModifiable(boolean modifiable)
Parameters:
modifiable - The modifiable to set.

getMutableTreeNode

protected javax.swing.tree.MutableTreeNode getMutableTreeNode(javax.swing.tree.TreeNode node)

destroy

protected void destroy(javax.swing.tree.TreeNode node)

newNotNode

public static NotNodeInterface newNotNode()

newLogicalConditionNode

public static LogicalConditionNodeInterface newLogicalConditionNode(ConditionalRelationType lc)

newLogicalConditionNode

public static LogicalConditionNodeInterface newLogicalConditionNode(ConditionalRelationType lc,
                                                                    boolean explicitlyCreated)

applyNot

protected boolean applyNot(javax.swing.tree.TreeNode node)
Parameters:
node - the test node or group root node to NOT/unNOT

applySplit

protected boolean applySplit(javax.swing.tree.TreeNode member)
Parameters:
node - the root node of the group to be split

applyMoveUp

protected boolean applyMoveUp(javax.swing.tree.TreeNode node)
Parameters:
node - the selected node to move

applyMoveDown

protected boolean applyMoveDown(javax.swing.tree.TreeNode node)
Parameters:
node - the selected node to move

applyDelete

protected boolean applyDelete(javax.swing.tree.TreeNode node)

applyAdd

protected boolean applyAdd(javax.swing.tree.TreeNode node)

applyGroup

protected boolean applyGroup(javax.swing.tree.TreeNode first,
                             javax.swing.tree.TreeNode last,
                             boolean explicitlyCreated)

canGroup

public boolean canGroup(javax.swing.tree.TreeNode first,
                        javax.swing.tree.TreeNode last)
Specified by:
canGroup in interface FilterLogicTreeInterface

applyAnd

protected boolean applyAnd(javax.swing.tree.TreeNode node,
                           javax.swing.tree.TreeNode sibling)

applyOr

protected boolean applyOr(javax.swing.tree.TreeNode node,
                          javax.swing.tree.TreeNode sibling)

printTree

public void printTree()
Prints a text representation of the tree structure to standard out.


replaceNode

protected void replaceNode(javax.swing.tree.TreeNode oldNode,
                           javax.swing.tree.TreeNode node)

removeNode

protected FilterLogicBaseNodeInterface removeNode(FilterLogicBaseNodeInterface node)
Removes the given node from the tree and optimizes the remaining tree structure to eliminate waste.

Parameters:
node - the node to remove
Returns:
the highest node in the tree removed as a result of this call

getConditionalRelationType

public ConditionalRelationType getConditionalRelationType(javax.swing.tree.TreeNode node,
                                                          javax.swing.tree.TreeNode sibling)

copy

public FilterLogicTreeInterface copy()
Specified by:
copy in interface FilterLogicTreeInterface

copyChildren

protected void copyChildren(AbstractFilterLogicBaseNode parent)

setQueryStandardization

public void setQueryStandardization(boolean value)
Parameters:
value -

getQueryStandardization

public boolean getQueryStandardization()



Copyright © 2009 SAS Institute Inc. All Rights Reserved.