Yes, that was my initial solution but I ran into problems, but strangely it
seems to work fine now?!
I just call the onX event I already use for catching the bubbled up events, so
it seems I can remove my doRefresh and onRefresh code afterall.
Confused but happy :)
----- Original Message -----
From: Geoff Callender
To: Tapestry users
Sent: Wednesday, September 10, 2014 1:02 AM
Subject: Re: component events bubbling down?
It looks like your server-side has all the info it needs to do a refresh, so
you can probably keep it as simple as this:
public void doRefresh() {
setup();
if (request.isXHR()) {
ajaxResponseRenderer.addZone(cartZone);
}
}
In contrast, in the example, the server-side doesn't know the filter value
but the client-side does, so the server-side asks the client-side to do the
refresh.
Geoff
On 10 Sep 2014, at 8:46 am, John <[email protected]> wrote:
> That example was really helpfull, thanks Geoff.
>
> My case was somewhat more trivial (just a line of js) and I'm using got5
jquery. The containing parent injects a reference to the cart-like component
and handles events from other sibling components by invoking doRefresh, which
triggers the client side to onRefresh:
>
>
> public void doRefresh() {
> log.debug("doRefresh");
> ajaxResponseRenderer.addCallback(new JavaScriptCallback() {
> @Override
> public void run(JavaScriptSupport javascriptSupport) {
> String url =
componentResources.createEventLink("refresh").toURI();
> javascriptSupport.addScript(
> String.format("$('#cartZone').tapestryZone('update',
{url : '%s'});", url));
> }
> });
> }
>
> public Object onRefresh() {
> log.debug("onRefresh");
> setup(); // prepare for render
> return cartZone.getBody();
> }
>
>
> This works like a charm although I feel I'm boilerplating with this code.
Any suggestions for improvement welcome.
>
> ----- Original Message -----
> From: Geoff Callender
> To: Tapestry users
> Sent: Sunday, September 07, 2014 1:44 AM
> Subject: Re: component events bubbling down?
>
>
> Here's a working example that solves it in the same way that you were
trying - with bubble up and call down...
>
>
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.
>
> Geoff
>
>
> On 7 Sep 2014, at 9:31 am, Chris Poulsen <[email protected]> wrote:
>
>> Hi,
>>
>> I believe that https://issues.apache.org/jira/browse/TAP5-2383 is about
>> this case. There are several possible solutions mentioned in that issue/its
>> comments.
>>
>> --
>> Chris
>>
>>
>> On Sun, Sep 7, 2014 at 12:16 AM, John <[email protected]> wrote:
>>
>>> I have a situation where a child component (C) fires an event that causes
>>> the containing component(B) to refesh it's content. Another component (A)
>>> that contains B also contains compoenent D. D needs also to fire an event
>>> that causes B to refesh it's content. The event needs to go down the
>>> component hierarchy.
>>>
>>> I've tried to inject component B into A and directky invoke the event
>>> handler, but it throws exceptions. Is there a proper way to handle this,
>>> like pushing the event downwards?
>>>
>>> John
>>>
>>> ---
>>> This email is free from viruses and malware because avast! Antivirus
>>> protection is active.
>>> http://www.avast.com
>>>
>
>
>
> ---
> This email is free from viruses and malware because avast! Antivirus
protection is active.
> http://www.avast.com
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
---
This email is free from viruses and malware because avast! Antivirus protection
is active.
http://www.avast.com