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

Reply via email to