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.AccessibleJComponentNested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainerNested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected intPainting attributes of the current edgeviewprotected booleanBoolean attributes of the current edgeview.protected intPainting attributes of the current edgeviewprotected BezierCached bezier curveprotected ColorColor attributes of the current edgeview.protected booleanBoolean attributes of the current edgeview.protected floatContains the current dash offset.protected ColorColor attributes of the current edgeview.protected ColorColor attributes of the current edgeview.protected intPainting attributes of the current edgeviewprotected booleanBoolean attributes of the current edgeview.protected intPainting attributes of the current edgeviewOverride this if you want the extra labels to appear in a special fontJprotected booleanBoolean attributes of the current edgeview.protected ColorColor attributes of the current edgeview.protected static GraphicsStatic Graphics used for Font Metricsprotected ColorThe gradient color of the edgeprotected WeakReferenceCache the current graph for drawingprotected ColorThe color of the graph gridprotected ColorThe color of highlighted cellsstatic booleanSwitch for exact label hit detection on rotated labels.protected booleanBoolean attributes of the current edgeview.protected booleanBoolean attributes of the current edgeview.protected booleanCached value of whether the label is to be displayedprotected booleanBoolean attributes of the current edgeview.static doubleWhen zooming a graph the font size jumps at certain zoom levels rather than scaling smoothly.protected float[]Contains the current dash pattern.protected intPainting attributes of the current edgeviewprotected floatWidth of the current edge viewprotected ColorThe color of the second available handleprotected FontMetricsReference to the font metrics of the aboveprotected booleanBoolean attributes of the current edgeview.protected booleanBoolean attributes of the current edgeview.protected booleanBoolean attributes of the current edgeview.booleanA switch for painting the extra labelsprotected Spline2DCached spline curveprotected EdgeViewCache 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_WINDOWFields inherited from class java.awt.Component
accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENTFields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected voidHook method for painting after the default paintingprotected voidHook method for painting prior to default paintingprotected ShapecreateLineEnd(int size, int style, Point2D src, Point2D dst) Paint the current view's direction.protected ShapeReturns the shape that represents the current edge in the context of the current graph.voidfirePropertyChange(String propertyName, boolean oldValue, boolean newValue) Overridden for performance reasons.voidfirePropertyChange(String propertyName, byte oldValue, byte newValue) Overridden for performance reasons.voidfirePropertyChange(String propertyName, char oldValue, char newValue) Overridden for performance reasons.voidfirePropertyChange(String propertyName, double oldValue, double newValue) Overridden for performance reasons.voidfirePropertyChange(String propertyName, float oldValue, float newValue) Overridden for performance reasons.voidfirePropertyChange(String propertyName, int oldValue, int newValue) Overridden for performance reasons.voidfirePropertyChange(String propertyName, long oldValue, long newValue) Overridden for performance reasons.voidfirePropertyChange(String propertyName, short oldValue, short newValue) Overridden for performance reasons.protected voidfirePropertyChange(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 Point2DgetLabelPosition(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 voidinstallAttributes(CellView view) Installs the attributes of specified cell in this renderer instance.booleanintersects(JGraph graph, CellView value, Rectangle rect) Returns true if the edge shape intersects the given rectangle.protected booleanisFillable(int decoration) voidPaint the renderer.protected voidPaints the edge itselfprotected voidpaintLabel(Graphics g, String label, Point2D p, boolean mainLabel) Paint the specified label for the current edgeview.protected voidDraws the edge labelsprotected voidPaints any selection effect applied to the edgeprotected voidProvided for subclassers to paint a selection border.voidrepaint(long tm, int x, int y, int width, int height) Overridden for performance reasons.voidOverridden for performance reasons.voidOverridden for performance reasons.voidsetGradientColor(Color gradientColor) protected voidvoidvalidate()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, updateUIMethods 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, validateTreeMethods 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:
getRendererComponentin 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:
paintin 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:
revalidatein 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:
repaintin classJComponent
-
repaint
Overridden for performance reasons. See the Implementation Note for more information.- Overrides:
repaintin classJComponent
-
firePropertyChange
Overridden for performance reasons. See the Implementation Note for more information.- Overrides:
firePropertyChangein classComponent
-
firePropertyChange
Overridden for performance reasons. See the Implementation Note for more information.- Overrides:
firePropertyChangein classComponent
-
firePropertyChange
Overridden for performance reasons. See the Implementation Note for more information.- Overrides:
firePropertyChangein classJComponent
-
firePropertyChange
Overridden for performance reasons. See the Implementation Note for more information.- Overrides:
firePropertyChangein classComponent
-
firePropertyChange
Overridden for performance reasons. See the Implementation Note for more information.- Overrides:
firePropertyChangein classJComponent
-
firePropertyChange
Overridden for performance reasons. See the Implementation Note for more information.- Overrides:
firePropertyChangein classComponent
-
firePropertyChange
Overridden for performance reasons. See the Implementation Note for more information.- Overrides:
firePropertyChangein classComponent
-
firePropertyChange
Overridden for performance reasons. See the Implementation Note for more information.- Overrides:
firePropertyChangein classComponent
-
firePropertyChange
Overridden for performance reasons. See the Implementation Note for more information.- Overrides:
firePropertyChangein classJComponent
-