Class DefaultVisualGraph<V extends VisualVertex,​E extends VisualEdge<V>>

  • Type Parameters:
    V - the vertex type
    E - the edge type
    All Implemented Interfaces:
    edu.uci.ics.jung.graph.DirectedGraph<V,​E>, edu.uci.ics.jung.graph.Graph<V,​E>, edu.uci.ics.jung.graph.Hypergraph<V,​E>, GDirectedGraph<V,​E>, GImplicitDirectedGraph<V,​E>, VisualGraph<V,​E>, java.io.Serializable
    Direct Known Subclasses:
    FilteringVisualGraph, GroupingVisualGraph

    public abstract class DefaultVisualGraph<V extends VisualVertex,​E extends VisualEdge<V>>
    extends JungDirectedVisualGraph<V,​E>
    A default VisualGraph that implements basic setup for things like event processing.

    Notes:

    • Selected Vertices and the Focused Vertex - there can be multiple selected vertices, but only a single focused vertex. getSelectedVertices() will return both the selected vertices or the focused vertex if there are no vertices selected.
    • Clicking a single vertex will focus it. Control-clicking multiple vertices will cause them all to be selected, with no focused vertex.
    • Rendering Edges - edges are rendered with or without articulations if they have them. This is built-in to the default graphing edge renderer. Some layouts require custom edge rendering and will provide their own renderer as needed.
    See Also:
    Serialized Form
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected V focusedVertex  
      • Fields inherited from class edu.uci.ics.jung.graph.DirectedSparseGraph

        edges, vertices
      • Fields inherited from class edu.uci.ics.jung.graph.AbstractTypedGraph

        edge_type
    • Method Summary

      All Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      boolean addEdge​(E edge, edu.uci.ics.jung.graph.util.Pair<? extends V> endpoints, edu.uci.ics.jung.graph.util.EdgeType edgeType)  
      void addGraphChangeListener​(VisualGraphChangeListener<V,​E> l)
      Adds the given listener to this graph
      boolean addVertex​(V v)
      Add a vertex
      void clearSelectedVertices()
      Clears any selected vertices as well as the focused vertex
      abstract DefaultVisualGraph<V,​E> copy()
      Copy this graph.
      void dispose()  
      protected void fireEdgesAdded​(java.lang.Iterable<E> added)  
      protected void fireEdgesRemoved​(java.lang.Iterable<E> removed)  
      protected void fireVerticesAdded​(java.util.Collection<V> added)  
      protected void fireVerticesRemoved​(java.util.Collection<V> removed)  
      java.lang.Iterable<E> getAllEdges​(V v)
      A convenience method to combine retrieval of in and out edges for the given vertex
      java.lang.Iterable<E> getEdges​(V start, V end)
      Returns all edges shared between the two given vertices
      V getFocusedVertex()
      Returns the focused vertex; null if no vertex has focus.
      java.util.Set<V> getSelectedVertices()
      Returns the selected vertices.
      protected void initializeLocation​(V v)  
      boolean removeEdge​(E edge)
      Removes an edge
      void removeGraphChangeListener​(VisualGraphChangeListener<V,​E> l)
      Removes the given listener from this graph
      boolean removeVertex​(V v)
      Remove a vertex
      void removeVertices​(java.lang.Iterable<V> toRemove)
      Removes the given vertices from the graph
      void setSelectedVertices​(java.util.Set<V> selectedVertices)
      Selects the given vertices
      void setVertexFocused​(V vertex, boolean focused)
      Sets the given vertex to be focused or not
      void vertexLocationChanged​(V v, java.awt.Point point, LayoutListener.ChangeType type)
      A callback notifying this graph that the given vertex's location has changed
      protected void verticesAdded​(java.util.Collection<V> added)
      Called after one or more vertices have been added.
      protected void verticesRemoved​(java.util.Collection<V> removed)
      Called after one or more vertices have been removed.
      • Methods inherited from class edu.uci.ics.jung.graph.DirectedSparseGraph

        containsEdge, containsVertex, findEdge, findEdgeSet, getDest, getEdgeCount, getEdges, getEndpoints, getFactory, getIncidentEdges, getIncoming_internal, getInEdges, getNeighbors, getOutEdges, getOutgoing_internal, getPredecessors, getPreds_internal, getSource, getSuccessors, getSuccs_internal, getVertexCount, getVertices, isDest, isSource
      • Methods inherited from class edu.uci.ics.jung.graph.AbstractTypedGraph

        getDefaultEdgeType, getEdgeCount, getEdges, getEdgeType, hasEqualEdgeType, validateEdgeType
      • Methods inherited from class edu.uci.ics.jung.graph.AbstractGraph

        addEdge, addEdge, addEdge, addEdge, addEdge, degree, getIncidentCount, getIncidentVertices, getNeighborCount, getOpposite, getPredecessorCount, getSuccessorCount, getValidatedEndpoints, inDegree, isIncident, isNeighbor, isPredecessor, isSuccessor, outDegree, toString
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • Methods inherited from interface edu.uci.ics.jung.graph.Graph

        addEdge, addEdge, getOpposite, getPredecessorCount, getSuccessorCount, inDegree, isPredecessor, isSuccessor, outDegree
      • Methods inherited from interface edu.uci.ics.jung.graph.Hypergraph

        addEdge, addEdge, degree, getDefaultEdgeType, getEdgeCount, getEdges, getEdgeType, getIncidentCount, getIncidentVertices, getNeighborCount, isIncident, isNeighbor
    • Field Detail

    • Constructor Detail

      • DefaultVisualGraph

        public DefaultVisualGraph()
    • Method Detail

      • setSelectedVertices

        public void setSelectedVertices​(java.util.Set<V> selectedVertices)
        Description copied from interface: VisualGraph
        Selects the given vertices

        Note: this method is called by other APIs to ensure that the graph's notion of the focused vertex matches what is happening externally (e.g., from the user clicking the screen). If you wish to programmatically select a vertex, then you should not be calling this API directly, but you should instead be using the GPickedState or one of the APIs that uses that, such as the GraphComponent.

        Parameters:
        selectedVertices - the vertices
      • setVertexFocused

        public void setVertexFocused​(V vertex,
                                     boolean focused)
        Description copied from interface: VisualGraph
        Sets the given vertex to be focused or not

        Note: this method is called by other APIs to ensure that the graph's notion of the focused vertex matches what is happening externally (e.g., from the user clicking the screen). If you wish to programmatically focus a vertex, then you should not be calling this API directly, but you should instead be using the GPickedState or one of the APIs that uses that, such as the GraphComponent.

        Parameters:
        vertex - the focused vertex
        focused - true for focused; false for not focused
      • getFocusedVertex

        public V getFocusedVertex()
        Description copied from interface: VisualGraph
        Returns the focused vertex; null if no vertex has focus. Focus is equivalent to being selected, but further distinguishes the vertex as being the only selected vertex. This is useful for key event processing.
        Returns:
        the focused vertex
      • clearSelectedVertices

        public void clearSelectedVertices()
        Description copied from interface: VisualGraph
        Clears any selected vertices as well as the focused vertex
      • getSelectedVertices

        public java.util.Set<V> getSelectedVertices()
        Description copied from interface: VisualGraph
        Returns the selected vertices.
        Returns:
        the selected vertices
      • vertexLocationChanged

        public void vertexLocationChanged​(V v,
                                          java.awt.Point point,
                                          LayoutListener.ChangeType type)
        Description copied from interface: VisualGraph
        A callback notifying this graph that the given vertex's location has changed
        Parameters:
        v - the vertex
        point - the new location
        type - the type of change
      • dispose

        public void dispose()
      • initializeLocation

        protected void initializeLocation​(V v)
      • getAllEdges

        public java.lang.Iterable<E> getAllEdges​(V v)
        A convenience method to combine retrieval of in and out edges for the given vertex
        Parameters:
        v - the vertex
        Returns:
        the edges
      • getEdges

        public java.lang.Iterable<E> getEdges​(V start,
                                              V end)
        Returns all edges shared between the two given vertices
        Parameters:
        start - the start vertex
        end - the end vertex
        Returns:
        the edges
      • addEdge

        public boolean addEdge​(E edge,
                               edu.uci.ics.jung.graph.util.Pair<? extends V> endpoints,
                               edu.uci.ics.jung.graph.util.EdgeType edgeType)
        Overrides:
        addEdge in class edu.uci.ics.jung.graph.DirectedSparseGraph<V extends VisualVertex,​E extends VisualEdge<V>>
      • verticesAdded

        protected void verticesAdded​(java.util.Collection<V> added)
        Called after one or more vertices have been added. The callback will happen after all additions have taken place. This is an extension point for subclasses.
        Parameters:
        added - the added vertices
      • verticesRemoved

        protected void verticesRemoved​(java.util.Collection<V> removed)
        Called after one or more vertices have been removed. The callback will happen after all removals have taken place. This is an extension point for subclasses.
        Parameters:
        removed - the removed vertices
      • fireVerticesRemoved

        protected void fireVerticesRemoved​(java.util.Collection<V> removed)
      • fireVerticesAdded

        protected void fireVerticesAdded​(java.util.Collection<V> added)
      • fireEdgesRemoved

        protected void fireEdgesRemoved​(java.lang.Iterable<E> removed)
      • fireEdgesAdded

        protected void fireEdgesAdded​(java.lang.Iterable<E> added)
      • addGraphChangeListener

        public void addGraphChangeListener​(VisualGraphChangeListener<V,​E> l)
        Description copied from interface: VisualGraph
        Adds the given listener to this graph
        Parameters:
        l - the listener
      • removeGraphChangeListener

        public void removeGraphChangeListener​(VisualGraphChangeListener<V,​E> l)
        Description copied from interface: VisualGraph
        Removes the given listener from this graph
        Parameters:
        l - the listener