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.TreeModelTree model for inspecting objects.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description classObjectTreeModel.ObjectInspectorNodeTreeModel node for java object inspectionstatic classObjectTreeModel.ObjectTreeCellRendererOAV tree cell renderer displays right icons.
-
Field Summary
Fields Modifier and Type Field Description protected static booleanenableObjectInspectionflag to indicate if java objects should be inspectable in the tree TO DO: make configurable via GUI?protected static javax.swing.UIDefaultsiconsThe image icons.protected java.util.Listinspectorslist for all created Attribute inspector nodesprotected java.util.SetlistenersThe listeners.protected booleannotifyThe pending notification flag.protected ObjectTreeModel.ObjectInspectorNoderootThe root node.protected intuuidcounterUUID 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 voidaddTreeModelListener(javax.swing.event.TreeModelListener l)Add a listener to the model.protected voidfireTreeStructureChanged(java.lang.Object[] treePath)Regenerate subtree if a node was replacedjava.lang.ObjectgetChild(java.lang.Object parent, int index)Get the given child of a node.intgetChildCount(java.lang.Object parent)Get the number of children of the given node.protected intgetIndexForChild(java.util.List children, java.lang.Object child)Get the index for a child in children list, beginning with index=0protected intgetIndexForChild(java.util.List children, java.lang.Object child, int start)Returns the FIRST occurrence of child in given children list.intgetIndexOfChild(java.lang.Object parent, java.lang.Object child)Get the index of a given child.protected intgetNextNodeUUID()Generate a unique id for ObjectNode'sjava.lang.ObjectgetRoot()Get the root node of the tree.protected static booleanisInspectable(java.lang.Class clazz, boolean inspectObjectClass)Decide if java object should be inspectable.protected static booleanisInspectable(java.lang.Object obj)Decide if java object should be inspectable.booleanisLeaf(java.lang.Object node)Check if a node is a leaf node.protected voidrefreshInspectorNodes()Refresh all displayed attributesvoidremoveTreeModelListener(javax.swing.event.TreeModelListener l)Remove a listener from the model.protected booleantestInspectorNodesListEquals(java.util.List l1, java.util.List l2)Tests if two lists of Inspector nodes (e.g. children) are semantically equalsvoidvalueForPathChanged(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:
getRootin interfacejavax.swing.tree.TreeModel
-
getChildCount
public int getChildCount(java.lang.Object parent)
Get the number of children of the given node.- Specified by:
getChildCountin 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:
getChildin 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:
getIndexOfChildin interfacejavax.swing.tree.TreeModel
-
isLeaf
public boolean isLeaf(java.lang.Object node)
Check if a node is a leaf node.- Specified by:
isLeafin interfacejavax.swing.tree.TreeModel
-
addTreeModelListener
public void addTreeModelListener(javax.swing.event.TreeModelListener l)
Add a listener to the model.- Specified by:
addTreeModelListenerin interfacejavax.swing.tree.TreeModel
-
removeTreeModelListener
public void removeTreeModelListener(javax.swing.event.TreeModelListener l)
Remove a listener from the model.- Specified by:
removeTreeModelListenerin 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:
valueForPathChangedin 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|])
-
-