|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectjava.awt.Component
java.awt.Container
javax.swing.JComponent
org.jgraph.JGraph
public class JGraph
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
JGraph supports in-place editing of text and shapes. These features can be disabled using the setEnabled() method, which blocks all features, or individually, using the following methods:
setEditable() controls in-place editing of cells. Moving, cloning, sizing, and bending, connection and disconnection of edges may also be disabled using the respective methods, namemly setMoveable(), setCloneable(), setSizeable(), setBendable(), setConnectable() and setDisconnectable().
The model offers fainer control of connection establishment based on the passed-in edge and port. The individual cells offer yet another level of control in that they may allow/disallow being edited, moved, 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
If you are interested in handling modifications, implement
the GraphEventHandler
interface and add the instance
using the method addGraphEventHandler
.
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 InputMap
and
ActionMap
to associate an Action
object with a
KeyStroke
and execute the action under specified conditions.
Nested Class Summary | |
---|---|
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 |
---|
JComponent.AccessibleJComponent |
Nested classes/interfaces inherited from class java.awt.Container |
---|
Container.AccessibleAWTContainer |
Nested classes/interfaces inherited from class java.awt.Component |
---|
Component.AccessibleAWTComponent, Component.BltBufferStrategy, Component.FlipBufferStrategy |
Field Summary | |
---|---|
protected boolean |
antiAliased
True if the graph is anti-aliased. |
static String |
ANTIALIASED_PROPERTY
Bound property name for antiAliased . |
protected boolean |
bendable
True if the graph allows points to be midified/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 |
editable
True if the graph allows editing the value of a cell. |
static 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 String |
GRAPH_LAYOUT_CACHE_PROPERTY
Bound property name for graphModel . |
static 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 String |
GRID_SIZE_PROPERTY
Bound property name for gridSize . |
static String |
GRID_VISIBLE_PROPERTY
Bound property name for gridVisible . |
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 int |
gridSize
The size of the grid in points. |
protected boolean |
gridVisible
True if the grid is visible. |
protected Color |
handleColor
Color of the handles and locked handles. |
protected int |
handleSize
Size of a handle. |
protected Color |
highlightColor
Highlight Color. |
static 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 int |
LINE_GRID_MODE
|
protected Color |
lockedHandleColor
Color of the handles and locked handles. |
protected BasicMarqueeHandler |
marquee
Handler for marquee selection. |
static String |
MARQUEE_HANDLER_PROPERTY
Bound property name for graphModel . |
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. |
static String |
PORTS_VISIBLE_PROPERTY
Bound property name for gridVisible . |
protected boolean |
portsVisible
True if the ports are visible. |
protected double |
scale
Scale of the graph. |
static String |
SCALE_PROPERTY
Bound property name for scale . |
static String |
SELECTION_MODEL_PROPERTY
Bound property name for selectionModel . |
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 |
selectNewCells
True if inserted cells should be selected. |
protected boolean |
sizeable
True if the graph allows cells to be resized. |
protected int |
tolerance
Maximum distance between a cell and the mousepointer. |
static String |
VERSION
|
Fields inherited from class javax.swing.JComponent |
---|
accessibleContext, 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 |
---|
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 | |
---|---|
JGraph()
Returns a JGraph with a sample model. |
|
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 using the specified view. |
|
JGraph(GraphModel model,
GraphLayoutCache view)
Returns an instance of JGraph which displays
the specified data model using the specified view. |
|
JGraph(GraphModel model,
GraphLayoutCache view,
BasicMarqueeHandler mh)
Returns an instance of JGraph which displays
the specified data model using the specified view. |
Method Summary | |
---|---|
void |
addGraphSelectionListener(GraphSelectionListener tsl)
Adds a listener for GraphSelection events. |
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 |
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(int x,
int y,
Color c)
Returns an attributeMap for the specified position and color. |
protected static GraphLayoutCache |
createDefaultGraphView(JGraph graph)
Creates and returns a default GraphLayoutCache . |
protected EdgeView |
createEdgeView(Edge e,
CellMapper cm)
Deprecated. replaced by createEdgeView(Object,CellMapper)
since JGraph no longer exposes dependecies on
GraphCell subclasses (Port, Edge) |
protected EdgeView |
createEdgeView(Object e,
CellMapper cm)
Constructs an EdgeView view for the specified object. |
protected PortView |
createPortView(Object p,
CellMapper cm)
Constructs a PortView view for the specified object. |
protected PortView |
createPortView(Port p,
CellMapper cm)
Deprecated. replaced by createPortView(Object,CellMapper)
since JGraph no longer exposes dependecies on
GraphCell subclasses (Port, Edge) |
protected VertexView |
createVertexView(Object v,
CellMapper cm)
Constructs a VertexView view for the specified object. |
CellView |
createView(Object cell,
CellMapper map)
Constructs a view for the specified cell and associates it with the specified object using the specified CellMapper. |
protected void |
fireValueChanged(GraphSelectionEvent e)
Notifies all listeners that have registered interest for notification on this event type. |
Point |
fromScreen(Point p)
Downscale the given point in place, ie. |
Rectangle |
fromScreen(Rectangle rect)
Downscale the given rectangle in place, ie. |
Rectangle |
getCellBounds(Object cell)
Returns the bounding rectangle of the specified cell. |
Rectangle |
getCellBounds(Object[] cells)
Returns the bounding rectangle of the specified cells. |
Object[] |
getDescendantList(Object[] cells)
Returns all cells including all descendants. |
Object[] |
getDescendants(Object[] cells)
Returns all cells including all descendants. |
int |
getEditClickCount()
Returns the number of clicks for editing to start. |
Object |
getEditingCell()
Returns the cell that is currently being edited. |
Object |
getFirstCellForLocation(int x,
int 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. |
int |
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. |
boolean |
getInvokesStopCellEditing()
Returns the indicator that tells what happens when editing is interrupted. |
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,
int x,
int y)
Returns the cell at the specified location that is "behind" the current cell. |
CellView |
getNextViewAt(CellView[] cells,
CellView c,
int x,
int y)
Returns the next view at the specified location wrt. |
CellView |
getNextViewAt(CellView current,
int x,
int y)
Returns the next view at the specified location wrt. |
Object |
getPortForLocation(int x,
int y)
Convenience method to return the port at the specified location. |
PortView |
getPortViewAt(int x,
int y)
Returns the portview at the specified location. |
Dimension |
getPreferredScrollableViewportSize()
Returns the preferred display size of a JGraph . |
Object[] |
getRoots()
Returns all cells 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[] |
getSelectionCells()
Returns all selected 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 event)
Overrides JComponent 's getToolTipText
method in order to allow the graph to create a tooltip
for the topmost cell under the mousepointer. |
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. |
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 |
isBendable()
Returns true if the graph allows adding/removing/modifying points. |
boolean |
isCellEditable(Object cell)
Returns isEditable . |
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, ie. |
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 |
isMoveable()
|
boolean |
isPortsVisible()
Returns true if the ports will be visible. |
boolean |
isSelectionEmpty()
Returns true if the selection is currently empty. |
boolean |
isSelectNewCells()
Returns true if selected edges should be disconnected from unselected vertices when they are moved. |
boolean |
isSizeable()
Returns true if the graph allows cells to be resized. |
static void |
main(String[] args)
|
protected String |
paramString()
Returns a string representation of this JGraph . |
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(Point p)
Makes sure the specified point is visible. |
void |
setAntiAliased(boolean newValue)
Sets antialiasing on or off based on the boolean value. |
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 |
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(int newSize)
Sets the size of the grid. |
void |
setGridVisible(boolean flag)
If set to true, the grid will be visible. |
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 |
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 |
setPortsVisible(boolean flag)
If set to true, the ports will be visible. |
void |
setScale(double newValue)
Sets the current scale. |
void |
setSelectionCell(Object cell)
Selects the specified cell. |
void |
setSelectionCells(Object[] cells)
Selects the specified cells. |
void |
setSelectionModel(GraphSelectionModel selectionModel)
Sets the graph's selection model. |
void |
setSelectNewCells(boolean flag)
Sets if selected edges should be disconnected from unselected vertices when they are moved. |
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. |
Dimension |
snap(Dimension d)
Returns the given point applied to the grid. |
Point |
snap(Point p)
Returns the given point applied to the grid. |
void |
startEditingAtCell(Object cell)
Selects the specified cell and initiates editing. |
boolean |
stopEditing()
Ends the current editing session. |
Point |
toScreen(Point p)
Upscale the given point in place, ie. |
Rectangle |
toScreen(Rectangle rect)
Upscale the given rectangle in place, ie. |
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 java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Methods inherited from interface javax.accessibility.Accessible |
---|
getAccessibleContext |
Field Detail |
---|
public static final String VERSION
public static final int DOT_GRID_MODE
public static final int CROSS_GRID_MODE
public static final int LINE_GRID_MODE
protected transient JGraph.GraphSelectionRedirector selectionRedirector
selectionListeners
.
protected transient GraphModel graphModel
protected transient GraphLayoutCache graphLayoutCache
protected transient BasicMarqueeHandler marquee
protected transient GraphSelectionModel selectionModel
protected double scale
protected boolean antiAliased
protected boolean editable
protected boolean gridVisible
protected int gridSize
protected int gridMode
protected boolean portsVisible
protected Color highlightColor
protected Color handleColor
protected Color lockedHandleColor
protected Color marqueeColor
protected Color gridColor
protected boolean dragEnabled
protected boolean dropEnabled
protected int editClickCount
protected boolean enabled
protected boolean gridEnabled
protected int handleSize
protected int tolerance
protected int minimumMove
protected boolean selectNewCells
protected boolean disconnectOnMove
protected boolean moveable
protected boolean cloneable
protected boolean sizeable
protected boolean bendable
protected boolean connectable
protected boolean disconnectable
protected boolean invokesStopCellEditing
stopCellEditing
is invoked, and changes are saved. If false,
cancelCellEditing
is invoked, and changes
are discarded. Default is false.
public static final String GRAPH_MODEL_PROPERTY
graphModel
.
public static final String GRAPH_LAYOUT_CACHE_PROPERTY
graphModel
.
public static final String MARQUEE_HANDLER_PROPERTY
graphModel
.
public static final String EDITABLE_PROPERTY
editable
.
public static final String SCALE_PROPERTY
scale
.
public static final String ANTIALIASED_PROPERTY
antiAliased
.
public static final String GRID_SIZE_PROPERTY
gridSize
.
public static final String GRID_VISIBLE_PROPERTY
gridVisible
.
public static final String PORTS_VISIBLE_PROPERTY
gridVisible
.
public static final String SELECTION_MODEL_PROPERTY
selectionModel
.
public static final String INVOKES_STOP_CELL_EDITING_PROPERTY
messagesStopCellEditing
.
Constructor Detail |
---|
public JGraph()
JGraph
with a sample model.
public JGraph(GraphModel model)
JGraph
which displays the
the specified data model.
model
- the GraphModel
to use as the data modelpublic JGraph(GraphModel model, GraphLayoutCache view)
JGraph
which displays
the specified data model using the specified view.
model
- the GraphModel
to use as the data modelview
- the GraphLayoutCache
to use as the viewpublic JGraph(GraphModel model, BasicMarqueeHandler mh)
JGraph
which displays
the specified data model using the specified view.
model
- the GraphModel
to use as the data modelmh
- public JGraph(GraphModel model, GraphLayoutCache view, BasicMarqueeHandler mh)
JGraph
which displays
the specified data model using the specified view.
model
- the GraphModel
to use as the data modelview
- the GraphLayoutCache
to use as the viewMethod Detail |
---|
protected static GraphLayoutCache createDefaultGraphView(JGraph graph)
GraphLayoutCache
.
GraphLayoutCache
public static void addSampleData(GraphModel model)
GraphModel
.
Used primarily for beanbuilders to show something interesting.
public static Map createBounds(int x, int y, Color c)
public GraphUI getUI()
public void setUI(GraphUI ui)
ui
- the GraphUI L&F objectUIDefaults.getUI(JComponent)
public void updateUI()
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.
updateUI
in class JComponent
JComponent.updateUI()
public String getUIClassID()
getUIClassID
in class JComponent
JComponent.getUIClassID()
public Object[] getRoots()
public Object[] getRoots(Rectangle clip)
public Object[] getDescendants(Object[] cells)
cells
including all descendants.
DEPRECATED: Use getDescendantList instead.
public Object[] getDescendantList(Object[] cells)
cells
including all descendants.
public Map cloneCells(Object[] cells)
cells
and their children. Special care is taken to replace the anchor
references between ports. (Iterative implementation.)
public Object getFirstCellForLocation(int x, int y)
x
- an integer giving the number of pixels horizontally from
the left edge of the display area, minus any left marginy
- an integer giving the number of pixels vertically from
the top of the display area, minus any top margin
public Object getNextCellForLocation(Object current, int x, int y)
current
cell. Returns the topmost cell if there are
no more cells behind current
.
public Rectangle getCellBounds(Object cell)
public Rectangle getCellBounds(Object[] cells)
public CellView getNextViewAt(CellView current, int x, int y)
current
.
This is used to iterate overlapping cells, and cells that are grouped.
The current selection affects this method.
public CellView getNextViewAt(CellView[] cells, CellView c, int x, int y)
c
in the specified array of views. The views must be in order, as
returned, for example, by GraphLayoutCache.order(Object[]).
public Object getPortForLocation(int x, int y)
public PortView getPortViewAt(int x, int y)
public String convertValueToString(Object value)
public Point snap(Point p)
p
- a point in screen coordinates.
public Dimension snap(Dimension d)
d
- a point in screen coordinates.
public Point toScreen(Point p)
p
- the point to be upscaled
public Point fromScreen(Point p)
p
- the point to be downscaled
public Rectangle toScreen(Rectangle rect)
rect
- the rectangle to be upscaled
public Rectangle fromScreen(Rectangle rect)
rect
- the rectangle to be downscaled
public CellView createView(Object cell, CellMapper map)
Note: The mapping needs to be available before the views of child cells and ports are created.
createView
in interface CellViewFactory
cell
- reference to the object in the modelpublic void updateAutoSize(CellView view)
view
.
updateAutoSize
in interface CellViewFactory
protected EdgeView createEdgeView(Object e, CellMapper cm)
protected PortView createPortView(Object p, CellMapper cm)
protected EdgeView createEdgeView(Edge e, CellMapper cm)
createEdgeView(Object,CellMapper)
since JGraph no longer exposes dependecies on
GraphCell subclasses (Port, Edge)
protected PortView createPortView(Port p, CellMapper cm)
createPortView(Object,CellMapper)
since JGraph no longer exposes dependecies on
GraphCell subclasses (Port, Edge)
protected VertexView createVertexView(Object v, CellMapper cm)
public int getEditClickCount()
public void setEditClickCount(int count)
public boolean isDropEnabled()
public void setDropEnabled(boolean flag)
public boolean isDragEnabled()
public void setDragEnabled(boolean flag)
public boolean isMoveable()
public void setMoveable(boolean flag)
public boolean isBendable()
public void setBendable(boolean flag)
public boolean isConnectable()
public void setConnectable(boolean flag)
public boolean isDisconnectable()
public void setDisconnectable(boolean flag)
public boolean isCloneable()
public void setCloneable(boolean flag)
public boolean isSizeable()
public void setSizeable(boolean flag)
public boolean isDisconnectOnMove()
public void setSelectNewCells(boolean flag)
public boolean isSelectNewCells()
public void setDisconnectOnMove(boolean flag)
public boolean isGridEnabled()
snap(java.awt.Point)
public void setGridEnabled(boolean flag)
snap(java.awt.Point)
public int getTolerance()
public void setTolerance(int size)
public int getHandleSize()
public void setHandleSize(int size)
public int getMinimumMove()
public void setMinimumMove(int pixels)
public Color getGridColor()
public void setGridColor(Color newColor)
public Color getHandleColor()
public void setHandleColor(Color newColor)
public Color getLockedHandleColor()
public void setLockedHandleColor(Color newColor)
public Color getMarqueeColor()
public void setMarqueeColor(Color newColor)
public Color getHighlightColor()
public void setHighlightColor(Color newColor)
public double getScale()
public void setScale(double newValue)
Fires a property change for the SCALE_PROPERTY.
newValue
- the new scalepublic int getGridSize()
public int getGridMode()
public void setGridSize(int newSize)
Fires a property change for the GRID_SIZE_PROPERTY.
newSize
- the new size of the grid in pixelspublic void setGridMode(int mode)
mode
- The current grid view mode. Valid values are
DOT_GRID_MODE
,
CROSS_GRID_MODE
, and
LINE_GRID_MODE
.public boolean isGridVisible()
public void setGridVisible(boolean flag)
Fires a property change for the GRID_VISIBLE_PROPERTY.
public boolean isPortsVisible()
public void setPortsVisible(boolean flag)
Fires a property change for the PORTS_VISIBLE_PROPERTY.
public boolean isAntiAliased()
public void setAntiAliased(boolean newValue)
Fires a property change for the ANTIALIASED_PROPERTY.
newValue
- whether to turn antialiasing on or offpublic boolean isEditable()
public void setEditable(boolean flag)
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).
flag
- a boolean value, true if the graph is editablepublic GraphModel getModel()
GraphModel
that is providing the data.
public void setModel(GraphModel newModel)
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.
newModel
- the GraphModel
that is to provide the datapublic GraphLayoutCache getGraphLayoutCache()
GraphLayoutCache
that is providing the view-data.
public void setGraphLayoutCache(GraphLayoutCache newLayoutCache)
GraphLayoutCache
that will provide the view-data. Note: Updates the GraphLayoutCache's model using setModel if the GraphLayoutCache points to an other model than this graph.
Fires a property change for the GRAPH_LAYOUT_CACHE_PROPERTY.
newLayoutCache
- the GraphLayoutCache
that is to provide the view-datapublic BasicMarqueeHandler getMarqueeHandler()
MarqueeHandler
that will handle
marquee selection.
public void setMarqueeHandler(BasicMarqueeHandler newMarquee)
MarqueeHandler
that will handle
marquee selection.
public void setInvokesStopCellEditing(boolean newValue)
true
causes the
changes to be automatically saved when editing is interrupted.
Fires a property change for the INVOKES_STOP_CELL_EDITING_PROPERTY.
newValue
- true means that stopCellEditing
is invoked
when editing is interruped, and data is saved; false means that
cancelCellEditing
is invoked, and changes are lostpublic boolean getInvokesStopCellEditing()
setInvokesStopCellEditing(boolean)
public boolean isCellEditable(Object cell)
isEditable
. This is invoked from the UI before
editing begins to ensure that the given cell can be edited. This
is provided as an entry point for subclassers to add filtered
editing without having to resort to creating a new editor.
isEditable()
public String getToolTipText(MouseEvent event)
JComponent
's getToolTipText
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!
getToolTipText
in class JComponent
event
- the MouseEvent
that initiated the
ToolTip
display
null
if event
is nullpublic void setSelectionModel(GraphSelectionModel selectionModel)
null
value is
specified an emtpy
selectionModel
is used, which does not allow selections.
selectionModel
- the GraphSelectionModel
to use,
or null
to disable selectionsGraphSelectionModel
public GraphSelectionModel getSelectionModel()
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.
setSelectionModel(org.jgraph.graph.GraphSelectionModel)
public void clearSelection()
public boolean isSelectionEmpty()
public void addGraphSelectionListener(GraphSelectionListener tsl)
GraphSelection
events.
tsl
- the GraphSelectionListener
that will be notified
when a cell is selected or deselected (a "negative
selection")public void removeGraphSelectionListener(GraphSelectionListener tsl)
GraphSelection
listener.
tsl
- the GraphSelectionListener
to removeprotected void fireValueChanged(GraphSelectionEvent e)
e
- the GraphSelectionEvent
generated by the
GraphSelectionModel
when a cell is selected or deselectedEventListenerList
public void setSelectionCell(Object cell)
cell
- the Object
specifying the cell to selectpublic void setSelectionCells(Object[] cells)
cells
- an array of objects that specifies
the cells to selectpublic void addSelectionCell(Object cell)
Object
to the current selection.
cell
- the cell to be added to the selectionpublic void addSelectionCells(Object[] cells)
cells
- an array of objects that specifies the cells to addpublic void removeSelectionCell(Object cell)
cell
- the cell to be removed from the selectionpublic Object getSelectionCell()
Object
for the first selected cell,
or null
if nothing is currently selectedpublic Object[] getSelectionCells()
null
if nothing is currently selectedpublic int getSelectionCount()
public boolean isCellSelected(Object cell)
cell
- an object identifying a cell
public void scrollCellToVisible(Object cell)
JGraph
is contained in a JScrollPane
.
cell
- the object identifying the cell to bring into viewpublic void scrollPointToVisible(Point p)
p
- the point that should be visiblepublic boolean isEditing()
getEditingCell
.
getSelectionCell()
public boolean stopEditing()
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, usesetInvokesStopCellEditing(boolean)
.
public void cancelEditing()
public void startEditingAtCell(Object cell)
CellEditor
does not allow
editing for the specified item.
public Object getEditingCell()
public void graphDidChange()
public Dimension getPreferredScrollableViewportSize()
JGraph
. The height is
determined from getPreferredWidth
.
getPreferredScrollableViewportSize
in interface Scrollable
public int getScrollableUnitIncrement(Rectangle visibleRect, int orientation, int direction)
getScrollableUnitIncrement
in interface Scrollable
visibleRect
- the view area visible within the viewportorientation
- either SwingConstants.VERTICAL
or SwingConstants.HORIZONTAL
direction
- less than zero to scroll up/left,
greater than zero for down/right
JScrollBar.setUnitIncrement(int)
public int getScrollableBlockIncrement(Rectangle visibleRect, int orientation, int direction)
visibleRect
, based on orientation
.
getScrollableBlockIncrement
in interface Scrollable
visibleRect
- the view area visible within the viewportorientation
- either SwingConstants.VERTICAL
or SwingConstants.HORIZONTAL
direction
- less than zero to scroll up/left,
greater than zero for down/right.
JScrollBar.setBlockIncrement(int)
public boolean getScrollableTracksViewportWidth()
getScrollableTracksViewportWidth
in interface Scrollable
Scrollable.getScrollableTracksViewportWidth()
public boolean getScrollableTracksViewportHeight()
getScrollableTracksViewportHeight
in interface Scrollable
Scrollable.getScrollableTracksViewportHeight()
protected String paramString()
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
.
paramString
in class JComponent
JGraph
.public static void main(String[] args)
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |