Package org.jgraph

Class JGraph

  • All Implemented Interfaces:
    java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible, javax.swing.Scrollable

    public class JGraph
    extends javax.swing.JComponent
    implements javax.swing.Scrollable, javax.accessibility.Accessible, java.io.Serializable
    A control that displays a network of related objects using the well-known paradigm of a graph.

    A JGraph object doesn't actually contain your data; it simply provides a view of the data. Like any non-trivial Swing component, the graph gets data by querying its data model.

    JGraph displays its data by drawing individual elements. Each element displayed by the graph contains exactly one item of data, which is called a cell. A cell may either be a vertex or an edge. Vertices may have neighbours or not, and edges may have source and target vertices or not, depending on whether they are connected.

    Creating a Graph

    The following code creates a JGraph object:

    JGraph graph = new JGraph();
    ...
    JScrollPane graphLayoutCache = new JScrollPane(graph)

    The code creates an instance of JGraph and puts it in a scroll pane. JGraphs constructor is called with no arguments in this example, which causes the constructor to create a sample model.

    Editing

    Outmoved, cloned, resized, and shaped, or connected/disconnected to or from other cells.

    Keyboard Bindings

    JGraph defines the following set of keyboard bindings:

    • Alt-Click forces marquee selection if over a cell.
    • Shift- or Ctrl-Select extends or toggles the selection.
    • Shift-Drag constrains the offset to one direction.
    • Ctrl-Drag clones the selection.
    • Doubleclick/F2 starts editing a cell.
    You can change the number of clicks that triggers editing using setEditClickCount().

    Customization

    There are a number of additional methods that customize JGraph. For example, setMinimumMove() defines the minimum amount of pixels before a move operation is initiated. setSnapSize() defines the maximum distance for a cell to be selected. setFloatEnabled() enables/disables port floating.

    With setDisconnectOnMove() you can indicate if the selected subgraph should be disconnected from the unselected rest when a move operation is initiated. setDragEnabled() enables/disables the use of Drag And Drop, and setDropEnabled() sets if the graph accepts Drops from external sources.

    Customizing a graphs display

    JGraph performs some look-and-feel specific painting. You can customize this painting in a limited way. For example, you can modify the grid using setGridColor() and setGridSize(), and you can change the handle colors using setHandleColor() and setLockedHandleColor().

    If you want finer control over the rendering, you can subclass one of the default renderers, and extend its paint()-method. A renderer is a Component-extension that paints a cell based on its attributes. Thus, neither the JGraph nor its look-and-feel-specific implementation actually contain the code that paints the cell. Instead, the graph uses the cell renderers painting code.

    Selection

    Apart from the single-cell and marquee-selection, JGraphs selection model also allows to "step-into" groups, and select children. This feature can be disabled using the setAllowsChildSelection() method of the selection model instance.

    If you are interested in knowing when the selection changes implement the GraphSelectionListener interface and add the instance using the method addGraphSelectionListener. valueChanged will be invoked when the selection changes, that is if the user clicks twice on the same vertex valueChanged will only be invoked once.

    Change Notification

    For detection of double-clicks or when a user clicks on a cell, regardless of whether or not it was selected, I recommend you implement a MouseListener and use getFirstCellForLocation.

    Undo Support

    To enable Undo-Support, a GraphUndoManager must be added using addGraphSelectionListener. The GraphUndoManager is an extension of Swing's GraphUndoManager that maintains a command history in the context of multiple views. In this setup, a cell may have a set of attributes in each view attached to the model.

    For example, consider a position that is stored separately in each view. If a node is inserted, the change will be visible in all attached views, resulting in a new node that pops-up at the initial position. If the node is subsequently moved, say, in view1, this does not constitute a change in view2. If view2 does an "undo", the move and the insertion must be undone, whereas an "undo" in view1 will only undo the previous move operation.

    Like all JComponent classes, you can use InputMapand ActionMapto associate an Actionobject with a KeyStrokeand execute the action under specified conditions.

    See Also:
    Serialized Form
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static class  JGraph.EmptySelectionModel
      EmptySelectionModel is a GraphSelectionModel that does not allow anything to be selected.
      protected class  JGraph.GraphSelectionRedirector
      Handles creating a new GraphSelectionEvent with the JGraph as the source and passing it off to all the listeners.
      • Nested classes/interfaces inherited from class javax.swing.JComponent

        javax.swing.JComponent.AccessibleJComponent
      • Nested classes/interfaces inherited from class java.awt.Container

        java.awt.Container.AccessibleAWTContainer
      • Nested classes/interfaces inherited from class java.awt.Component

        java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected boolean antiAliased
      True if the graph is anti-aliased.
      static java.lang.String ANTIALIASED_PROPERTY
      Bound property name for antiAliased.
      protected boolean autoResizeGraph
      True if the graph should be auto resized when cells are moved below the bottom right corner.
      protected java.awt.Component backgroundComponent
      A Component responsible for drawing the background image, if any
      protected javax.swing.ImageIcon backgroundImage
      Holds the background image.
      protected boolean backgroundScaled
      Whether or not the background image is scaled on zooming
      protected boolean bendable
      True if the graph allows points to be modified/added/removed.
      protected boolean cloneable
      True if the graph allows "ctrl-drag" operations.
      protected boolean connectable
      True if the graph allows new connections to be established.
      static int CROSS_GRID_MODE  
      protected boolean disconnectable
      True if the graph allows existing connections to be removed.
      protected boolean disconnectOnMove
      True if selected edges are disconnected from unselected vertices on move.
      static int DOT_GRID_MODE  
      protected boolean dragEnabled
      True if Drag-and-Drop should be used for move operations.
      protected boolean dropEnabled
      True if the graph accepts transfers from other components (graphs).
      protected boolean edgeLabelsMovable
      True if the labels on edges may be moved.
      protected boolean editable
      True if the graph allows editing the value of a cell.
      static java.lang.String EDITABLE_PROPERTY
      Bound property name for editable.
      protected int editClickCount
      Number of clicks for editing to start.
      protected boolean enabled
      True if the graph allows interactions.
      static java.lang.String GRAPH_LAYOUT_CACHE_PROPERTY
      Bound property name for graphModel.
      static java.lang.String GRAPH_MODEL_PROPERTY
      Bound property name for graphModel.
      protected GraphLayoutCache graphLayoutCache
      The view that defines the display properties of the model.
      protected GraphModel graphModel
      The model that defines the graph displayed by this object.
      static java.lang.String GRID_COLOR_PROPERTY
      Bound property name for gridColor.
      static java.lang.String GRID_SIZE_PROPERTY
      Bound property name for gridSize.
      static java.lang.String GRID_VISIBLE_PROPERTY
      Bound property name for gridVisible.
      protected java.awt.Color gridColor
      The color of the grid.
      protected boolean gridEnabled
      True if the snap method should be active (snap to grid).
      protected int gridMode
      The style of the grid.
      protected double gridSize
      The size of the grid in points.
      protected boolean gridVisible
      True if the grid is visible.
      protected boolean groupsEditable
      True if the graph allows editing of non-leaf cells.
      static java.lang.String HANDLE_COLOR_PROPERTY
      Bound property name for gridColor.
      static java.lang.String HANDLE_SIZE_PROPERTY
      Bound property name for gridColor.
      protected java.awt.Color handleColor
      Color of the handles and locked handles.
      protected int handleSize
      Size of a handle.
      protected java.awt.Color highlightColor
      Highlight Color.
      static java.lang.String INVOKES_STOP_CELL_EDITING_PROPERTY
      Bound property name for messagesStopCellEditing.
      protected boolean invokesStopCellEditing
      If true, when editing is to be stopped by way of selection changing, data in graph changing or other means stopCellEditing is invoked, and changes are saved.
      static boolean IS_MAC  
      protected boolean isJumpToDefaultPort
      True if getPortViewAt should return the default port if no other port is found.
      protected boolean isMoveIntoGroups
      Specifies if cells should be added to a group when moved over the group's area.
      protected boolean isMoveOutOfGroups
      Specifies if cells should be removed from groups when removed from the group area.
      protected boolean lastBufferAllocated
      Stores whether the last double buffer allocation worked or not
      static int LINE_GRID_MODE  
      static java.lang.String LOCKED_HANDLE_COLOR_PROPERTY
      Bound property name for gridColor.
      protected java.awt.Color lockedHandleColor
      Color of the handles and locked handles.
      protected BasicMarqueeHandler marquee
      Handler for marquee selection.
      static java.lang.String MARQUEE_HANDLER_PROPERTY
      Bound property name for graphModel.
      protected java.awt.Color marqueeColor
      Color of the marquee.
      protected int minimumMove
      Minimum amount of pixels to start a move transaction.
      protected boolean moveable
      True if the graph allows move operations.
      protected boolean moveBelowZero
      True if the graph allows to move cells below zero.
      protected boolean moveBeyondGraphBounds
      True if the graph allows to move cells beyond the graph bounds
      protected java.awt.Graphics offgraphics
      Graphics object of off screen image
      protected java.awt.Image offscreen
      Off screen image for double buffering
      protected java.awt.geom.Rectangle2D offscreenBounds
      The bounds of the offscreen buffer
      protected int offscreenBuffer
      The buffer around the offscreen graphics object that provides the specified distance of scrolling before the buffer has to be redrawn.
      protected java.awt.geom.Rectangle2D offscreenDirty
      Whether or not the current background image is correct
      protected java.awt.geom.Point2D offscreenOffset
      The offset of the offscreen buffer
      static java.lang.String PORTS_SCALED_PROPERTY
      Bound property name for portsScaled.
      static java.lang.String PORTS_VISIBLE_PROPERTY
      Bound property name for gridVisible.
      protected boolean portsOnTop
      True if port are painted above all other cells.
      protected boolean portsScaled
      True if the ports are scaled.
      protected boolean portsVisible
      True if the ports are visible.
      protected boolean previewInvalidNullPorts
      True if the graph allows invalid null ports during previews (aka flip back edges).
      static java.lang.String PROPERTY_BACKGROUNDIMAGE
      Bound property name for backgroundImage.
      protected double scale
      Scale of the graph.
      static java.lang.String SCALE_PROPERTY
      Bound property name for scale.
      static java.lang.String SELECTION_MODEL_PROPERTY
      Bound property name for selectionModel.
      protected boolean selectionEnabled
      True if the graph allows selection of cells.
      static java.lang.String SELECTIONENABLED_PROPERTY
      Bound property name for selectionEnabled.
      protected GraphSelectionModel selectionModel
      Models the set of selected objects in this graph.
      protected JGraph.GraphSelectionRedirector selectionRedirector
      Creates a new event and passes it off the selectionListeners.
      protected boolean sizeable
      True if the graph allows cells to be resized.
      protected int tolerance
      Maximum distance between a cell and the mousepointer.
      static java.lang.String VERSION  
      protected boolean volatileOffscreen
      Whether or not to try to use a volatile offscreen buffer for double buffering.
      protected boolean xorEnabled
      True if the graph accepts transfers from other components (graphs).
      • Fields inherited from class javax.swing.JComponent

        listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
      • Fields inherited from class java.awt.Component

        accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
      • Fields inherited from interface java.awt.image.ImageObserver

        ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
    • Constructor Summary

      Constructors 
      Constructor Description
      JGraph()
      Returns a JGraph with a sample model.
      JGraph​(GraphLayoutCache cache)
      Returns an instance of JGraph which displays the data model using the specified view.
      JGraph​(GraphModel model)
      Returns an instance of JGraph which displays the the specified data model.
      JGraph​(GraphModel model, BasicMarqueeHandler mh)
      Returns an instance of JGraph which displays the specified data model and assigns the specified marquee handler
      JGraph​(GraphModel model, GraphLayoutCache cache)
      Returns an instance of JGraph which displays the specified data model using the specified view.
      JGraph​(GraphModel model, GraphLayoutCache layoutCache, BasicMarqueeHandler mh)
      Returns an instance of JGraph which displays the specified data model using the specified view and assigns the specified marquee handler
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void addGraphSelectionListener​(GraphSelectionListener tsl)
      Adds a listener for GraphSelection events.
      void addOffscreenDirty​(java.awt.geom.Rectangle2D offscreenDirty)  
      static void addSampleData​(GraphModel model)
      Creates and returns a sample GraphModel.
      void addSelectionCell​(java.lang.Object cell)
      Adds the cell identified by the specified Object to the current selection.
      void addSelectionCells​(java.lang.Object[] cells)
      Adds each cell in the array of cells to the current selection.
      void cancelEditing()
      Cancels the current editing session.
      void clearOffscreen()
      Invalidate the offscreen region, do not just delete it, since if the new region is smaller than the old you may not wish to re-create the buffer
      void clearOffscreenDirty()  
      void clearSelection()
      Clears the selection.
      java.util.Map cloneCells​(java.lang.Object[] cells)
      Returns a map of (cell, clone)-pairs for all cells and their children.
      java.lang.String convertValueToString​(java.lang.Object value)
      Converts the specified value to string.
      static java.util.Map createBounds​(AttributeMap map, int x, int y, java.awt.Color c)
      Returns an attributeMap for the specified position and color.
      protected void createBufferedImage​(int width, int height)
      Utility method to create a standard buffered image
      boolean drawImage​(int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, int sx2, int sy2)
      Utility method to draw the off screen buffer
      boolean drawImage​(java.awt.Graphics g)  
      protected void fireValueChanged​(GraphSelectionEvent e)
      Notifies all listeners that have registered interest for notification on this event type.
      java.awt.geom.Point2D fromScreen​(java.awt.geom.Point2D p)
      Downscale the given point in place, using the given instance.
      java.awt.geom.Rectangle2D fromScreen​(java.awt.geom.Rectangle2D rect)
      Downscale the given rectangle in place, using the given instance.
      AttributeMap getAttributes​(java.lang.Object cell)
      Returns the attributes for the specified cell.
      java.awt.Component getBackgroundComponent()  
      javax.swing.ImageIcon getBackgroundImage()
      Returns the background image.
      java.awt.geom.Rectangle2D getCellBounds​(java.lang.Object cell)
      Returns the bounding rectangle of the specified cell.
      java.awt.geom.Rectangle2D getCellBounds​(java.lang.Object[] cells)
      Returns the bounding rectangle of the specified cells.
      java.awt.geom.Point2D getCenterPoint()
      Returns the center of the component relative to the parent viewport's position.
      java.awt.geom.Rectangle2D getClipRectangle​(GraphLayoutCacheEvent.GraphLayoutCacheChange change)
      Calculates the clip
      PortView getDefaultPortForCell​(java.lang.Object cell)
      Returns the default portview for the specified cell.
      java.lang.Object[] getDescendants​(java.lang.Object[] cells)
      Returns all cells including all descendants in the passed in order of cells.
      boolean getEdgeLabelsMovable()
      Returns true if edge labels may be dragged and dropped.
      int getEditClickCount()
      Returns the number of clicks for editing to start.
      java.lang.Object getEditingCell()
      Returns the cell that is currently being edited.
      java.lang.Object getFirstCellForLocation​(double x, double y)
      Returns the topmost cell at the specified location.
      GraphLayoutCache getGraphLayoutCache()
      Returns the GraphLayoutCache that is providing the view-data.
      java.awt.Color getGridColor()
      Returns the current grid color.
      int getGridMode()
      Returns the current grid view mode.
      double getGridSize()
      Returns the size of the grid in pixels.
      java.awt.Color getHandleColor()
      Returns the current handle color.
      int getHandleSize()
      Returns the size of the handles.
      java.awt.Color getHighlightColor()
      Returns the current highlight color.
      java.awt.image.BufferedImage getImage​(java.awt.Color bg, int inset)
      Returns a BufferedImage for the graph using inset as an empty border around the cells of the graph.
      boolean getInvokesStopCellEditing()
      Returns the indicator that tells what happens when editing is interrupted.
      CellView getLeafViewAt​(double x, double y)
      Returns the next view at the specified location wrt.
      java.awt.Color getLockedHandleColor()
      Returns the current second handle color.
      java.awt.Color getMarqueeColor()
      Returns the current marquee color.
      BasicMarqueeHandler getMarqueeHandler()
      Returns the MarqueeHandler that will handle marquee selection.
      int getMinimumMove()
      Returns the miminum amount of pixels for a move operation.
      GraphModel getModel()
      Returns the GraphModel that is providing the data.
      java.lang.Object getNextCellForLocation​(java.lang.Object current, double x, double y)
      Returns the cell at the specified location that is "behind" the current cell.
      CellView getNextSelectableViewAt​(CellView current, double x, double y)
      Note: Arguments are not expected to be scaled (they are scaled in here).
      CellView getNextViewAt​(CellView[] cells, CellView c, double x, double y)
      Returns the next view at the specified location wrt.
      CellView getNextViewAt​(CellView[] cells, CellView c, double x, double y, boolean leafsOnly)
      Returns the next view at the specified location wrt.
      CellView getNextViewAt​(CellView current, double x, double y)
      Returns the next view at the specified location wrt.
      CellView getNextViewAt​(CellView current, double x, double y, boolean leafsOnly)
      Returns the next view at the specified location wrt.
      java.awt.Graphics getOffgraphics()
      Returns the current double buffering graphics object.
      java.awt.Image getOffscreen()  
      java.awt.geom.Rectangle2D getOffscreenDirty()  
      java.awt.geom.Point2D getOffscreenOffset()  
      java.lang.Object getPortForLocation​(double x, double y)
      Convenience method to return the port at the specified location.
      PortView getPortViewAt​(double x, double y)
      Returns the portview at the specified location.
      PortView getPortViewAt​(double x, double y, int tolerance)
      Returns the portview at the specified location.
      java.awt.Dimension getPreferredScrollableViewportSize()
      Returns the preferred display size of a JGraph.
      java.lang.Object[] getRoots()
      Returns all root cells (cells that have no parent) that the model contains.
      java.lang.Object[] getRoots​(java.awt.Rectangle clip)
      Returns all cells that intersect the given rectangle.
      double getScale()
      Returns the current scale.
      int getScrollableBlockIncrement​(java.awt.Rectangle visibleRect, int orientation, int direction)
      Returns the amount for a block increment, which is the height or width of visibleRect, based on orientation.
      boolean getScrollableTracksViewportHeight()
      Returns false to indicate that the height of the viewport does not determine the height of the graph, unless the preferred height of the graph is smaller than the viewports height.
      boolean getScrollableTracksViewportWidth()
      Returns false to indicate that the width of the viewport does not determine the width of the graph, unless the preferred width of the graph is smaller than the viewports width.
      int getScrollableUnitIncrement​(java.awt.Rectangle visibleRect, int orientation, int direction)
      Returns the amount to increment when scrolling.
      java.lang.Object getSelectionCell()
      Returns the first selected cell.
      java.lang.Object getSelectionCellAt​(java.awt.geom.Point2D pt)
      Returns the selection cell at the specified location.
      java.lang.Object[] getSelectionCells()
      Returns all selected cells.
      java.lang.Object[] getSelectionCells​(java.lang.Object[] cells)
      Returns all selected cells in cells.
      int getSelectionCount()
      Returns the number of cells selected.
      GraphSelectionModel getSelectionModel()
      Returns the model for selections.
      int getTolerance()
      Returns the maximum distance between the mousepointer and a cell to be selected.
      java.lang.String getToolTipText​(java.awt.event.MouseEvent e)
      Overrides JComponent'sgetToolTipText method in order to allow the graph to create a tooltip for the topmost cell under the mousepointer.
      CellView getTopmostViewAt​(double x, double y, boolean reverse, boolean leafsOnly)
      Returns the topmost cell view at the specified location using the view's bounds on non-leafs to check for containment.
      GraphUI getUI()
      Returns the L&F object that renders this component.
      java.lang.String getUIClassID()
      Returns the name of the L&F class that renders this component.
      java.awt.geom.Rectangle2D getViewPortBounds()
      Return the bounds of the parent viewport, if one exists.
      void graphDidChange()
      Messaged when the graph has changed enough that we need to resize the bounds, but not enough that we need to remove the cells (e.g cells were inserted into the graph).
      boolean isAntiAliased()
      Returns true if the graph will be anti aliased.
      boolean isAutoResizeGraph()
      Returns true if the graph should be automatically resized when cells are being moved below the bottom right corner.
      boolean isBackgroundScaled()  
      boolean isBendable()
      Returns true if the graph allows adding/removing/modifying points.
      boolean isCellEditable​(java.lang.Object cell)
      Returns true if the graph and the cell are editable.
      boolean isCellSelected​(java.lang.Object cell)
      Returns true if the cell is currently selected.
      boolean isCloneable()
      Returns true if cells are cloned on CTRL-Drag operations.
      boolean isConnectable()
      Returns true if the graph allows new connections to be established.
      boolean isDisconnectable()
      Returns true if the graph allows existing connections to be removed.
      boolean isDisconnectOnMove()
      Returns true if selected edges should be disconnected from unselected vertices when they are moved.
      boolean isDragEnabled()
      Returns true if the graph uses Drag-and-Drop to move cells.
      boolean isDropEnabled()
      Returns true if the graph accepts drops/pastes from external sources.
      boolean isEditable()
      Returns true if the graph is editable (if it allows cells to be edited).
      boolean isEditing()
      Returns true if the graph is being edited.
      boolean isGridEnabled()
      Returns true if the grid is active.
      boolean isGridVisible()
      Returns true if the grid will be visible.
      boolean isGroupsEditable()  
      boolean isJumpToDefaultPort()
      Returns true if getPortViewAt should return the default port if no other port is found.
      boolean isMoveable()  
      boolean isMoveBelowZero()
      Returns true if the graph allows to move cells below zero.
      boolean isMoveBeyondGraphBounds()  
      boolean isMoveIntoGroups()
      Returns true if cells should be added to groups when moved over the group's area.
      boolean isMoveOutOfGroups()
      Returns true if cells should be removed from groups when removed from the group's area.
      boolean isPortsOnTop()  
      boolean isPortsScaled()
      Returns true if the ports will be scaled.
      boolean isPortsVisible()
      Returns true if the ports will be visible.
      boolean isPreviewInvalidNullPorts()
      Returns true if graph allows invalid null ports during previews
      boolean isSelectionEmpty()
      Returns true if the selection is currently empty.
      boolean isSelectionEnabled()
      Returns true if the cell selection is enabled
      boolean isSizeable()
      Returns true if the graph allows cells to be resized.
      boolean isVolatileOffscreen()  
      boolean isXorEnabled()
      Returns true if the graph accepts drops/pastes from external sources.
      static void main​(java.lang.String[] args)  
      java.lang.Object[] order​(java.lang.Object[] cells)
      Returns all cells including all descendants ordered using the current layering data stored by the model.
      protected java.lang.String paramString()
      Returns a string representation of this JGraph.
      void removeGraphSelectionListener​(GraphSelectionListener tsl)
      Removes a GraphSelection listener.
      void removeSelectionCell​(java.lang.Object cell)
      Removes the cell identified by the specified Object from the current selection.
      void scrollCellToVisible​(java.lang.Object cell)
      Scrolls to the specified cell.
      void scrollPointToVisible​(java.awt.geom.Point2D p)
      Makes sure the specified point is visible.
      void setAntiAliased​(boolean newValue)
      Sets antialiasing on or off based on the boolean value.
      void setAutoResizeGraph​(boolean autoResizeGraph)
      Sets whether or not the graph should be automatically resize when cells are being moved below the bottom right corner
      void setBackground​(java.awt.Color bg)
      Override parent to clear offscreen double buffer
      void setBackgroundComponent​(java.awt.Component backgroundComponent)  
      void setBackgroundImage​(javax.swing.ImageIcon backgroundImage)
      Sets the background image.
      void setBackgroundScaled​(boolean backgroundScaled)  
      void setBendable​(boolean flag)
      Sets if the graph allows adding/removing/modifying points.
      void setCloneable​(boolean flag)
      Sets if cells are cloned on CTRL-Drag operations.
      void setConnectable​(boolean flag)
      Setse if the graph allows new connections to be established.
      void setDisconnectable​(boolean flag)
      Sets if the graph allows existing connections to be removed.
      void setDisconnectOnMove​(boolean flag)
      Sets if selected edges should be disconnected from unselected vertices when they are moved.
      void setDragEnabled​(boolean flag)
      Sets if the graph uses Drag-and-Drop to move cells.
      void setDropEnabled​(boolean flag)
      Sets if the graph accepts drops/pastes from external sources.
      void setEdgeLabelsMovable​(boolean edgeLabelsMovable)
      Set if edge labels may be moved with the mouse or not.
      void setEditable​(boolean flag)
      Determines whether the graph is editable.
      void setEditClickCount​(int count)
      Sets the number of clicks for editing to start.
      void setGraphLayoutCache​(GraphLayoutCache newLayoutCache)
      Sets the GraphLayoutCache that will provide the view-data.
      void setGridColor​(java.awt.Color newColor)
      Sets the current grid color.
      void setGridEnabled​(boolean flag)
      If set to true, the grid will be active.
      void setGridMode​(int mode)
      Sets the current grid view mode.
      void setGridSize​(double newSize)
      Sets the size of the grid.
      void setGridVisible​(boolean flag)
      If set to true, the grid will be visible.
      void setGroupsEditable​(boolean groupsEditable)  
      void setHandleColor​(java.awt.Color newColor)
      Sets the current handle color.
      void setHandleSize​(int size)
      Sets the size of the handles.
      void setHighlightColor​(java.awt.Color newColor)
      Sets the current selection highlight color.
      void setInvokesStopCellEditing​(boolean newValue)
      Determines what happens when editing is interrupted by selecting another cell in the graph, a change in the graph's data, or by some other means.
      void setJumpToDefaultPort​(boolean flag)
      Sets if getPortViewAt should return the default port if no other port is found.
      void setLockedHandleColor​(java.awt.Color newColor)
      Sets the current second handle color.
      void setMarqueeColor​(java.awt.Color newColor)
      Sets the current marquee color.
      void setMarqueeHandler​(BasicMarqueeHandler newMarquee)
      Sets the MarqueeHandler that will handle marquee selection.
      void setMinimumMove​(int pixels)
      Sets the miminum amount of pixels for a move operation.
      void setModel​(GraphModel newModel)
      Sets the GraphModel that will provide the data.
      void setMoveable​(boolean flag)
      Sets if the graph allows movement of cells.
      void setMoveBelowZero​(boolean moveBelowZero)
      Sets if the graph should auto resize when cells are being moved below the bottom right corner.
      void setMoveBeyondGraphBounds​(boolean moveBeyondGraphBounds)  
      void setMoveIntoGroups​(boolean flag)
      Specifies if cells should be added to groups when moved over the group's area.
      void setMoveOutOfGroups​(boolean flag)
      Specifies if cells should be removed from groups when removed from the group's area.
      void setOffscreenOffset​(java.awt.geom.Point2D offscreenOffset)  
      void setOpaque​(boolean opaque)  
      void setPortsOnTop​(boolean portsOnTop)  
      void setPortsScaled​(boolean flag)
      If set to true, the ports will be scaled.
      void setPortsVisible​(boolean flag)
      If set to true, the ports will be visible.
      void setPreviewInvalidNullPorts​(boolean flag)
      Determines whether the graph allows invalid null ports during previews
      void setScale​(double newValue)
      Sets the current scale.
      void setScale​(double newValue, java.awt.geom.Point2D center)
      Sets the current scale and centers the graph to the specified point
      void setSelectionCell​(java.lang.Object cell)
      Selects the specified cell.
      void setSelectionCells​(java.lang.Object[] cells)
      Selects the specified cells.
      void setSelectionEnabled​(boolean flag)
      Determines whether cell selection is enabled.
      void setSelectionModel​(GraphSelectionModel selectionModel)
      Sets the graph's selection model.
      void setSizeable​(boolean flag)
      Sets if the graph allows cells to be resized.
      void setTolerance​(int size)
      Sets the maximum distance between the mousepointer and a cell to be selected.
      void setUI​(GraphUI ui)
      Sets the L&F object that renders this component.
      protected void setupOffScreen​(int x, int y, int width, int height, java.awt.geom.Rectangle2D newOffscreenBuffer)
      Utility method that initialises the offscreen graphics area
      void setVolatileOffscreen​(boolean volatileOffscreen)  
      void setXorEnabled​(boolean flag)
      Sets if the graph accepts drops/pastes from external sources.
      java.awt.geom.Dimension2D snap​(java.awt.geom.Dimension2D d)
      Returns the given dimension applied to the grid.
      java.awt.geom.Point2D snap​(java.awt.geom.Point2D p)
      Returns the given point applied to the grid.
      java.awt.geom.Rectangle2D snap​(java.awt.geom.Rectangle2D r)
      Returns the given rectangle applied to the grid.
      void startEditingAtCell​(java.lang.Object cell)
      Selects the specified cell and initiates editing.
      boolean stopEditing()
      Ends the current editing session.
      java.awt.geom.Point2D toScreen​(java.awt.geom.Point2D p)
      Upscale the given point in place, using the given instance.
      java.awt.geom.Rectangle2D toScreen​(java.awt.geom.Rectangle2D rect)
      Upscale the given rectangle in place, using the given instance.
      void updateAutoSize​(CellView view)
      Computes and updates the size for view.
      void updateUI()
      Notification from the UIManager that the L&F has changed.
      • Methods inherited from class javax.swing.JComponent

        addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
      • Methods inherited from class java.awt.Container

        add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusDownCycle, validate, validateTree
      • Methods inherited from class java.awt.Component

        action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getAccessibleContext, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • Methods inherited from interface javax.accessibility.Accessible

        getAccessibleContext
    • Field Detail

      • IS_MAC

        public static boolean IS_MAC
      • selectionRedirector

        protected transient JGraph.GraphSelectionRedirector selectionRedirector
        Creates a new event and passes it off the selectionListeners.
      • graphModel

        protected transient GraphModel graphModel
        The model that defines the graph displayed by this object. Bound property.
      • graphLayoutCache

        protected transient GraphLayoutCache graphLayoutCache
        The view that defines the display properties of the model. Bound property.
      • selectionModel

        protected transient GraphSelectionModel selectionModel
        Models the set of selected objects in this graph. Bound property.
      • offscreen

        protected transient java.awt.Image offscreen
        Off screen image for double buffering
      • offscreenBounds

        protected transient java.awt.geom.Rectangle2D offscreenBounds
        The bounds of the offscreen buffer
      • offscreenOffset

        protected transient java.awt.geom.Point2D offscreenOffset
        The offset of the offscreen buffer
      • offgraphics

        protected transient java.awt.Graphics offgraphics
        Graphics object of off screen image
      • offscreenDirty

        protected transient java.awt.geom.Rectangle2D offscreenDirty
        Whether or not the current background image is correct
      • offscreenBuffer

        protected transient int offscreenBuffer
        The buffer around the offscreen graphics object that provides the specified distance of scrolling before the buffer has to be redrawn. Increasing the value means fewer redraws but more memory is required.
      • volatileOffscreen

        protected boolean volatileOffscreen
        Whether or not to try to use a volatile offscreen buffer for double buffering. Volatile
      • lastBufferAllocated

        protected boolean lastBufferAllocated
        Stores whether the last double buffer allocation worked or not
      • backgroundImage

        protected javax.swing.ImageIcon backgroundImage
        Holds the background image.
      • backgroundComponent

        protected java.awt.Component backgroundComponent
        A Component responsible for drawing the background image, if any
      • backgroundScaled

        protected boolean backgroundScaled
        Whether or not the background image is scaled on zooming
      • scale

        protected double scale
        Scale of the graph. Default is 1. Bound property.
      • antiAliased

        protected boolean antiAliased
        True if the graph is anti-aliased. Default is false. Bound property.
      • editable

        protected boolean editable
        True if the graph allows editing the value of a cell. Bound property.
      • groupsEditable

        protected boolean groupsEditable
        True if the graph allows editing of non-leaf cells. Bound property.
      • selectionEnabled

        protected boolean selectionEnabled
        True if the graph allows selection of cells. Note: You must also disable selectNewCells if you disable this. Bound property.
      • previewInvalidNullPorts

        protected boolean previewInvalidNullPorts
        True if the graph allows invalid null ports during previews (aka flip back edges). Default is true.
      • gridVisible

        protected boolean gridVisible
        True if the grid is visible. Bound property.
      • gridSize

        protected double gridSize
        The size of the grid in points. Default is 10. Bound property.
      • gridMode

        protected int gridMode
        The style of the grid. Use one of the _GRID_MODE constants.
      • portsVisible

        protected boolean portsVisible
        True if the ports are visible. Bound property.
      • portsScaled

        protected boolean portsScaled
        True if the ports are scaled. Bound property.
      • portsOnTop

        protected boolean portsOnTop
        True if port are painted above all other cells.
      • moveBelowZero

        protected boolean moveBelowZero
        True if the graph allows to move cells below zero.
      • moveBeyondGraphBounds

        protected boolean moveBeyondGraphBounds
        True if the graph allows to move cells beyond the graph bounds
      • edgeLabelsMovable

        protected boolean edgeLabelsMovable
        True if the labels on edges may be moved.
      • autoResizeGraph

        protected boolean autoResizeGraph
        True if the graph should be auto resized when cells are moved below the bottom right corner. Default is true.
      • highlightColor

        protected java.awt.Color highlightColor
        Highlight Color. Changes when the Look-and-Feel changes.
      • handleColor

        protected java.awt.Color handleColor
        Color of the handles and locked handles. Changes when the Look-and-Feel changes.
      • lockedHandleColor

        protected java.awt.Color lockedHandleColor
        Color of the handles and locked handles. Changes when the Look-and-Feel changes.
      • marqueeColor

        protected java.awt.Color marqueeColor
        Color of the marquee. Changes when the Look-and-Feel changes.
      • gridColor

        protected java.awt.Color gridColor
        The color of the grid. Changes when the Look-and-Feel changes.
      • dragEnabled

        protected boolean dragEnabled
        True if Drag-and-Drop should be used for move operations. Default is false due to a JDK bug.
      • dropEnabled

        protected boolean dropEnabled
        True if the graph accepts transfers from other components (graphs). This also affects the clipboard. Default is true.
      • xorEnabled

        protected boolean xorEnabled
        True if the graph accepts transfers from other components (graphs). This also affects the clipboard. Default is true.
      • editClickCount

        protected int editClickCount
        Number of clicks for editing to start. Default is 2 clicks.
      • enabled

        protected boolean enabled
        True if the graph allows interactions. Default is true.
      • gridEnabled

        protected boolean gridEnabled
        True if the snap method should be active (snap to grid).
      • handleSize

        protected int handleSize
        Size of a handle. Default is 3 pixels.
      • tolerance

        protected int tolerance
        Maximum distance between a cell and the mousepointer. Default is 4.
      • minimumMove

        protected int minimumMove
        Minimum amount of pixels to start a move transaction. Default is 5.
      • isJumpToDefaultPort

        protected boolean isJumpToDefaultPort
        True if getPortViewAt should return the default port if no other port is found. Default is false.
      • isMoveIntoGroups

        protected boolean isMoveIntoGroups
        Specifies if cells should be added to a group when moved over the group's area. Default is false.
      • isMoveOutOfGroups

        protected boolean isMoveOutOfGroups
        Specifies if cells should be removed from groups when removed from the group area. Default is false.
      • disconnectOnMove

        protected boolean disconnectOnMove
        True if selected edges are disconnected from unselected vertices on move. Default is false.
      • moveable

        protected boolean moveable
        True if the graph allows move operations. Default is true.
      • cloneable

        protected boolean cloneable
        True if the graph allows "ctrl-drag" operations. Default is false.
      • sizeable

        protected boolean sizeable
        True if the graph allows cells to be resized. Default is true.
      • bendable

        protected boolean bendable
        True if the graph allows points to be modified/added/removed. Default is true.
      • connectable

        protected boolean connectable
        True if the graph allows new connections to be established. Default is true.
      • disconnectable

        protected boolean disconnectable
        True if the graph allows existing connections to be removed. Default is true.
      • invokesStopCellEditing

        protected boolean invokesStopCellEditing
        If true, when editing is to be stopped by way of selection changing, data in graph changing or other means stopCellEditing is invoked, and changes are saved. If false, cancelCellEditing is invoked, and changes are discarded.
      • GRAPH_MODEL_PROPERTY

        public static final java.lang.String GRAPH_MODEL_PROPERTY
        Bound property name for graphModel.
        See Also:
        Constant Field Values
      • GRAPH_LAYOUT_CACHE_PROPERTY

        public static final java.lang.String GRAPH_LAYOUT_CACHE_PROPERTY
        Bound property name for graphModel.
        See Also:
        Constant Field Values
      • MARQUEE_HANDLER_PROPERTY

        public static final java.lang.String MARQUEE_HANDLER_PROPERTY
        Bound property name for graphModel.
        See Also:
        Constant Field Values
      • EDITABLE_PROPERTY

        public static final java.lang.String EDITABLE_PROPERTY
        Bound property name for editable.
        See Also:
        Constant Field Values
      • SELECTIONENABLED_PROPERTY

        public static final java.lang.String SELECTIONENABLED_PROPERTY
        Bound property name for selectionEnabled.
        See Also:
        Constant Field Values
      • SCALE_PROPERTY

        public static final java.lang.String SCALE_PROPERTY
        Bound property name for scale.
        See Also:
        Constant Field Values
      • ANTIALIASED_PROPERTY

        public static final java.lang.String ANTIALIASED_PROPERTY
        Bound property name for antiAliased.
        See Also:
        Constant Field Values
      • GRID_SIZE_PROPERTY

        public static final java.lang.String GRID_SIZE_PROPERTY
        Bound property name for gridSize.
        See Also:
        Constant Field Values
      • GRID_VISIBLE_PROPERTY

        public static final java.lang.String GRID_VISIBLE_PROPERTY
        Bound property name for gridVisible.
        See Also:
        Constant Field Values
      • GRID_COLOR_PROPERTY

        public static final java.lang.String GRID_COLOR_PROPERTY
        Bound property name for gridColor.
        See Also:
        Constant Field Values
      • HANDLE_COLOR_PROPERTY

        public static final java.lang.String HANDLE_COLOR_PROPERTY
        Bound property name for gridColor.
        See Also:
        Constant Field Values
      • HANDLE_SIZE_PROPERTY

        public static final java.lang.String HANDLE_SIZE_PROPERTY
        Bound property name for gridColor.
        See Also:
        Constant Field Values
      • LOCKED_HANDLE_COLOR_PROPERTY

        public static final java.lang.String LOCKED_HANDLE_COLOR_PROPERTY
        Bound property name for gridColor.
        See Also:
        Constant Field Values
      • PORTS_VISIBLE_PROPERTY

        public static final java.lang.String PORTS_VISIBLE_PROPERTY
        Bound property name for gridVisible.
        See Also:
        Constant Field Values
      • PORTS_SCALED_PROPERTY

        public static final java.lang.String PORTS_SCALED_PROPERTY
        Bound property name for portsScaled.
        See Also:
        Constant Field Values
      • SELECTION_MODEL_PROPERTY

        public static final java.lang.String SELECTION_MODEL_PROPERTY
        Bound property name for selectionModel.
        See Also:
        Constant Field Values
      • INVOKES_STOP_CELL_EDITING_PROPERTY

        public static final java.lang.String INVOKES_STOP_CELL_EDITING_PROPERTY
        Bound property name for messagesStopCellEditing.
        See Also:
        Constant Field Values
      • PROPERTY_BACKGROUNDIMAGE

        public static final java.lang.String PROPERTY_BACKGROUNDIMAGE
        Bound property name for backgroundImage.
        See Also:
        Constant Field Values
    • Constructor Detail

      • JGraph

        public JGraph()
        Returns a JGraph with a sample model.
      • JGraph

        public JGraph​(GraphModel model)
        Returns an instance of JGraph which displays the the specified data model.
        Parameters:
        model - the GraphModel to use as the data model
      • JGraph

        public JGraph​(GraphLayoutCache cache)
        Returns an instance of JGraph which displays the data model using the specified view.
        Parameters:
        cache - the GraphLayoutCache to use as the view
      • JGraph

        public JGraph​(GraphModel model,
                      GraphLayoutCache cache)
        Returns an instance of JGraph which displays the specified data model using the specified view.
        Parameters:
        model - the GraphModel to use as the data model
        cache - the GraphLayoutCache to use as the cache
      • JGraph

        public JGraph​(GraphModel model,
                      BasicMarqueeHandler mh)
        Returns an instance of JGraph which displays the specified data model and assigns the specified marquee handler
        Parameters:
        model - the GraphModel to use as the data model
        mh - the BasicMarqueeHandler to use as the marquee handler
      • JGraph

        public JGraph​(GraphModel model,
                      GraphLayoutCache layoutCache,
                      BasicMarqueeHandler mh)
        Returns an instance of JGraph which displays the specified data model using the specified view and assigns the specified marquee handler
        Parameters:
        model - the GraphModel to use as the data model
        layoutCache - the GraphLayoutCache to use as the cache
        mh - the BasicMarqueeHandler to use as the marquee handler
    • Method Detail

      • addSampleData

        public static void addSampleData​(GraphModel model)
        Creates and returns a sample GraphModel. Used primarily for beanbuilders to show something interesting.
      • createBounds

        public static java.util.Map createBounds​(AttributeMap map,
                                                 int x,
                                                 int y,
                                                 java.awt.Color c)
        Returns an attributeMap for the specified position and color.
      • getUI

        public GraphUI getUI()
        Returns the L&F object that renders this component.
        Overrides:
        getUI in class javax.swing.JComponent
        Returns:
        the GraphUI object that renders this component
      • setUI

        public void setUI​(GraphUI ui)
        Sets the L&F object that renders this component.
        Parameters:
        ui - the GraphUI L&F object
        See Also:
        UIDefaults.getUI(JComponent)
      • updateUI

        public void updateUI()
        Notification from the UIManager that the L&F has changed. Replaces the current UI object with the latest version from the UIManager. Subclassers can override this to support different GraphUIs.
        Overrides:
        updateUI in class javax.swing.JComponent
        See Also:
        JComponent.updateUI()
      • getUIClassID

        public java.lang.String getUIClassID()
        Returns the name of the L&F class that renders this component.
        Overrides:
        getUIClassID in class javax.swing.JComponent
        Returns:
        the string "GraphUI"
        See Also:
        JComponent.getUIClassID()
      • getRoots

        public java.lang.Object[] getRoots()
        Returns all root cells (cells that have no parent) that the model contains.
      • getRoots

        public java.lang.Object[] getRoots​(java.awt.Rectangle clip)
        Returns all cells that intersect the given rectangle.
      • getDescendants

        public java.lang.Object[] getDescendants​(java.lang.Object[] cells)
        Returns all cells including all descendants in the passed in order of cells.
      • order

        public java.lang.Object[] order​(java.lang.Object[] cells)
        Returns all cells including all descendants ordered using the current layering data stored by the model.
      • cloneCells

        public java.util.Map cloneCells​(java.lang.Object[] cells)
        Returns a map of (cell, clone)-pairs for all cells and their children. Special care is taken to replace the anchor references between ports. (Iterative implementation.)
      • getTopmostViewAt

        public CellView getTopmostViewAt​(double x,
                                         double y,
                                         boolean reverse,
                                         boolean leafsOnly)
        Returns the topmost cell view at the specified location using the view's bounds on non-leafs to check for containment. If reverse is true this will return the innermost view.
      • getFirstCellForLocation

        public java.lang.Object getFirstCellForLocation​(double x,
                                                        double y)
        Returns the topmost cell at the specified location.
        Parameters:
        x - an integer giving the number of pixels horizontally from the left edge of the display area, minus any left margin
        y - an integer giving the number of pixels vertically from the top of the display area, minus any top margin
        Returns:
        the topmost cell at the specified location
      • getNextCellForLocation

        public java.lang.Object getNextCellForLocation​(java.lang.Object current,
                                                       double x,
                                                       double y)
        Returns the cell at the specified location that is "behind" the current cell. Returns the topmost cell if there are no more cells behind current. Note: This does only return visible cells.
      • getCellBounds

        public java.awt.geom.Rectangle2D getCellBounds​(java.lang.Object cell)
        Returns the bounding rectangle of the specified cell.
      • getCellBounds

        public java.awt.geom.Rectangle2D getCellBounds​(java.lang.Object[] cells)
        Returns the bounding rectangle of the specified cells.
      • getNextViewAt

        public CellView getNextViewAt​(CellView current,
                                      double x,
                                      double y)
        Returns the next view at the specified location wrt. current. This is used to iterate overlapping cells, and cells that are grouped. The current selection affects this method.
        Note: This returns the next selectable view.
        Note: Arguments are not expected to be scaled (they are scaled in here).
      • getNextViewAt

        public CellView getNextViewAt​(CellView current,
                                      double x,
                                      double y,
                                      boolean leafsOnly)
        Returns the next view at the specified location wrt. current. This is used to iterate overlapping cells, and cells that are grouped. The current selection affects this method.
        Note: This returns the next selectable view.
        Note: Arguments are not expected to be scaled (they are scaled in here).
      • getNextSelectableViewAt

        public CellView getNextSelectableViewAt​(CellView current,
                                                double x,
                                                double y)
        Note: Arguments are not expected to be scaled (they are scaled in here).
      • getNextViewAt

        public CellView getNextViewAt​(CellView[] cells,
                                      CellView c,
                                      double x,
                                      double y)
        Returns the next view at the specified location wrt. c in the specified array of views. The views must be in order, as returned, for example, by GraphLayoutCache.order(Object[]).
      • getNextViewAt

        public CellView getNextViewAt​(CellView[] cells,
                                      CellView c,
                                      double x,
                                      double y,
                                      boolean leafsOnly)
        Returns the next view at the specified location wrt. c in the specified array of views. The views must be in order, as returned, for example, by GraphLayoutCache.order(Object[]).
      • getLeafViewAt

        public CellView getLeafViewAt​(double x,
                                      double y)
        Returns the next view at the specified location wrt. c in the specified array of views. The views must be in order, as returned, for example, by GraphLayoutCache.order(Object[]).
      • getPortForLocation

        public java.lang.Object getPortForLocation​(double x,
                                                   double y)
        Convenience method to return the port at the specified location.
      • getPortViewAt

        public PortView getPortViewAt​(double x,
                                      double y)
        Returns the portview at the specified location.
        Note: Arguments are not expected to be scaled (they are scaled in here).
      • getPortViewAt

        public PortView getPortViewAt​(double x,
                                      double y,
                                      int tolerance)
        Returns the portview at the specified location.
        Note: Arguments are not expected to be scaled (they are scaled in here).
      • getDefaultPortForCell

        public PortView getDefaultPortForCell​(java.lang.Object cell)
        Returns the default portview for the specified cell. The default implementation returns the first floating port (ie. the first port that does not define an offset) or the port, if there is only one port.
        Parameters:
        cell - the cell whose port is to be obtained
        Returns:
        the port view of the specified cell
      • convertValueToString

        public java.lang.String convertValueToString​(java.lang.Object value)
        Converts the specified value to string. If the value is an instance of CellView then the corresponding value or cell is used.
      • snap

        public java.awt.geom.Point2D snap​(java.awt.geom.Point2D p)
        Returns the given point applied to the grid.
        Parameters:
        p - a point in screen coordinates.
        Returns:
        the same point applied to the grid.
      • snap

        public java.awt.geom.Rectangle2D snap​(java.awt.geom.Rectangle2D r)
        Returns the given rectangle applied to the grid.
        Parameters:
        r - a rectangle in screen coordinates.
        Returns:
        the same rectangle applied to the grid.
      • snap

        public java.awt.geom.Dimension2D snap​(java.awt.geom.Dimension2D d)
        Returns the given dimension applied to the grid.
        Parameters:
        d - a dimension in screen coordinates to snap to.
        Returns:
        the same dimension applied to the grid.
      • toScreen

        public java.awt.geom.Point2D toScreen​(java.awt.geom.Point2D p)
        Upscale the given point in place, using the given instance.
        Parameters:
        p - the point to be upscaled
        Returns:
        the upscaled point instance
      • fromScreen

        public java.awt.geom.Point2D fromScreen​(java.awt.geom.Point2D p)
        Downscale the given point in place, using the given instance.
        Parameters:
        p - the point to be downscaled
        Returns:
        the downscaled point instance
      • toScreen

        public java.awt.geom.Rectangle2D toScreen​(java.awt.geom.Rectangle2D rect)
        Upscale the given rectangle in place, using the given instance.
        Parameters:
        rect - the rectangle to be upscaled
        Returns:
        the upscaled rectangle instance
      • fromScreen

        public java.awt.geom.Rectangle2D fromScreen​(java.awt.geom.Rectangle2D rect)
        Downscale the given rectangle in place, using the given instance.
        Parameters:
        rect - the rectangle to be downscaled
        Returns:
        the down-scaled rectangle instance
      • updateAutoSize

        public void updateAutoSize​(CellView view)
        Computes and updates the size for view.
      • getAttributes

        public AttributeMap getAttributes​(java.lang.Object cell)
        Returns the attributes for the specified cell. If the layout cache returns a view for the cell then this method returns allAttributes, otherwise the method returns model.getAttributes(cell).
      • getEditClickCount

        public int getEditClickCount()
        Returns the number of clicks for editing to start.
      • setEditClickCount

        public void setEditClickCount​(int count)
        Sets the number of clicks for editing to start.
      • isDropEnabled

        public boolean isDropEnabled()
        Returns true if the graph accepts drops/pastes from external sources.
      • setDropEnabled

        public void setDropEnabled​(boolean flag)
        Sets if the graph accepts drops/pastes from external sources.
      • isXorEnabled

        public boolean isXorEnabled()
        Returns true if the graph accepts drops/pastes from external sources.
      • setXorEnabled

        public void setXorEnabled​(boolean flag)
        Sets if the graph accepts drops/pastes from external sources.
      • isDragEnabled

        public boolean isDragEnabled()
        Returns true if the graph uses Drag-and-Drop to move cells.
      • setDragEnabled

        public void setDragEnabled​(boolean flag)
        Sets if the graph uses Drag-and-Drop to move cells.
      • isMoveable

        public boolean isMoveable()
      • setMoveable

        public void setMoveable​(boolean flag)
        Sets if the graph allows movement of cells.
      • isBendable

        public boolean isBendable()
        Returns true if the graph allows adding/removing/modifying points.
      • setBendable

        public void setBendable​(boolean flag)
        Sets if the graph allows adding/removing/modifying points.
      • isConnectable

        public boolean isConnectable()
        Returns true if the graph allows new connections to be established.
      • setConnectable

        public void setConnectable​(boolean flag)
        Setse if the graph allows new connections to be established.
      • isDisconnectable

        public boolean isDisconnectable()
        Returns true if the graph allows existing connections to be removed.
      • setDisconnectable

        public void setDisconnectable​(boolean flag)
        Sets if the graph allows existing connections to be removed.
      • isCloneable

        public boolean isCloneable()
        Returns true if cells are cloned on CTRL-Drag operations.
      • setCloneable

        public void setCloneable​(boolean flag)
        Sets if cells are cloned on CTRL-Drag operations.
      • isSizeable

        public boolean isSizeable()
        Returns true if the graph allows cells to be resized.
      • setSizeable

        public void setSizeable​(boolean flag)
        Sets if the graph allows cells to be resized.
      • setDisconnectOnMove

        public void setDisconnectOnMove​(boolean flag)
        Sets if selected edges should be disconnected from unselected vertices when they are moved.
      • isDisconnectOnMove

        public boolean isDisconnectOnMove()
        Returns true if selected edges should be disconnected from unselected vertices when they are moved.
      • setJumpToDefaultPort

        public void setJumpToDefaultPort​(boolean flag)
        Sets if getPortViewAt should return the default port if no other port is found.
      • isJumpToDefaultPort

        public boolean isJumpToDefaultPort()
        Returns true if getPortViewAt should return the default port if no other port is found.
      • setMoveIntoGroups

        public void setMoveIntoGroups​(boolean flag)
        Specifies if cells should be added to groups when moved over the group's area.
      • isMoveIntoGroups

        public boolean isMoveIntoGroups()
        Returns true if cells should be added to groups when moved over the group's area.
      • setMoveOutOfGroups

        public void setMoveOutOfGroups​(boolean flag)
        Specifies if cells should be removed from groups when removed from the group's area.
      • isMoveOutOfGroups

        public boolean isMoveOutOfGroups()
        Returns true if cells should be removed from groups when removed from the group's area.
      • isGridEnabled

        public boolean isGridEnabled()
        Returns true if the grid is active.
        See Also:
        snap(Point2D)
      • setGridEnabled

        public void setGridEnabled​(boolean flag)
        If set to true, the grid will be active.
        See Also:
        snap(Point2D)
      • isMoveBelowZero

        public boolean isMoveBelowZero()
        Returns true if the graph allows to move cells below zero.
      • setMoveBelowZero

        public void setMoveBelowZero​(boolean moveBelowZero)
        Sets if the graph should auto resize when cells are being moved below the bottom right corner.
      • isMoveBeyondGraphBounds

        public boolean isMoveBeyondGraphBounds()
        Returns:
        the moveBeyondGraphBounds
      • setMoveBeyondGraphBounds

        public void setMoveBeyondGraphBounds​(boolean moveBeyondGraphBounds)
        Parameters:
        moveBeyondGraphBounds - the moveBeyondGraphBounds to set
      • getEdgeLabelsMovable

        public boolean getEdgeLabelsMovable()
        Returns true if edge labels may be dragged and dropped.
        Returns:
        whether edge labels may be dragged and dropped
      • setEdgeLabelsMovable

        public void setEdgeLabelsMovable​(boolean edgeLabelsMovable)
        Set if edge labels may be moved with the mouse or not.
        Parameters:
        edgeLabelsMovable - true if edge labels may be dragged
      • isAutoResizeGraph

        public boolean isAutoResizeGraph()
        Returns true if the graph should be automatically resized when cells are being moved below the bottom right corner. Note if the value of moveBeyondGraphBounds if false auto resizing is automatically disabled
      • setAutoResizeGraph

        public void setAutoResizeGraph​(boolean autoResizeGraph)
        Sets whether or not the graph should be automatically resize when cells are being moved below the bottom right corner
      • getTolerance

        public int getTolerance()
        Returns the maximum distance between the mousepointer and a cell to be selected.
      • setTolerance

        public void setTolerance​(int size)
        Sets the maximum distance between the mousepointer and a cell to be selected.
      • getHandleSize

        public int getHandleSize()
        Returns the size of the handles.
      • setHandleSize

        public void setHandleSize​(int size)
        Sets the size of the handles.
      • getMinimumMove

        public int getMinimumMove()
        Returns the miminum amount of pixels for a move operation.
      • setMinimumMove

        public void setMinimumMove​(int pixels)
        Sets the miminum amount of pixels for a move operation.
      • getGridColor

        public java.awt.Color getGridColor()
        Returns the current grid color.
      • setGridColor

        public void setGridColor​(java.awt.Color newColor)
        Sets the current grid color.
      • getHandleColor

        public java.awt.Color getHandleColor()
        Returns the current handle color.
      • setHandleColor

        public void setHandleColor​(java.awt.Color newColor)
        Sets the current handle color.
      • getLockedHandleColor

        public java.awt.Color getLockedHandleColor()
        Returns the current second handle color.
      • setLockedHandleColor

        public void setLockedHandleColor​(java.awt.Color newColor)
        Sets the current second handle color.
      • getMarqueeColor

        public java.awt.Color getMarqueeColor()
        Returns the current marquee color.
      • setMarqueeColor

        public void setMarqueeColor​(java.awt.Color newColor)
        Sets the current marquee color.
      • getHighlightColor

        public java.awt.Color getHighlightColor()
        Returns the current highlight color.
      • setHighlightColor

        public void setHighlightColor​(java.awt.Color newColor)
        Sets the current selection highlight color.
      • getScale

        public double getScale()
        Returns the current scale.
        Returns:
        the current scale as a double
      • setScale

        public void setScale​(double newValue)
        Sets the current scale.

        Fires a property change for the SCALE_PROPERTY.

        Parameters:
        newValue - the new scale
      • setScale

        public void setScale​(double newValue,
                             java.awt.geom.Point2D center)
        Sets the current scale and centers the graph to the specified point
        Parameters:
        newValue - the new scale
        center - the center of the graph
      • clearOffscreen

        public void clearOffscreen()
        Invalidate the offscreen region, do not just delete it, since if the new region is smaller than the old you may not wish to re-create the buffer
      • getCenterPoint

        public java.awt.geom.Point2D getCenterPoint()
        Returns the center of the component relative to the parent viewport's position.
      • getViewPortBounds

        public java.awt.geom.Rectangle2D getViewPortBounds()
        Return the bounds of the parent viewport, if one exists. If one does not exist, null is returned
        Returns:
        the bounds of the parent viewport
      • getGridSize

        public double getGridSize()
        Returns the size of the grid in pixels.
        Returns:
        the size of the grid as an int
      • getGridMode

        public int getGridMode()
        Returns the current grid view mode.
      • setGridSize

        public void setGridSize​(double newSize)
        Sets the size of the grid.

        Fires a property change for the GRID_SIZE_PROPERTY.

        Parameters:
        newSize - the new size of the grid in pixels
      • setGridMode

        public void setGridMode​(int mode)
        Sets the current grid view mode.
        Parameters:
        mode - The current grid view mode. Valid values are DOT_GRID_MODE,CROSS_GRID_MODE, and LINE_GRID_MODE.
      • isGridVisible

        public boolean isGridVisible()
        Returns true if the grid will be visible.
        Returns:
        true if the grid is visible
      • setGridVisible

        public void setGridVisible​(boolean flag)
        If set to true, the grid will be visible.

        Fires a property change for the GRID_VISIBLE_PROPERTY.

      • isPortsVisible

        public boolean isPortsVisible()
        Returns true if the ports will be visible.
        Returns:
        true if the ports are visible
      • setPortsVisible

        public void setPortsVisible​(boolean flag)
        If set to true, the ports will be visible.

        Fires a property change for the PORTS_VISIBLE_PROPERTY.

      • isPortsScaled

        public boolean isPortsScaled()
        Returns true if the ports will be scaled.
        Returns:
        true if the ports are visible
      • setPortsScaled

        public void setPortsScaled​(boolean flag)
        If set to true, the ports will be scaled.

        Fires a property change for the PORTS_SCALED_PROPERTY.

      • isPortsOnTop

        public boolean isPortsOnTop()
      • setPortsOnTop

        public void setPortsOnTop​(boolean portsOnTop)
      • isAntiAliased

        public boolean isAntiAliased()
        Returns true if the graph will be anti aliased.
        Returns:
        true if the graph is anti aliased
      • setAntiAliased

        public void setAntiAliased​(boolean newValue)
        Sets antialiasing on or off based on the boolean value.

        Fires a property change for the ANTIALIASED_PROPERTY.

        Parameters:
        newValue - whether to turn antialiasing on or off
      • isEditable

        public boolean isEditable()
        Returns true if the graph is editable (if it allows cells to be edited).
        Returns:
        true if the graph is editable
      • setEditable

        public void setEditable​(boolean flag)
        Determines whether the graph is editable. Fires a property change event if the new setting is different from the existing setting.

        Note: Editable determines whether the graph allows editing. This is not to be confused with enabled, which allows the graph to handle mouse events (including editing).

        Parameters:
        flag - a boolean value, true if the graph is editable
      • isGroupsEditable

        public boolean isGroupsEditable()
        Returns:
        the groupsEditable
      • setGroupsEditable

        public void setGroupsEditable​(boolean groupsEditable)
        Parameters:
        groupsEditable - the groupsEditable to set
      • isSelectionEnabled

        public boolean isSelectionEnabled()
        Returns true if the cell selection is enabled
        Returns:
        true if the cell selection is enabled
      • setSelectionEnabled

        public void setSelectionEnabled​(boolean flag)
        Determines whether cell selection is enabled. Fires a property change event if the new setting is different from the existing setting.
        Parameters:
        flag - a boolean value, true if cell selection is enabled
      • isPreviewInvalidNullPorts

        public boolean isPreviewInvalidNullPorts()
        Returns true if graph allows invalid null ports during previews
        Returns:
        true if the graph allows invalid null ports during previews
      • setPreviewInvalidNullPorts

        public void setPreviewInvalidNullPorts​(boolean flag)
        Determines whether the graph allows invalid null ports during previews
        Parameters:
        flag - a boolean value, true if the graph allows invalid null ports during previews
      • getOffgraphics

        public java.awt.Graphics getOffgraphics()
        Returns the current double buffering graphics object. Checks to see if the graph bounds has changed since the last time the off screen image was created and if so, creates a new image.
        Returns:
        the off screen graphics
      • createBufferedImage

        protected void createBufferedImage​(int width,
                                           int height)
        Utility method to create a standard buffered image
        Parameters:
        width -
        height -
      • setupOffScreen

        protected void setupOffScreen​(int x,
                                      int y,
                                      int width,
                                      int height,
                                      java.awt.geom.Rectangle2D newOffscreenBuffer)
        Utility method that initialises the offscreen graphics area
        Parameters:
        x -
        y -
        width -
        height -
        newOffscreenBuffer -
      • getOffscreen

        public java.awt.Image getOffscreen()
        Returns:
        the offscreen
      • getOffscreenDirty

        public java.awt.geom.Rectangle2D getOffscreenDirty()
      • addOffscreenDirty

        public void addOffscreenDirty​(java.awt.geom.Rectangle2D offscreenDirty)
      • clearOffscreenDirty

        public void clearOffscreenDirty()
      • drawImage

        public boolean drawImage​(int dx1,
                                 int dy1,
                                 int dx2,
                                 int dy2,
                                 int sx1,
                                 int sy1,
                                 int sx2,
                                 int sy2)
        Utility method to draw the off screen buffer
        Parameters:
        dx1 - the x coordinate of the first corner of the destination rectangle.
        dy1 - the y coordinate of the first corner of the destination rectangle.
        dx2 - the x coordinate of the second corner of the destination rectangle.
        dy2 - the y coordinate of the second corner of the destination rectangle.
        sx1 - the x coordinate of the first corner of the source rectangle.
        sy1 - the y coordinate of the first corner of the source rectangle.
        sx2 - the x coordinate of the second corner of the source rectangle.
        sy2 - the y coordinate of the second corner of the source rectangle.
        Returns:
        true if the current output representation is complete; false otherwise.
      • drawImage

        public boolean drawImage​(java.awt.Graphics g)
      • getBackgroundImage

        public javax.swing.ImageIcon getBackgroundImage()
        Returns the background image.
        Returns:
        Returns the backgroundImage.
      • setBackgroundImage

        public void setBackgroundImage​(javax.swing.ImageIcon backgroundImage)
        Sets the background image. Fires a property change event for PROPERTY_BACKGROUNDIMAGE.
        Parameters:
        backgroundImage - The backgroundImage to set.
      • setBackground

        public void setBackground​(java.awt.Color bg)
        Override parent to clear offscreen double buffer
        Overrides:
        setBackground in class javax.swing.JComponent
      • isBackgroundScaled

        public boolean isBackgroundScaled()
        Returns:
        the backgroundScaled
      • getOffscreenOffset

        public java.awt.geom.Point2D getOffscreenOffset()
        Returns:
        the offscreenOffset
      • setOffscreenOffset

        public void setOffscreenOffset​(java.awt.geom.Point2D offscreenOffset)
        Parameters:
        offscreenOffset - the offscreenOffset to set
      • isVolatileOffscreen

        public boolean isVolatileOffscreen()
        Returns:
        the volatileOffscreen
      • setVolatileOffscreen

        public void setVolatileOffscreen​(boolean volatileOffscreen)
        Parameters:
        volatileOffscreen - the volatileOffscreen to set
      • setBackgroundScaled

        public void setBackgroundScaled​(boolean backgroundScaled)
        Parameters:
        backgroundScaled - the backgroundScaled to set
      • getBackgroundComponent

        public java.awt.Component getBackgroundComponent()
        Returns:
        the backgroundComponent
      • setBackgroundComponent

        public void setBackgroundComponent​(java.awt.Component backgroundComponent)
        Parameters:
        backgroundComponent - the backgroundComponent to set
      • setOpaque

        public void setOpaque​(boolean opaque)
        Overrides:
        setOpaque in class javax.swing.JComponent
      • getModel

        public GraphModel getModel()
        Returns the GraphModel that is providing the data.
        Returns:
        the model that is providing the data
      • setModel

        public void setModel​(GraphModel newModel)
        Sets the GraphModel that will provide the data. Note: Updates the current GraphLayoutCache's model using setModel if the GraphLayoutCache points to a different model.

        Fires a property change for the GRAPH_MODEL_PROPERTY.

        Parameters:
        newModel - the GraphModel that is to provide the data
      • getGraphLayoutCache

        public GraphLayoutCache getGraphLayoutCache()
        Returns the GraphLayoutCache that is providing the view-data.
        Returns:
        the view that is providing the view-data
      • setGraphLayoutCache

        public void setGraphLayoutCache​(GraphLayoutCache newLayoutCache)
        Sets the GraphLayoutCache that will provide the view-data.

        Note: Updates the graphs's model using using the model from the layout cache.

        Fires a property change for the GRAPH_LAYOUT_CACHE_PROPERTY.

        Parameters:
        newLayoutCache - the GraphLayoutCache that is to provide the view-data
      • getMarqueeHandler

        public BasicMarqueeHandler getMarqueeHandler()
        Returns the MarqueeHandler that will handle marquee selection.
      • setMarqueeHandler

        public void setMarqueeHandler​(BasicMarqueeHandler newMarquee)
        Sets the MarqueeHandler that will handle marquee selection.
        Parameters:
        newMarquee - the BasicMarqueeHandler that is to provide marquee handling
      • setInvokesStopCellEditing

        public void setInvokesStopCellEditing​(boolean newValue)
        Determines what happens when editing is interrupted by selecting another cell in the graph, a change in the graph's data, or by some other means. Setting this property to true causes the changes to be automatically saved when editing is interrupted.

        Fires a property change for the INVOKES_STOP_CELL_EDITING_PROPERTY.

        Parameters:
        newValue - true means that stopCellEditing is invoked when editing is interruped, and data is saved; false means that cancelCellEditing is invoked, and changes are lost
      • getInvokesStopCellEditing

        public boolean getInvokesStopCellEditing()
        Returns the indicator that tells what happens when editing is interrupted.
        Returns:
        the indicator that tells what happens when editing is interrupted
        See Also:
        setInvokesStopCellEditing(boolean)
      • isCellEditable

        public boolean isCellEditable​(java.lang.Object cell)
        Returns true if the graph and the cell are editable. This is invoked from the UI before editing begins to ensure that the given cell can be edited.
        Returns:
        true if the specified cell is editable
        See Also:
        isEditable()
      • getToolTipText

        public java.lang.String getToolTipText​(java.awt.event.MouseEvent e)
        Overrides JComponent'sgetToolTipText method in order to allow the graph to create a tooltip for the topmost cell under the mousepointer. This differs from JTree where the renderers tooltip is used.

        NOTE: For JGraph to properly display tooltips of its renderers, JGraph must be a registered component with the ToolTipManager. This can be done by invoking ToolTipManager.sharedInstance().registerComponent(graph). This is not done automatically!

        Overrides:
        getToolTipText in class javax.swing.JComponent
        Parameters:
        e - the MouseEvent that initiated the ToolTip display
        Returns:
        a string containing the tooltip or null if event is null
      • setSelectionModel

        public void setSelectionModel​(GraphSelectionModel selectionModel)
        Sets the graph's selection model. When a null value is specified an emtpy selectionModel is used, which does not allow selections.
        Parameters:
        selectionModel - the GraphSelectionModel to use, or null to disable selections
        See Also:
        GraphSelectionModel
      • getSelectionModel

        public GraphSelectionModel getSelectionModel()
        Returns the model for selections. This should always return a non- null value. If you don't want to allow anything to be selected set the selection model to null, which forces an empty selection model to be used.
        Returns:
        the current selection model
        See Also:
        setSelectionModel(org.jgraph.graph.GraphSelectionModel)
      • clearSelection

        public void clearSelection()
        Clears the selection.
      • isSelectionEmpty

        public boolean isSelectionEmpty()
        Returns true if the selection is currently empty.
        Returns:
        true if the selection is currently empty
      • addGraphSelectionListener

        public void addGraphSelectionListener​(GraphSelectionListener tsl)
        Adds a listener for GraphSelection events.
        Parameters:
        tsl - the GraphSelectionListener that will be notified when a cell is selected or deselected (a "negative selection")
      • removeGraphSelectionListener

        public void removeGraphSelectionListener​(GraphSelectionListener tsl)
        Removes a GraphSelection listener.
        Parameters:
        tsl - the GraphSelectionListener to remove
      • fireValueChanged

        protected void fireValueChanged​(GraphSelectionEvent e)
        Notifies all listeners that have registered interest for notification on this event type. The event instance is lazily created using the parameters passed into the fire method.
        Parameters:
        e - the GraphSelectionEvent generated by the GraphSelectionModel when a cell is selected or deselected
        See Also:
        EventListenerList
      • setSelectionCell

        public void setSelectionCell​(java.lang.Object cell)
        Selects the specified cell.
        Parameters:
        cell - the Object specifying the cell to select
      • setSelectionCells

        public void setSelectionCells​(java.lang.Object[] cells)
        Selects the specified cells.
        Parameters:
        cells - an array of objects that specifies the cells to select
      • addSelectionCell

        public void addSelectionCell​(java.lang.Object cell)
        Adds the cell identified by the specified Object to the current selection.
        Parameters:
        cell - the cell to be added to the selection
      • addSelectionCells

        public void addSelectionCells​(java.lang.Object[] cells)
        Adds each cell in the array of cells to the current selection.
        Parameters:
        cells - an array of objects that specifies the cells to add
      • removeSelectionCell

        public void removeSelectionCell​(java.lang.Object cell)
        Removes the cell identified by the specified Object from the current selection.
        Parameters:
        cell - the cell to be removed from the selection
      • getSelectionCell

        public java.lang.Object getSelectionCell()
        Returns the first selected cell.
        Returns:
        the Object for the first selected cell, or null if nothing is currently selected
      • getSelectionCells

        public java.lang.Object[] getSelectionCells()
        Returns all selected cells.
        Returns:
        an array of objects representing the selected cells, or null if nothing is currently selected
      • getSelectionCells

        public java.lang.Object[] getSelectionCells​(java.lang.Object[] cells)
        Returns all selected cells in cells.
      • getSelectionCellAt

        public java.lang.Object getSelectionCellAt​(java.awt.geom.Point2D pt)
        Returns the selection cell at the specified location.
        Returns:
        Returns the selection cell for pt.
      • getSelectionCount

        public int getSelectionCount()
        Returns the number of cells selected.
        Returns:
        the number of cells selected
      • isCellSelected

        public boolean isCellSelected​(java.lang.Object cell)
        Returns true if the cell is currently selected.
        Parameters:
        cell - an object identifying a cell
        Returns:
        true if the cell is selected
      • scrollCellToVisible

        public void scrollCellToVisible​(java.lang.Object cell)
        Scrolls to the specified cell. Only works when this JGraph is contained in a JScrollPane.
        Parameters:
        cell - the object identifying the cell to bring into view
      • scrollPointToVisible

        public void scrollPointToVisible​(java.awt.geom.Point2D p)
        Makes sure the specified point is visible.
        Parameters:
        p - the point that should be visible
      • isEditing

        public boolean isEditing()
        Returns true if the graph is being edited. The item that is being edited can be obtained using getEditingCell.
        Returns:
        true if the user is currently editing a cell
        See Also:
        getSelectionCell()
      • stopEditing

        public boolean stopEditing()
        Ends the current editing session. (The DefaultGraphCellEditor object saves any edits that are currently in progress on a cell. Other implementations may operate differently.) Has no effect if the tree isn't being edited.
        Note:
        To make edit-saves automatic whenever the user changes their position in the graph, use setInvokesStopCellEditing(boolean).
        Returns:
        true if editing was in progress and is now stopped, false if editing was not in progress
      • cancelEditing

        public void cancelEditing()
        Cancels the current editing session. Has no effect if the graph isn't being edited.
      • startEditingAtCell

        public void startEditingAtCell​(java.lang.Object cell)
        Selects the specified cell and initiates editing. The edit-attempt fails if the CellEditor does not allow editing for the specified item.
      • getEditingCell

        public java.lang.Object getEditingCell()
        Returns the cell that is currently being edited.
        Returns:
        the cell being edited
      • graphDidChange

        public void graphDidChange()
        Messaged when the graph has changed enough that we need to resize the bounds, but not enough that we need to remove the cells (e.g cells were inserted into the graph). You should never have to invoke this, the UI will invoke this as it needs to. (Note: This is invoked by GraphUI, eg. after moving.)
      • getImage

        public java.awt.image.BufferedImage getImage​(java.awt.Color bg,
                                                     int inset)
        Returns a BufferedImage for the graph using inset as an empty border around the cells of the graph. If bg is null then a transparent background is applied to the image, else the background is filled with the bg color. Therefore, one should only use a null background if the fileformat support transparency, eg. GIF and PNG. For JPG, you can use Color.WHITE for example.
        Returns:
        Returns an image of the graph.
      • getClipRectangle

        public java.awt.geom.Rectangle2D getClipRectangle​(GraphLayoutCacheEvent.GraphLayoutCacheChange change)
        Calculates the clip
        Parameters:
        change -
        Returns:
        the total region dirty as a result of this change
      • getPreferredScrollableViewportSize

        public java.awt.Dimension getPreferredScrollableViewportSize()
        Returns the preferred display size of a JGraph. The height is determined from getPreferredWidth.
        Specified by:
        getPreferredScrollableViewportSize in interface javax.swing.Scrollable
        Returns:
        the graph's preferred size
      • getScrollableUnitIncrement

        public int getScrollableUnitIncrement​(java.awt.Rectangle visibleRect,
                                              int orientation,
                                              int direction)
        Returns the amount to increment when scrolling. The amount is 4.
        Specified by:
        getScrollableUnitIncrement in interface javax.swing.Scrollable
        Parameters:
        visibleRect - the view area visible within the viewport
        orientation - either SwingConstants.VERTICAL or SwingConstants.HORIZONTAL
        direction - less than zero to scroll up/left, greater than zero for down/right
        Returns:
        the "unit" increment for scrolling in the specified direction
        See Also:
        JScrollBar.setUnitIncrement(int)
      • getScrollableBlockIncrement

        public int getScrollableBlockIncrement​(java.awt.Rectangle visibleRect,
                                               int orientation,
                                               int direction)
        Returns the amount for a block increment, which is the height or width of visibleRect, based on orientation.
        Specified by:
        getScrollableBlockIncrement in interface javax.swing.Scrollable
        Parameters:
        visibleRect - the view area visible within the viewport
        orientation - either SwingConstants.VERTICAL or SwingConstants.HORIZONTAL
        direction - less than zero to scroll up/left, greater than zero for down/right.
        Returns:
        the "block" increment for scrolling in the specified direction
        See Also:
        JScrollBar.setBlockIncrement(int)
      • getScrollableTracksViewportWidth

        public boolean getScrollableTracksViewportWidth()
        Returns false to indicate that the width of the viewport does not determine the width of the graph, unless the preferred width of the graph is smaller than the viewports width. In other words: ensure that the graph is never smaller than its viewport.
        Specified by:
        getScrollableTracksViewportWidth in interface javax.swing.Scrollable
        Returns:
        false
        See Also:
        Scrollable.getScrollableTracksViewportWidth()
      • getScrollableTracksViewportHeight

        public boolean getScrollableTracksViewportHeight()
        Returns false to indicate that the height of the viewport does not determine the height of the graph, unless the preferred height of the graph is smaller than the viewports height. In other words: ensure that the graph is never smaller than its viewport.
        Specified by:
        getScrollableTracksViewportHeight in interface javax.swing.Scrollable
        Returns:
        false
        See Also:
        Scrollable.getScrollableTracksViewportHeight()
      • paramString

        protected java.lang.String paramString()
        Returns a string representation of this JGraph. This method is intended to be used only for debugging purposes, and the content and format of the returned string may vary between implementations. The returned string may be empty but may not be null.
        Overrides:
        paramString in class javax.swing.JComponent
        Returns:
        a string representation of this JGraph.
      • main

        public static void main​(java.lang.String[] args)