diva.canvas.interactor
Class BasicSelectionModel

java.lang.Object
  extended by diva.canvas.interactor.BasicSelectionModel
All Implemented Interfaces:
SelectionModel

public class BasicSelectionModel
extends java.lang.Object
implements SelectionModel

A basic implementation of the SelectionModel interface. This model requires that each object in the selection be an instance of Figure. When each item is added to the selection, the model gets its interactor, and if it is an instance of SelectionInteractor, gets a selection renderer from the interactor and uses it to highlight the selected figures.

Version:
$Id: BasicSelectionModel.java 40092 2005-12-14 04:17:17Z cxh $
Author:
Michael Shilman

Field Summary
private  javax.swing.event.EventListenerList _listeners
          The list of event listeners.
private  int _mode
          The selection mode -- single or multiple selection
private  java.util.ArrayList _selection
          The current selection.
private  SelectionEvent _selEvent
          A graph selection event, reused for efficiency.
 
Fields inherited from interface diva.canvas.interactor.SelectionModel
MULTIPLE_SELECTION, SINGLE_SELECTION
 
Constructor Summary
BasicSelectionModel()
          Construct an empty selection.
 
Method Summary
 void addSelection(java.lang.Object sel)
          Add an object to the selection.
 void addSelectionListener(SelectionListener l)
          Add a selection listener to this model.
 void addSelections(java.lang.Object[] sels)
          Add an array of objects to the selection and highlight the selected objects.
 void clearSelection()
          Clear the selection.
 boolean containsSelection(java.lang.Object sel)
          Test if the selection contains the given object
 void dispatchSelectionEvent(SelectionEvent e)
          Dispatch a selection event to all registered listeners
 java.lang.Object getFirstSelection()
          Return the first selection in the list.
 java.lang.Object getLastSelection()
          Return the last selection in the list.
 java.util.Iterator getSelection()
          Return an iterator over the selected objects.
 java.lang.Object[] getSelectionAsArray()
          Return the contents of the selection as an array.
 int getSelectionCount()
          Return the number of selected objects.
 int getSelectionMode()
          Return the mode of the selection, either SINGLE_SELECTION or MULTIPLE_SELECTION.
 void removeSelection(java.lang.Object sel)
          Remove an object from the selection.
 void removeSelectionListener(SelectionListener l)
          Remove a listener from the list of listeners.
private  void renderDeselected(java.lang.Object o)
          Set the rendering of the object as deselected.
private  void renderSelected(java.lang.Object o)
          Set the rendering of the object as selected.
 void setSelectionMode(int mode)
          Set the selection mode, either SINGLE_SELECTION or MULTIPLE_SELECTION.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

_mode

private int _mode
The selection mode -- single or multiple selection


_listeners

private javax.swing.event.EventListenerList _listeners
The list of event listeners.


_selection

private java.util.ArrayList _selection
The current selection.


_selEvent

private SelectionEvent _selEvent
A graph selection event, reused for efficiency.

Constructor Detail

BasicSelectionModel

public BasicSelectionModel()
Construct an empty selection.

Method Detail

addSelectionListener

public void addSelectionListener(SelectionListener l)
Add a selection listener to this model.

Specified by:
addSelectionListener in interface SelectionModel

addSelection

public void addSelection(java.lang.Object sel)
Add an object to the selection. The model highlights the selection. If the given object is null, then it is not added to the selection, but if the selection model is a single selection, the current selection is cleared.

Specified by:
addSelection in interface SelectionModel

addSelections

public void addSelections(java.lang.Object[] sels)
Add an array of objects to the selection and highlight the selected objects.

Specified by:
addSelections in interface SelectionModel

clearSelection

public void clearSelection()
Clear the selection. The model should remove highlighting from the previously selected objects.

Specified by:
clearSelection in interface SelectionModel

containsSelection

public boolean containsSelection(java.lang.Object sel)
Test if the selection contains the given object

Specified by:
containsSelection in interface SelectionModel

dispatchSelectionEvent

public void dispatchSelectionEvent(SelectionEvent e)
Dispatch a selection event to all registered listeners


getFirstSelection

public java.lang.Object getFirstSelection()
Return the first selection in the list.

Specified by:
getFirstSelection in interface SelectionModel

getLastSelection

public java.lang.Object getLastSelection()
Return the last selection in the list.

Specified by:
getLastSelection in interface SelectionModel

getSelection

public java.util.Iterator getSelection()
Return an iterator over the selected objects.

Specified by:
getSelection in interface SelectionModel

getSelectionAsArray

public java.lang.Object[] getSelectionAsArray()
Return the contents of the selection as an array. This method is typically used by clients that need to pass the selection contents to another object that does not know about selection models, and which needs to traverse the selection contents multiple times.

Specified by:
getSelectionAsArray in interface SelectionModel

getSelectionCount

public int getSelectionCount()
Return the number of selected objects.

Specified by:
getSelectionCount in interface SelectionModel

getSelectionMode

public int getSelectionMode()
Return the mode of the selection, either SINGLE_SELECTION or MULTIPLE_SELECTION.

Specified by:
getSelectionMode in interface SelectionModel

removeSelection

public void removeSelection(java.lang.Object sel)
Remove an object from the selection.

Specified by:
removeSelection in interface SelectionModel

removeSelectionListener

public void removeSelectionListener(SelectionListener l)
Remove a listener from the list of listeners.

Specified by:
removeSelectionListener in interface SelectionModel

renderDeselected

private void renderDeselected(java.lang.Object o)
Set the rendering of the object as deselected. This works only if it is an instance of Figure, and it has a SelectionInteractor attached to it.


renderSelected

private void renderSelected(java.lang.Object o)
Set the rendering of the object as selected. This works only if it is an instance of Figure, and it has a SelectionInteractor.


setSelectionMode

public void setSelectionMode(int mode)
Set the selection mode, either SINGLE_SELECTION or MULTIPLE_SELECTION.

Specified by:
setSelectionMode in interface SelectionModel