|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectjavax.swing.plaf.ComponentUI
org.jdesktop.jxlayer.plaf.LayerUI<V>
org.jdesktop.jxlayer.plaf.AbstractLayerUI<V>
org.jdesktop.jxlayer.plaf.AbstractBufferedLayerUI<javax.swing.JComponent>
org.jdesktop.jxlayer.plaf.ext.LockableUI
public class LockableUI
An implementation of the BufferedLayerUI which provides a lightweight
disabling for the content of its JXLayer. This allows temporarily
blocking a part of the interface with all it subcomponents, it is also useful
when some kind of action is in progress, e.g. reading data from a database.
true is passed to the setLocked(boolean), the JXLayer of this LockableLayerUI becomes "locked". It sets the "wait"
mouse cursor and stops reacting on mouse, keyboard and focus events.
If setLocked(boolean) is called with false parameter after
that, the JXLayer, together with all its subcomponents, gets back to
live.
Subclasses usually override paintLayer(Graphics2D,JXLayer) or
getLayerEffects(JXLayer) to implement some visual effects when
JXLayer is in locked state.
Here is an example of using LockableLayerUI:
JComponent myComponent = getMyComponent(); // just any component LockableLayerUI lockableUI = new LockableLayerUI(); JXLayer<JComponent> layer = new JXLayer<JComponent>(myComponent, lockableUI); // locking the layer, use lockableUI.setLocked(false) to unlock lockableUI.setLocked(true); // add the layer to a frame or a panel, like any other component frame.add(layer);The LockableDemo is available
| Constructor Summary | |
|---|---|
LockableUI()
Creates a new instance of LockableUI |
|
LockableUI(LayerEffect... lockedEffects)
Creates a new instance of LockableUI, passed lockedEffects will be used for when this UI in the locked state |
|
| Method Summary | |
|---|---|
protected LayerEffect[] |
getLayerEffects(JXLayer<? extends javax.swing.JComponent> l)
Returns the array of LayerEffect to be used during painting of this JXLayer,
the default implementation returns constant empty array. |
java.awt.Cursor |
getLockedCursor()
Returns the mouse cursor to be used by this LockableLayerUI when
it locked state. |
LayerEffect[] |
getLockedEffects()
Returns the effects to be used when this UI is locked. |
protected LayerEffect[] |
getLockedEffects(JXLayer<? extends javax.swing.JComponent> l)
|
void |
installUI(javax.swing.JComponent c)
Configures the JXLayer this LayerUI is set to. |
protected boolean |
isIncrementalUpdate(JXLayer<? extends javax.swing.JComponent> l)
If this method returns false and AbstractLayerUI.isDirty returns false
and the cached image exists and matches the size of painted JXLayer
then the existing image will be used during the painting. |
boolean |
isLocked()
Returns true if this LockableLayerUI is in locked state
and all JXLayer's mouse, keyboard and focuse events are
temporarily blocked, otherwise returns false. |
void |
paint(java.awt.Graphics g,
javax.swing.JComponent c)
Paints the specified component. |
protected void |
paintLayer(java.awt.Graphics2D g2,
JXLayer<? extends javax.swing.JComponent> l)
Subclasses should implement this method and perform custom painting operations here. |
void |
setLocked(boolean isLocked)
If isLocked is true then all mouse, keyboard and focuse
events from the JXLayer of this LockableLayerUI will be
temporarily blocked. |
void |
setLockedCursor(java.awt.Cursor lockedCursor)
Sets the mouse cursor to be used by this LockableLayerUI when it
locked state. |
void |
setLockedEffects(LayerEffect... lockedEffects)
Sets the effects to be used when this UI is locked. |
void |
uninstallUI(javax.swing.JComponent c)
|
| Methods inherited from class org.jdesktop.jxlayer.plaf.AbstractBufferedLayerUI |
|---|
applyLayerEffects, createBuffer, getBuffer, getLayer, isBufferContentValid, isBufferFormatValid, propertyChange, setBuffer, updateUI |
| Methods inherited from class org.jdesktop.jxlayer.plaf.AbstractLayerUI |
|---|
configureGraphics, eventDispatched, getClip, getComposite, getLayerEventMask, getRenderingHints, getTransform, handlePropertyChangeEvent, isDirty, processFocusEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, setDirty |
| Methods inherited from class javax.swing.plaf.ComponentUI |
|---|
contains, createUI, getAccessibleChild, getAccessibleChildrenCount, getBaseline, getBaselineResizeBehavior, getMaximumSize, getMinimumSize, getPreferredSize, update |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
public LockableUI()
public LockableUI(LayerEffect... lockedEffects)
lockedEffects - effects to be used when this UI is lockedsetLocked(boolean),
setLockedEffects(LayerEffect...)| Method Detail |
|---|
public void installUI(javax.swing.JComponent c)
JXLayer this LayerUI is set to.
The default implementation registers the LayerUI
as a property change listener for the passed JXLayer
This implementation saves the passed JXLayer instance
and checks that it set to one layer only
installUI in class AbstractBufferedLayerUI<javax.swing.JComponent>c - the JXLayer where this UI delegate is being installedAbstractBufferedLayerUI.uninstallUI(JComponent),
AbstractBufferedLayerUI.getLayer()public void uninstallUI(javax.swing.JComponent c)
uninstallUI in class AbstractBufferedLayerUI<javax.swing.JComponent>public boolean isLocked()
true if this LockableLayerUI is in locked state
and all JXLayer's mouse, keyboard and focuse events are
temporarily blocked, otherwise returns false.
true if this LockableLayerUI is in locked state
and all JXLayer's mouse, keyboard and focuse events are
temporarily blocked, otherwise returns falsepublic void setLocked(boolean isLocked)
isLocked is true then all mouse, keyboard and focuse
events from the JXLayer of this LockableLayerUI will be
temporarily blocked.
isLocked - if true then all mouse, keyboard and focuse events
from the JXLayer of this LockableLayerUI will
be temporarily blockedprotected boolean isIncrementalUpdate(JXLayer<? extends javax.swing.JComponent> l)
AbstractBufferedLayerUIfalse and AbstractLayerUI.isDirty returns false
and the cached image exists and matches the size of painted JXLayer
then the existing image will be used during the painting.
It helps to skip unnecessary painting and save a lot of time,
especially if BufferedImageOpEffects are used.
true the cache image will be updated on every painting.
The default implementation returns true
isIncrementalUpdate in class AbstractBufferedLayerUI<javax.swing.JComponent>l - the JXLayer being painted
true if the cache image should be updated on every painting,
otherwise returns falseAbstractBufferedLayerUI.getBuffer()
protected void paintLayer(java.awt.Graphics2D g2,
JXLayer<? extends javax.swing.JComponent> l)
AbstractLayerUIJXLayer as is.
paintLayer in class AbstractLayerUI<javax.swing.JComponent>g2 - the Graphics2D context in which to paintl - the JXLayer being painted
public void paint(java.awt.Graphics g,
javax.swing.JComponent c)
AbstractBufferedLayerUIGraphics object to
render the content of the component.
Note: It is rarely necessary to override this method, for
custom painting override AbstractLayerUI.paintLayer(Graphics2D,JXLayer) instead
This method configures the passed Graphics with help of the
AbstractLayerUI.configureGraphics(Graphics2D,JXLayer) method,
then calls paintLayer(Graphics2D,JXLayer)
and resets the "dirty bit" at the end.
This method paints the paitns the JXLayer to the BufferedImage
and then paints this image to the passed Graphics.
It also manages the state of the existing cached image
and applies the existing LayerEffects to the image.
paint in class AbstractBufferedLayerUI<javax.swing.JComponent>g - the Graphics context in which to paint;c - the component being painted;
it can be safely cast to the JXLayer<V>AbstractLayerUI.paintLayer(Graphics2D,JXLayer),
AbstractBufferedLayerUI.isBufferFormatValid(JXLayer),
AbstractBufferedLayerUI.isBufferContentValid(JXLayer,Shape),
AbstractBufferedLayerUI.getLayerEffects(JXLayer)public java.awt.Cursor getLockedCursor()
LockableLayerUI when
it locked state.
LockableLayerUI when
it locked stategetLockedCursor(),
setLocked(boolean)public void setLockedCursor(java.awt.Cursor lockedCursor)
LockableLayerUI when it
locked state.
lockedCursor - the mouse cursor to be used by this LockableLayerUI
when it locked statepublic LayerEffect[] getLockedEffects()
setLocked(boolean)protected LayerEffect[] getLockedEffects(JXLayer<? extends javax.swing.JComponent> l)
public void setLockedEffects(LayerEffect... lockedEffects)
lockedEffects - the effects to be used when this UI is lockedsetLocked(boolean)protected LayerEffect[] getLayerEffects(JXLayer<? extends javax.swing.JComponent> l)
LayerEffect to be used during painting of this JXLayer,
the default implementation returns constant empty array.
getLayerEffects in class AbstractBufferedLayerUI<javax.swing.JComponent>l - the JXLayer being painted
LayerEffect to be used during painting of the JXLayer
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||