JGraph
v5.1


org.jgraph.graph
Class EdgeRenderer

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by org.jgraph.graph.EdgeRenderer
All Implemented Interfaces:
ImageObserver, MenuContainer, Serializable, CellViewRenderer

public class EdgeRenderer
extends JComponent
implements CellViewRenderer, Serializable

This renderer displays entries that implement the CellView interface.

See Also:
Serialized Form

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.BltBufferStrategy, Component.FlipBufferStrategy
 
Field Summary
protected  int beginDeco
          Painting attributes of the current edgeview
protected  boolean beginFill
          Boolean attributes of the current edgeview.
protected  int beginSize
          Painting attributes of the current edgeview
protected  Bezier bezier
           
protected  Color borderColor
          Color attributes of the current edgeview.
protected  boolean childrenSelected
          Boolean attributes of the current edgeview.
protected  float dashOffset
          Contains the current dash offset.
protected  Color defaultBackground
          Color attributes of the current edgeview.
protected  Color defaultForeground
          Color attributes of the current edgeview.
protected  int endDeco
          Painting attributes of the current edgeview
protected  boolean endFill
          Boolean attributes of the current edgeview.
protected  int endSize
          Painting attributes of the current edgeview
 Font extraLabelFont
          Override this if you want the extra labels to appear in a special fontJ
protected  boolean focus
          Boolean attributes of the current edgeview.
protected  Color fontColor
          Color attributes of the current edgeview.
protected  Graphics fontGraphics
          Static Graphics used for Font Metrics
protected  JGraph graph
          Cache the current graph for drawing
protected  boolean labelBorder
          Boolean attributes of the current edgeview.
protected  boolean labelTransformEnabled
          Boolean attributes of the current edgeview.
protected  float[] lineDash
          Contains the current dash pattern.
protected  int lineStyle
          Painting attributes of the current edgeview
protected  float lineWidth
          Width of the current edge view
protected  FontMetrics metrics
          Reference to the font metrics of the above
protected  boolean opaque
          Boolean attributes of the current edgeview.
protected  boolean preview
          Boolean attributes of the current edgeview.
protected  boolean selected
          Boolean attributes of the current edgeview.
 boolean simpleExtraLabels
          A switch for painting the extra labels
protected  Spline2D spline
           
protected  EdgeView view
          Cache the current edgeview for drawing
 
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
EdgeRenderer()
          Constructs a renderer that may be used to render edges.
 
Method Summary
protected  Shape createLineEnd(int size, int style, Point2D src, Point2D dst)
          Paint the current view's direction.
protected  Shape createShape()
          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.
protected  void firePropertyChange(String propertyName, Object oldValue, Object newValue)
          Overridden for performance reasons.
 void firePropertyChange(String propertyName, short oldValue, short newValue)
          Overridden for performance reasons.
 Rectangle2D getBounds(CellView value)
          Returns the bounds of the edge shape.
 Rectangle2D getExtraLabelBounds(EdgeView view, int index)
          Returns the label bounds of the specified view in the given graph.
 Point2D getExtraLabelPosition(EdgeView view, int index)
          Returns the label position of the specified view in the given graph.
 Dimension getExtraLabelSize(EdgeView view, int index)
          Returns the label size of the specified view in the given graph.
 Color getGradientColor()
           
 Rectangle2D getLabelBounds(EdgeView view)
          Returns the label bounds of the specified view in the given graph.
 Rectangle2D getLabelBounds(Point2D p, Dimension d, String label)
          Returns the label bounds of the specified view in the given graph.
 Point2D getLabelPosition(EdgeView view)
          Returns the label position 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.
 Dimension getLabelSize(EdgeView view)
          Returns the label size of the specified view in the given graph.
 Dimension getLabelSize(String label)
          Returns the label size of the specified view in the given graph.
 Rectangle2D getPaintBounds(EdgeView view)
          Returns the bounds of the edge shape without label
 Component getRendererComponent(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(Graphics g, CellView value, Rectangle r)
          Returns true if the edge shape intersects the given rectangle.
protected  boolean isFillable(int decoration)
           
 void paint(Graphics g)
          Paint the renderer.
protected  void paintLabel(Graphics g, String label, Point2D p, boolean mainLabel)
          Paint the specified label for the current edgeview.
protected  void paintSelectionBorder(Graphics g)
          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 repaint(Rectangle r)
          Overridden for performance reasons.
 void revalidate()
          Overridden for performance reasons.
 void setGradientColor(Color gradientColor)
           
protected  void translateGraphics(Graphics g)
           
 void validate()
          Overridden for performance reasons.
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, fireVetoableChange, getAccessibleContext, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, 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, getUIClassID, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, 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, transferFocusBackward, 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, 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, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, 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, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

simpleExtraLabels

public boolean simpleExtraLabels
A switch for painting the extra labels


extraLabelFont

public Font extraLabelFont
Override this if you want the extra labels to appear in a special fontJ


fontGraphics

protected transient Graphics fontGraphics
Static Graphics used for Font Metrics


metrics

protected transient FontMetrics metrics
Reference to the font metrics of the above


graph

protected transient JGraph graph
Cache the current graph for drawing


view

protected transient EdgeView view
Cache the current edgeview for drawing


beginDeco

protected transient int beginDeco
Painting attributes of the current edgeview


endDeco

protected transient int endDeco
Painting attributes of the current edgeview


beginSize

protected transient int beginSize
Painting attributes of the current edgeview


endSize

protected transient int endSize
Painting attributes of the current edgeview


lineStyle

protected transient int lineStyle
Painting attributes of the current edgeview


lineWidth

protected transient float lineWidth
Width of the current edge view


labelBorder

protected transient boolean labelBorder
Boolean attributes of the current edgeview. Fill flags are checked for valid decorations.


beginFill

protected transient boolean beginFill
Boolean attributes of the current edgeview. Fill flags are checked for valid decorations.


endFill

protected transient boolean endFill
Boolean attributes of the current edgeview. Fill flags are checked for valid decorations.


focus

protected transient boolean focus
Boolean attributes of the current edgeview. Fill flags are checked for valid decorations.


selected

protected transient boolean selected
Boolean attributes of the current edgeview. Fill flags are checked for valid decorations.


preview

protected transient boolean preview
Boolean attributes of the current edgeview. Fill flags are checked for valid decorations.


opaque

protected transient boolean opaque
Boolean attributes of the current edgeview. Fill flags are checked for valid decorations.


childrenSelected

protected transient boolean childrenSelected
Boolean attributes of the current edgeview. Fill flags are checked for valid decorations.


labelTransformEnabled

protected transient boolean labelTransformEnabled
Boolean attributes of the current edgeview. Fill flags are checked for valid decorations.


borderColor

protected transient Color 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

protected transient Color 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

protected transient Color 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

protected transient Color 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[] lineDash
Contains the current dash pattern. Null means no pattern.


dashOffset

protected transient float dashOffset
Contains the current dash offset. Null means no offset.


bezier

protected Bezier bezier

spline

protected Spline2D spline
Constructor Detail

EdgeRenderer

public EdgeRenderer()
Constructs a renderer that may be used to render edges.

Method Detail

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 with convertValueToString.

Specified by:
getRendererComponent in interface CellViewRenderer
Parameters:
graph - the graph that that defines the rendering context.
value - the object that should be rendered.
selected - whether the object is selected.
hasFocus - whether the object has the focus.
isPreview - whether we are drawing a preview.
Returns:
the component used to render the value.

intersects

public boolean intersects(Graphics g,
                          CellView value,
                          Rectangle r)
Returns true if the edge shape intersects the given rectangle.


getBounds

public Rectangle2D getBounds(CellView value)
Returns the bounds of the edge shape.


getLabelBounds

public Rectangle2D getLabelBounds(EdgeView view)
Returns the label bounds of the specified view in the given graph.


getExtraLabelBounds

public Rectangle2D getExtraLabelBounds(EdgeView view,
                                       int index)
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

public Rectangle2D getLabelBounds(Point2D p,
                                  Dimension d,
                                  String label)
Returns the label bounds of the specified view in the given graph.


getLabelPosition

public Point2D getLabelPosition(EdgeView view)
Returns the label position of the specified view in the given graph.


getExtraLabelPosition

public Point2D getExtraLabelPosition(EdgeView view,
                                     int index)
Returns the label position of the specified view in the given graph.


getLabelPosition

protected Point2D getLabelPosition(Point2D pos)
Returns the label position of the specified view in the given graph.


getLabelSize

public Dimension getLabelSize(EdgeView view)
Returns the label size of the specified view in the given graph.


getExtraLabelSize

public Dimension getExtraLabelSize(EdgeView view,
                                   int index)
Returns the label size of the specified view in the given graph.


getLabelSize

public Dimension getLabelSize(String label)
Returns the label size of the specified view in the given graph.


installAttributes

protected void installAttributes(CellView view)
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:
cell - to retrieve the attribute values from.

isFillable

protected boolean isFillable(int decoration)

getPaintBounds

public Rectangle2D getPaintBounds(EdgeView view)
Returns the bounds of the edge shape without label


paint

public void paint(Graphics g)
Paint the renderer.

Overrides:
paint in class JComponent

paintSelectionBorder

protected void paintSelectionBorder(Graphics g)
Provided for subclassers to paint a selection border.


translateGraphics

protected void translateGraphics(Graphics g)

paintLabel

protected void paintLabel(Graphics g,
                          String label,
                          Point2D p,
                          boolean mainLabel)
Paint the specified label for the current edgeview.


createShape

protected Shape 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

protected Shape createLineEnd(int size,
                              int style,
                              Point2D src,
                              Point2D dst)
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

public Color getGradientColor()
Returns:
Returns the gradientColor.

setGradientColor

public void setGradientColor(Color gradientColor)
Parameters:
gradientColor - The gradientColor to set.

validate

public void validate()
Overridden for performance reasons. See the Implementation Note for more information.

Overrides:
validate in class Container

revalidate

public void revalidate()
Overridden for performance reasons. See the Implementation Note for more information.

Overrides:
revalidate in class JComponent

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 class JComponent

repaint

public void repaint(Rectangle r)
Overridden for performance reasons. See the Implementation Note for more information.

Overrides:
repaint in class JComponent

firePropertyChange

protected void firePropertyChange(String propertyName,
                                  Object oldValue,
                                  Object newValue)
Overridden for performance reasons. See the Implementation Note for more information.

Overrides:
firePropertyChange in class Component

firePropertyChange

public void firePropertyChange(String propertyName,
                               byte oldValue,
                               byte newValue)
Overridden for performance reasons. See the Implementation Note for more information.

Overrides:
firePropertyChange in class Component

firePropertyChange

public void firePropertyChange(String propertyName,
                               char oldValue,
                               char newValue)
Overridden for performance reasons. See the Implementation Note for more information.

Overrides:
firePropertyChange in class JComponent

firePropertyChange

public void firePropertyChange(String propertyName,
                               short oldValue,
                               short newValue)
Overridden for performance reasons. See the Implementation Note for more information.

Overrides:
firePropertyChange in class Component

firePropertyChange

public void firePropertyChange(String propertyName,
                               int oldValue,
                               int newValue)
Overridden for performance reasons. See the Implementation Note for more information.

Overrides:
firePropertyChange in class JComponent

firePropertyChange

public void firePropertyChange(String propertyName,
                               long oldValue,
                               long newValue)
Overridden for performance reasons. See the Implementation Note for more information.

Overrides:
firePropertyChange in class Component

firePropertyChange

public void firePropertyChange(String propertyName,
                               float oldValue,
                               float newValue)
Overridden for performance reasons. See the Implementation Note for more information.

Overrides:
firePropertyChange in class Component

firePropertyChange

public void firePropertyChange(String propertyName,
                               double oldValue,
                               double newValue)
Overridden for performance reasons. See the Implementation Note for more information.

Overrides:
firePropertyChange in class Component

firePropertyChange

public void firePropertyChange(String propertyName,
                               boolean oldValue,
                               boolean newValue)
Overridden for performance reasons. See the Implementation Note for more information.

Overrides:
firePropertyChange in class JComponent

JGraph
v5.1


Copyright (C) 2001-2004 Gaudenz Alder. All rights reserved.