Class ClosestShapePickSupport<V,​E>

  • All Implemented Interfaces:
    edu.uci.ics.jung.algorithms.layout.GraphElementAccessor<V,​E>

    public class ClosestShapePickSupport<V,​E>
    extends java.lang.Object
    implements edu.uci.ics.jung.algorithms.layout.GraphElementAccessor<V,​E>
    A GraphElementAccessor that finds the closest element to the pick point, and returns it if it is within the element's shape. This is best suited to elements with convex shapes that do not overlap. It differs from ShapePickSupport in that it only checks the closest element to see whether it contains the pick point. Possible unexpected odd behaviors:
    • If the elements overlap, this mechanism may pick another element than the one that's "on top" (rendered last) if the pick point is closer to the center of an obscured vertex.
    • If element shapes are not convex, then this mechanism may return null even if the pick point is inside some element's shape, if the pick point is closer to the center of another element.
    Users who want to avoid either of these should use ShapePickSupport instead, which is slower but more flexible. If neither of the above conditions (overlapping elements or non-convex shapes) is true, then ShapePickSupport and this class should have the same behavior.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      E getEdge​(edu.uci.ics.jung.algorithms.layout.Layout<V,​E> layout, double x, double y)  
      V getVertex​(edu.uci.ics.jung.algorithms.layout.Layout<V,​E> layout, double x, double y)  
      java.util.Collection<V> getVertices​(edu.uci.ics.jung.algorithms.layout.Layout<V,​E> layout, java.awt.Shape rectangle)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • ClosestShapePickSupport

        public ClosestShapePickSupport​(VisualizationServer<V,​E> vv,
                                       float pickSize)
        Creates a ShapePickSupport for the vv VisualizationServer, with the specified pick footprint. The VisualizationServer is used to fetch the current Layout.
        Parameters:
        vv - source of the current Layout.
        pickSize - the size of the pick footprint for line edges
      • ClosestShapePickSupport

        public ClosestShapePickSupport​(VisualizationServer<V,​E> vv)
        Create a ShapePickSupport with the vv VisualizationServer and default pick footprint. The footprint defaults to 2.
    • Method Detail

      • getEdge

        public E getEdge​(edu.uci.ics.jung.algorithms.layout.Layout<V,​E> layout,
                         double x,
                         double y)
        Specified by:
        getEdge in interface edu.uci.ics.jung.algorithms.layout.GraphElementAccessor<V,​E>
        See Also:
        GraphElementAccessor.getEdge(edu.uci.ics.jung.algorithms.layout.Layout, double, double)
      • getVertex

        public V getVertex​(edu.uci.ics.jung.algorithms.layout.Layout<V,​E> layout,
                           double x,
                           double y)
        Specified by:
        getVertex in interface edu.uci.ics.jung.algorithms.layout.GraphElementAccessor<V,​E>
        See Also:
        GraphElementAccessor.getVertex(edu.uci.ics.jung.algorithms.layout.Layout, double, double)
      • getVertices

        public java.util.Collection<V> getVertices​(edu.uci.ics.jung.algorithms.layout.Layout<V,​E> layout,
                                                   java.awt.Shape rectangle)
        Specified by:
        getVertices in interface edu.uci.ics.jung.algorithms.layout.GraphElementAccessor<V,​E>
        See Also:
        GraphElementAccessor.getVertices(edu.uci.ics.jung.algorithms.layout.Layout, java.awt.Shape)