This seems to work, but i'm not sure i trust it!

anyone have a better idea? It would be great to be able to subscribe to an event thrown by the container...

MyPage {
    @Persist
    Private List<Runnable> listeners;

    void setupRender()    {
        listeners = new ArrayList<>();
    }

    public void addListener(Runnable r)    {
        listeners.add(r);
    }

    void onSomeEvent()    {
        doSomeProcessing();
        for (Runnable l : listeners)
            l.run();
    }
}

MyEmbeddedComponent {
    @Inject
    private ComponentResources resources;

    void setupRender()    {
        ((MyPage) resources.getPage()).addListener(new Runnable()     {
            public void run()            {
                listenerMethod();
            }
        });
    }

    void listenerMethod()    {
        doSomething();
    }
}

On 23/03/2013 3:36 AM, Howard Lewis Ship wrote:
ive tought this woud be a cool feature, but it does not exist yet.

On Thursday, March 21, 2013, Paul Stanton wrote:

Hi all,

Is there a way to trigger an event in a container (Page) which notifies
embedded components?

I'm hoping to do something like this (pseudo code) :

Page
{
     void onSomeEvent()
     {
         notifyListeners("**SomethingHappened");
     }
}

EmbeddedComponent
{
     void setupRender()
     {
         page.listenTo("**SomethingHappened");
     }

     void onSomethingHappened()
     {
         // called when triggered by page
     }
}

Help appreciated, thanks, paul.

------------------------------**------------------------------**---------
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

Reply via email to