Interface GraphModel

All Known Implementing Classes:
DefaultGraphModel

public interface GraphModel
The interface that defines a suitable data model for a JGraph.
  • Method Details

    • getRootCount

      int getRootCount()
      Returns the number of roots in the model. Returns 0 if the model is empty.
      Returns:
      the number of roots in the model
    • getRootAt

      Object getRootAt(int index)
      Returns the root at index index in the model. This should not return null if index is a valid index for the model (that is index >= 0 invalid input: '&'invalid input: '&' index invalid input: '<' getRootCount()).
      Returns:
      the root of at index index
    • getIndexOfRoot

      int getIndexOfRoot(Object root)
      Returns the index of root in the model. If root is null, returns -1.
      Parameters:
      root - a root in the model, obtained from this data source
      Returns:
      the index of the root in the model, or -1 if the parent is null
    • contains

      boolean contains(Object node)
      Returns true if node or one of its ancestors is in the model.
      Returns:
      true if node is in the model
    • getAttributes

      AttributeMap getAttributes(Object node)
      Returns a AttributeMap that represents the properties for the specified cell.
      Returns:
      properties of node as a Map
    • getValue

      Object getValue(Object node)
      Returns the user object for the specified cell.
      Returns:
      userobject of node
    • getSource

      Object getSource(Object edge)
      Returns the source of edge. edge must be an object previously obtained from this data source.
      Returns:
      Object that represents the source of edge
    • getTarget

      Object getTarget(Object edge)
      Returns the target of edge. edge must be an object previously obtained from this data source.
      Returns:
      Object that represents the target of edge
    • acceptsSource

      boolean acceptsSource(Object edge, Object port)
      Returns true if port is a valid source for edge. edge and port must be objects previously obtained from this data source.
      Returns:
      true if port is a valid source for edge.
    • acceptsTarget

      boolean acceptsTarget(Object edge, Object port)
      Returns true if port is a valid target for edge. edge and port must be objects previously obtained from this data source.
      Returns:
      true if port is a valid target for edge.
    • edges

      Iterator edges(Object port)
      Returns an iterator of the edges connected to port. port must be a object previously obtained from this data source. This method never returns null.
      Parameters:
      port - a port in the graph, obtained from this data source
      Returns:
      Iterator that represents the connected edges
    • isEdge

      boolean isEdge(Object edge)
      Returns true if edge is a valid edge.
      Returns:
      true if edge is a valid edge.
    • isPort

      boolean isPort(Object port)
      Returns true if port is a valid port, possibly supporting edge connection.
      Returns:
      true if port is a valid port.
    • getParent

      Object getParent(Object child)
      Returns the parent of child in the model. child must be a node previously obtained from this data source. This returns null if child is a root in the model.
      Parameters:
      child - a node in the graph, obtained from this data source
      Returns:
      the parent of child
    • getIndexOfChild

      int getIndexOfChild(Object parent, Object child)
      Returns the index of child in parent. If either the parent or child is null, returns -1.
      Parameters:
      parent - a note in the tree, obtained from this data source
      child - the node we are interested in
      Returns:
      the index of the child in the parent, or -1 if either the parent or the child is null
    • getChild

      Object getChild(Object parent, int index)
      Returns the child of parent at index index in the parent's child array. parent must be a node previously obtained from this data source. This should not return null if index is a valid index for parent (that is index >= 0 invalid input: '&'invalid input: '&' index invalid input: '<' getChildCount( parent )).
      Parameters:
      parent - a node in the tree, obtained from this data source
      Returns:
      the child of parent at index index
    • getChildCount

      int getChildCount(Object parent)
      Returns the number of children of parent . Returns 0 if the node is a leaf or if it has no children. parent must be a node previously obtained from this data source.
      Parameters:
      parent - a node in the tree, obtained from this data source
      Returns:
      the number of children of the node parent
    • isLeaf

      boolean isLeaf(Object node)
      Returns whether the specified node is a leaf node. The way the test is performed depends on the askAllowsChildren setting.
      Parameters:
      node - the node to check
      Returns:
      true if the node is a leaf node
    • insert

      void insert(Object[] roots, Map attributes, ConnectionSet cs, ParentMap pm, UndoableEdit[] e)
      Inserts the cells and connections into the model, and passes attributes to the views. Notifies the model- and undo listeners of the change.
    • remove

      void remove(Object[] roots)
      Removes cells from the model. Notifies the model- and undo listeners of the change.
    • edit

      void edit(Map attributes, ConnectionSet cs, ParentMap pm, UndoableEdit[] e)
      Applies the propertyMap and the connection changes to the model. The initial edits that triggered the call are considered to be part of this transaction. Notifies the model- and undo listeners of the change. Note: If only edits is non-null, the edits are directly passed to the UndoableEditListeners.
    • beginUpdate

      void beginUpdate()
      Indicates the start of one level of an executable change
    • endUpdate

      void endUpdate()
      Indicates the end of the current level of an executable change
    • execute

      void execute(ExecutableChange change)
      Executes the specified executable change on this graph model
      Parameters:
      change - the change to be executed
    • cloneCells

      Map cloneCells(Object[] cells)
      Returns a map of (cell, clone)-pairs for all cells and their children. Special care should be taken to replace references between cells.
    • valueForCellChanged

      Object valueForCellChanged(Object cell, Object newValue)
      Messaged when the value of the cell has changed, eg from within the edit method.
    • toBack

      void toBack(Object[] cells)
      Sends cells to back.
    • toFront

      void toFront(Object[] cells)
      Brings cells to front.
    • addGraphModelListener

      void addGraphModelListener(GraphModelListener l)
      Adds a listener for the GraphModelEvent posted after the model changes.
    • removeGraphModelListener

      void removeGraphModelListener(GraphModelListener l)
      Removes a listener previously added with addGraphModelListener() .
    • addUndoableEditListener

      void addUndoableEditListener(UndoableEditListener listener)
      Adds an undo listener for notification of any changes. Undo/Redo operations performed on the UndoableEdit will cause the appropriate ModelEvent to be fired to keep the view(s) in sync with the model.
    • removeUndoableEditListener

      void removeUndoableEditListener(UndoableEditListener listener)
      Removes an undo listener.