ilog.ds.adapter
Class IlAbstractJTreeAdapter

java.lang.Object
  |
  +--ilog.ds.adapter.IlAbstractAdapter
        |
        +--ilog.ds.adapter.IlAbstractJTreeAdapter
All Implemented Interfaces:
BatchListener, DataSourceListener, EventListener, IlFreezableAdapter, TreeDSListener, TreeModelListener
Direct Known Subclasses:
IlDefaultJTreeAdapter

public abstract class IlAbstractJTreeAdapter
extends IlAbstractAdapter
implements TreeDSListener, TreeModelListener

This class adapts the events from the IlTreeDataSource to a Swing TreeModel. It does not implement how nodes are created or updated, that is, how the properties from the data source are mapped to the MutableTreeNode themselves. This class supports the mapping between the data source objects and the model objects. It stores the data source reference and delegates expansion or collapsing to the data source.

See Also:
IlTreeDataSource, MutableTreeNode, TreeModel

Field Summary
protected  boolean _collapseOnDemand
           
protected  Map _ds2model
           
protected  boolean _expandOnDemand
           
protected  Map _model2ds
           
protected  MutableTreeNode _root
           
protected  IlTreeDataSource _tds
           
protected  IlTreeDataSourceEditor _tdse
           
protected  TreeModel _tm
           
 
Fields inherited from class ilog.ds.adapter.IlAbstractAdapter
_dispatchListeners, _events, _frozenEvents, _inBatchedEvents, _inTransaction, _isFrozen, _syncStrategy
 
Constructor Summary
IlAbstractJTreeAdapter()
           
 
Method Summary
 void collapse(TreePath path)
           
protected abstract  MutableTreeNode createNode(Map properties, boolean allowsChildren)
          Method called to create a node in the tree model.
 void dataSourceChange(DataSourceEvent e)
          DataSourceListener implementation
protected  void dispatchBatchedEvent(EventObject event)
           
 void expand(TreePath path)
           
 boolean getCollapseOnDemand()
          Gets whether on-demand collapse is enabled.
 Object getDSItem(MutableTreeNode node)
           
 boolean getExpandOnDemand()
          Gets whether on-demand expansion is enabled.
 TreeModel getModel()
          Gets the TreeModel in use by this adapter.
 MutableTreeNode getMutableTreeNode(Object dsItem)
           
protected  Object getSynchronizationObject()
           
 IlTreeDataSource getTreeDataSource()
          Gets the IlTreeDataSource in use by this adapter.
 IlTreeDataSourceEditor getTreeDataSourceEditor()
          Gets the IlTreeDataSourceEditor in use by this adapter.
protected  void internalDataSourceChange(DataSourceEvent evt)
          Internal code called in the Swing event thread
protected abstract  void internalItemAdded(TreeItemEvent evt)
           
protected abstract  void internalItemRemoved(TreeItemEvent evt)
           
protected abstract  void internalItemUpdated(TreeItemEvent evt)
           
 void itemChange(TreeItemEvent e)
          TreeDSListener implementation
 void setCollapseOnDemand(boolean collapseOnDemand)
          Sets the on-demand collapse mechanism on or off.
 void setExpandOnDemand(boolean expandOnDemand)
          Sets the on-demand expansion mechanism on or off.
 void setModel(TreeModel tm)
          Sets the TreeModel to use
 void setTreeDataSource(IlTreeDataSource tds)
          Sets the IlTreeDataSource to use.
 void setTreeDataSourceEditor(IlTreeDataSourceEditor tdse)
          Sets the IlTreeDataSource to use.
 void treeNodesChanged(TreeModelEvent evt)
           
 void treeNodesInserted(TreeModelEvent e)
           
 void treeNodesRemoved(TreeModelEvent e)
           
 void treeStructureChanged(TreeModelEvent e)
           
protected abstract  void updateItem(Object item, MutableTreeNode node)
          Updates an item in the data source
protected abstract  void updateNode(MutableTreeNode node, Map properties)
          Method called to update a node in the tree model.
 
Methods inherited from class ilog.ds.adapter.IlAbstractAdapter
addDispatchListener, addDSEvent, clearDSEvents, dispatchBatchedEvents, endBatch, firePostDispatchBatchedEventsEvent, firePreDispatchBatchedEventsEvent, GetColor, getSynchronizationStrategy, isFrozen, isInBatchedEvents, isInTransaction, postDispatchBatchedEvents, preDispatchBatchedEvents, removeDispatchListener, setFrozen, setSynchronizationStrategy, startBatch
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

_root

protected MutableTreeNode _root

_model2ds

protected Map _model2ds

_ds2model

protected Map _ds2model

_tds

protected IlTreeDataSource _tds

_tdse

protected IlTreeDataSourceEditor _tdse

_tm

protected TreeModel _tm

_expandOnDemand

protected boolean _expandOnDemand

_collapseOnDemand

protected boolean _collapseOnDemand
Constructor Detail

IlAbstractJTreeAdapter

public IlAbstractJTreeAdapter()
Method Detail

getSynchronizationObject

protected Object getSynchronizationObject()
Description copied from class: IlAbstractAdapter
Gets the object to synchronize in the synchronization strategy used by this adapter.
Overrides:
getSynchronizationObject in class IlAbstractAdapter
Following copied from class: ilog.ds.adapter.IlAbstractAdapter
Returns:
this by default, the data model generally (in subsclasses)

getDSItem

public Object getDSItem(MutableTreeNode node)

getMutableTreeNode

public MutableTreeNode getMutableTreeNode(Object dsItem)

createNode

protected abstract MutableTreeNode createNode(Map properties,
                                              boolean allowsChildren)
Method called to create a node in the tree model.
Parameters:
properties - The properties from the data source
allowsChildren - Indicates whether the node can have children.
Returns:
the newly created TreeNode, corresponding to the parameters.

updateNode

protected abstract void updateNode(MutableTreeNode node,
                                   Map properties)
Method called to update a node in the tree model.
Parameters:
properties - The updated properties from the data source
node - the TreeNode to update

updateItem

protected abstract void updateItem(Object item,
                                   MutableTreeNode node)
Updates an item in the data source
Parameters:
item - The item to update in the data source
node - The corresponding TreeNode

setModel

public void setModel(TreeModel tm)
Sets the TreeModel to use

getModel

public TreeModel getModel()
Gets the TreeModel in use by this adapter.

getTreeDataSource

public IlTreeDataSource getTreeDataSource()
Gets the IlTreeDataSource in use by this adapter.

getTreeDataSourceEditor

public IlTreeDataSourceEditor getTreeDataSourceEditor()
Gets the IlTreeDataSourceEditor in use by this adapter.

setTreeDataSource

public void setTreeDataSource(IlTreeDataSource tds)
Sets the IlTreeDataSource to use.

setTreeDataSourceEditor

public void setTreeDataSourceEditor(IlTreeDataSourceEditor tdse)
Sets the IlTreeDataSource to use.

setExpandOnDemand

public void setExpandOnDemand(boolean expandOnDemand)
Sets the on-demand expansion mechanism on or off.

getExpandOnDemand

public boolean getExpandOnDemand()
Gets whether on-demand expansion is enabled.

setCollapseOnDemand

public void setCollapseOnDemand(boolean collapseOnDemand)
Sets the on-demand collapse mechanism on or off.

getCollapseOnDemand

public boolean getCollapseOnDemand()
Gets whether on-demand collapse is enabled.

dataSourceChange

public void dataSourceChange(DataSourceEvent e)
DataSourceListener implementation
Following copied from interface: ilog.ds.DataSourceListener
Parameters:
e - The event
See Also:
DataSourceEvent

itemChange

public void itemChange(TreeItemEvent e)
TreeDSListener implementation
Specified by:
itemChange in interface TreeDSListener
Following copied from interface: ilog.ds.TreeDSListener
Parameters:
e - The corresponding event
See Also:
TreeItemEvent

internalDataSourceChange

protected void internalDataSourceChange(DataSourceEvent evt)
Internal code called in the Swing event thread
Overrides:
internalDataSourceChange in class IlAbstractAdapter

internalItemAdded

protected abstract void internalItemAdded(TreeItemEvent evt)

internalItemUpdated

protected abstract void internalItemUpdated(TreeItemEvent evt)

internalItemRemoved

protected abstract void internalItemRemoved(TreeItemEvent evt)

dispatchBatchedEvent

protected void dispatchBatchedEvent(EventObject event)
Overrides:
dispatchBatchedEvent in class IlAbstractAdapter

collapse

public void collapse(TreePath path)

expand

public void expand(TreePath path)

treeNodesChanged

public void treeNodesChanged(TreeModelEvent evt)
Specified by:
treeNodesChanged in interface TreeModelListener

treeNodesInserted

public void treeNodesInserted(TreeModelEvent e)
Specified by:
treeNodesInserted in interface TreeModelListener

treeNodesRemoved

public void treeNodesRemoved(TreeModelEvent e)
Specified by:
treeNodesRemoved in interface TreeModelListener

treeStructureChanged

public void treeStructureChanged(TreeModelEvent e)
Specified by:
treeStructureChanged in interface TreeModelListener