Class 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:
  • Field Details

    • HIT_LABEL_EXACT

      public static boolean HIT_LABEL_EXACT
      Switch for exact label hit detection on rotated labels. Default is false.
    • fontGraphics

      protected static transient Graphics fontGraphics
      Static Graphics used for Font Metrics
    • LABELWIDTHBUFFER

      public static double LABELWIDTHBUFFER
      When 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 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
    • metrics

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

      protected transient WeakReference 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
    • labelsEnabled

      protected transient boolean labelsEnabled
      Cached value of whether the label is to be displayed
    • 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.
    • isMoveBelowZero

      protected transient boolean isMoveBelowZero
      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.
    • gradientColor

      protected transient Color gradientColor
      The gradient color of the edge
    • gridColor

      protected transient Color gridColor
      The color of the graph grid
    • lockedHandleColor

      protected transient Color lockedHandleColor
      The color of the second available handle
    • highlightColor

      protected transient Color highlightColor
      The color of highlighted cells
    • bezier

      protected transient Bezier bezier
      Cached bezier curve
    • spline

      protected transient Spline2D 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 with convertValueToString.
      Specified by:
      getRendererComponent in interface CellViewRenderer
      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

      public boolean intersects(JGraph graph, CellView value, Rectangle rect)
      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(JGraph paintingContext, EdgeView view)
      Returns the label bounds of the specified view in the given graph.
    • getExtraLabelBounds

      public Rectangle2D getExtraLabelBounds(JGraph paintingContext, 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.
    • getExtraLabelSize

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

      public Dimension getLabelSize(EdgeView view, 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:
      view - the cell view 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
    • paintLabels

      protected void paintLabels(Graphics g)
      Draws the edge labels
      Parameters:
      g - the graphics object being painted to
    • paintEdge

      protected void paintEdge(Graphics g)
      Paints the edge itself
      Parameters:
      g - the graphics object being painted to
    • paintSelection

      protected void paintSelection(Graphics g)
      Paints any selection effect applied to the edge
      Parameters:
      g - the graphics object being painted to
    • beforeEdgePaint

      protected void beforeEdgePaint(Graphics g)
      Hook method for painting prior to default painting
      Parameters:
      g - the graphics object being painted to
    • afterEdgePaint

      protected void afterEdgePaint(Graphics g)
      Hook method for painting after the default painting
      Parameters:
      g - the graphics object being painted to
    • 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