Class GraphViewer<V extends VisualVertex,E extends VisualEdge<V>>

java.lang.Object
java.awt.Component
java.awt.Container
javax.swing.JComponent
javax.swing.JPanel
edu.uci.ics.jung.visualization.BasicVisualizationServer<V,E>
edu.uci.ics.jung.visualization.VisualizationViewer<V,E>
ghidra.graph.viewer.GraphViewer<V,E>
Type Parameters:
V - the vertex type
E - the edge type
All Implemented Interfaces:
edu.uci.ics.jung.visualization.util.ChangeEventSupport, edu.uci.ics.jung.visualization.VisualizationServer<V,E>, ImageObserver, MenuContainer, Serializable, EventListener, Accessible, ChangeListener

public class GraphViewer<V extends VisualVertex,E extends VisualEdge<V>> extends edu.uci.ics.jung.visualization.VisualizationViewer<V,E>
The base viewer for the Graph module. This viewer provides methods for manipulating the graph using the mouse.

The viewer is currently an extension of the VisualizationViewer and as such it is accessed by much of the event handling subsystem, such as the mouse plugins, as well as the rendering system.

Also, tooltips/popups for edges and vertices are handled by this class.

This class creates a VisualGraphViewUpdater that perform graph transformations, such as panning the graph, with and without animation, as requested.

See Also:
  • Field Details Link icon

  • Constructor Details Link icon

  • Method Details Link icon

    • createPathHighlighter Link icon

      protected VisualGraphPathHighlighter<V,E> createPathHighlighter(PathHighlightListener listener)
    • createViewUpdater Link icon

      protected VisualGraphViewUpdater<V,E> createViewUpdater()
    • getVisualGraphLayout Link icon

      public VisualGraphLayout<V,E> getVisualGraphLayout()
    • setGraphLayout Link icon

      public void setGraphLayout(edu.uci.ics.jung.algorithms.layout.Layout<V,E> layout)
      Specified by:
      setGraphLayout in interface edu.uci.ics.jung.visualization.VisualizationServer<V extends VisualVertex,E extends VisualEdge<V>>
      Overrides:
      setGraphLayout in class edu.uci.ics.jung.visualization.BasicVisualizationServer<V extends VisualVertex,E extends VisualEdge<V>>
    • getVisualGraph Link icon

      public VisualGraph<V,E> getVisualGraph()
    • getGraphMouse Link icon

      public VisualGraphPluggableGraphMouse<V,E> getGraphMouse()
      Overrides:
      getGraphMouse in class edu.uci.ics.jung.visualization.VisualizationViewer<V extends VisualVertex,E extends VisualEdge<V>>
    • setGraphMouse Link icon

      public void setGraphMouse(edu.uci.ics.jung.visualization.VisualizationViewer.GraphMouse graphMouse)
      Overrides:
      setGraphMouse in class edu.uci.ics.jung.visualization.VisualizationViewer<V extends VisualVertex,E extends VisualEdge<V>>
    • setGraphOptions Link icon

      public void setGraphOptions(VisualGraphOptions options)
    • optionsChanged Link icon

      public void optionsChanged()
    • getOptions Link icon

      public VisualGraphOptions getOptions()
    • setVertexHoverPathHighlightMode Link icon

      public void setVertexHoverPathHighlightMode(PathHighlightMode hoverMode)
    • setVertexFocusPathHighlightMode Link icon

      public void setVertexFocusPathHighlightMode(PathHighlightMode focusMode)
    • getVertexHoverPathHighlightMode Link icon

      public PathHighlightMode getVertexHoverPathHighlightMode()
    • getVertexFocusPathHighlightMode Link icon

      public PathHighlightMode getVertexFocusPathHighlightMode()
    • setViewerInitializedListener Link icon

      public void setViewerInitializedListener(Consumer<GraphViewer<V,E>> listener)
    • getPathHighlighter Link icon

      public VisualGraphPathHighlighter<V,E> getPathHighlighter()
    • getViewUpdater Link icon

      public VisualGraphViewUpdater<V,E> getViewUpdater()
    • getGPickedVertexState Link icon

      public GPickedState<V> getGPickedVertexState()
    • setVertexTooltipProvider Link icon

      public void setVertexTooltipProvider(VertexTooltipProvider<V,E> vertexTooltipProvider)
    • useMouseRelativeZoom Link icon

      public boolean useMouseRelativeZoom()
      When true (the default), the zoom will center wherever the mouse is positioned. False will zoom at the center of the view.
      Returns:
      true if using mouse-relative zoom
    • add Link icon

      public Component add(Component comp)
      !!Super Hacky Override!! The code we are overriding blindly calls add(), without first checking to see if it has already been added. Java 6 added a method, removeNotify(), that is called when components are removed. When add is called in the overridden method, it triggers a call to remove, which triggers removeNotify(). This call is made during the painting process. The problem therein is that out buttons borders get reset (see AbstractButton.removeNotify()) when we repaint, which means that mouse hovers do not work correctly (SCR 6819).
      Overrides:
      add in class Container
    • paintComponent Link icon

      protected void paintComponent(Graphics g)
      !!Super Hacky Override!! This is done to make sure that we center the view when we are fully laid-out. If you know of a better way to do this, then, get rid of this overridden method and do the good thing.
      Overrides:
      paintComponent in class edu.uci.ics.jung.visualization.BasicVisualizationServer<V extends VisualVertex,E extends VisualEdge<V>>
    • getCenter Link icon

      public Point2D getCenter()
      Specified by:
      getCenter in interface edu.uci.ics.jung.visualization.VisualizationServer<V extends VisualVertex,E extends VisualEdge<V>>
      Overrides:
      getCenter in class edu.uci.ics.jung.visualization.BasicVisualizationServer<V extends VisualVertex,E extends VisualEdge<V>>
    • setPopupsVisible Link icon

      public void setPopupsVisible(boolean visible)
    • getToolTipText Link icon

      public String getToolTipText(MouseEvent event)
      Overrides:
      getToolTipText in class edu.uci.ics.jung.visualization.VisualizationViewer<V extends VisualVertex,E extends VisualEdge<V>>
    • createVertexMouseInfo Link icon

      public VertexMouseInfo<V,E> createVertexMouseInfo(MouseEvent e, V v, Point2D vertexBasedClickPoint)
    • dispose Link icon

      public void dispose()