Hi,
I have a long-running job that runs in another thread. To this job you can
pass listeners to get notifications of various events such as when the job
has ended and various other status events. I'd like to have a Wicket page
with a label that updates when the status of the job changes and a
WebMarkupContainer should be set to visible when the job has finished. My
first approach was to just try to update the components directly from the
listener but that doesn't work since you cannot update a Wicket component
from another thread. My next approach was then to create a level of
indirection by creating a mutable Wicket model object that can be shared
between the two threads. Having added a AjaxSelfUpdatingTimerBehavior to the
label the text was updated correctly with the status changes when the state
of the shared model object was updated. But setting the visibility of the
WebMarkupContainer cannot be done in this way since you explicitly need to
call setVisible on the instance. So the question is, how should I go about?
One approach that I'm thinking of is to add some sort of ajax call-back
method mechanism to the web page that checks a "visbility" state in the
shared model on a frequent time-interval. If the state has changed then
perform whatever logic needed. But how do I make Wicket invoke such a
call-back method every X second? Is this a reasonable approach to solving
these kind of problems?
/Johan
--
View this message in context:
http://www.nabble.com/Changing-model-state-from-another-thread-tp21584253p21584253.html
Sent from the Wicket - User mailing list archive at Nabble.com.
-
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org