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.ObjectThis 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 voidaddJobScheduledListener(Callback c)Add a listener to be notified when a job is started.voidanimateEdgeHover()voidcenterLayoutSpacePointWithoutAnimation(java.awt.Point point)voidcenterViewSpacePointWithAnimation(java.awt.Point point)voidcenterViewSpacePointWithoutAnimation(java.awt.Point point)voiddispose()voidensureVertexAreaVisible(V vertex, java.awt.Rectangle area, BusyListener callbackListener)voidensureVertexVisible(V vertex, java.awt.Rectangle area)voidfitAllGraphsToViewsNow()Fits the graph into both the primary and satellite viewsvoidfitGraphToViewerLater()Will schedule the fitting work to happen now if now work is being done, or later otherwisvoidfitGraphToViewerLater(edu.uci.ics.jung.visualization.VisualizationServer<V,E> theViewer)voidfitGraphToViewerNow()voidfitGraphToViewerNow(edu.uci.ics.jung.visualization.VisualizationServer<V,E> theViewer)booleanisAnimationEnabled()booleanisBusy()Returns true if this updater is performing any animations or running any jobs that can mutate the graph or viewbooleanisMutatingGraph()Returns true if this updater is running any jobs that can mutate the graph or viewvoidmoveVertexToCenterTopWithAnimation(V vertex)voidmoveVertexToCenterTopWithAnimation(V vertex, BusyListener callbackListener)voidmoveVertexToCenterTopWithoutAnimation(V vertex)voidmoveVertexToCenterWithAnimation(V vertex)voidmoveVertexToCenterWithAnimation(V vertex, BusyListener callbackListener)voidmoveVertexToCenterWithoutAnimation(V vertex)voidmoveViewerLocationWithoutAnimation(java.awt.Point translation)voidscheduleViewChangeJob(GraphJob job)voidsetGraphPerspective(GraphPerspectiveInfo<V,E> graphInfo)voidsetGraphScale(double scale)voidsetLayoutSpacePointWithAnimation(java.awt.Point point)voidsetLayoutSpacePointWithoutAnimation(java.awt.geom.Point2D point)protected voidsetSatelliteViewer(SatelliteGraphViewer<V,E> satelliteViewer)voidstopAllAnimation()protected voidstopAllNonMutativeAnimation()voidstopEdgeHoverAnimation()voidtwinkeVertex(V vertex)voidupdateEdgeShapes(java.util.Collection<E> edges)voidzoomInCompletely()voidzoomInCompletely(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()
-
-