|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectcom.jgoodies.binding.beans.DelayedPropertyChangeHandler
public abstract class DelayedPropertyChangeHandler
A PropertyChangeListener that is intended to handle property changes after a specified delay. Useful to defer changes until a stable state is reached. For example if you look up a persistent object for a selection in a list. You don't want to find and transport objects that the user selects temporarily; you want to get only a stable selection. Or if you want to validate on every key typed, you may delay the validation until no key has been typed for a given time.
If this handler is notified about a property change it stores
the PropertyChangeEvent it has received in #propertyChange
,
and starts a Swing Timer that will call #delayedPropertyChange
after a delay. In coalescing mode a previously started timer - if any -
will be stopped before. In other words, the timer is restarted.
TODO: Write about the recommended delay time - above the double-click time and somewhere below a second, e.g. 100ms to 200ms.
TODO: Summarize the differences between the DelayedReadValueModel, the DelayedWriteValueModel, and this DelayedPropertyChangeHandler.
DelayedReadValueModel
,
DelayedWriteValueModel
,
Timer
Field Summary | |
---|---|
static int |
DEFAULT_DELAY
The delay in milliseconds used as default in the no-arg constructor. |
Constructor Summary | |
---|---|
DelayedPropertyChangeHandler()
Constructs a DelayedPropertyChangeHandler with a default delay. |
|
DelayedPropertyChangeHandler(int delay)
Constructs a DelayedPropertyChangeHandler with the specified Timer delay and the coalesce disabled. |
|
DelayedPropertyChangeHandler(int delay,
boolean coalesce)
Constructs a DelayedPropertyChangeHandler with the specified Timer delay and the given coalesce mode. |
Method Summary | |
---|---|
abstract void |
delayedPropertyChange(java.beans.PropertyChangeEvent evt)
This method gets called after this handler's delay if a bound property has changed. |
int |
getDelay()
Returns the delay, in milliseconds, that is used to defer value change notifications. |
boolean |
isCoalesce()
Returns if this model coalesces all pending changes or not. |
boolean |
isPending()
Checks and answers whether there are pending events. |
void |
propertyChange(java.beans.PropertyChangeEvent evt)
This handler has been notified about a change in a bound property. |
void |
setCoalesce(boolean b)
Sets if this model shall coalesce all pending changes or not. |
void |
setDelay(int delay)
Sets the delay, in milliseconds, that is used to defer value change notifications. |
void |
stop()
Stops a running timer. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static final int DEFAULT_DELAY
Constructor Detail |
---|
public DelayedPropertyChangeHandler()
public DelayedPropertyChangeHandler(int delay)
delay
- the milliseconds to wait before the delayed property change
will be performed
java.lang.IllegalArgumentException
- if the delay is negativepublic DelayedPropertyChangeHandler(int delay, boolean coalesce)
delay
- the milliseconds to wait before the delayed property change
will be performedcoalesce
- true
to coalesce all pending changes,
false
to fire changes with the delay when an update
has been received
java.lang.IllegalArgumentException
- if the delay is negativesetCoalesce(boolean)
Method Detail |
---|
public final int getDelay()
setDelay(int)
public final void setDelay(int delay)
delay
- the delay, in milliseconds, that is used to defer
value change notifications
java.lang.IllegalArgumentException
- if the delay is negativegetDelay()
public final boolean isCoalesce()
true
if all pending changes will be coalesced,
false
if pending changes are fired with a delay
when an update has been received.setCoalesce(boolean)
public final void setCoalesce(boolean b)
false
, a change event will be fired
with this model's delay when an update has been received.
The default value is false
.
Note that this value is not the #coalesce value of this model's internal Swing timer.
b
- true
to coalesce,
false
to fire separate changespublic final void stop()
#delayedPropertyChange
.
public final boolean isPending()
true
if there are pending events, false
if not.public final void propertyChange(java.beans.PropertyChangeEvent evt)
#delayedPropertyChange
after this handler's delay.
If coalescing is enabled, a previously started timer - if any -
if stopped before. In other words, the timer is restarted.
propertyChange
in interface java.beans.PropertyChangeListener
evt
- the PropertyChangeEvent describing the event source
and the property that has changedpublic abstract void delayedPropertyChange(java.beans.PropertyChangeEvent evt)
#propertyChange
.
evt
- the PropertyChangeEvent describing the event source
and the property that has changed
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |