edu.umd.cs.jazz.util
Class ZCanvas.ZBasicRepaintManager
java.lang.Object
|
+--javax.swing.RepaintManager
|
+--edu.umd.cs.jazz.util.ZCanvas.ZBasicRepaintManager
- Enclosing class:
- ZCanvas
- public class ZCanvas.ZBasicRepaintManager
- extends javax.swing.RepaintManager
This is an internal class used by Jazz to support Swing components
in Jazz. This should not be instantiated, though all the public
methods of javax.swing.RepaintManager may still be called and
perform in the expected manner.
ZBasicRepaint Manager is an extension of RepaintManager that traps
those repaints called by the Swing components that have been added
to the ZCanvas and passes these repaints to the
SwingVisualComponent rather than up the component hierarchy as
usually happens.
Also traps revalidate calls made by the Swing components added
to the ZCanvas to reshape the applicable Visual Component.
Also keeps a list of ZSwings that are painting. This
disables repaint until the component has finished painting. This is
to address a problem introduced by Swing's CellRendererPane which is
itself a work-around. The problem is that JTable's, JTree's, and
JList's cell renderers need to be validated before repaint. Since
we have to repaint the entire Swing component hierarchy (in the case
of a Swing component group used as a Jazz visual component). This
causes an infinite loop. So we introduce the restriction that no
repaints can be triggered by a call to paint.
Method Summary |
void |
addDirtyRegion(javax.swing.JComponent c,
int x,
int y,
int w,
int h)
This is the method "repaint" now calls in the Swing components. |
void |
addInvalidComponent(javax.swing.JComponent invalidComponent)
This is the method "revalidate" calls in the Swing components. |
boolean |
isPainting(javax.swing.JComponent c)
Returns true if repaint is currently locked for a component and
false otherwise |
void |
lockRepaint(javax.swing.JComponent c)
Locks repaint for a particular (Swing) component displayed by
ZCanvas |
void |
unlockRepaint(javax.swing.JComponent c)
Unlocks repaint for a particular (Swing) component displayed by
ZCanvas |
Methods inherited from class javax.swing.RepaintManager |
currentManager, currentManager, getDirtyRegion, getDoubleBufferMaximumSize, getOffscreenBuffer, isCompletelyDirty, isDoubleBufferingEnabled, markCompletelyClean, markCompletelyDirty, paintDirtyRegions, removeInvalidComponent, setCurrentManager, setDoubleBufferingEnabled, setDoubleBufferMaximumSize, toString, validateInvalidComponents |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
ZCanvas.ZBasicRepaintManager
public ZCanvas.ZBasicRepaintManager()
lockRepaint
public void lockRepaint(javax.swing.JComponent c)
- Locks repaint for a particular (Swing) component displayed by
ZCanvas
- Parameters:
c
- The component for which the repaint is to be locked
unlockRepaint
public void unlockRepaint(javax.swing.JComponent c)
- Unlocks repaint for a particular (Swing) component displayed by
ZCanvas
- Parameters:
c
- The component for which the repaint is to be unlocked
isPainting
public boolean isPainting(javax.swing.JComponent c)
- Returns true if repaint is currently locked for a component and
false otherwise
- Parameters:
c
- The component for which the repaint status is desired- Returns:
- Whether the component is currently painting
addDirtyRegion
public void addDirtyRegion(javax.swing.JComponent c,
int x,
int y,
int w,
int h)
- This is the method "repaint" now calls in the Swing components.
Overridden to capture repaint calls from those Swing components
which are being used as Jazz visual components and to call the Jazz
repaint mechanism rather than the traditional Component hierarchy
repaint mechanism. Otherwise, behaves like the superclass.
- Overrides:
addDirtyRegion
in class javax.swing.RepaintManager
- Parameters:
c
- Component to be repaintedx
- X coordinate of the dirty region in the componenty
- Y coordinate of the dirty region in the componentw
- Width of the dirty region in the componenth
- Height of the dirty region in the component
addInvalidComponent
public void addInvalidComponent(javax.swing.JComponent invalidComponent)
- This is the method "revalidate" calls in the Swing components.
Overridden to capture revalidate calls from those Swing components
being used as Jazz visual components and to update Jazz's visual
component wrapper bounds (these are stored separately from the
Swing component). Otherwise, behaves like the superclass.
- Overrides:
addInvalidComponent
in class javax.swing.RepaintManager
- Parameters:
invalidComponent
- The Swing component that needs validation
Copyright © 2001 by University of Maryland, College Park, MD 20742, USA All rights reserved.