Class UpdateManager
- Direct Known Subclasses:
DeferredUpdateManager
,SubordinateUpdateManager
The update manager receives requests to validate certain figures, and repaint certain areas of figures. An update manager could process every request synchronously, or it could batch these requests and process them asynchronously.
The update process occurs in two phases. The first phase is laying out invalid figures. This phase comes first because it usually introduces additional damage regions. In some cases, while validating figures, new invalid figures may be appended to the update manager. Of course, damage regions will be reported too as figures are layed out.
The second phase is to repaint all damaged areas. The update manager will typically batch, clip, and union, all rectangles and perform a single paint of the overall damaged area.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionabstract void
addDirtyRegion
(IFigure figure, int x, int y, int w, int h) Adds the dirty region defined by the coordinates on the IFigure figure.void
addDirtyRegion
(IFigure figure, Rectangle rect) abstract void
addInvalidFigure
(IFigure figure) The receiver should call validate() on the IFigure figure in a timely fashion.void
addUpdateListener
(UpdateListener listener) Adds the given listener to the list of listeners to be notified of painting and validation.void
dispose()
Called when the EditPartViewer is being disposed.protected void
firePainting
(Rectangle damage, Map<IFigure, Rectangle> dirtyRegions) Notifies listeners that painting is about to occur, passing them the damaged rectangle and the map of dirty regions.protected void
Notifies listeners that validation is about to occur.protected boolean
protected void
Invoked by theLightweightSystem
(LightweightSystem.paint(GC)
) to have the update manger paint its contents.abstract void
Forces an update to occur.abstract void
performUpdate
(Rectangle exposed) Performs an update on the given exposed rectangle.void
Performs a partial update if supported (validation only).void
removeUpdateListener
(UpdateListener listener) Removes one occurrence of the given UpdateListener by identity.void
runWithUpdate
(Runnable run) Causes an update to occur at some time, and the given runnable to be executed following the update.abstract void
Sets the GraphicsSource for this update manager.abstract void
Sets the root figure.
-
Constructor Details
-
UpdateManager
public UpdateManager()
-
-
Method Details
-
addDirtyRegion
Adds the dirty region defined by the coordinates on the IFigure figure. The update manager should repaint the dirty region in a timely fashion.- Parameters:
figure
- the dirty figurex
- the x coordinate of the dirty regiony
- the y coordinate of the dirty regionw
- the width of the dirty regionh
- the height of the dirty region
-
addDirtyRegion
-
runWithUpdate
Causes an update to occur at some time, and the given runnable to be executed following the update.- Parameters:
run
- the runnable- Since:
- 3.1
-
addInvalidFigure
The receiver should call validate() on the IFigure figure in a timely fashion.- Parameters:
figure
- the invalid figure
-
addUpdateListener
Adds the given listener to the list of listeners to be notified of painting and validation.- Parameters:
listener
- the listener to add
-
dispose
public void dispose()Called when the EditPartViewer is being disposed. -
firePainting
Notifies listeners that painting is about to occur, passing them the damaged rectangle and the map of dirty regions.- Parameters:
damage
- the damaged rectangledirtyRegions
- map of dirty regions to figures
-
fireValidating
protected void fireValidating()Notifies listeners that validation is about to occur. -
isDisposed
protected boolean isDisposed()- Returns:
- whether this update manager has been disposed.
-
performUpdate
public abstract void performUpdate()Forces an update to occur. Update managers will perform updates automatically, but may do so asynchronously. Calling this method forces a synchronous update. -
paint
Invoked by theLightweightSystem
(LightweightSystem.paint(GC)
) to have the update manger paint its contents. Delegates toperformUpdate(Rectangle)
with the passed in gc's clipping region (GC.getClipping()
) by default. Subclasses may override if they need to access theGC
for updating.- Parameters:
gc
- TheGC
to be used for updating- Since:
- 3.10
-
performUpdate
Performs an update on the given exposed rectangle.- Parameters:
exposed
- the exposed rectangle
-
removeUpdateListener
Removes one occurrence of the given UpdateListener by identity.- Parameters:
listener
- the listener to remove
-
setGraphicsSource
Sets the GraphicsSource for this update manager.- Parameters:
gs
- the new GraphicsSource
-
setRoot
Sets the root figure.- Parameters:
figure
- the new root figure
-
performValidation
public void performValidation()Performs a partial update if supported (validation only). Fires notification to listeners that validation has been performed. By default this method callsperformUpdate()
. Subclasses should override this method to support validation without repainting.- Since:
- 3.2
-