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 SummaryConstructors
- 
Method SummaryModifier and TypeMethodDescriptionabstract voidaddDirtyRegion(IFigure figure, int x, int y, int w, int h) Adds the dirty region defined by the coordinates on the IFigure figure.voidaddDirtyRegion(IFigure figure, Rectangle rect) abstract voidaddInvalidFigure(IFigure figure) The receiver should call validate() on the IFigure figure in a timely fashion.voidaddUpdateListener(UpdateListener listener) Adds the given listener to the list of listeners to be notified of painting and validation.voiddispose()Called when the EditPartViewer is being disposed.protected voidfirePainting(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 voidNotifies listeners that validation is about to occur.protected booleanprotected voidInvoked by theLightweightSystem(LightweightSystem.paint(GC)) to have the update manger paint its contents.abstract voidForces an update to occur.abstract voidperformUpdate(Rectangle exposed) Performs an update on the given exposed rectangle.voidPerforms a partial update if supported (validation only).voidremoveUpdateListener(UpdateListener listener) Removes one occurrence of the given UpdateListener by identity.voidrunWithUpdate(Runnable run) Causes an update to occur at some time, and the given runnable to be executed following the update.abstract voidSets the GraphicsSource for this update manager.abstract voidSets the root figure.
- 
Constructor Details- 
UpdateManagerpublic UpdateManager()
 
- 
- 
Method Details- 
addDirtyRegionAdds 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 figure
- x- the x coordinate of the dirty region
- y- the y coordinate of the dirty region
- w- the width of the dirty region
- h- the height of the dirty region
 
- 
addDirtyRegion- See Also:
 
- 
runWithUpdateCauses an update to occur at some time, and the given runnable to be executed following the update.- Parameters:
- run- the runnable
- Since:
- 3.1
 
- 
addInvalidFigureThe receiver should call validate() on the IFigure figure in a timely fashion.- Parameters:
- figure- the invalid figure
 
- 
addUpdateListenerAdds the given listener to the list of listeners to be notified of painting and validation.- Parameters:
- listener- the listener to add
 
- 
disposepublic void dispose()Called when the EditPartViewer is being disposed.
- 
firePaintingNotifies listeners that painting is about to occur, passing them the damaged rectangle and the map of dirty regions.- Parameters:
- damage- the damaged rectangle
- dirtyRegions- map of dirty regions to figures
 
- 
fireValidatingprotected void fireValidating()Notifies listeners that validation is about to occur.
- 
isDisposedprotected boolean isDisposed()- Returns:
- whether this update manager has been disposed.
 
- 
performUpdatepublic 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.
- 
paintInvoked 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 theGCfor updating.- Parameters:
- gc- The- GCto be used for updating
- Since:
- 3.10
 
- 
performUpdatePerforms an update on the given exposed rectangle.- Parameters:
- exposed- the exposed rectangle
 
- 
removeUpdateListenerRemoves one occurrence of the given UpdateListener by identity.- Parameters:
- listener- the listener to remove
 
- 
setGraphicsSourceSets the GraphicsSource for this update manager.- Parameters:
- gs- the new GraphicsSource
 
- 
setRootSets the root figure.- Parameters:
- figure- the new root figure
 
- 
performValidationpublic 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
 
 
-