org.jgraph
public class JGraph extends JComponent implements Scrollable, Accessible, Serializable
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:
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
javax.swing.InputMapand javax.swing.ActionMapto associate
an javax.swing.Actionobject with a javax.swing.KeyStrokeand
execute the action under specified conditions.
Nested Class Summary | |
---|---|
static class | JGraph.EmptySelectionModelEmptySelectionModel 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.
|
Field Summary | |
---|---|
static String | ANTIALIASED_PROPERTY
Bound property name for antiAliased . |
protected boolean | antiAliased True if the graph is anti-aliased. |
protected boolean | autoResizeGraph
True if the graph should be auto resized when cells are moved below the
bottom right corner. |
protected Component | backgroundComponent A Component responsible for drawing the background image, if any |
protected 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.
|
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). |
static int | DOT_GRID_MODE |
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. |
protected int | editClickCount Number of clicks for editing to start. |
protected boolean | enabled True if the graph allows interactions. |
static String | EDITABLE_PROPERTY
Bound property name for editable . |
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. |
protected 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 String | GRAPH_LAYOUT_CACHE_PROPERTY
Bound property name for graphModel . |
static String | GRAPH_MODEL_PROPERTY
Bound property name for graphModel . |
static String | GRID_COLOR_PROPERTY
Bound property name for gridColor . |
static String | GRID_SIZE_PROPERTY
Bound property name for gridSize . |
static String | GRID_VISIBLE_PROPERTY
Bound property name for gridVisible . |
protected Color | handleColor
Color of the handles and locked handles. |
protected int | handleSize Size of a handle. |
protected Color | highlightColor Highlight Color. |
static String | HANDLE_COLOR_PROPERTY
Bound property name for gridColor . |
static String | HANDLE_SIZE_PROPERTY
Bound property name for gridColor . |
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. |
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. |
static String | INVOKES_STOP_CELL_EDITING_PROPERTY
Bound property name for messagesStopCellEditing . |
static boolean | IS_MAC |
protected boolean | lastBufferAllocated Stores whether the last double buffer allocation worked or not |
protected Color | lockedHandleColor
Color of the handles and locked handles. |
static int | LINE_GRID_MODE |
static String | LOCKED_HANDLE_COLOR_PROPERTY
Bound property name for gridColor . |
protected BasicMarqueeHandler | marquee Handler for marquee selection. |
protected 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 |
static String | MARQUEE_HANDLER_PROPERTY
Bound property name for graphModel . |
protected Graphics | offgraphics Graphics object of off screen image |
protected Image | offscreen Off screen image for double buffering |
protected 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 recreated.
|
protected Rectangle2D | offscreenDirty Whether or not the current background image is correct |
protected Point2D | offscreenOffset The offset of the offscreen buffer |
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 String | PORTS_SCALED_PROPERTY
Bound property name for portsScaled . |
static String | PORTS_VISIBLE_PROPERTY
Bound property name for gridVisible . |
static String | PROPERTY_BACKGROUNDIMAGE
Bound property name for backgroundImage . |
protected double | scale Scale of the graph. |
protected boolean | selectionEnabled
True if the graph allows selection of cells. |
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. |
static String | SCALE_PROPERTY
Bound property name for scale . |
static String | SELECTIONENABLED_PROPERTY
Bound property name for selectionEnabled . |
static String | SELECTION_MODEL_PROPERTY
Bound property name for selectionModel . |
protected int | tolerance Maximum distance between a cell and the mousepointer. |
protected boolean | volatileOffscreen
Whether or not to try to use a volatile offscreen buffer for double
buffering. |
static String | VERSION |
protected boolean | wholeOffscreenDirty |
protected double | wholeOffscreenDirtyProportion |
protected boolean | xorEnabled
True if the graph accepts transfers from other components (graphs). |
Constructor Summary | |
---|---|
JGraph()
Returns a JGraph with a sample model. | |
JGraph(GraphModel model)
Returns an instance of JGraph which displays the the
specified data model.
| |
JGraph(GraphLayoutCache cache)
Returns an instance of JGraph which displays the data
model using the specified view.
| |
JGraph(GraphModel model, GraphLayoutCache cache)
Returns an instance of JGraph which displays the specified
data model using the specified view.
| |
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 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 | |
---|---|
void | addGraphSelectionListener(GraphSelectionListener tsl)
Adds a listener for GraphSelection events.
|
void | addOffscreenDirty(Rectangle2D offscreenDirty)
Adds the specified area to the region deemed dirty for the next double
buffered redraw
|
static void | addSampleData(GraphModel model)
Creates and returns a sample GraphModel . |
void | addSelectionCell(Object cell)
Adds the cell identified by the specified Object to the
current selection.
|
void | addSelectionCells(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()
Clears the region deemed dirty for the next double buffered redraw |
void | clearSelection()
Clears the selection. |
Map | cloneCells(Object[] cells)
Returns a map of (cell, clone)-pairs for all cells and
their children. |
String | convertValueToString(Object value)
Converts the specified value to string. |
static Map | createBounds(AttributeMap map, int x, int y, 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(Graphics g) |
protected void | fireValueChanged(GraphSelectionEvent e)
Notifies all listeners that have registered interest for notification on
this event type. |
Point2D | fromScreen(Point2D p)
Downscale the given point in place, using the given instance.
|
Rectangle2D | fromScreen(Rectangle2D rect)
Downscale the given rectangle in place, using the given instance.
|
AttributeMap | getAttributes(Object cell)
Returns the attributes for the specified cell. |
Component | getBackgroundComponent() |
ImageIcon | getBackgroundImage()
Returns the background image.
|
Rectangle2D | getCellBounds(Object cell)
Returns the bounding rectangle of the specified cell. |
Rectangle2D | getCellBounds(Object[] cells)
Returns the bounding rectangle of the specified cells. |
Point2D | getCenterPoint()
Returns the center of the component relative to the parent viewport's
position. |
Rectangle2D | getClipRectangle(GraphLayoutCacheEvent.GraphLayoutCacheChange change)
Calculates the clip |
PortView | getDefaultPortForCell(Object cell)
Returns the default portview for the specified cell. |
Object[] | getDescendants(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. |
Object | getEditingCell()
Returns the cell that is currently being edited.
|
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.
|
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.
|
Color | getHandleColor()
Returns the current handle color. |
int | getHandleSize()
Returns the size of the handles. |
Color | getHighlightColor()
Returns the current highlight color. |
BufferedImage | getImage(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. |
Color | getLockedHandleColor()
Returns the current second handle color. |
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.
|
Object | getNextCellForLocation(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 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. |
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. |
Graphics | getOffgraphics()
Returns the current double buffering graphics object. |
Image | getOffscreen() |
Rectangle2D | getOffscreenDirty()
Returns the area that is deemed dirty for the next double buffered redraw
|
Point2D | getOffscreenOffset() |
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. |
Dimension | getPreferredScrollableViewportSize()
Returns the preferred display size of a JGraph . |
Object[] | getRoots()
Returns all root cells (cells that have no parent) that the model
contains. |
Object[] | getRoots(Rectangle clip)
Returns all cells that intersect the given rectangle. |
double | getScale()
Returns the current scale.
|
int | getScrollableBlockIncrement(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(Rectangle visibleRect, int orientation, int direction)
Returns the amount to increment when scrolling. |
Object | getSelectionCell()
Returns the first selected cell.
|
Object | getSelectionCellAt(Point2D pt)
Returns the selection cell at the specified location.
|
Object[] | getSelectionCells()
Returns all selected cells.
|
Object[] | getSelectionCells(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. |
String | getToolTipText(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.
|
String | getUIClassID()
Returns the name of the L&F class that renders this component.
|
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(Object cell)
Returns true if the graph and the cell are editable. |
boolean | isCellSelected(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(String[] args) |
Object[] | order(Object[] cells)
Returns all cells including all descendants ordered using
the current layering data stored by the model. |
protected String | paramString()
Returns a string representation of this JGraph . |
void | refresh()
Repaints the entire graph, regardless of what is marked dirty |
void | releaseOffscreenResources()
Schedules the offscreen resources taken by the offscreen buffer to
be reclaimed. |
void | removeGraphSelectionListener(GraphSelectionListener tsl)
Removes a GraphSelection listener.
|
void | removeSelectionCell(Object cell)
Removes the cell identified by the specified Object from the current
selection.
|
void | scrollCellToVisible(Object cell)
Scrolls to the specified cell. |
void | scrollPointToVisible(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(Color bg)
Override parent to clear offscreen double buffer |
void | setBackgroundComponent(Component backgroundComponent) |
void | setBackgroundImage(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(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(Color newColor)
Sets the current handle color. |
void | setHandleSize(int size)
Sets the size of the handles. |
void | setHighlightColor(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(Color newColor)
Sets the current second handle color. |
void | setMarqueeColor(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(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, Point2D center)
Sets the current scale and centers the graph to the specified point
|
void | setSelectionCell(Object cell)
Selects the specified cell.
|
void | setSelectionCells(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. |
protected void | setupOffScreen(int x, int y, int width, int height, Rectangle2D newOffscreenBuffer)
Utility method that initialises the offscreen graphics area |
void | setUI(GraphUI ui)
Sets the L&F object that renders this component.
|
void | setVolatileOffscreen(boolean volatileOffscreen) |
void | setXorEnabled(boolean flag)
Sets if the graph accepts drops/pastes from external sources. |
Point2D | snap(Point2D p)
Returns the given point applied to the grid.
|
Rectangle2D | snap(Rectangle2D r)
Returns the given rectangle applied to the grid.
|
Dimension2D | snap(Dimension2D d)
Returns the given dimension applied to the grid.
|
void | startEditingAtCell(Object cell)
Selects the specified cell and initiates editing. |
boolean | stopEditing()
Ends the current editing session. |
Point2D | toScreen(Point2D p)
Upscale the given point in place, using the given instance.
|
Rectangle2D | toScreen(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.
|
antiAliased
.editable
.graphModel
.graphModel
.gridColor
.gridSize
.gridVisible
.gridColor
.gridColor
.stopCellEditing
is
invoked, and changes are saved. If false, cancelCellEditing
is invoked, and changes are discarded.messagesStopCellEditing
.gridColor
.graphModel
.portsScaled
.gridVisible
.backgroundImage
.selectionListeners
.scale
.selectionEnabled
.selectionModel
.JGraph
with a sample model.JGraph
which displays the the
specified data model.
Parameters: model
the GraphModel
to use as the data model
JGraph
which displays the data
model using the specified view.
Parameters: cache
the GraphLayoutCache
to use as the view
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
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
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
GraphSelection
events.
Parameters: tsl
the GraphSelectionListener
that will be
notified when a cell is selected or deselected (a "negative
selection")
Parameters: offscreenDirty the region to add
GraphModel
. Used primarily
for beanbuilders to show something interesting.Object
to the
current selection.
Parameters: cell the cell to be added to the selection
Parameters: cells an array of objects that specifies the cells to add
cells
and
their children. Special care is taken to replace the anchor references
between ports. (Iterative implementation.)Parameters: width height
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.
Parameters: e
the GraphSelectionEvent
generated by the
GraphSelectionModel
when a cell is selected or
deselected
See Also: javax.swing.event.EventListenerList
Parameters: p the point to be downscaled
Returns: the downscaled point instance
Parameters: rect the rectangle to be downscaled
Returns: the down-scaled rectangle instance
Returns: the backgroundComponent
Returns: Returns the backgroundImage.
Parameters: change
Returns: the total region dirty as a result of this change
Parameters: cell the cell whose port is to be obtained
Returns: the port view of the specified cell
cells
including all descendants in the passed
in order of cells.Returns: whether edge labels may be dragged and dropped
Returns: the cell being edited
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
GraphLayoutCache
that is providing the
view-data.
Returns: the view that is providing the view-data
Returns: the size of the grid as an int
Color.WHITE
for example.
Returns: Returns an image of the graph.
Returns: the indicator that tells what happens when editing is interrupted
See Also: JGraph
c
in
the specified array of views. The views must be in order, as returned,
for example, by GraphLayoutCache.order(Object[]).MarqueeHandler
that will handle marquee
selection.GraphModel
that is providing the data.
Returns: the model that is providing the data
current
cell. Returns the topmost cell if there are no
more cells behind current
. Note: This does only return
visible cells.current
.
This is used to iterate overlapping cells, and cells that are grouped.
The current selection affects this method. current
.
This is used to iterate overlapping cells, and cells that are grouped.
The current selection affects this method. c
in
the specified array of views. The views must be in order, as returned,
for example, by GraphLayoutCache.order(Object[]).c
in
the specified array of views. The views must be in order, as returned,
for example, by GraphLayoutCache.order(Object[]).Returns: the off screen graphics
Returns: the offscreen
Returns: the area that is deemed dirty for the next double buffered redraw
Returns: the offscreenOffset
JGraph
. The
height is determined from getPreferredWidth
.
Returns: the graph's preferred size
Returns: the current scale as a double
visibleRect
, based on orientation
.
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: javax.swing.JScrollBar#setBlockIncrement(int)
Returns: false
See Also: Scrollable#getScrollableTracksViewportHeight
Returns: false
See Also: Scrollable#getScrollableTracksViewportWidth
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: javax.swing.JScrollBar#setUnitIncrement(int)
Returns: the Object
for the first selected cell, or
null
if nothing is currently selected
Returns: Returns the selection cell for pt
.
Returns: an array of objects representing the selected cells, or
null
if nothing is currently selected
cells
.Returns: the number of cells selected
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: JGraph
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!
Parameters: e
the MouseEvent
that initiated the
ToolTip
display
Returns: a string containing the tooltip or null
if
event
is null
Returns: the GraphUI object that renders this component
Returns: the string "GraphUI"
See Also: JComponent#getUIClassID
Returns: the bounds of the parent viewport
Returns: true if the graph is anti aliased
moveBeyondGraphBounds
if false
auto resizing
is automatically disabledReturns: the backgroundScaled
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: JGraph
Parameters: cell an object identifying a cell
Returns: true if the cell is selected
Returns: true if the graph is editable
getEditingCell
.
Returns: true if the user is currently editing a cell
See Also: JGraph
Returns: true if the grid is visible
Returns: the groupsEditable
Returns: the moveBeyondGraphBounds
Returns: true if the ports are visible
Returns: true if the ports are visible
Returns: true if the graph allows invalid null ports during previews
Returns: true if the selection is currently empty
Returns: true if the cell selection is enabled
Returns: the volatileOffscreen
cells
including all descendants ordered using
the current layering data stored by the model.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
.
Returns: a string representation of this JGraph
.
GraphSelection
listener.
Parameters: tsl
the GraphSelectionListener
to remove
Parameters: cell the cell to be removed from the selection
JGraph
is contained in a JScrollPane
.
Parameters: cell the object identifying the cell to bring into view
Parameters: p the point that should be visible
Fires a property change for the ANTIALIASED_PROPERTY.
Parameters: newValue whether to turn antialiasing on or off
Parameters: backgroundComponent the backgroundComponent to set
Parameters: backgroundImage The backgroundImage to set.
Parameters: backgroundScaled the backgroundScaled to set
Parameters: edgeLabelsMovable true if edge labels may be dragged
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
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
Parameters: mode
The current grid view mode. Valid values are
DOT_GRID_MODE
,CROSS_GRID_MODE
, and
LINE_GRID_MODE
.
Fires a property change for the GRID_SIZE_PROPERTY.
Parameters: newSize the new size of the grid in pixels
Fires a property change for the GRID_VISIBLE_PROPERTY.
Parameters: groupsEditable the groupsEditable to set
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
MarqueeHandler
that will handle marquee
selection.
Parameters: newMarquee
the BasicMarqueeHandler
that is to provide
marquee handling
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
Parameters: moveBeyondGraphBounds the moveBeyondGraphBounds to set
Parameters: offscreenOffset the offscreenOffset to set
Fires a property change for the PORTS_SCALED_PROPERTY.
Fires a property change for the PORTS_VISIBLE_PROPERTY.
Parameters: flag a boolean value, true if the graph allows invalid null ports during previews
Fires a property change for the SCALE_PROPERTY.
Parameters: newValue the new scale
Parameters: newValue the new scale center the center of the graph
Parameters: cell
the Object
specifying the cell to select
Parameters: cells an array of objects that specifies the cells to select
Parameters: flag a boolean value, true if cell selection is enabled
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
Parameters: x y width height newOffscreenBuffer
Parameters: ui the GraphUI L&F object
See Also: javax.swing.UIDefaults#getUI(JComponent)
Parameters: volatileOffscreen the volatileOffscreen to set
Parameters: p a point in screen coordinates.
Returns: the same point applied to the grid.
Parameters: r a rectangle in screen coordinates.
Returns: the same rectangle applied to the grid.
Parameters: d a dimension in screen coordinates to snap to.
Returns: the same dimension applied to the grid.
CellEditor
does not allow editing for the specified
item.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 JGraph.
Returns: true if editing was in progress and is now stopped, false if editing was not in progress
Parameters: p the point to be upscaled
Returns: the upscaled point instance
Parameters: rect the rectangle to be upscaled
Returns: the upscaled rectangle instance
view
.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.
See Also: JComponent#updateUI