We're doing some business logic in one of our ULCTextFields that
displays a confirmation dialog when the value change event occurs. In
almost all situations this is working great for us, however, there is a
situation where there is some 'background' view that is auto-refreshing
values in a table (Quartz job) and this is triggering the change event
in our text field to fire. The problem is when the user enters part of
their value and the change event is fired the confirmation dialog pops
up before the user has entered their value. Also, the refresh is
occurring every 5 seconds (in our case) so the confirmation dialog pops
up every five seconds.

 

The real problem is that we are using value change events in place of
focus events (we used the fact that ULC doesn't fire a change event
until the focus is lost). What is happening (order is important).

 

1.      user enters a partial value in text field (with the registered
change listener that pops up confirmation dialog).
2.      background refresh occurs
3.      UI component of text field fires value changed event.
4.      ULC text component displays confirmation dialog.
5.      UI component fires focus changed.
6.      ...

 

It is the fact that the value changed event (client synchronization) is
occurring before the focus event is fired, yet it is the focus event
change that is causing the client to synchronize. I'd like to register
for focus change events on the client (UI) and if it is temporary then
not send the value change event but because of the order I can't find a
way to do this. Any suggestions as to how I can intercept this value
change event AND have the focus event that triggered it so I can decide
if I really want to send the value change event? I can override the
fireValueChanged(..) method but at the time it's called I don't have the
triggering focus event so I can't make the check. Or any other
recommendations??

 

Sincerely,


Amos

Navis 

Reply via email to