Package jadex.base.gui
Class ObjectTreeModel
- java.lang.Object
-
- jadex.base.gui.ObjectTreeModel
-
- All Implemented Interfaces:
javax.swing.tree.TreeModel
public class ObjectTreeModel extends java.lang.Object implements javax.swing.tree.TreeModel
Tree model for inspecting objects.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description class
ObjectTreeModel.ObjectInspectorNode
TreeModel node for java object inspectionstatic class
ObjectTreeModel.ObjectTreeCellRenderer
OAV tree cell renderer displays right icons.
-
Field Summary
Fields Modifier and Type Field Description protected static boolean
enableObjectInspection
flag to indicate if java objects should be inspectable in the tree TO DO: make configurable via GUI?protected static javax.swing.UIDefaults
icons
The image icons.protected java.util.List
inspectors
list for all created Attribute inspector nodesprotected java.util.Set
listeners
The listeners.protected boolean
notify
The pending notification flag.protected ObjectTreeModel.ObjectInspectorNode
root
The root node.protected int
uuidcounter
UUID counter
-
Constructor Summary
Constructors Constructor Description ObjectTreeModel(java.lang.Object root)
Create new OAV tree model.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addTreeModelListener(javax.swing.event.TreeModelListener l)
Add a listener to the model.protected void
fireTreeStructureChanged(java.lang.Object[] treePath)
Regenerate subtree if a node was replacedjava.lang.Object
getChild(java.lang.Object parent, int index)
Get the given child of a node.int
getChildCount(java.lang.Object parent)
Get the number of children of the given node.protected int
getIndexForChild(java.util.List children, java.lang.Object child)
Get the index for a child in children list, beginning with index=0protected int
getIndexForChild(java.util.List children, java.lang.Object child, int start)
Returns the FIRST occurrence of child in given children list.int
getIndexOfChild(java.lang.Object parent, java.lang.Object child)
Get the index of a given child.protected int
getNextNodeUUID()
Generate a unique id for ObjectNode'sjava.lang.Object
getRoot()
Get the root node of the tree.protected static boolean
isInspectable(java.lang.Class clazz, boolean inspectObjectClass)
Decide if java object should be inspectable.protected static boolean
isInspectable(java.lang.Object obj)
Decide if java object should be inspectable.boolean
isLeaf(java.lang.Object node)
Check if a node is a leaf node.protected void
refreshInspectorNodes()
Refresh all displayed attributesvoid
removeTreeModelListener(javax.swing.event.TreeModelListener l)
Remove a listener from the model.protected boolean
testInspectorNodesListEquals(java.util.List l1, java.util.List l2)
Tests if two lists of Inspector nodes (e.g.void
valueForPathChanged(javax.swing.tree.TreePath path, java.lang.Object newValue)
Called by user changes (when the tree is editable).
-
-
-
Field Detail
-
enableObjectInspection
protected static final boolean enableObjectInspection
flag to indicate if java objects should be inspectable in the tree TO DO: make configurable via GUI?- See Also:
- Constant Field Values
-
icons
protected static final javax.swing.UIDefaults icons
The image icons.
-
root
protected ObjectTreeModel.ObjectInspectorNode root
The root node.
-
listeners
protected java.util.Set listeners
The listeners.
-
notify
protected boolean notify
The pending notification flag.
-
inspectors
protected java.util.List inspectors
list for all created Attribute inspector nodes
-
uuidcounter
protected int uuidcounter
UUID counter
-
-
Method Detail
-
getRoot
public java.lang.Object getRoot()
Get the root node of the tree.- Specified by:
getRoot
in interfacejavax.swing.tree.TreeModel
-
getChildCount
public int getChildCount(java.lang.Object parent)
Get the number of children of the given node.- Specified by:
getChildCount
in interfacejavax.swing.tree.TreeModel
-
getChild
public java.lang.Object getChild(java.lang.Object parent, int index)
Get the given child of a node.- Specified by:
getChild
in interfacejavax.swing.tree.TreeModel
-
getIndexOfChild
public int getIndexOfChild(java.lang.Object parent, java.lang.Object child)
Get the index of a given child.- Specified by:
getIndexOfChild
in interfacejavax.swing.tree.TreeModel
-
isLeaf
public boolean isLeaf(java.lang.Object node)
Check if a node is a leaf node.- Specified by:
isLeaf
in interfacejavax.swing.tree.TreeModel
-
addTreeModelListener
public void addTreeModelListener(javax.swing.event.TreeModelListener l)
Add a listener to the model.- Specified by:
addTreeModelListener
in interfacejavax.swing.tree.TreeModel
-
removeTreeModelListener
public void removeTreeModelListener(javax.swing.event.TreeModelListener l)
Remove a listener from the model.- Specified by:
removeTreeModelListener
in interfacejavax.swing.tree.TreeModel
-
valueForPathChanged
public void valueForPathChanged(javax.swing.tree.TreePath path, java.lang.Object newValue)
Called by user changes (when the tree is editable).- Specified by:
valueForPathChanged
in interfacejavax.swing.tree.TreeModel
-
getNextNodeUUID
protected int getNextNodeUUID()
Generate a unique id for ObjectNode's- Returns:
- synchronized call to System.currentTimeMillis();
-
fireTreeStructureChanged
protected void fireTreeStructureChanged(java.lang.Object[] treePath)
Regenerate subtree if a node was replaced- Parameters:
treePath
- The Path to the node that was changed
-
testInspectorNodesListEquals
protected boolean testInspectorNodesListEquals(java.util.List l1, java.util.List l2)
Tests if two lists of Inspector nodes (e.g. children) are semantically equals- Parameters:
l1
- list to testl2
- list to test- Returns:
- true if the lists are the same or contains the semantically same objects in the same order
-
getIndexForChild
protected int getIndexForChild(java.util.List children, java.lang.Object child)
Get the index for a child in children list, beginning with index=0
-
getIndexForChild
protected int getIndexForChild(java.util.List children, java.lang.Object child, int start)
Returns the FIRST occurrence of child in given children list. Be sure to remove the child from the list or to save the index to find additional occurrences of the child in later searches.- Parameters:
children
- List to search for the child.child
- The child to search for.- Returns:
- the FIRST index for the child in the children list
-
refreshInspectorNodes
protected void refreshInspectorNodes()
Refresh all displayed attributes- Parameters:
oldRoot
-
-
isInspectable
protected static boolean isInspectable(java.lang.Object obj)
Decide if java object should be inspectable.
-
isInspectable
protected static boolean isInspectable(java.lang.Class clazz, boolean inspectObjectClass)
Decide if java object should be inspectable. This method test if clazz.isAssignableFrom([String|Number|Character|])
-
-