JGraph
v5.12.2.1


org.jgraph.graph
Class EdgeView

java.lang.Object
  extended byorg.jgraph.graph.AbstractCellView
      extended byorg.jgraph.graph.EdgeView
All Implemented Interfaces:
CellView, Serializable

public class EdgeView
extends AbstractCellView

The default implementation of an edge view. The getEdgeRenderer method assumes a renderer of type EdgeRenderer. If you provide a custom renderer to a subclass, you must also override the methods that call this method, namely: getShape, getLabelBounds, getExtraLabelBounds, intersects and getBounds.

See Also:
Serialized Form

Nested Class Summary
static class EdgeView.EdgeHandle
           
 
Field Summary
 Shape beginShape
          Drawing attributes that are created on the fly
protected  Rectangle2D cachedBounds
           
 Shape endShape
          Drawing attributes that are created on the fly
protected  Point2D[] extraLabelPositions
           
protected  Point2D labelPosition
          Cached label position of the edge.
protected  Point2D labelVector
           
 Shape lineShape
          Drawing attributes that are created on the fly
protected  List points
          List of points of the edge.
static EdgeRenderer renderer
          Renderer for the class.
 GeneralPath sharedPath
          Shared-path tune-up.
protected  CellView source
          Cached source and target portview of the edge.
protected  CellView sourceParentView
           
protected  CellView target
          Cached source and target portview of the edge.
protected  CellView targetParentView
           
 
Fields inherited from class org.jgraph.graph.AbstractCellView
allAttributes, attributes, cell, cellEditor, childViews, groupBounds, parent
 
Constructor Summary
EdgeView()
          Constructs an empty edge view.
EdgeView(Object cell)
          Constructs an edge view for the specified model object.
 
Method Summary
 void addExtraLabel(Point2D location, Object label)
          Adds an extra label.
 void addPoint(int index, Point2D p)
          Adds p at position index.
protected  void checkDefaultLabelPosition()
          Hook for subclassers to avoid default label positions.
protected  Point2D convertRelativeLabelPositionToAbsolute(Point2D geometry)
          Converts an relative label position (x is distance along edge and y is distance above/below edge vector) into an absolute co-ordination point
protected  Point2D getAbsoluteExtraLabelPosition(int index)
          Returns the absolute position of the specified extra label
protected  Point2D getAbsoluteLabelPosition()
          Returns the absolute position of the main label
protected  Point2D getAbsoluteLabelPositionFromRelative(Point2D geometry)
          Converts relative label position to absolute and allows for any label offset.
 Rectangle2D getBounds()
          Returns the location for this edgeview.
 Point2D getExtraLabelPosition(int index)
          Returns a point that describes the position of the label.
 int getFirstPointOfSegment()
          Utility method that returns the first point of the pair that forms the segment that is relativeX along the edge as a proportion
 CellHandle getHandle(GraphContext context)
          Returns a cell handle for the view.
 Point2D getLabelPosition()
          Returns a point that describes the position of the label.
 Point2D getLabelVector()
          Hook to return the vector that is taken as the base vector to compute relative label positions.
static double getLength(CellView view)
           
protected  Point2D getNearestPoint(boolean source)
          Returns the nearest point wrt to the source or target.
 Point2D getPerimeterPoint(EdgeView edge, Point2D source, Point2D p)
          Returns the intersection of the bounding rectangle and the straight line between the source and the specified point p.
 Point2D getPoint(int index)
          Returns the cached points for this edge.
 int getPointCount()
          Returns the number of point for this edge.
protected  Point2D getPointLocation(int index)
          Returns the point of edge at index.
 List getPoints()
          Returns the points.
 CellViewRenderer getRenderer()
          Returns a renderer for the class.
 Shape getShape()
          Returns the shape of the view according to the last rendering state
 CellView getSource()
          Returns the CellView that represents the source of the edge.
 CellView getSourceParentView()
           
 CellView getTarget()
          Returns the CellView that represents the target of the edge.
 CellView getTargetParentView()
           
protected  CellView getVisibleParent(GraphModel model, CellMapper mapper, Object port)
           
 boolean intersects(JGraph graph, Rectangle2D rect)
          Returns true if this view intersects the given rectangle.
protected  void invalidate()
          Resets the cached values of the edge view
 boolean isLoop()
          Returns true if the edge is a loop.
 void refresh(GraphLayoutCache cache, CellMapper mapper, boolean createDependentViews)
          Overrides the parent method to udpate the cached points, source and target port.
 void removeExtraLabel(int index)
          Removes the point at position index.
 void removePoint(int index)
          Removes the point at position index.
 void setExtraLabelPosition(int index, Point2D pos)
          Sets the description of the label position.
 void setLabelPosition(Point2D pos)
          Sets the description of the label position.
 void setPoint(int index, Point2D p)
          Sets the point at index to p.
 void setSource(CellView sourceView)
          Sets the sourceView of the edge.
 void setTarget(CellView targetView)
          Sets the targetView of the edge.
 void update(GraphLayoutCache cache)
          Update attributes and recurse children.
 
Methods inherited from class org.jgraph.graph.AbstractCellView
changeAttributes, childUpdated, createAttributeMap, getAllAttributes, getAttributes, getBounds, getCell, getCellAttributes, getCenterPoint, getChildViews, getDescendantViews, getEditor, getParentView, getRendererComponent, includeInGroupBounds, isLeaf, mergeAttributes, removeFromParent, scale, setAttributes, setBounds, setCell, translate, updateGroupBounds
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

renderer

public static transient EdgeRenderer renderer
Renderer for the class.


points

protected List points
List of points of the edge. May contain ports.


source

protected CellView source
Cached source and target portview of the edge.


target

protected CellView target
Cached source and target portview of the edge.


sourceParentView

protected CellView sourceParentView

targetParentView

protected CellView targetParentView

labelPosition

protected Point2D labelPosition
Cached label position of the edge.


extraLabelPositions

protected Point2D[] extraLabelPositions

labelVector

protected transient Point2D labelVector

beginShape

public transient Shape beginShape
Drawing attributes that are created on the fly


endShape

public transient Shape endShape
Drawing attributes that are created on the fly


lineShape

public transient Shape lineShape
Drawing attributes that are created on the fly


sharedPath

public transient GeneralPath sharedPath
Shared-path tune-up.


cachedBounds

protected transient Rectangle2D cachedBounds
Constructor Detail

EdgeView

public EdgeView()
Constructs an empty edge view.


EdgeView

public EdgeView(Object cell)
Constructs an edge view for the specified model object.

Parameters:
cell - reference to the model object
Method Detail

refresh

public void refresh(GraphLayoutCache cache,
                    CellMapper mapper,
                    boolean createDependentViews)
Overrides the parent method to udpate the cached points, source and target port. If the source or target is removed, a point is inserted into the array of points.

Specified by:
refresh in interface CellView
Overrides:
refresh in class AbstractCellView
Parameters:
cache - the graph model to be used
mapper - the cell mapper to be used
createDependentViews - whether or not to create a view if one does not already exist

getVisibleParent

protected CellView getVisibleParent(GraphModel model,
                                    CellMapper mapper,
                                    Object port)

update

public void update(GraphLayoutCache cache)
Update attributes and recurse children.

Specified by:
update in interface CellView
Overrides:
update in class AbstractCellView

checkDefaultLabelPosition

protected void checkDefaultLabelPosition()
Hook for subclassers to avoid default label positions.


invalidate

protected void invalidate()
Resets the cached values of the edge view


getShape

public Shape getShape()
Returns the shape of the view according to the last rendering state


intersects

public boolean intersects(JGraph graph,
                          Rectangle2D rect)
Returns true if this view intersects the given rectangle.

Specified by:
intersects in interface CellView
Overrides:
intersects in class AbstractCellView
Parameters:
graph - the JGraph instance of the view
rect - the rectangle within which intersection is being checked for
Returns:
whether or not the rectangle specified intersects the view

getBounds

public Rectangle2D getBounds()
Returns the location for this edgeview.

Specified by:
getBounds in interface CellView
Overrides:
getBounds in class AbstractCellView

getRenderer

public CellViewRenderer getRenderer()
Returns a renderer for the class.

Specified by:
getRenderer in class AbstractCellView
Returns:
the renderer instance for this view

getHandle

public CellHandle getHandle(GraphContext context)
Returns a cell handle for the view.

Specified by:
getHandle in interface CellView
Specified by:
getHandle in class AbstractCellView
Parameters:
context - the context of this cell view (cells indirectly affected by it)
Returns:
the cell handle for this view

getSource

public CellView getSource()
Returns the CellView that represents the source of the edge.


getSourceParentView

public CellView getSourceParentView()

setSource

public void setSource(CellView sourceView)
Sets the sourceView of the edge.


getTarget

public CellView getTarget()
Returns the CellView that represents the target of the edge.


getTargetParentView

public CellView getTargetParentView()

setTarget

public void setTarget(CellView targetView)
Sets the targetView of the edge.


getExtraLabelPosition

public Point2D getExtraLabelPosition(int index)
Returns a point that describes the position of the label.


getLabelPosition

public Point2D getLabelPosition()
Returns a point that describes the position of the label.


setLabelPosition

public void setLabelPosition(Point2D pos)
Sets the description of the label position.


setExtraLabelPosition

public void setExtraLabelPosition(int index,
                                  Point2D pos)
Sets the description of the label position.


isLoop

public boolean isLoop()
Returns true if the edge is a loop.


getPoints

public List getPoints()
Returns the points.

Returns:
List

getPointCount

public int getPointCount()
Returns the number of point for this edge.


getPoint

public Point2D getPoint(int index)
Returns the cached points for this edge.


getNearestPoint

protected Point2D getNearestPoint(boolean source)
Returns the nearest point wrt to the source or target. This method returns the next or previous point or port in the points list, eg. if source is true it returns the location of the point or port at index 1 without calling the getLocation method on any ports.
Likewise, the method returns the location at index getPointCount()-2 if source is false.


getPointLocation

protected Point2D getPointLocation(int index)
Returns the point of edge at index. Avoids calling getLocation on any ports of edge.
This is used from within getPoint to pass the nearest point to the portview to find it's location. This uses the center point of the parent view to determine the port view's location to avoid infinite recursion.


setPoint

public void setPoint(int index,
                     Point2D p)
Sets the point at index to p.


addPoint

public void addPoint(int index,
                     Point2D p)
Adds p at position index.


removePoint

public void removePoint(int index)
Removes the point at position index.


addExtraLabel

public void addExtraLabel(Point2D location,
                          Object label)
Adds an extra label.


removeExtraLabel

public void removeExtraLabel(int index)
Removes the point at position index.


getFirstPointOfSegment

public int getFirstPointOfSegment()
Utility method that returns the first point of the pair that forms the segment that is relativeX along the edge as a proportion

Returns:
the index of the first point. A value of -1 indicate to use the first and last points

getLabelVector

public Point2D getLabelVector()
Hook to return the vector that is taken as the base vector to compute relative label positions. Normally, the vector goes from the first to the last point on the edge, unless these points are equal, in which case the average distance of all points to the source point is used.


getAbsoluteLabelPosition

protected Point2D getAbsoluteLabelPosition()
Returns the absolute position of the main label

Returns:
the absolute position of the main label

getAbsoluteExtraLabelPosition

protected Point2D getAbsoluteExtraLabelPosition(int index)
Returns the absolute position of the specified extra label

Parameters:
index - the index of the extra label
Returns:
the absolute position of the specified extra label

getAbsoluteLabelPositionFromRelative

protected Point2D getAbsoluteLabelPositionFromRelative(Point2D geometry)
Converts relative label position to absolute and allows for any label offset.

Parameters:
geometry - the relative label position
Returns:
the absolute label position including any offset

convertRelativeLabelPositionToAbsolute

protected Point2D convertRelativeLabelPositionToAbsolute(Point2D geometry)
Converts an relative label position (x is distance along edge and y is distance above/below edge vector) into an absolute co-ordination point

Parameters:
geometry - the relative label position
Returns:
the absolute label position

getLength

public static double getLength(CellView view)

getPerimeterPoint

public Point2D getPerimeterPoint(EdgeView edge,
                                 Point2D source,
                                 Point2D p)
Description copied from class: AbstractCellView
Returns the intersection of the bounding rectangle and the straight line between the source and the specified point p. The specified point is expected not to intersect the bounds. Note: You must override this method if you use a different renderer. This is because this method relies on the VertexRenderer interface, which can not be safely assumed for subclassers.

Specified by:
getPerimeterPoint in interface CellView
Overrides:
getPerimeterPoint in class AbstractCellView

JGraph
v5.12.2.1


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