But when the event is processed, I'm not in an AjaxRequest.
Anyway, I have something working, now, I am able to update a version field
(by sending an inter-component event in the onBeforeRender() of the
ListView that has it's own Form; the Event is processed by another Form at
the top of the same Panel - that's where the version field is), but I still
need an AbstractAjaxTimerBehavior - now at 3 seconds - to make the updates
visible for the user. That worries me, I would like to have an update
interval of a second, or even less, but I wonder if this is wise. My
solution now on the receiving side looks something like:
add(new AbstractAjaxTimerBehavior(Duration.seconds(3)) { // add to the Fom
@Override
public void onEvent(Component component, IEvent<?> event) {
if (event.getPayload() instanceof ProcessReadyNotfication) {
==> Update VersionField
super.onEvent(component, event);
}
}
@Override
protected void onTimer(AjaxRequestTarget target) {
// This can take up to 3 seconds!
target.add(VersionField);
}
});
Of course, I would like something like:
@Override
public void onEvent(Component component, IEvent<?> event) {
if (event.getPayload() instanceof ProcessReadyNotfication) {
==> Update VersionField
target.add(VersionField);
super.onEvent(component, event);
}
}
But I don't have a AjaxRequestTarget there, and obtaining one by
AjaxRequestTarget.get() causes an IllegalStateException (As far as I can
remember).
--
View this message in context:
http://apache-wicket.1842946.n4.nabble.com/Event-or-Notice-when-a-ListView-s-Model-changes-tp4157030p4166278.html
Sent from the Users forum mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]