James, taking Igor example why not providing simple marking interfaces in
the Core and then something like this in the Page implementation, (i was
thinking of the Dynamic Proxy approach you mention, but i'm not seeing why
it would be needed here since all you want is to propagate the Component
re-rendering into the current AjaxRequestTarget)

i.e: Defining a root Event named: AjaxEventResponseListener

then defining a simple method in base page:


protected void propagateAjaxEvent(Class<? extends AjaxEventResponseListener>
listener, final AjaxRequestTarget target) {
 getPage().visitChildren(listener,
new IVisitor<Component>() {
public Object component(Component component) {
 target.addComponent(component);
return CONTINUE_TRAVERSAL_BUT_DONT_GO_DEEPER;
 }
});
}



On Wed, Aug 25, 2010 at 11:08 AM, James Carman [via Apache Wicket] <
ml-node+2338298-400135988-65...@n4.nabble.com<ml-node%2b2338298-400135988-65...@n4.nabble.com>
> wrote:

> There's an issue in trunk where they nail down the type parameter to
> extend Component on the visitChildren() method.  If you're looking for
> a listener interface, that's not possible, because Component is a
> class and your listener interface can't extend that.  Why the
> restriction?
>
> On Wed, Aug 25, 2010 at 9:35 AM, James Carman
> <[hidden email] <http://user/SendEmail.jtp?type=node&node=2338298&i=0>>
> wrote:
>
> > So, submit a JIRA with a patch once you get it working.  It would be
> > good to have this on the Page class so that it's portable (no
> > casting).
> >
> > On Wed, Aug 25, 2010 at 9:12 AM, jcgarciam <[hidden 
> > email]<http://user/SendEmail.jtp?type=node&node=2338298&i=1>>
> wrote:
> >>
> >> Thanks for expressing your help on this, im already working on it :-),
> since
> >> is not that hard to implement, but i would like to see this kind of
> >> functionality in the core . :)
> >>
> >> On Wed, Aug 25, 2010 at 10:09 AM, James Carman [via Apache Wicket] <
> >> [hidden email] 
> >> <http://user/SendEmail.jtp?type=node&node=2338298&i=2><[hidden
> email] <http://user/SendEmail.jtp?type=node&node=2338298&i=3>>
> >>> wrote:
> >>
> >>> Do you want an example of how it would work or are you confident in
> >>> how to implement it yourself?
> >>>
> >>> On Wed, Aug 25, 2010 at 9:05 AM, jcgarciam <[hidden email]<
> http://user/SendEmail.jtp?type=node&node=2338212&i=0>>
> >>> wrote:
> >>>
> >>> >
> >>> > Hi James, I like the idea of having a way of automatically includes
> >>> > components in the AjaxRequestTarget without the need to do it
> explicitly
> >>> > (target.add(..)), by using a Marking Interface and the Visitor, it
> really
> >>>
> >>> > would make things easier when you want to add a new component to the
> >>> current
> >>> > Ajax Response.
> >>> >
> >>> > The idea of the DynamicProxy seems very promising and i thinks it
> >>> something
> >>> > way much better of having Pub/Sub event implementation.
> >>> >
> >>> > Just my +0.05 cents :)
> >>> >
> >>> > On Wed, Aug 25, 2010 at 9:11 AM, James Carman [via Apache Wicket] <
> >>> > [hidden email] 
> >>> > <http://user/SendEmail.jtp?type=node&node=2338212&i=1><[hidden
>
> >>> email] <http://user/SendEmail.jtp?type=node&node=2338212&i=2>>
> >>> >> wrote:
> >>> >
> >>> >> What about if we modify this idea a bit?  What if we use dynamic
> >>> >> proxies to make it more generic?  So, your onclick method would look
>
> >>> >> like:
> >>> >>
> >>> >> public void onClick(AjaxRequestTarget target) {
> >>> >>   fire(MyCustomEventListener.class).someAjaxEvent(target);
> >>> >> }
> >>> >>
> >>> >> Then, the fire() method would return an object (a dynamic proxy)
> that
> >>> >> implements the MyCustomEventListener interface.  The method
> >>> >> implementation would do the visitor thing by looking for all
> >>> >> components implementing the MyCustomEventListener interface and then
>
> >>> >> call the someAjaxEvent() method.
> >>> >>
> >>> >> On Wed, Aug 25, 2010 at 5:10 AM, vladimir.kovalyuk <[hidden email]<
> >>> http://user/SendEmail.jtp?type=node&node=2338119&i=0>>
> >>> >> wrote:
> >>> >>
> >>> >> >
> >>> >> > I don't like subscriptions implementation. Somewhen it becomes
> >>> difficult
> >>> >> to
> >>> >> > realize when to add/remove observers. It depends on the order of
> >>> >> > instantiations. Visitor pattern seems to be much more reliable.
> >>> >> > --
> >>> >> > View this message in context:
> >>> >>
> >>>
> http://apache-wicket.1842946.n4.nabble.com/Best-practice-for-component-interaction-tp2336888p2337874.html<http://apache-wicket.1842946.n4.nabble.com/Best-practice-for-component-interaction-tp2336888p2337874.html?by-user=t>
> <
> http://apache-wicket.1842946.n4.nabble.com/Best-practice-for-component-interaction-tp2336888p2337874.html?by-user=t<http://apache-wicket.1842946.n4.nabble.com/Best-practice-for-component-interaction-tp2336888p2337874.html?by-user=t&by-user=t>>
>
> >>> <
> >>>
> http://apache-wicket.1842946.n4.nabble.com/Best-practice-for-component-interaction-tp2336888p2337874.html?by-user=t<http://apache-wicket.1842946.n4.nabble.com/Best-practice-for-component-interaction-tp2336888p2337874.html?by-user=t&by-user=t>
> <
> http://apache-wicket.1842946.n4.nabble.com/Best-practice-for-component-interaction-tp2336888p2337874.html?by-user=t&by-user=t<http://apache-wicket.1842946.n4.nabble.com/Best-practice-for-component-interaction-tp2336888p2337874.html?by-user=t&by-user=t&by-user=t>>>
>
> >>>
> >>> >> > Sent from the Wicket - User mailing list archive at Nabble.com.
> >>> >> >
> >>> >> >
> ---------------------------------------------------------------------
> >>> >> > To unsubscribe, e-mail: [hidden email]<
> >>> http://user/SendEmail.jtp?type=node&node=2338119&i=1>
> >>> >> > For additional commands, e-mail: [hidden email]<
> >>> http://user/SendEmail.jtp?type=node&node=2338119&i=2>
> >>> >> >
> >>> >> >
> >>> >>
> >>> >>
> ---------------------------------------------------------------------
> >>> >> To unsubscribe, e-mail: [hidden email]<
> >>> http://user/SendEmail.jtp?type=node&node=2338119&i=3>
> >>> >> For additional commands, e-mail: [hidden email]<
> >>> http://user/SendEmail.jtp?type=node&node=2338119&i=4>
> >>> >>
> >>> >>
> >>> >>
> >>> >> ------------------------------
> >>> >>  View message @
> >>> >>
> >>>
> http://apache-wicket.1842946.n4.nabble.com/Best-practice-for-component-interaction-tp2336888p2338119.html<http://apache-wicket.1842946.n4.nabble.com/Best-practice-for-component-interaction-tp2336888p2338119.html?by-user=t>
> <
> http://apache-wicket.1842946.n4.nabble.com/Best-practice-for-component-interaction-tp2336888p2338119.html?by-user=t<http://apache-wicket.1842946.n4.nabble.com/Best-practice-for-component-interaction-tp2336888p2338119.html?by-user=t&by-user=t>>
>
> >>> >> To unsubscribe from Apache Wicket, click here<
> >>>
> http://apache-wicket.1842946.n4.nabble.com/template/TplServlet.jtp?tpl=unsubscribe_by_code&node=1842946&code=amNnYXJjaWFtQGdtYWlsLmNvbXwxODQyOTQ2fDEyNTYxMzc3ODY=<http://apache-wicket.1842946.n4.nabble.com/template/TplServlet.jtp?tpl=unsubscribe_by_code&node=1842946&code=amNnYXJjaWFtQGdtYWlsLmNvbXwxODQyOTQ2fDEyNTYxMzc3ODY=&by-user=t>
> <
> http://apache-wicket.1842946.n4.nabble.com/template/TplServlet.jtp?tpl=unsubscribe_by_code&node=1842946&code=amNnYXJjaWFtQGdtYWlsLmNvbXwxODQyOTQ2fDEyNTYxMzc3ODY=&by-user=t<http://apache-wicket.1842946.n4.nabble.com/template/TplServlet.jtp?tpl=unsubscribe_by_code&node=1842946&code=amNnYXJjaWFtQGdtYWlsLmNvbXwxODQyOTQ2fDEyNTYxMzc3ODY=&by-user=t&by-user=t>>>.
>
> >>>
> >>> >>
> >>> >>
> >>> >>
> >>> >
> >>> >
> >>> > --
> >>> > Sincerely,
> >>> > JC (http://www.linkedin.com/in/jcgarciam)
> >>> > Work smarter, not harder!.
> >>> >
> >>> > --
> >>> > View this message in context:
> >>>
> http://apache-wicket.1842946.n4.nabble.com/Best-practice-for-component-interaction-tp2336888p2338205.html<http://apache-wicket.1842946.n4.nabble.com/Best-practice-for-component-interaction-tp2336888p2338205.html?by-user=t>
> <
> http://apache-wicket.1842946.n4.nabble.com/Best-practice-for-component-interaction-tp2336888p2338205.html?by-user=t<http://apache-wicket.1842946.n4.nabble.com/Best-practice-for-component-interaction-tp2336888p2338205.html?by-user=t&by-user=t>>
>
> >>>
> >>> > Sent from the Wicket - User mailing list archive at Nabble.com.
> >>> >
> >>>
> >>> ---------------------------------------------------------------------
> >>> To unsubscribe, e-mail: [hidden email]<
> http://user/SendEmail.jtp?type=node&node=2338212&i=3>
> >>> For additional commands, e-mail: [hidden email]<
> http://user/SendEmail.jtp?type=node&node=2338212&i=4>
> >>>
> >>>
> >>>
> >>> ------------------------------
> >>>  View message @
> >>>
> http://apache-wicket.1842946.n4.nabble.com/Best-practice-for-component-interaction-tp2336888p2338212.html<http://apache-wicket.1842946.n4.nabble.com/Best-practice-for-component-interaction-tp2336888p2338212.html?by-user=t>
> >>> To unsubscribe from Apache Wicket, click here<
> http://apache-wicket.1842946.n4.nabble.com/template/TplServlet.jtp?tpl=unsubscribe_by_code&node=1842946&code=amNnYXJjaWFtQGdtYWlsLmNvbXwxODQyOTQ2fDEyNTYxMzc3ODY=<http://apache-wicket.1842946.n4.nabble.com/template/TplServlet.jtp?tpl=unsubscribe_by_code&node=1842946&code=amNnYXJjaWFtQGdtYWlsLmNvbXwxODQyOTQ2fDEyNTYxMzc3ODY=&by-user=t>>.
>
> >>>
> >>>
> >>>
> >>
> >>
> >> --
> >> Sincerely,
> >> JC (http://www.linkedin.com/in/jcgarciam)
> >> Work smarter, not harder!.
> >>
> >> --
> >> View this message in context:
> http://apache-wicket.1842946.n4.nabble.com/Best-practice-for-component-interaction-tp2336888p2338215.html<http://apache-wicket.1842946.n4.nabble.com/Best-practice-for-component-interaction-tp2336888p2338215.html?by-user=t>
> >> Sent from the Wicket - User mailing list archive at Nabble.com.
> >>
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [hidden 
> email]<http://user/SendEmail.jtp?type=node&node=2338298&i=4>
> For additional commands, e-mail: [hidden 
> email]<http://user/SendEmail.jtp?type=node&node=2338298&i=5>
>
>
>
> ------------------------------
>  View message @
> http://apache-wicket.1842946.n4.nabble.com/Best-practice-for-component-interaction-tp2336888p2338298.html
> To unsubscribe from Apache Wicket, click 
> here<http://apache-wicket.1842946.n4.nabble.com/template/TplServlet.jtp?tpl=unsubscribe_by_code&node=1842946&code=amNnYXJjaWFtQGdtYWlsLmNvbXwxODQyOTQ2fDEyNTYxMzc3ODY=>.
>
>
>


-- 
Sincerely,
JC (http://www.linkedin.com/in/jcgarciam)
Work smarter, not harder!.

-- 
View this message in context: 
http://apache-wicket.1842946.n4.nabble.com/Best-practice-for-component-interaction-tp2336888p2338354.html
Sent from the Wicket - User mailing list archive at Nabble.com.

Reply via email to