Class ShapePickSupport<V,E>
java.lang.Object
edu.uci.ics.jung.visualization.picking.ShapePickSupport<V,E>
- All Implemented Interfaces:
GraphElementAccessor<V,
E>
- Direct Known Subclasses:
LayoutLensShapePickSupport
,ViewLensShapePickSupport
A
GraphElementAccessor
that returns elements whose Shape
contains the specified pick point or region.-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic enum
The available picking heuristics:Style.CENTERED
: returns the element whose center is closest to the pick point. -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected float
protected ShapePickSupport.Style
The current picking heuristic for this instance.protected VisualizationServer
<V, E> TheVisualizationServer
in which the this instance is being used for picking. -
Constructor Summary
ConstructorsConstructorDescriptionCreate 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
Modifier and TypeMethodDescriptionprotected boolean
Quick test to allow optimization ofgetFilteredEdges()
.Returns an edge whose shape intersects the 'pickArea' footprint of the passed x,y, coordinates.protected Collection
<E> getFilteredEdges
(Layout<V, E> layout) protected Collection
<V> getFilteredVertices
(Layout<V, E> layout) float
Returns the size of the edge picking area.getStyle()
Returns the style of picking used by this instance.private Shape
getTransformedEdgeShape
(Layout<V, E> layout, E e) Retrieves the shape template fore
and transforms it according to the positions of its endpoints inlayout
.Returns the vertex, if any, whose shape contains (x, y).getVertices
(Layout<V, E> layout, Shape shape) Returns the vertices whose layout coordinates are contained inShape
.protected boolean
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
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
Quick test to allow optimization ofgetFilteredVertices()
.
-
Field Details
-
pickSize
protected float pickSize -
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
The current picking heuristic for this instance. Defaults toCENTERED
.
-
-
Constructor Details
-
ShapePickSupport
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
Create aShapePickSupport
for the specifiedVisualizationServer
with a default pick footprint. of size 2.- Parameters:
vv
- the visualization server used for rendering
-
-
Method Details
-
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
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
Returns the vertex, if any, whose shape contains (x, y). If (x,y) is contained in more than one vertex's shape, returns the vertex whose center is closest to the pick point.- Specified by:
getVertex
in interfaceGraphElementAccessor<V,
E> - Parameters:
layout
- the layout instance that records the positions for all verticesx
- the x coordinate of the pick pointy
- the y coordinate of the pick point- Returns:
- the vertex whose shape contains (x,y), and whose center is closest to the pick point
-
getVertices
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.- Specified by:
getVertices
in interfaceGraphElementAccessor<V,
E> - Parameters:
layout
- the layout instance that records the positions for all verticesshape
- the region in which the returned vertices are located- Returns:
- the
Collection
of vertices whoselayout
coordinates are contained inshape
.
-
getEdge
Returns an edge whose shape intersects the 'pickArea' footprint of the passed x,y, coordinates.- Specified by:
getEdge
in interfaceGraphElementAccessor<V,
E> - Parameters:
layout
- the context in which the location is definedx
- the x coordinate of the locationy
- the y coordinate of the location- Returns:
- an edge whose shape intersects the pick area centered on the location
(x,y)
-
getTransformedEdgeShape
Retrieves the shape template fore
and transforms it according to the positions of its endpoints inlayout
.- Parameters:
layout
- theLayout
which specifiese
's endpoints' positionse
- the edge whose shape is to be returned- Returns:
- the transformed shape
-
getFilteredVertices
-
getFilteredEdges
-
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
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
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:
pickSize
- the length of one side of the (square) picking area, in view coordinates
-