No, it may very well be a bug. I wouldn't be surprised at least. I'm
still busy trying to refactor/etc the For component to work under
these "dynamic" conditions a little more friendlier but if a bug is
filed I will have a much better chance of remembering. (whereas emails
to this list are only likely to have about a 10-30% chance of being
fixed unless I run into them myself ;) )

On 11/24/06, Mark Reynolds <[EMAIL PROTECTED]> wrote:
After looking at this some more, it seems to me that listener methods can't
be in components (that is, if a component is contained within another
component, the container won't get the event, the page will). I think I was
wrong about DirectLink and Submit. In any case, I put my @EventListener on
the page class and make a call my component to let it know what changed. I
am sure there must be a better way that allows me to encapsulate all the
logic within my component, so if anyone can point me in the right direction,
that would be great.

On 11/24/06, Mark Reynolds <[EMAIL PROTECTED]> wrote:
>
> I am trying to create a reusuable component that encapsulates the
> functionality of two related PropertySelection components.
>
> I placed an @EventListerner annotation on a method inside of my component
> class.
>
> public abstract class MySelection extends BaseComponent {
>
>     @EventListener(events = "onchange", elements = "item", submitForm =
> "form")
>     public void onItemSelected(IRequestCycle cycle, BrowserEvent event) {
>         // do something
>     }
>
>     <snip>
>
> }
>
> I get an exception like this:
>
> Exception: Object [EMAIL PROTECTED] does not implement a listener
> method named 'onItemSelected'.
> org.apache.hivemind.ApplicationRuntimeException
>
> It seems that Tapestry is looking for the method on the page class, not in
> the embedded component class where the annotated method lives. Normally,
> when I reference a listener method from within a compoonent (for instance on
> a DirectLink or a Submit), tapestry will find the listener method on the
> component class.
>
> Am I doing something wrong here or might this be a bug?
>
> Also, in the annotation, I have to specify the name of the form. Assuming
> I can have an @EventListener annotation inside a component, It seems a bit
> awkward for the component to need to know what the name of the form happens
> to be in which it is enclosed. Is there a dynamic way to specify the form?
>
>
>




--
Jesse Kuhnert
Tapestry/Dojo/(and a dash of TestNG), team member/developer

Open source based consulting work centered around
dojo/tapestry/tacos/hivemind. http://blog.opencomponentry.com

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to