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]