Package org.jgraph.graph
Class EdgeRenderer
java.lang.Object
java.awt.Component
java.awt.Container
javax.swing.JComponent
org.jgraph.graph.EdgeRenderer
- All Implemented Interfaces:
ImageObserver
,MenuContainer
,Serializable
,CellViewRenderer
This renderer displays entries that implement the CellView interface.
- See Also:
-
Nested Class Summary
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.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected int
Painting attributes of the current edgeviewprotected boolean
Boolean attributes of the current edgeview.protected int
Painting attributes of the current edgeviewprotected Bezier
Cached bezier curveprotected Color
Color attributes of the current edgeview.protected boolean
Boolean attributes of the current edgeview.protected float
Contains the current dash offset.protected Color
Color attributes of the current edgeview.protected Color
Color attributes of the current edgeview.protected int
Painting attributes of the current edgeviewprotected boolean
Boolean attributes of the current edgeview.protected int
Painting attributes of the current edgeviewOverride this if you want the extra labels to appear in a special fontJprotected boolean
Boolean attributes of the current edgeview.protected Color
Color attributes of the current edgeview.protected static Graphics
Static Graphics used for Font Metricsprotected Color
The gradient color of the edgeprotected WeakReference
Cache the current graph for drawingprotected Color
The color of the graph gridprotected Color
The color of highlighted cellsstatic boolean
Switch for exact label hit detection on rotated labels.protected boolean
Boolean attributes of the current edgeview.protected boolean
Boolean attributes of the current edgeview.protected boolean
Cached value of whether the label is to be displayedprotected boolean
Boolean attributes of the current edgeview.static double
When zooming a graph the font size jumps at certain zoom levels rather than scaling smoothly.protected float[]
Contains the current dash pattern.protected int
Painting attributes of the current edgeviewprotected float
Width of the current edge viewprotected Color
The color of the second available handleprotected FontMetrics
Reference to the font metrics of the aboveprotected boolean
Boolean attributes of the current edgeview.protected boolean
Boolean attributes of the current edgeview.protected boolean
Boolean attributes of the current edgeview.boolean
A switch for painting the extra labelsprotected Spline2D
Cached spline curveprotected EdgeView
Cache the current edgeview for drawingFields 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 -
Method Summary
Modifier and TypeMethodDescriptionprotected void
Hook method for painting after the default paintingprotected void
Hook method for painting prior to default paintingprotected Shape
createLineEnd
(int size, int style, Point2D src, Point2D dst) Paint the current view's direction.protected Shape
Returns the shape that represents the current edge in the context of the current graph.void
firePropertyChange
(String propertyName, boolean oldValue, boolean newValue) Overridden for performance reasons.void
firePropertyChange
(String propertyName, byte oldValue, byte newValue) Overridden for performance reasons.void
firePropertyChange
(String propertyName, char oldValue, char newValue) Overridden for performance reasons.void
firePropertyChange
(String propertyName, double oldValue, double newValue) Overridden for performance reasons.void
firePropertyChange
(String propertyName, float oldValue, float newValue) Overridden for performance reasons.void
firePropertyChange
(String propertyName, int oldValue, int newValue) Overridden for performance reasons.void
firePropertyChange
(String propertyName, long oldValue, long newValue) Overridden for performance reasons.void
firePropertyChange
(String propertyName, short oldValue, short newValue) Overridden for performance reasons.protected void
firePropertyChange
(String propertyName, Object oldValue, Object newValue) Overridden for performance reasons.Returns the bounds of the edge shape.getExtraLabelBounds
(JGraph paintingContext, EdgeView view, int index) Returns the label bounds of the specified view in the given graph.getExtraLabelPosition
(EdgeView view, int index) Returns the label position of the specified view in the given graph.getExtraLabelSize
(JGraph paintingContext, EdgeView view, int index) Returns the label size of the specified view in the given graph.getLabelBounds
(Point2D p, Dimension d, String label) Returns the label bounds of the specified view in the given graph.getLabelBounds
(JGraph paintingContext, EdgeView view) Returns the label bounds of the specified view in the given graph.protected Point2D
getLabelPosition
(Point2D pos) Returns the label position of the specified view in the given graph.getLabelPosition
(EdgeView view) Returns the label position of the specified view in the given graph.getLabelSize
(EdgeView view, String label) Returns the label size of the specified view in the given graph.getPaintBounds
(EdgeView view) Returns the bounds of the edge shape without labelgetRendererComponent
(JGraph graph, CellView view, boolean sel, boolean focus, boolean preview) Configure and return the renderer based on the passed in components.protected void
installAttributes
(CellView view) Installs the attributes of specified cell in this renderer instance.boolean
intersects
(JGraph graph, CellView value, Rectangle rect) Returns true if the edge shape intersects the given rectangle.protected boolean
isFillable
(int decoration) void
Paint the renderer.protected void
Paints the edge itselfprotected void
paintLabel
(Graphics g, String label, Point2D p, boolean mainLabel) Paint the specified label for the current edgeview.protected void
Draws the edge labelsprotected void
Paints any selection effect applied to the edgeprotected void
Provided for subclassers to paint a selection border.void
repaint
(long tm, int x, int y, int width, int height) Overridden for performance reasons.void
Overridden for performance reasons.void
Overridden for performance reasons.void
setGradientColor
(Color gradientColor) protected void
void
validate()
Overridden for performance reasons.Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, 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, getToolTipText, getTopLevelAncestor, getTransferHandler, getUI, getUIClassID, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, paramString, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update, updateUI
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, 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, 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
-
Field Details
-
HIT_LABEL_EXACT
public static boolean HIT_LABEL_EXACTSwitch for exact label hit detection on rotated labels. Default is false. -
fontGraphics
Static Graphics used for Font Metrics -
LABELWIDTHBUFFER
public static double LABELWIDTHBUFFERWhen zooming a graph the font size jumps at certain zoom levels rather than scaling smoothly. Sometimes the zoom on the font is more than the component zoom and cropping occurs. This buffer allows for the maximum occurance of this -
simpleExtraLabels
public boolean simpleExtraLabelsA switch for painting the extra labels -
extraLabelFont
Override this if you want the extra labels to appear in a special fontJ -
metrics
Reference to the font metrics of the above -
graph
Cache the current graph for drawing -
view
Cache the current edgeview for drawing -
beginDeco
protected transient int beginDecoPainting attributes of the current edgeview -
endDeco
protected transient int endDecoPainting attributes of the current edgeview -
beginSize
protected transient int beginSizePainting attributes of the current edgeview -
endSize
protected transient int endSizePainting attributes of the current edgeview -
lineStyle
protected transient int lineStylePainting attributes of the current edgeview -
lineWidth
protected transient float lineWidthWidth of the current edge view -
labelsEnabled
protected transient boolean labelsEnabledCached value of whether the label is to be displayed -
labelBorder
protected transient boolean labelBorderBoolean attributes of the current edgeview. Fill flags are checked for valid decorations. -
beginFill
protected transient boolean beginFillBoolean attributes of the current edgeview. Fill flags are checked for valid decorations. -
endFill
protected transient boolean endFillBoolean attributes of the current edgeview. Fill flags are checked for valid decorations. -
focus
protected transient boolean focusBoolean attributes of the current edgeview. Fill flags are checked for valid decorations. -
selected
protected transient boolean selectedBoolean attributes of the current edgeview. Fill flags are checked for valid decorations. -
preview
protected transient boolean previewBoolean attributes of the current edgeview. Fill flags are checked for valid decorations. -
opaque
protected transient boolean opaqueBoolean attributes of the current edgeview. Fill flags are checked for valid decorations. -
childrenSelected
protected transient boolean childrenSelectedBoolean attributes of the current edgeview. Fill flags are checked for valid decorations. -
labelTransformEnabled
protected transient boolean labelTransformEnabledBoolean attributes of the current edgeview. Fill flags are checked for valid decorations. -
isMoveBelowZero
protected transient boolean isMoveBelowZeroBoolean attributes of the current edgeview. Fill flags are checked for valid decorations. -
borderColor
Color attributes of the current edgeview. This components foreground is set to the edgecolor, the fontColor is in an extra variable. If the fontColor is null, the current foreground is used. The default background instead is used for text and is not visible if the label is not visible or if opaque is true. -
defaultForeground
Color attributes of the current edgeview. This components foreground is set to the edgecolor, the fontColor is in an extra variable. If the fontColor is null, the current foreground is used. The default background instead is used for text and is not visible if the label is not visible or if opaque is true. -
defaultBackground
Color attributes of the current edgeview. This components foreground is set to the edgecolor, the fontColor is in an extra variable. If the fontColor is null, the current foreground is used. The default background instead is used for text and is not visible if the label is not visible or if opaque is true. -
fontColor
Color attributes of the current edgeview. This components foreground is set to the edgecolor, the fontColor is in an extra variable. If the fontColor is null, the current foreground is used. The default background instead is used for text and is not visible if the label is not visible or if opaque is true. -
lineDash
protected transient float[] lineDashContains the current dash pattern. Null means no pattern. -
dashOffset
protected transient float dashOffsetContains the current dash offset. Null means no offset. -
gradientColor
The gradient color of the edge -
gridColor
The color of the graph grid -
lockedHandleColor
The color of the second available handle -
highlightColor
The color of highlighted cells -
bezier
Cached bezier curve -
spline
Cached spline curve
-
-
Constructor Details
-
EdgeRenderer
public EdgeRenderer()Constructs a renderer that may be used to render edges.
-
-
Method Details
-
getRendererComponent
public Component getRendererComponent(JGraph graph, CellView view, boolean sel, boolean focus, boolean preview) Configure and return the renderer based on the passed in components. The value is typically set from messaging the graph withconvertValueToString
.- Specified by:
getRendererComponent
in interfaceCellViewRenderer
- Parameters:
graph
- the graph that that defines the rendering context.view
- the cell view that should be rendered.sel
- whether the object is selected.focus
- whether the object has the focus.preview
- whether we are drawing a preview.- Returns:
- the component used to render the value.
-
intersects
Returns true if the edge shape intersects the given rectangle. -
getBounds
Returns the bounds of the edge shape. -
getLabelBounds
Returns the label bounds of the specified view in the given graph. -
getExtraLabelBounds
Returns the label bounds of the specified view in the given graph. Note: The index is the position of the String object for the label in the extra labels array of the view. -
getLabelBounds
Returns the label bounds of the specified view in the given graph. -
getLabelPosition
Returns the label position of the specified view in the given graph. -
getExtraLabelPosition
Returns the label position of the specified view in the given graph. -
getLabelPosition
Returns the label position of the specified view in the given graph. -
getExtraLabelSize
Returns the label size of the specified view in the given graph. -
getLabelSize
Returns the label size of the specified view in the given graph. -
installAttributes
Installs the attributes of specified cell in this renderer instance. This means, retrieve every published key from the cells hashtable and set global variables or superclass properties accordingly.- Parameters:
view
- the cell view to retrieve the attribute values from.
-
isFillable
protected boolean isFillable(int decoration) -
getPaintBounds
Returns the bounds of the edge shape without label -
paint
Paint the renderer.- Overrides:
paint
in classJComponent
-
paintLabels
Draws the edge labels- Parameters:
g
- the graphics object being painted to
-
paintEdge
Paints the edge itself- Parameters:
g
- the graphics object being painted to
-
paintSelection
Paints any selection effect applied to the edge- Parameters:
g
- the graphics object being painted to
-
beforeEdgePaint
Hook method for painting prior to default painting- Parameters:
g
- the graphics object being painted to
-
afterEdgePaint
Hook method for painting after the default painting- Parameters:
g
- the graphics object being painted to
-
paintSelectionBorder
Provided for subclassers to paint a selection border. -
translateGraphics
-
paintLabel
Paint the specified label for the current edgeview. -
createShape
Returns the shape that represents the current edge in the context of the current graph. This method sets the global beginShape, lineShape and endShape variables as a side-effect. -
createLineEnd
Paint the current view's direction. Sets tmpPoint as a side-effect such that the invoking method can use it to determine the connection point to this decoration. -
getGradientColor
- Returns:
- Returns the gradientColor.
-
setGradientColor
- Parameters:
gradientColor
- The gradientColor to set.
-
validate
public void validate()Overridden for performance reasons. See the Implementation Note for more information. -
revalidate
public void revalidate()Overridden for performance reasons. See the Implementation Note for more information.- Overrides:
revalidate
in classJComponent
-
repaint
public void repaint(long tm, int x, int y, int width, int height) Overridden for performance reasons. See the Implementation Note for more information.- Overrides:
repaint
in classJComponent
-
repaint
Overridden for performance reasons. See the Implementation Note for more information.- Overrides:
repaint
in classJComponent
-
firePropertyChange
Overridden for performance reasons. See the Implementation Note for more information.- Overrides:
firePropertyChange
in classComponent
-
firePropertyChange
Overridden for performance reasons. See the Implementation Note for more information.- Overrides:
firePropertyChange
in classComponent
-
firePropertyChange
Overridden for performance reasons. See the Implementation Note for more information.- Overrides:
firePropertyChange
in classJComponent
-
firePropertyChange
Overridden for performance reasons. See the Implementation Note for more information.- Overrides:
firePropertyChange
in classComponent
-
firePropertyChange
Overridden for performance reasons. See the Implementation Note for more information.- Overrides:
firePropertyChange
in classJComponent
-
firePropertyChange
Overridden for performance reasons. See the Implementation Note for more information.- Overrides:
firePropertyChange
in classComponent
-
firePropertyChange
Overridden for performance reasons. See the Implementation Note for more information.- Overrides:
firePropertyChange
in classComponent
-
firePropertyChange
Overridden for performance reasons. See the Implementation Note for more information.- Overrides:
firePropertyChange
in classComponent
-
firePropertyChange
Overridden for performance reasons. See the Implementation Note for more information.- Overrides:
firePropertyChange
in classJComponent
-