Class DefaultGraphSelectionModel

java.lang.Object
org.jgraph.graph.DefaultGraphSelectionModel
All Implemented Interfaces:
Serializable, Cloneable, GraphSelectionModel
Direct Known Subclasses:
JGraph.EmptySelectionModel

public class DefaultGraphSelectionModel extends Object implements GraphSelectionModel, Cloneable, Serializable
Default implementation of GraphSelectionModel. Listeners are notified
See Also:
  • Field Details

    • SELECTION_MODE_PROPERTY

      public static final String SELECTION_MODE_PROPERTY
      Property name for selectionMode.
      See Also:
    • SELECTED

      public static final int SELECTED
      Value that represents selected state in cellStates.
      See Also:
    • UNSELECTED

      public static final Integer UNSELECTED
      Object value that represents the unselected state in cellStates.
    • graph

      protected JGraph graph
      Reference to the parent graph. Used to find parents and childs.
    • changeSupport

      protected SwingPropertyChangeSupport changeSupport
      Used to message registered listeners.
    • listenerList

      protected EventListenerList listenerList
      Event listener list.
    • selectionMode

      protected int selectionMode
      Mode for the selection, will be either SINGLE_TREE_SELECTION, CONTIGUOUS_TREE_SELECTION or DISCONTIGUOUS_TREE_SELECTION.
    • childrenSelectable

      protected boolean childrenSelectable
      Boolean that indicates if the model allows stepping-into groups.
    • cellStates

      protected Map cellStates
      Maps the cells to their selection state.
    • selection

      protected Set selection
      List that contains the selected items.
  • Constructor Details

    • DefaultGraphSelectionModel

      public DefaultGraphSelectionModel(JGraph graph)
      Constructs a DefaultGraphSelectionModel for the specified graph.
  • Method Details

    • setSelectionMode

      public void setSelectionMode(int mode)
      Sets the selection mode, which must be one of SINGLE_TREE_SELECTION,
      Specified by:
      setSelectionMode in interface GraphSelectionModel
    • getSelectionMode

      public int getSelectionMode()
      Returns the selection mode, one of SINGLE_TREE_SELECTION, DISCONTIGUOUS_TREE_SELECTION or CONTIGUOUS_TREE_SELECTION.
      Specified by:
      getSelectionMode in interface GraphSelectionModel
    • setChildrenSelectable

      public void setChildrenSelectable(boolean flag)
      Sets if the selection model allows the selection of children.
      Specified by:
      setChildrenSelectable in interface GraphSelectionModel
    • isChildrenSelectable

      public boolean isChildrenSelectable()
      Returns true if the selection model allows the selection of children.
      Specified by:
      isChildrenSelectable in interface GraphSelectionModel
    • isChildrenSelectable

      protected boolean isChildrenSelectable(Object cell)
      Hook for subclassers for fine-grained control over stepping-into cells. This implementation returns childrenSelectableinvalid input: '&'invalid input: '&' isCellSelected.
    • setSelectionCell

      public void setSelectionCell(Object cell)
      Selects the specified cell.
      Specified by:
      setSelectionCell in interface GraphSelectionModel
      Parameters:
      cell - the cell to select
    • setSelectionCells

      public void setSelectionCells(Object[] cells)
      Sets the selection to cells. If this represents a change the GraphSelectionListeners are notified. Potentially paths will be held by this object; in other words don't change any of the objects in the array once passed in.
      Specified by:
      setSelectionCells in interface GraphSelectionModel
      Parameters:
      cells - new selection
    • addSelectionCell

      public void addSelectionCell(Object cell)
      Adds the specified cell to the current selection
      Specified by:
      addSelectionCell in interface GraphSelectionModel
      Parameters:
      cell - the cell to add to the current selection
    • addSelectionCells

      public void addSelectionCells(Object[] cells)
      Adds cells to the current selection.
      Specified by:
      addSelectionCells in interface GraphSelectionModel
      Parameters:
      cells - the cells to be added to the current selection
    • removeSelectionCell

      public void removeSelectionCell(Object cell)
      Removes the specified cell from the selection.
      Specified by:
      removeSelectionCell in interface GraphSelectionModel
      Parameters:
      cell - the cell to remove from the current selection
    • removeSelectionCells

      public void removeSelectionCells(Object[] cells)
      Removes the specified cells from the selection.
      Specified by:
      removeSelectionCells in interface GraphSelectionModel
      Parameters:
      cells - the cells to remove from the current selection
    • getSelectables

      public Object[] getSelectables()
      Returns the cells that are currently selectable. The array is ordered so that the top-most cell appears first.
      Specified by:
      getSelectables in interface GraphSelectionModel
    • getSelectionCell

      public Object getSelectionCell()
      Returns the first cell in the selection. This is useful if there if only one item currently selected.
      Specified by:
      getSelectionCell in interface GraphSelectionModel
    • getSelectionCells

      public Object[] getSelectionCells()
      Returns the cells in the selection. This will return null (or an empty array) if nothing is currently selected.
      Specified by:
      getSelectionCells in interface GraphSelectionModel
    • getSelectionCount

      public int getSelectionCount()
      Returns the number of paths that are selected.
      Specified by:
      getSelectionCount in interface GraphSelectionModel
    • isCellSelected

      public boolean isCellSelected(Object cell)
      Returns true if the cell, cell, is in the current selection.
      Specified by:
      isCellSelected in interface GraphSelectionModel
    • isChildrenSelected

      public boolean isChildrenSelected(Object cell)
      Returns true if the cell, cell, has selected children.
      Specified by:
      isChildrenSelected in interface GraphSelectionModel
    • isSelectionEmpty

      public boolean isSelectionEmpty()
      Returns true if the selection is currently empty.
      Specified by:
      isSelectionEmpty in interface GraphSelectionModel
    • clearSelection

      public void clearSelection()
      Empties the current selection. If this represents a change in the current selection, the selection listeners are notified.
      Specified by:
      clearSelection in interface GraphSelectionModel
    • getSelectedChildCount

      protected int getSelectedChildCount(Object cell)
      Returns the number of selected childs for cell.
    • setSelectedChildCount

      protected void setSelectedChildCount(Object cell, int count)
      Sets the number of selected childs for cell to count.
    • select

      protected boolean select(Set set, Object cell)
      Selects a single cell and updates all datastructures. No listeners are notified. Override this method to control individual cell selection.
    • deselect

      protected boolean deselect(Object cell)
      Deselects a single cell and updates all datastructures. No listeners are notified.
    • addGraphSelectionListener

      public void addGraphSelectionListener(GraphSelectionListener x)
      Adds x to the list of listeners that are notified each time the set of selected TreePaths changes.
      Specified by:
      addGraphSelectionListener in interface GraphSelectionModel
      Parameters:
      x - the new listener to be added
    • removeGraphSelectionListener

      public void removeGraphSelectionListener(GraphSelectionListener x)
      Removes x from the list of listeners that are notified each time the set of selected TreePaths changes.
      Specified by:
      removeGraphSelectionListener in interface GraphSelectionModel
      Parameters:
      x - the listener to remove
    • fireValueChanged

      protected void fireValueChanged(GraphSelectionEvent e)
      Notifies all listeners that are registered for tree selection events on this object.
      See Also:
    • getListeners

      public EventListener[] getListeners(Class listenerType)
      Returns an array of all the listeners of the given type that were added to this model.
      Returns:
      all of the objects receiving listenerType notifications from this model
      Since:
      1.3
    • addPropertyChangeListener

      public void addPropertyChangeListener(PropertyChangeListener listener)
      Adds a PropertyChangeListener to the listener list. The listener is registered for all properties.

      A PropertyChangeEvent will get fired when the selection mode changes.

      Specified by:
      addPropertyChangeListener in interface GraphSelectionModel
      Parameters:
      listener - the PropertyChangeListener to be added
    • removePropertyChangeListener

      public void removePropertyChangeListener(PropertyChangeListener listener)
      Removes a PropertyChangeListener from the listener list. This removes a PropertyChangeListener that was registered for all properties.
      Specified by:
      removePropertyChangeListener in interface GraphSelectionModel
      Parameters:
      listener - the PropertyChangeListener to be removed
    • notifyCellChange

      protected void notifyCellChange(Vector changedCells)
      Notifies listeners of a change in path. changePaths should contain instances of PathPlaceHolder.
    • clone

      public Object clone() throws CloneNotSupportedException
      Returns a clone of this object with the same selection. This method does not duplicate selection listeners and property listeners.
      Overrides:
      clone in class Object
      Throws:
      CloneNotSupportedException - never thrown by instances of this class