|
||||||||||
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(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. |
void |
propertyChange(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 - if any. |
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
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
IllegalArgumentException
- if the delay is negativesetCoalesce(boolean)
Method Detail |
---|
public int getDelay()
setDelay(int)
public void setDelay(int delay)
delay
- the delay, in milliseconds, that is used to defer
value change notificationsgetDelay()
public 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 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 void propertyChange(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 PropertyChangeListener
evt
- the PropertyChangeEvent describing the event source
and the property that has changedpublic abstract void delayedPropertyChange(PropertyChangeEvent evt)
#propertyChange
.This method is invoked only if this handler hasn't received subsequent property changes. In other words, it is called only if the observed bound property is stable during the delay time.
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 |