Package ghidra.graph.viewer

# Class VisualGraphViewUpdater<V extends VisualVertex,E extends VisualEdge<V>>

java.lang.Object
ghidra.graph.viewer.VisualGraphViewUpdater<V,E>

Type Parameters:
  `V` - the vertex type
  `E` - the edge type

public class VisualGraphViewUpdater<V extends VisualVertex,E extends VisualEdge<V>> extends Object
This is the class through which operations travel that manipulate the view and graph while plugged-in to the UI. (Setup and tear down operations performed before the view or graph are visible need not pass through this class.) This class is responsible for controlling how to display view and graph changes, including whether to animate.

The animations are categorized into those that mutate the graph and those that are just display animations (like hover animations).

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `VisualGraphViewUpdater(GraphViewer<V,E> primaryViewer, VisualGraph<V,E> graph)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `addJobScheduledListener(Callback c)`
  Add a listener to be notified when a job is started.
  `void`
  `animateEdgeHover()`
  `void`
  `centerLayoutSpacePointWithoutAnimation(Point point)`
  `void`
  `centerViewSpacePointWithAnimation(Point point)`
  `void`
  `centerViewSpacePointWithoutAnimation(Point point)`
  `void`
  `dispose()`
  `void`
  `ensureVertexAreaVisible(V vertex, Rectangle area, BusyListener callbackListener)`
  `void`
  `ensureVertexVisible(V vertex, Rectangle area)`
  `void`
  `fitAllGraphsToViewsNow()`
  Fits the graph into both the primary and satellite views
  `void`
  `fitGraphToViewerLater()`
  Will schedule the fitting work to happen now if no work is being done, or later otherwise
  `void`
  `fitGraphToViewerLater(edu.uci.ics.jung.visualization.VisualizationServer<V,E> theViewer)`
  `void`
  `fitGraphToViewerNow()`
  `void`
  `fitGraphToViewerNow(edu.uci.ics.jung.visualization.VisualizationServer<V,E> theViewer)`
  `boolean`
  `isAnimationEnabled()`
  `boolean`
  `isBusy()`
  Returns true if this updater is performing any animations or running any jobs that can mutate the graph or view
  `boolean`
  `isMutatingGraph()`
  Returns true if this updater is running any jobs that can mutate the graph or view
  `void`
  `moveVertexToCenterTopWithAnimation(V vertex)`
  `void`
  `moveVertexToCenterTopWithAnimation(V vertex, BusyListener callbackListener)`
  `void`
  `moveVertexToCenterTopWithoutAnimation(V vertex)`
  `void`
  `moveVertexToCenterWithAnimation(V vertex)`
  `void`
  `moveVertexToCenterWithAnimation(V vertex, BusyListener callbackListener)`
  `void`
  `moveVertexToCenterWithoutAnimation(V vertex)`
  `void`
  `moveViewerLocationWithoutAnimation(Point translation)`
  `void`
  `relayoutGraph()`
  `void`
  `scheduleViewChangeJob(GraphJob job)`
  `void`
  `setGraphPerspective(GraphPerspectiveInfo<V,E> graphInfo)`
  `void`
  `setGraphScale(double scale)`
  `void`
  `setLayoutSpacePointWithAnimation(Point point)`
  `void`
  `setLayoutSpacePointWithoutAnimation(Point2D point)`
  `protected void`
  `setSatelliteViewer(SatelliteGraphViewer<V,E> satelliteViewer)`
  `void`
  `stopAllAnimation()`
  `protected void`
  `stopAllNonMutativeAnimation()`
  `void`
  `stopEdgeHoverAnimation()`
  `void`
  `twinkeVertex(V vertex)`
  `void`
  `updateEdgeShapes(Collection<E> edges)`
  `void`
  `zoomInCompletely()`
  `void`
  `zoomInCompletely(V centerOnVertex)`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### VisualGraphViewUpdater

    public VisualGraphViewUpdater(GraphViewer<V,E> primaryViewer, VisualGraph<V,E> graph)

- ## Method Details

  - ### setSatelliteViewer

    protected void setSatelliteViewer(SatelliteGraphViewer<V,E> satelliteViewer)

  - ### addJobScheduledListener

    public void addJobScheduledListener(Callback c)
    Add a listener to be notified when a job is started. Jobs often, but not always, mutate the underlying graph. For this reason, other tasks that use the graph may want to not do their work while a job is running.
    Parameters:
      `c` - the listener

  - ### isAnimationEnabled

    public boolean isAnimationEnabled()

  - ### dispose

    public void dispose()

  - ### fitAllGraphsToViewsNow

    public void fitAllGraphsToViewsNow()
    Fits the graph into both the primary and satellite views

  - ### fitGraphToViewerNow

    public void fitGraphToViewerNow()

  - ### fitGraphToViewerNow

    public void fitGraphToViewerNow(edu.uci.ics.jung.visualization.VisualizationServer<V,E> theViewer)

  - ### fitGraphToViewerLater

    public void fitGraphToViewerLater()
    Will schedule the fitting work to happen now if no work is being done, or later otherwise

  - ### fitGraphToViewerLater

    public void fitGraphToViewerLater(edu.uci.ics.jung.visualization.VisualizationServer<V,E> theViewer)

  - ### zoomInCompletely

    public void zoomInCompletely()

  - ### zoomInCompletely

    public void zoomInCompletely(V centerOnVertex)

  - ### moveVertexToCenterTopWithoutAnimation

    public void moveVertexToCenterTopWithoutAnimation(V vertex)

  - ### moveVertexToCenterWithoutAnimation

    public void moveVertexToCenterWithoutAnimation(V vertex)

  - ### moveVertexToCenterWithAnimation

    public void moveVertexToCenterWithAnimation(V vertex)

  - ### moveVertexToCenterWithAnimation

    public void moveVertexToCenterWithAnimation(V vertex, BusyListener callbackListener)

  - ### moveVertexToCenterTopWithAnimation

    public void moveVertexToCenterTopWithAnimation(V vertex)

  - ### moveVertexToCenterTopWithAnimation

    public void moveVertexToCenterTopWithAnimation(V vertex, BusyListener callbackListener)

  - ### moveViewerLocationWithoutAnimation

    public void moveViewerLocationWithoutAnimation(Point translation)

  - ### centerViewSpacePointWithAnimation

    public void centerViewSpacePointWithAnimation(Point point)

  - ### centerViewSpacePointWithoutAnimation

    public void centerViewSpacePointWithoutAnimation(Point point)

  - ### centerLayoutSpacePointWithoutAnimation

    public void centerLayoutSpacePointWithoutAnimation(Point point)

  - ### setLayoutSpacePointWithoutAnimation

    public void setLayoutSpacePointWithoutAnimation(Point2D point)

  - ### setLayoutSpacePointWithAnimation

    public void setLayoutSpacePointWithAnimation(Point point)

  - ### ensureVertexVisible

    public void ensureVertexVisible(V vertex, Rectangle area)

  - ### ensureVertexAreaVisible

    public void ensureVertexAreaVisible(V vertex, Rectangle area, BusyListener callbackListener)

  - ### updateEdgeShapes

    public void updateEdgeShapes(Collection<E> edges)

  - ### setGraphPerspective

    public void setGraphPerspective(GraphPerspectiveInfo<V,E> graphInfo)

  - ### twinkeVertex

    public void twinkeVertex(V vertex)

  - ### setGraphScale

    public void setGraphScale(double scale)

  - ### animateEdgeHover

    public void animateEdgeHover()

  - ### isBusy

    public boolean isBusy()
    Returns true if this updater is performing any animations or running any jobs that can mutate the graph or view
    Returns:
      true if busy

  - ### isMutatingGraph

    public boolean isMutatingGraph()
    Returns true if this updater is running any jobs that can mutate the graph or view
    Returns:
      true if busy

  - ### scheduleViewChangeJob

    public void scheduleViewChangeJob(GraphJob job)

  - ### stopEdgeHoverAnimation

    public void stopEdgeHoverAnimation()

  - ### stopAllAnimation

    public void stopAllAnimation()

  - ### stopAllNonMutativeAnimation

    protected void stopAllNonMutativeAnimation()

  - ### relayoutGraph

    public void relayoutGraph()