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 typeE
- the edge type
public class VisualGraphViewUpdater<V extends VisualVertex,E extends VisualEdge<V>> extends java.lang.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
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addJobScheduledListener(Callback c)
Add a listener to be notified when a job is started.void
animateEdgeHover()
void
centerLayoutSpacePointWithoutAnimation(java.awt.Point point)
void
centerViewSpacePointWithAnimation(java.awt.Point point)
void
centerViewSpacePointWithoutAnimation(java.awt.Point point)
void
dispose()
void
ensureVertexAreaVisible(V vertex, java.awt.Rectangle area, BusyListener callbackListener)
void
ensureVertexVisible(V vertex, java.awt.Rectangle area)
void
fitAllGraphsToViewsNow()
Fits the graph into both the primary and satellite viewsvoid
fitGraphToViewerLater()
Will schedule the fitting work to happen now if now work is being done, or later otherwisvoid
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 viewboolean
isMutatingGraph()
Returns true if this updater is running any jobs that can mutate the graph or viewvoid
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(java.awt.Point translation)
void
scheduleViewChangeJob(GraphJob job)
void
setGraphPerspective(GraphPerspectiveInfo<V,E> graphInfo)
void
setGraphScale(double scale)
void
setLayoutSpacePointWithAnimation(java.awt.Point point)
void
setLayoutSpacePointWithoutAnimation(java.awt.geom.Point2D point)
protected void
setSatelliteViewer(SatelliteGraphViewer<V,E> satelliteViewer)
void
stopAllAnimation()
protected void
stopAllNonMutativeAnimation()
void
stopEdgeHoverAnimation()
void
twinkeVertex(V vertex)
void
updateEdgeShapes(java.util.Collection<E> edges)
void
zoomInCompletely()
void
zoomInCompletely(V centerOnVertex)
-
-
-
Constructor Detail
-
VisualGraphViewUpdater
public VisualGraphViewUpdater(GraphViewer<V,E> primaryViewer, VisualGraph<V,E> graph)
-
-
Method Detail
-
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 now work is being done, or later otherwis
-
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(java.awt.Point translation)
-
centerViewSpacePointWithAnimation
public void centerViewSpacePointWithAnimation(java.awt.Point point)
-
centerViewSpacePointWithoutAnimation
public void centerViewSpacePointWithoutAnimation(java.awt.Point point)
-
centerLayoutSpacePointWithoutAnimation
public void centerLayoutSpacePointWithoutAnimation(java.awt.Point point)
-
setLayoutSpacePointWithoutAnimation
public void setLayoutSpacePointWithoutAnimation(java.awt.geom.Point2D point)
-
setLayoutSpacePointWithAnimation
public void setLayoutSpacePointWithAnimation(java.awt.Point point)
-
ensureVertexVisible
public void ensureVertexVisible(V vertex, java.awt.Rectangle area)
-
ensureVertexAreaVisible
public void ensureVertexAreaVisible(V vertex, java.awt.Rectangle area, BusyListener callbackListener)
-
updateEdgeShapes
public void updateEdgeShapes(java.util.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()
-
-