Your suggestions worked. Thank you both! On Mon, Jan 23, 2012 at 1:50 PM, Alec Swan <alecs...@gmail.com> wrote: > What about AbstractTransformerBehavior? Can I use it to execute Javascript? > > On Mon, Jan 23, 2012 at 12:08 PM, Igor Vaynberg <igor.vaynb...@gmail.com> > wrote: >> There is no baked behavior for this. Create your own and override >> renderhead method to output js. If this is a one time thing override >> istemporary method to return true. >> >> -igor >> >> -igor >> On Jan 23, 2012 10:26 AM, "Alec Swan" <alecs...@gmail.com> wrote: >> >>> It looks like your code will add an IHeaderContributor to EVERY >>> component once IComponentOnBeforeRenderListener finds an instance of >>> IMyPanel component. Which is not what I need. >>> >>> I was hoping to do something like this: >>> >>> addPostComponentOnBeforeRenderListener(new >>> IComponentOnBeforeRenderListener() { >>> @Override >>> public void onBeforeRender(Component component) { >>> if (component instanceof MicroSitePanel) { >>> component.add(new XXXBehavior() { >>> // somehow fire Javascript when component >>> renders, e.g. onComponentTag??? >>> }); >>> } >>> } >>> }); >>> >>> So, my question is what XXXBehavior should I use and how to fire >>> Javascript when component renders? >>> >>> Thanks, >>> >>> Alec >>> >>> On Mon, Jan 23, 2012 at 10:09 AM, Andrea Del Bene <adelb...@ciseonweb.it> >>> wrote: >>> > Your idea of using PostComponentOnBeforeRenderListener sounds good to me, >>> > but I didn't understand exactly what you do with this kind of listener. >>> > >>> > Once you have checked if component implements IMyPanel, I would call >>> > Application.getHeaderContributorListenerCollection() and I would add a >>> > header contributor which renders your JavaScript as I suggested in the >>> > previous mail. >>> > The code of you IComponentOnBeforeRenderListener should be something >>> like: >>> > >>> > .... implements IComponentOnBeforeRenderListener{ >>> > >>> > onBeforeRender(Component component) { >>> > if(component instanceof IMyPanel) >>> > >>> > Application.get().getHeaderContributorListenerCollection().add(new >>> > IHeaderContributor(){ >>> > public void renderHead( IHeaderResponse >>> > response) >>> > { >>> > >>> > response.renderOnLoadJavaScript("<...your JavaScript...>"); >>> > } >>> > }); >>> > >>> > } >>> > } >>> >> >>> >> That's a a good idea but unfortunately my panels extend disjoint class >>> >> hierarchies and I can only group them using interfaces. >>> >> >>> >> Any thoughts on how I can use Application listeners to accomplish this? >>> >> >>> >> Thanks, >>> >> >>> >> Alec >>> >> >>> >> On Mon, Jan 23, 2012 at 3:41 AM, Andrea Del Bene<adelb...@ciseonweb.it> >>> >> wrote: >>> >> >>> > >>> > >>> > --------------------------------------------------------------------- >>> > To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org >>> > For additional commands, e-mail: users-h...@wicket.apache.org >>> > >>> >>> --------------------------------------------------------------------- >>> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org >>> For additional commands, e-mail: users-h...@wicket.apache.org >>> >>>
--------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org