Hi Martin,
thanks for your prompt reply.

Are you suggesting that the best practice is to add WebSocketBehavior at most once per page - and possibly to the page itself?

My current situation is that I have defined three different anonymous WebSocketBehavior instances, added to three different panels [1][2][3]: panel [1] is added to BasePage, panel [2] and [3] are added to Dashboard, extending BasePage.

With this configuration, only the onConnect() method from [1] is invoked.

If instead I disable [1] (via the if reported below), both [2] and [3] onConnect() methods are invoked.

So my actual issue it not really how to asses when to add [1] or not, but to have [1][2][3] all added to Dashboard, and [1] to the remaining pages.

Regards.

[1] https://github.com/apache/syncope/blob/master/client/console/src/main/java/org/apache/syncope/client/console/widgets/ApprovalsWidget.java#L179-L189 [2] https://github.com/apache/syncope/blob/master/client/console/src/main/java/org/apache/syncope/client/console/widgets/JobWidget.java#L119-L128 [3] https://github.com/apache/syncope/blob/master/client/console/src/main/java/org/apache/syncope/client/console/widgets/ReconciliationWidget.java#L144-L155

On 19/04/2016 18:07, Martin Grigorov wrote:
Hi,

You could use something like:

if (getBehaviors(WebSocketBehavior.class).isEmpty()) {
   add(new WebSocketBehavior() {...});
}

This way only one instance will be added to one page instance.

Martin Grigorov
Wicket Training and Consulting
https://twitter.com/mtgrigorov

On Tue, Apr 19, 2016 at 5:50 PM, Francesco Chicchiriccò <[email protected]> 
wrote:
Hi all,
in the upcoming Syncope 2.0 we are enjoying WebSocketBehavior for making
our admin console UI more reactive.

It mostly works - thanks for this! - but we are experiencing some troubles
lately.

There is a class BasePage which is extended by all other pages, and
contains a panel which adds WebSocketBehavior.
One of such pages (Dashboard) also contains two panels, each of which adds
in turn WebSocketBehavior.

I observe that when the first WebSocketBehavior (in BasePage) is added,
the other two WebSocketBehavior instances' onConnect() method is not
invoked at all.

If instead, I do something like as following, in BasePage:

if (!(pageRef.getPage() instanceof Dashboard)) {
   add(new WebSocketBehavior() {...});
}

everything works as expected (naturally BasePages's WebSocketBehavior does
not come into play): both on Dashboard and other pages.

Any hint?
TIA

Regards.

--
Francesco Chicchiriccò

Tirasa - Open Source Excellence
http://www.tirasa.net/

Involved at The Apache Software Foundation:
member, Syncope PMC chair, Cocoon PMC, Olingo PMC, CXF committer
http://home.apache.org/~ilgrosso/



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to