Class ShapePickSupport<V,E>
- java.lang.Object
-
- edu.uci.ics.jung.visualization.picking.ShapePickSupport<V,E>
-
- All Implemented Interfaces:
edu.uci.ics.jung.algorithms.layout.GraphElementAccessor<V,E>
- Direct Known Subclasses:
LayoutLensShapePickSupport
,ViewLensShapePickSupport
public class ShapePickSupport<V,E> extends java.lang.Object implements edu.uci.ics.jung.algorithms.layout.GraphElementAccessor<V,E>
AGraphElementAccessor
that returns elements whoseShape
contains the specified pick point or region.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
ShapePickSupport.Style
The available picking heuristics:Style.CENTERED
: returns the element whose center is closest to the pick point.
-
Field Summary
Fields Modifier and Type Field Description protected float
pickSize
protected ShapePickSupport.Style
style
The current picking heuristic for this instance.protected VisualizationServer<V,E>
vv
TheVisualizationServer
in which the this instance is being used for picking.
-
Constructor Summary
Constructors Constructor Description ShapePickSupport(VisualizationServer<V,E> vv)
Create aShapePickSupport
for the specifiedVisualizationServer
with a default pick footprint.ShapePickSupport(VisualizationServer<V,E> vv, float pickSize)
Creates aShapePickSupport
for thevv
VisualizationServer, with the specified pick footprint and the default pick style.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected boolean
edgesAreFiltered()
Quick test to allow optimization ofgetFilteredEdges()
.E
getEdge(edu.uci.ics.jung.algorithms.layout.Layout<V,E> layout, double x, double y)
Returns an edge whose shape intersects the 'pickArea' footprint of the passed x,y, coordinates.protected java.util.Collection<E>
getFilteredEdges(edu.uci.ics.jung.algorithms.layout.Layout<V,E> layout)
protected java.util.Collection<V>
getFilteredVertices(edu.uci.ics.jung.algorithms.layout.Layout<V,E> layout)
float
getPickSize()
Returns the size of the edge picking area.ShapePickSupport.Style
getStyle()
Returns the style of picking used by this instance.V
getVertex(edu.uci.ics.jung.algorithms.layout.Layout<V,E> layout, double x, double y)
Iterates over Vertices, checking to see if x,y is contained in the Vertex's Shape.java.util.Collection<V>
getVertices(edu.uci.ics.jung.algorithms.layout.Layout<V,E> layout, java.awt.Shape shape)
Returns the vertices whose layout coordinates are contained inShape
.protected boolean
isEdgeRendered(edu.uci.ics.jung.graph.util.Context<edu.uci.ics.jung.graph.Graph<V,E>,E> context)
Returnstrue
if this edge and its endpoints in this graph are all included in the collections of elements to be rendered, andfalse
otherwise.protected boolean
isVertexRendered(edu.uci.ics.jung.graph.util.Context<edu.uci.ics.jung.graph.Graph<V,E>,V> context)
Returnstrue
if this vertex in this graph is included in the collections of elements to be rendered, andfalse
otherwise.void
setPickSize(float pickSize)
Sets the size of the edge picking area.void
setStyle(ShapePickSupport.Style style)
Specifies the style of picking to be used by this instance.protected boolean
verticesAreFiltered()
Quick test to allow optimization ofgetFilteredVertices()
.
-
-
-
Field Detail
-
pickSize
protected float pickSize
-
vv
protected VisualizationServer<V,E> vv
TheVisualizationServer
in which the this instance is being used for picking. Used to retrieve properties such as the layout, renderer, vertex and edge shapes, and coordinate transformations.
-
style
protected ShapePickSupport.Style style
The current picking heuristic for this instance. Defaults toCENTERED
.
-
-
Constructor Detail
-
ShapePickSupport
public ShapePickSupport(VisualizationServer<V,E> vv, float pickSize)
Creates aShapePickSupport
for thevv
VisualizationServer, with the specified pick footprint and the default pick style. TheVisualizationServer
is used to access properties of the current visualization (layout, renderer, coordinate transformations, vertex/edge shapes, etc.).- Parameters:
vv
- source of the currentLayout
.pickSize
- the size of the pick footprint for line edges
-
ShapePickSupport
public ShapePickSupport(VisualizationServer<V,E> vv)
Create aShapePickSupport
for the specifiedVisualizationServer
with a default pick footprint. of size 2.
-
-
Method Detail
-
getStyle
public ShapePickSupport.Style getStyle()
Returns the style of picking used by this instance. This specifies which of the elements, among those whose shapes contain the pick point, is returned. The available styles are:Style.CENTERED
: returns the element whose center is closest to the pick point.Style.LOWEST
: returns the first such element encountered. (If the element collection has a consistent ordering, this will also be the element "on the bottom", that is, the one which is rendered first.)Style.HIGHEST
: returns the last such element encountered. (If the element collection has a consistent ordering, this will also be the element "on the top", that is, the one which is rendered last.)- Returns:
- the style of picking used by this instance
-
setStyle
public void setStyle(ShapePickSupport.Style style)
Specifies the style of picking to be used by this instance. This specifies which of the elements, among those whose shapes contain the pick point, will be returned. The available styles are:Style.CENTERED
: returns the element whose center is closest to the pick point.Style.LOWEST
: returns the first such element encountered. (If the element collection has a consistent ordering, this will also be the element "on the bottom", that is, the one which is rendered first.)Style.HIGHEST
: returns the last such element encountered. (If the element collection has a consistent ordering, this will also be the element "on the top", that is, the one which is rendered last.)- Parameters:
style
- the style to set
-
getVertex
public V getVertex(edu.uci.ics.jung.algorithms.layout.Layout<V,E> layout, double x, double y)
Iterates over Vertices, checking to see if x,y is contained in the Vertex's Shape. If (x,y) is contained in more than one vertex, use the vertex whose center is closest to the pick point.
-
getVertices
public java.util.Collection<V> getVertices(edu.uci.ics.jung.algorithms.layout.Layout<V,E> layout, java.awt.Shape shape)
Returns the vertices whose layout coordinates are contained inShape
. The shape is in screen coordinates, and the graph vertices are transformed to screen coordinates before they are tested for inclusion.
-
getEdge
public E getEdge(edu.uci.ics.jung.algorithms.layout.Layout<V,E> layout, double x, double y)
Returns an edge whose shape intersects the 'pickArea' footprint of the passed x,y, coordinates.
-
getFilteredVertices
protected java.util.Collection<V> getFilteredVertices(edu.uci.ics.jung.algorithms.layout.Layout<V,E> layout)
- Parameters:
layout
-- Returns:
-
getFilteredEdges
protected java.util.Collection<E> getFilteredEdges(edu.uci.ics.jung.algorithms.layout.Layout<V,E> layout)
- Parameters:
layout
-- Returns:
-
verticesAreFiltered
protected boolean verticesAreFiltered()
Quick test to allow optimization ofgetFilteredVertices()
.- Returns:
true
if there is an active vertex filtering mechanism for this visualization,false
otherwise
-
edgesAreFiltered
protected boolean edgesAreFiltered()
Quick test to allow optimization ofgetFilteredEdges()
.- Returns:
true
if there is an active edge filtering mechanism for this visualization,false
otherwise
-
isVertexRendered
protected boolean isVertexRendered(edu.uci.ics.jung.graph.util.Context<edu.uci.ics.jung.graph.Graph<V,E>,V> context)
Returnstrue
if this vertex in this graph is included in the collections of elements to be rendered, andfalse
otherwise.- Parameters:
context
- the vertex and graph to be queried- Returns:
true
if this vertex is included in the collections of elements to be rendered,false
otherwise.
-
isEdgeRendered
protected boolean isEdgeRendered(edu.uci.ics.jung.graph.util.Context<edu.uci.ics.jung.graph.Graph<V,E>,E> context)
Returnstrue
if this edge and its endpoints in this graph are all included in the collections of elements to be rendered, andfalse
otherwise.- Parameters:
context
- the edge and graph to be queried- Returns:
true
if this edge and its endpoints are all included in the collections of elements to be rendered,false
otherwise.
-
getPickSize
public float getPickSize()
Returns the size of the edge picking area. The picking area is square; the size is specified as the length of one side, in view coordinates.- Returns:
- the size of the edge picking area
-
setPickSize
public void setPickSize(float pickSize)
Sets the size of the edge picking area.- Parameters:
the
- length of one side of the (square) picking area, in view coordinates
-
-