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

Reply via email to