com.jgraph.graph
Class EdgeRenderer

java.lang.Object
  extended byjava.awt.Component
      extended byjava.awt.Container
          extended byjavax.swing.JComponent
              extended bycom.jgraph.graph.EdgeRenderer
All Implemented Interfaces:
CellViewRenderer, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable

public class EdgeRenderer
extends javax.swing.JComponent
implements CellViewRenderer, java.io.Serializable

This renderer displays entries that implement the CellView interface and supports the following attributes:

  • GraphConstants.POINTS GraphConstants.FONT GraphConstants.OPAQUE GraphConstants.BORDER GraphConstants.BORDERCOLOR GraphConstants.LINECOLOR GraphConstants.LINEWIDTH GraphConstants.FOREGROUND GraphConstants.BACKGROUND GraphConstants.DASHPATTERN GraphConstants.LINESTYLE GraphConstants.START GraphConstants.END GraphConstants.STARTSIZE GraphConstants.ENDSIZE
  • See Also:
    Serialized Form

    Nested Class Summary
     
    Nested classes inherited from class javax.swing.JComponent
    javax.swing.JComponent.AccessibleJComponent
     
    Nested classes inherited from class java.awt.Container
    java.awt.Container.AccessibleAWTContainer
     
    Nested classes inherited from class java.awt.Component
    java.awt.Component.AccessibleAWTComponent, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
     
    Field Summary
    protected  int beginDeco
              Painting attributes of the current edgeview
    protected  boolean beginFill
              Boolean attributes of the current edgeview.
    protected  java.awt.Shape beginShape
              Drawing attributes that are created on the fly
    protected  int beginSize
              Painting attributes of the current edgeview
    protected  java.awt.Color borderColor
              Color attributes of the current edgeview.
    protected  java.awt.Color defaultBackground
              Color attributes of the current edgeview.
    protected  java.awt.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  java.awt.Shape endShape
              Drawing attributes that are created on the fly
    protected  int endSize
              Painting attributes of the current edgeview
    protected  boolean focus
              Boolean attributes of the current edgeview.
    protected  java.awt.Color fontColor
              Color attributes of the current edgeview.
    protected  java.awt.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  float[] lineDash
              Contains the current dash pattern.
    protected  java.awt.Shape lineShape
              Drawing attributes that are created on the fly
    protected  int lineStyle
              Painting attributes of the current edgeview
    protected  float lineWidth
              Width of the current edge view
    protected  java.awt.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.
    protected  java.awt.geom.GeneralPath sharedPath
              Shared-path tune-up.
    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  java.awt.Shape createLineEnd(int size, int style, java.awt.Point src, java.awt.Point dst)
              Paint the current view's direction.
    protected  java.awt.Shape createShape()
              Returns the shape that represents the current edge in the context of the current graph.
     void firePropertyChange(java.lang.String propertyName, boolean oldValue, boolean newValue)
              Overridden for performance reasons.
     void firePropertyChange(java.lang.String propertyName, byte oldValue, byte newValue)
              Overridden for performance reasons.
     void firePropertyChange(java.lang.String propertyName, char oldValue, char newValue)
              Overridden for performance reasons.
     void firePropertyChange(java.lang.String propertyName, double oldValue, double newValue)
              Overridden for performance reasons.
     void firePropertyChange(java.lang.String propertyName, float oldValue, float newValue)
              Overridden for performance reasons.
     void firePropertyChange(java.lang.String propertyName, int oldValue, int newValue)
              Overridden for performance reasons.
     void firePropertyChange(java.lang.String propertyName, long oldValue, long newValue)
              Overridden for performance reasons.
    protected  void firePropertyChange(java.lang.String propertyName, java.lang.Object oldValue, java.lang.Object newValue)
              Overridden for performance reasons.
     void firePropertyChange(java.lang.String propertyName, short oldValue, short newValue)
              Overridden for performance reasons.
     java.awt.Rectangle getBounds(CellView value)
              Returns the bounds of the edge shape.
     java.awt.Rectangle getLabelBounds(EdgeView view)
              Returns the label bounds of the specified view in the given graph.
     java.awt.Point getLabelPosition(EdgeView view)
              Returns the label position of the specified view in the given graph.
     java.awt.Dimension getLabelSize(EdgeView view)
              Returns the label size of the specified view in the given graph.
     java.awt.Rectangle getPaintBounds(EdgeView view)
              Returns the bounds of the edge shape without label
     java.awt.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(java.awt.Graphics g, CellView value, java.awt.Rectangle r)
              Returns true if the edge shape intersects the given rectangle.
    protected  boolean isFillable(int decoration)
               
     void paint(java.awt.Graphics g)
              Paint the renderer.
    protected  void paintLabel(java.awt.Graphics g, java.lang.String label)
              Paint the specified label for the current edgeview.
     void repaint(long tm, int x, int y, int width, int height)
              Overridden for performance reasons.
     void repaint(java.awt.Rectangle r)
              Overridden for performance reasons.
     void revalidate()
              Overridden for performance reasons.
     boolean supportsAttribute(java.lang.Object key)
              Returns true if key is a supported attribute in the renderer.
     void validate()
              Overridden for performance reasons.
     
    Methods inherited from class javax.swing.JComponent
    addAncestorListener, addNotify, addPropertyChangeListener, addPropertyChangeListener, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, fireVetoableChange, getAccessibleContext, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBorder, getBounds, getClientProperty, getComponentGraphics, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getGraphics, getHeight, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPreferredSize, getPropertyChangeListeners, getPropertyChangeListeners, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getUIClassID, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isPreferredSizeSet, isRequestFocusEnabled, isValidateRoot, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, paramString, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removePropertyChangeListener, removePropertyChangeListener, removeVetoableChangeListener, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFont, setForeground, 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, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setFocusCycleRoot, setFocusTraversalKeys, setFocusTraversalPolicy, 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, getFontMetrics, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMouseWheelListeners, getName, getParent, getPeer, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, 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, processMouseEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, 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

    fontGraphics

    protected transient java.awt.Graphics fontGraphics
    Static Graphics used for Font Metrics


    metrics

    protected transient java.awt.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.


    borderColor

    protected transient java.awt.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 java.awt.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 java.awt.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 java.awt.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.


    beginShape

    protected transient java.awt.Shape beginShape
    Drawing attributes that are created on the fly


    endShape

    protected transient java.awt.Shape endShape
    Drawing attributes that are created on the fly


    lineShape

    protected transient java.awt.Shape lineShape
    Drawing attributes that are created on the fly


    sharedPath

    protected transient java.awt.geom.GeneralPath sharedPath
    Shared-path tune-up. Thanks to Markus Schmidt.


    lineDash

    protected transient float[] lineDash
    Contains the current dash pattern. Null means no pattern.

    Constructor Detail

    EdgeRenderer

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

    Method Detail

    getRendererComponent

    public java.awt.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.
    Returns:
    the component used to render the value.

    intersects

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


    getBounds

    public java.awt.Rectangle getBounds(CellView value)
    Returns the bounds of the edge shape.


    getLabelBounds

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


    getLabelPosition

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


    getLabelSize

    public java.awt.Dimension getLabelSize(EdgeView view)
    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.


    isFillable

    protected boolean isFillable(int decoration)

    getPaintBounds

    public java.awt.Rectangle getPaintBounds(EdgeView view)
    Returns the bounds of the edge shape without label


    paint

    public void paint(java.awt.Graphics g)
    Paint the renderer.


    paintLabel

    protected void paintLabel(java.awt.Graphics g,
                              java.lang.String label)
    Paint the specified label for the current edgeview.


    createShape

    protected java.awt.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 java.awt.Shape createLineEnd(int size,
                                           int style,
                                           java.awt.Point src,
                                           java.awt.Point 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.


    supportsAttribute

    public boolean supportsAttribute(java.lang.Object key)
    Returns true if key is a supported attribute in the renderer. Supported attributes affect the visual appearance of the renderer.

    Specified by:
    supportsAttribute in interface CellViewRenderer
    Parameters:
    key - the key that defines the attribute to be checked.
    Returns:
    true if key is supported by this renderer.

    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.


    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.


    repaint

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


    firePropertyChange

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


    firePropertyChange

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


    firePropertyChange

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


    firePropertyChange

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


    firePropertyChange

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


    firePropertyChange

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


    firePropertyChange

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


    firePropertyChange

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


    firePropertyChange

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