I've raised a JIRA for client-side pub/sub. https://issues.apache.org/jira/browse/TAP5-2416
On 4 Sep 2014, at 5:57 pm, Geoff Callender <geoff.callender.jumpst...@gmail.com> wrote: > In an AJAX request the server-side would have no way of knowing how many > subscribers there are within the page unless it exactly rebuilds the entire > page state. For example some subscribers could be within a loop, and they > might be conditional. > > However, the client-side has the full page state, so I think that's where the > pub-sub has to happen. > > A simple mechanism that might be sufficient: > - give the Zone component a "refreshOnMessage" parameter, and > - give AjaxResponseRenderer a publishMessage(String s) method, and > - Tapestry could do the rest, client-side, triggering all the necessary zone > refreshes. > > What do you think? > > > On 4 Sep 2014, at 3:01 pm, Sumanth <roasteddra...@gmail.com> wrote: > >> Exactly, It's too messy to do it that way, and hence I had to post it here >> to find an alternative for it. >> >> We also need a decoupled solution. We thought of pub-sub but have no idea >> on how to implement it (Cant find much about this topic). So if anyone >> knows of such a way to do it , this would help a lot. >> >> This is one of our common requirement, cause we have many zones under >> multiple nested components in layout component and on action of some of the >> nested components in pages, those layout component needs to be updated. >> >> On Thu, Sep 4, 2014 at 12:08 AM, Geoff Callender < >> geoff.callender.jumpst...@gmail.com> wrote: >> >>> I think the issue here is that he'd like one deeply nested component, >>> let's call it Z, to be refreshed when another deeply nested component, >>> let's call it N, that doesn't know about Z, is refreshed. >>> >>> One way is to bubble up an event from N until it reaches a common parent, >>> C, which in this example is the parent of the layout. C then calls >>> component.doChangeOfNotifications(), which calls >>> componentA.doChangeOfNotifications(), which calls ... etc. .. which calls >>> Z.doChangeOfNotifications(). Messy, with lots of components needing new >>> method doChangeOfNotifications. You can see something like this in: >>> >>> >>> http://jumpstart.doublenegative.com.au/jumpstart7/together/ajaxcomponentscrud/persons >>> >>> where Persons, which is the page, calls list.doChangeOfSelectedPerson() in >>> response to several bubbled-up events. >>> >>> Ideally, a synchronous pub-sub server-side could solve it. N would publish >>> and Z would subscribe. Z would use AjaxResponseRenderer to add its zone to >>> the render list. Unfortunately, I don't know of such a mechanism. >>> >>> Any other suggestions? >>> >>> On 4 Sep 2014, at 3:51 am, Thiago H de Paula Figueiredo < >>> thiag...@gmail.com> wrote: >>> >>>> On Wed, 03 Sep 2014 13:40:53 -0300, Sumanth <roasteddra...@gmail.com> >>> wrote: >>>> >>>>> Hello Experts, >>>> >>>> Hi! >>>> >>>>> >>>>> I have encountered one more hurdle now regarding zones, >>>>> >>>>> I have a layout >>>>> component>componentA>componentB>componentC>NotificationComponent>Zone >>>>> >>>>> This zone is a count zone and is updated using a mixin >>> (periodiczonerefresh >>>>> mixin). >>>>> >>>>> I have a notification page in which i have a Zone(a table inside a zone >>>>> containing notifications) and an actionlink to delete the selected >>>>> notifications.(bulk delete). On delete of these notifications i want the >>>>> count which is in layout component (mentioned above) to be updated. >>>>> >>>>> How can i do it? >>>> >>>> The easiest way is to define the id of the zone to be updated and use >>> its addRender(String clientId, Object renderer) to update it. >>>> >>>> -- >>>> Thiago H. de Paula Figueiredo >>>> Tapestry, Java and Hibernate consultant and developer >>>> http://machina.com.br >>>> >>>> --------------------------------------------------------------------- >>>> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org >>>> For additional commands, e-mail: users-h...@tapestry.apache.org >>> >>> > --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org