ucot.ui.gui.tree.analyzemodeltree
Class AnalyzeTreeModel

java.lang.Object
  extended by ucot.ui.gui.tree.analyzemodeltree.AnalyzeTreeModel
All Implemented Interfaces:
java.util.Observer, javax.swing.tree.TreeModel

public class AnalyzeTreeModel
extends java.lang.Object
implements javax.swing.tree.TreeModel, java.util.Observer

This is the TreeModel for JTree representing the AnalyzeModel. It is able to listen the Udation messages coming from the AnalyzeModel and its ask the tree to update itself when the model is updated.

This tree and the TreeItem classes it uses are actually a adapter for the analyze model because the TreeItems are created dynamically based on the status of the actual model.

Known problems

Because of the dynamic nature of this tree there are problems informing the actual tree about the modifications and currently the tree is invaliated completely after every minor change. Modify Update(Observer,Object)-method to to fix this.

Author:
pajumasu
See Also:
AnalyzeModel, JTree, TreeModel, TreeItem

Field Summary
(package private)  java.util.Set<javax.swing.event.TreeModelListener> listeners
           
(package private)  AnalyzeModel model
           
private  GraphicalUI owner
           
(package private)  TreeItem root
           
 
Constructor Summary
AnalyzeTreeModel(GraphicalUI owner)
           Creates the object.
 
Method Summary
 void addTreeModelListener(javax.swing.event.TreeModelListener l)
           
 AnalyzeModel getAnalyzeModel()
          Returns the analyze model which this item models.
 java.lang.Object getChild(java.lang.Object parent, int index)
           
 int getChildCount(java.lang.Object parent)
           
 int getIndexOfChild(java.lang.Object parent, java.lang.Object child)
           
 java.lang.Object getRoot()
           
 boolean isLeaf(java.lang.Object node)
           
 void removeTreeModelListener(javax.swing.event.TreeModelListener l)
           
protected  void sendTreeNodesChanged(javax.swing.event.TreeModelEvent event)
          Sends treeNodesChanged event to all TreeModelListeners listening this object.
protected  void sendTreeNodesInserted(javax.swing.event.TreeModelEvent event)
          Sends treeNodesInserted event to all TreeModelListeners listening this object.
protected  void sendTreeNodesRemoved(javax.swing.event.TreeModelEvent event)
          Sends treeNodesRemoved event to all TreeModelListeners listening this object.
protected  void sendTreeStructureChanged(javax.swing.event.TreeModelEvent event)
          Sends treeStructureChanged event to all TreeModelListeners listening this object.
 void update(java.util.Observable o, java.lang.Object arg)
           
 void updateAnalyzeModel()
           Updates the AnalyzeModel from the Core component.
 void valueForPathChanged(javax.swing.tree.TreePath path, java.lang.Object newValue)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

owner

private GraphicalUI owner

model

AnalyzeModel model

listeners

java.util.Set<javax.swing.event.TreeModelListener> listeners

root

TreeItem root
Constructor Detail

AnalyzeTreeModel

public AnalyzeTreeModel(GraphicalUI owner)

Creates the object.

Parameters:
owner - The owner of this component.
Method Detail

update

public void update(java.util.Observable o,
                   java.lang.Object arg)
Specified by:
update in interface java.util.Observer

getAnalyzeModel

public AnalyzeModel getAnalyzeModel()
Returns the analyze model which this item models.

Returns:
the analyze model which this item models.

updateAnalyzeModel

public void updateAnalyzeModel()

Updates the AnalyzeModel from the Core component. This should be called if the AnalyzeModel in the Core is changed to other object.


getRoot

public java.lang.Object getRoot()
Specified by:
getRoot in interface javax.swing.tree.TreeModel

getChild

public java.lang.Object getChild(java.lang.Object parent,
                                 int index)
Specified by:
getChild in interface javax.swing.tree.TreeModel

getChildCount

public int getChildCount(java.lang.Object parent)
Specified by:
getChildCount in interface javax.swing.tree.TreeModel

isLeaf

public boolean isLeaf(java.lang.Object node)
Specified by:
isLeaf in interface javax.swing.tree.TreeModel

valueForPathChanged

public void valueForPathChanged(javax.swing.tree.TreePath path,
                                java.lang.Object newValue)
Specified by:
valueForPathChanged in interface javax.swing.tree.TreeModel

getIndexOfChild

public int getIndexOfChild(java.lang.Object parent,
                           java.lang.Object child)
Specified by:
getIndexOfChild in interface javax.swing.tree.TreeModel

addTreeModelListener

public void addTreeModelListener(javax.swing.event.TreeModelListener l)
Specified by:
addTreeModelListener in interface javax.swing.tree.TreeModel

removeTreeModelListener

public void removeTreeModelListener(javax.swing.event.TreeModelListener l)
Specified by:
removeTreeModelListener in interface javax.swing.tree.TreeModel

sendTreeNodesChanged

protected void sendTreeNodesChanged(javax.swing.event.TreeModelEvent event)

Sends treeNodesChanged event to all TreeModelListeners listening this object.

Parameters:
event - The actual event to be sended.
See Also:
TreeModelListener.treeNodesChanged(javax.swing.event.TreeModelEvent)

sendTreeNodesInserted

protected void sendTreeNodesInserted(javax.swing.event.TreeModelEvent event)

Sends treeNodesInserted event to all TreeModelListeners listening this object.

Parameters:
event - The actual event to be sended.
See Also:
TreeModelListener.treeNodesInserted(javax.swing.event.TreeModelEvent)

sendTreeNodesRemoved

protected void sendTreeNodesRemoved(javax.swing.event.TreeModelEvent event)

Sends treeNodesRemoved event to all TreeModelListeners listening this object.

Parameters:
event - The actual event to be sended.
See Also:
TreeModelListener.treeNodesRemoved(javax.swing.event.TreeModelEvent)

sendTreeStructureChanged

protected void sendTreeStructureChanged(javax.swing.event.TreeModelEvent event)

Sends treeStructureChanged event to all TreeModelListeners listening this object.

Parameters:
event - The actual event to be sended.
See Also:
TreeModelListener.treeStructureChanged(javax.swing.event.TreeModelEvent)