You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@wicket.apache.org by Jürgen Lind <Ju...@iteratec.de> on 2012/02/18 16:55:31 UTC

Component specific JavaScript

Hi,

I was wondering if there is any kind of best practice to add specific javascript
to a component. I often have the case, where a piece of javascript needs to run
when the component is rendered as part of full-page request, and then subsequently
as part of a self-triggered Ajax-Request or as part of an Ajax-Request triggered
by another component.

I would like to have one place where I can put the Javascript and be shure, it is
run every time...

Cheers,

J.

-- 
Dr. Jürgen Lind
iteratec GmbH                Fon: +49 (0)89 614551-44
Inselkammerstrasse 4         Fax: +49 (0)89 614551-10
82008 Unterhaching           Web: www.iteratec.de

Sitz und Registergericht der iteratec GmbH: München HRB 113 519
Geschäftsführer: Klaus Eberhardt, Mark Goerke, Inge Hanschke, Ralf Menzel

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org


Re: Component specific JavaScript

Posted by Martin Grigorov <ma...@yahoo.com>.
Well, I haven't used 1.4.x for almost two years now ...
It seems you need to add "implements IHeaderContributor" to your component.


________________________________
 From: Jürgen Lind <Ju...@iteratec.de>
To: "users@wicket.apache.org" <us...@wicket.apache.org>; Martin Grigorov <ma...@yahoo.com> 
Sent: Sunday, 19 February 2012, 12:37
Subject: Re: Component specific JavaScript
 

Strange, I am using 1.4.12 and neither is present there. The javadoc at
http://wicket.apache.org/apidocs/1.4/org/apache/wicket/Component.html also does
not show the method with this signature...

J.


On 19.02.2012 12:23, Martin Grigorov wrote:
> Hi Juergen,
>
> Both Component#renderHead(IHeaderResponse) IHeaderResponse#renderOnDomReadyJavascript() methods are available in 1.4.x.
> What exactly you think is not available there ?
>
>
> ________________________________
>   From: Jürgen Lind<Ju...@iteratec.de>
> To: "users@wicket.apache.org"<us...@wicket.apache.org>
> Sent: Sunday, 19 February 2012, 12:08
> Subject: Re: Component specific JavaScript
>
> Hi Jorge,
>
> thanks for the hint, unfortunately, this method is only available in Wicket 1.5 -
> in this projekt, I am still using Wicket 1.4. Maybe I should stop looking for
> a general solution for this project and in the future use the solution you suggested...
>
> J.
>
>
> On 19.02.2012 10:30, Jorge Rodrigez wrote:
>> Hi,
>>
>> I think you just need:
>>
>> class MyComponent extends SomeWicketComponent {
>>
>>      @Override public void renderHead(IHeaderResponse response) {
>>        response.renderOnDomReadyJavascript("someJSToExecute()");
>>      }
>> }
>>
>> someJSToExecute() will be executed every time an instance of MyComponent is
>> rendered. Both Ajax and normal requests.
>>
>> On Sat, Feb 18, 2012 at 5:46 PM, Jürgen Lind<Ju...@iteratec.de>wrote:
>>
>>> Hi Christoph,
>>>
>>> thank you for your reply, I did not know that such a method exists (does
>>> it for 1.4
>>> or is this already Wicket 1.5). An secondly: are these handlers fired on a
>>> ajax
>>> update of an existing DOM Element or only when it is added?
>>>
>>> And where would I put the Javascript that registers the handler? In the
>>> Markup-Page of
>>> the Component? How do I make sure, the handler is added only once?
>>>
>>>
>>> J.
>>>
>>>
>>> On 18.02.2012 17:39, Christoph Leiter wrote:
>>>
>>>> Hello Juergen,
>>>>
>>>> you can register a function that gets called when wicket creates a new
>>>> element in the DOM:
>>>>
>>>> Wicket.Event.subscribe('/dom/**node/added', function(element) {
>>>>         // do stuff
>>>> });
>>>>
>>>> You can also use the '/dom/node/removing' channel.
>>>>
>>>> Hope this helps.
>>>>
>>>>
>>>> Christoph
>>>>
>>>>
>>>>
>>>>
>>>> Jürgen Lind (2012-02-18 16:55):
>>>>
>>>>> Hi,
>>>>>
>>>>> I was wondering if there is any kind of best practice to add specific
>>>>> javascript
>>>>> to a component. I often have the case, where a piece of javascript needs
>>>>> to run
>>>>> when the component is rendered as part of full-page request, and then
>>>>> subsequently
>>>>> as part of a self-triggered Ajax-Request or as part of an Ajax-Request
>>>>> triggered
>>>>> by another component.
>>>>>
>>>>> I would like to have one place where I can put the Javascript and be
>>>>> shure, it is
>>>>> run every time...
>>>>>
>>>>> Cheers,
>>>>>
>>>>> J.
>>>>>
>>>>>
>>>> ------------------------------**------------------------------**---------
>>>> To unsubscribe, e-mail: users-unsubscribe@wicket.**apache.org<us...@wicket.apache.org>
>>>> For additional commands, e-mail: users-help@wicket.apache.org
>>>>
>>>>
>>>
>>> Mit freundlichen Grüßen,
>>>
>>> Jürgen Lind
>>>
>>>
>>> --
>>> Dr. Jürgen Lind
>>> iteratec GmbH                Fon: +49 (0)89 614551-44
>>> Inselkammerstrasse 4         Fax: +49 (0)89 614551-10
>>> 82008 Unterhaching           Web: www.iteratec.de
>>>
>>> Sitz und Registergericht der iteratec GmbH: München HRB 113 519
>>> Geschäftsführer: Klaus Eberhardt, Mark Goerke, Inge Hanschke, Ralf Menzel
>>>
>>> ------------------------------**------------------------------**---------
>>> To unsubscribe, e-mail: users-unsubscribe@wicket.**apache.org<us...@wicket.apache.org>
>>> For additional commands, e-mail: users-help@wicket.apache.org
>>>
>>>
>
>
> Mit freundlichen Grüßen,
>
> Jürgen Lind
>


Mit freundlichen Grüßen,

Jürgen Lind

-- 
Dr. Jürgen Lind
iteratec GmbH                Fon: +49 (0)89 614551-44
Inselkammerstrasse 4         Fax: +49 (0)89 614551-10
82008 Unterhaching           Web: www.iteratec.de

Sitz und Registergericht der iteratec GmbH: München HRB 113 519
Geschäftsführer: Klaus Eberhardt, Mark Goerke, Inge Hanschke, Ralf Menzel

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org

Re: Component specific JavaScript

Posted by Jürgen Lind <Ju...@iteratec.de>.
Strange, I am using 1.4.12 and neither is present there. The javadoc at
http://wicket.apache.org/apidocs/1.4/org/apache/wicket/Component.html also does
not show the method with this signature...

J.


On 19.02.2012 12:23, Martin Grigorov wrote:
> Hi Juergen,
>
> Both Component#renderHead(IHeaderResponse) IHeaderResponse#renderOnDomReadyJavascript() methods are available in 1.4.x.
> What exactly you think is not available there ?
>
>
> ________________________________
>   From: Jürgen Lind<Ju...@iteratec.de>
> To: "users@wicket.apache.org"<us...@wicket.apache.org>
> Sent: Sunday, 19 February 2012, 12:08
> Subject: Re: Component specific JavaScript
>
> Hi Jorge,
>
> thanks for the hint, unfortunately, this method is only available in Wicket 1.5 -
> in this projekt, I am still using Wicket 1.4. Maybe I should stop looking for
> a general solution for this project and in the future use the solution you suggested...
>
> J.
>
>
> On 19.02.2012 10:30, Jorge Rodrigez wrote:
>> Hi,
>>
>> I think you just need:
>>
>> class MyComponent extends SomeWicketComponent {
>>
>>      @Override public void renderHead(IHeaderResponse response) {
>>        response.renderOnDomReadyJavascript("someJSToExecute()");
>>      }
>> }
>>
>> someJSToExecute() will be executed every time an instance of MyComponent is
>> rendered. Both Ajax and normal requests.
>>
>> On Sat, Feb 18, 2012 at 5:46 PM, Jürgen Lind<Ju...@iteratec.de>wrote:
>>
>>> Hi Christoph,
>>>
>>> thank you for your reply, I did not know that such a method exists (does
>>> it for 1.4
>>> or is this already Wicket 1.5). An secondly: are these handlers fired on a
>>> ajax
>>> update of an existing DOM Element or only when it is added?
>>>
>>> And where would I put the Javascript that registers the handler? In the
>>> Markup-Page of
>>> the Component? How do I make sure, the handler is added only once?
>>>
>>>
>>> J.
>>>
>>>
>>> On 18.02.2012 17:39, Christoph Leiter wrote:
>>>
>>>> Hello Juergen,
>>>>
>>>> you can register a function that gets called when wicket creates a new
>>>> element in the DOM:
>>>>
>>>> Wicket.Event.subscribe('/dom/**node/added', function(element) {
>>>>         // do stuff
>>>> });
>>>>
>>>> You can also use the '/dom/node/removing' channel.
>>>>
>>>> Hope this helps.
>>>>
>>>>
>>>> Christoph
>>>>
>>>>
>>>>
>>>>
>>>> Jürgen Lind (2012-02-18 16:55):
>>>>
>>>>> Hi,
>>>>>
>>>>> I was wondering if there is any kind of best practice to add specific
>>>>> javascript
>>>>> to a component. I often have the case, where a piece of javascript needs
>>>>> to run
>>>>> when the component is rendered as part of full-page request, and then
>>>>> subsequently
>>>>> as part of a self-triggered Ajax-Request or as part of an Ajax-Request
>>>>> triggered
>>>>> by another component.
>>>>>
>>>>> I would like to have one place where I can put the Javascript and be
>>>>> shure, it is
>>>>> run every time...
>>>>>
>>>>> Cheers,
>>>>>
>>>>> J.
>>>>>
>>>>>
>>>> ------------------------------**------------------------------**---------
>>>> To unsubscribe, e-mail: users-unsubscribe@wicket.**apache.org<us...@wicket.apache.org>
>>>> For additional commands, e-mail: users-help@wicket.apache.org
>>>>
>>>>
>>>
>>> Mit freundlichen Grüßen,
>>>
>>> Jürgen Lind
>>>
>>>
>>> --
>>> Dr. Jürgen Lind
>>> iteratec GmbH                Fon: +49 (0)89 614551-44
>>> Inselkammerstrasse 4         Fax: +49 (0)89 614551-10
>>> 82008 Unterhaching           Web: www.iteratec.de
>>>
>>> Sitz und Registergericht der iteratec GmbH: München HRB 113 519
>>> Geschäftsführer: Klaus Eberhardt, Mark Goerke, Inge Hanschke, Ralf Menzel
>>>
>>> ------------------------------**------------------------------**---------
>>> To unsubscribe, e-mail: users-unsubscribe@wicket.**apache.org<us...@wicket.apache.org>
>>> For additional commands, e-mail: users-help@wicket.apache.org
>>>
>>>
>
>
> Mit freundlichen Grüßen,
>
> Jürgen Lind
>


Mit freundlichen Grüßen,

Jürgen Lind

-- 
Dr. Jürgen Lind
iteratec GmbH                Fon: +49 (0)89 614551-44
Inselkammerstrasse 4         Fax: +49 (0)89 614551-10
82008 Unterhaching           Web: www.iteratec.de

Sitz und Registergericht der iteratec GmbH: München HRB 113 519
Geschäftsführer: Klaus Eberhardt, Mark Goerke, Inge Hanschke, Ralf Menzel

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org


Re: Component specific JavaScript

Posted by Martin Grigorov <ma...@yahoo.com>.
Hi Juergen,

Both Component#renderHead(IHeaderResponse) IHeaderResponse#renderOnDomReadyJavascript() methods are available in 1.4.x.
What exactly you think is not available there ?


________________________________
 From: Jürgen Lind <Ju...@iteratec.de>
To: "users@wicket.apache.org" <us...@wicket.apache.org> 
Sent: Sunday, 19 February 2012, 12:08
Subject: Re: Component specific JavaScript
 
Hi Jorge,

thanks for the hint, unfortunately, this method is only available in Wicket 1.5 -
in this projekt, I am still using Wicket 1.4. Maybe I should stop looking for
a general solution for this project and in the future use the solution you suggested...

J.


On 19.02.2012 10:30, Jorge Rodrigez wrote:
> Hi,
>
> I think you just need:
>
> class MyComponent extends SomeWicketComponent {
>
>    @Override public void renderHead(IHeaderResponse response) {
>      response.renderOnDomReadyJavascript("someJSToExecute()");
>    }
> }
>
> someJSToExecute() will be executed every time an instance of MyComponent is
> rendered. Both Ajax and normal requests.
>
> On Sat, Feb 18, 2012 at 5:46 PM, Jürgen Lind<Ju...@iteratec.de>wrote:
>
>> Hi Christoph,
>>
>> thank you for your reply, I did not know that such a method exists (does
>> it for 1.4
>> or is this already Wicket 1.5). An secondly: are these handlers fired on a
>> ajax
>> update of an existing DOM Element or only when it is added?
>>
>> And where would I put the Javascript that registers the handler? In the
>> Markup-Page of
>> the Component? How do I make sure, the handler is added only once?
>>
>>
>> J.
>>
>>
>> On 18.02.2012 17:39, Christoph Leiter wrote:
>>
>>> Hello Juergen,
>>>
>>> you can register a function that gets called when wicket creates a new
>>> element in the DOM:
>>>
>>> Wicket.Event.subscribe('/dom/**node/added', function(element) {
>>>       // do stuff
>>> });
>>>
>>> You can also use the '/dom/node/removing' channel.
>>>
>>> Hope this helps.
>>>
>>>
>>> Christoph
>>>
>>>
>>>
>>>
>>> Jürgen Lind (2012-02-18 16:55):
>>>
>>>> Hi,
>>>>
>>>> I was wondering if there is any kind of best practice to add specific
>>>> javascript
>>>> to a component. I often have the case, where a piece of javascript needs
>>>> to run
>>>> when the component is rendered as part of full-page request, and then
>>>> subsequently
>>>> as part of a self-triggered Ajax-Request or as part of an Ajax-Request
>>>> triggered
>>>> by another component.
>>>>
>>>> I would like to have one place where I can put the Javascript and be
>>>> shure, it is
>>>> run every time...
>>>>
>>>> Cheers,
>>>>
>>>> J.
>>>>
>>>>
>>> ------------------------------**------------------------------**---------
>>> To unsubscribe, e-mail: users-unsubscribe@wicket.**apache.org<us...@wicket.apache.org>
>>> For additional commands, e-mail: users-help@wicket.apache.org
>>>
>>>
>>
>> Mit freundlichen Grüßen,
>>
>> Jürgen Lind
>>
>>
>> --
>> Dr. Jürgen Lind
>> iteratec GmbH                Fon: +49 (0)89 614551-44
>> Inselkammerstrasse 4         Fax: +49 (0)89 614551-10
>> 82008 Unterhaching           Web: www.iteratec.de
>>
>> Sitz und Registergericht der iteratec GmbH: München HRB 113 519
>> Geschäftsführer: Klaus Eberhardt, Mark Goerke, Inge Hanschke, Ralf Menzel
>>
>> ------------------------------**------------------------------**---------
>> To unsubscribe, e-mail: users-unsubscribe@wicket.**apache.org<us...@wicket.apache.org>
>> For additional commands, e-mail: users-help@wicket.apache.org
>>
>>


Mit freundlichen Grüßen,

Jürgen Lind

-- 
Dr. Jürgen Lind
iteratec GmbH                Fon: +49 (0)89 614551-44
Inselkammerstrasse 4         Fax: +49 (0)89 614551-10
82008 Unterhaching           Web: www.iteratec.de

Sitz und Registergericht der iteratec GmbH: München HRB 113 519
Geschäftsführer: Klaus Eberhardt, Mark Goerke, Inge Hanschke, Ralf Menzel

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org

Re: Component specific JavaScript

Posted by Jürgen Lind <Ju...@iteratec.de>.
Hi Jorge,

thanks for the hint, unfortunately, this method is only available in Wicket 1.5 -
in this projekt, I am still using Wicket 1.4. Maybe I should stop looking for
a general solution for this project and in the future use the solution you suggested...

J.


On 19.02.2012 10:30, Jorge Rodrigez wrote:
> Hi,
>
> I think you just need:
>
> class MyComponent extends SomeWicketComponent {
>
>    @Override public void renderHead(IHeaderResponse response) {
>      response.renderOnDomReadyJavascript("someJSToExecute()");
>    }
> }
>
> someJSToExecute() will be executed every time an instance of MyComponent is
> rendered. Both Ajax and normal requests.
>
> On Sat, Feb 18, 2012 at 5:46 PM, Jürgen Lind<Ju...@iteratec.de>wrote:
>
>> Hi Christoph,
>>
>> thank you for your reply, I did not know that such a method exists (does
>> it for 1.4
>> or is this already Wicket 1.5). An secondly: are these handlers fired on a
>> ajax
>> update of an existing DOM Element or only when it is added?
>>
>> And where would I put the Javascript that registers the handler? In the
>> Markup-Page of
>> the Component? How do I make sure, the handler is added only once?
>>
>>
>> J.
>>
>>
>> On 18.02.2012 17:39, Christoph Leiter wrote:
>>
>>> Hello Juergen,
>>>
>>> you can register a function that gets called when wicket creates a new
>>> element in the DOM:
>>>
>>> Wicket.Event.subscribe('/dom/**node/added', function(element) {
>>>       // do stuff
>>> });
>>>
>>> You can also use the '/dom/node/removing' channel.
>>>
>>> Hope this helps.
>>>
>>>
>>> Christoph
>>>
>>>
>>>
>>>
>>> Jürgen Lind (2012-02-18 16:55):
>>>
>>>> Hi,
>>>>
>>>> I was wondering if there is any kind of best practice to add specific
>>>> javascript
>>>> to a component. I often have the case, where a piece of javascript needs
>>>> to run
>>>> when the component is rendered as part of full-page request, and then
>>>> subsequently
>>>> as part of a self-triggered Ajax-Request or as part of an Ajax-Request
>>>> triggered
>>>> by another component.
>>>>
>>>> I would like to have one place where I can put the Javascript and be
>>>> shure, it is
>>>> run every time...
>>>>
>>>> Cheers,
>>>>
>>>> J.
>>>>
>>>>
>>> ------------------------------**------------------------------**---------
>>> To unsubscribe, e-mail: users-unsubscribe@wicket.**apache.org<us...@wicket.apache.org>
>>> For additional commands, e-mail: users-help@wicket.apache.org
>>>
>>>
>>
>> Mit freundlichen Grüßen,
>>
>> Jürgen Lind
>>
>>
>> --
>> Dr. Jürgen Lind
>> iteratec GmbH                Fon: +49 (0)89 614551-44
>> Inselkammerstrasse 4         Fax: +49 (0)89 614551-10
>> 82008 Unterhaching           Web: www.iteratec.de
>>
>> Sitz und Registergericht der iteratec GmbH: München HRB 113 519
>> Geschäftsführer: Klaus Eberhardt, Mark Goerke, Inge Hanschke, Ralf Menzel
>>
>> ------------------------------**------------------------------**---------
>> To unsubscribe, e-mail: users-unsubscribe@wicket.**apache.org<us...@wicket.apache.org>
>> For additional commands, e-mail: users-help@wicket.apache.org
>>
>>


Mit freundlichen Grüßen,

Jürgen Lind

-- 
Dr. Jürgen Lind
iteratec GmbH                Fon: +49 (0)89 614551-44
Inselkammerstrasse 4         Fax: +49 (0)89 614551-10
82008 Unterhaching           Web: www.iteratec.de

Sitz und Registergericht der iteratec GmbH: München HRB 113 519
Geschäftsführer: Klaus Eberhardt, Mark Goerke, Inge Hanschke, Ralf Menzel

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org


Re: Component specific JavaScript

Posted by Jorge Rodrigez <mg...@gmail.com>.
Hi,

I think you just need:

class MyComponent extends SomeWicketComponent {

  @Override public void renderHead(IHeaderResponse response) {
    response.renderOnDomReadyJavascript("someJSToExecute()");
  }
}

someJSToExecute() will be executed every time an instance of MyComponent is
rendered. Both Ajax and normal requests.

On Sat, Feb 18, 2012 at 5:46 PM, Jürgen Lind <Ju...@iteratec.de>wrote:

> Hi Christoph,
>
> thank you for your reply, I did not know that such a method exists (does
> it for 1.4
> or is this already Wicket 1.5). An secondly: are these handlers fired on a
> ajax
> update of an existing DOM Element or only when it is added?
>
> And where would I put the Javascript that registers the handler? In the
> Markup-Page of
> the Component? How do I make sure, the handler is added only once?
>
>
> J.
>
>
> On 18.02.2012 17:39, Christoph Leiter wrote:
>
>> Hello Juergen,
>>
>> you can register a function that gets called when wicket creates a new
>> element in the DOM:
>>
>> Wicket.Event.subscribe('/dom/**node/added', function(element) {
>>      // do stuff
>> });
>>
>> You can also use the '/dom/node/removing' channel.
>>
>> Hope this helps.
>>
>>
>> Christoph
>>
>>
>>
>>
>> Jürgen Lind (2012-02-18 16:55):
>>
>>> Hi,
>>>
>>> I was wondering if there is any kind of best practice to add specific
>>> javascript
>>> to a component. I often have the case, where a piece of javascript needs
>>> to run
>>> when the component is rendered as part of full-page request, and then
>>> subsequently
>>> as part of a self-triggered Ajax-Request or as part of an Ajax-Request
>>> triggered
>>> by another component.
>>>
>>> I would like to have one place where I can put the Javascript and be
>>> shure, it is
>>> run every time...
>>>
>>> Cheers,
>>>
>>> J.
>>>
>>>
>> ------------------------------**------------------------------**---------
>> To unsubscribe, e-mail: users-unsubscribe@wicket.**apache.org<us...@wicket.apache.org>
>> For additional commands, e-mail: users-help@wicket.apache.org
>>
>>
>
> Mit freundlichen Grüßen,
>
> Jürgen Lind
>
>
> --
> Dr. Jürgen Lind
> iteratec GmbH                Fon: +49 (0)89 614551-44
> Inselkammerstrasse 4         Fax: +49 (0)89 614551-10
> 82008 Unterhaching           Web: www.iteratec.de
>
> Sitz und Registergericht der iteratec GmbH: München HRB 113 519
> Geschäftsführer: Klaus Eberhardt, Mark Goerke, Inge Hanschke, Ralf Menzel
>
> ------------------------------**------------------------------**---------
> To unsubscribe, e-mail: users-unsubscribe@wicket.**apache.org<us...@wicket.apache.org>
> For additional commands, e-mail: users-help@wicket.apache.org
>
>

Re: Component specific JavaScript

Posted by Jürgen Lind <Ju...@iteratec.de>.
That's right, I just checked the sources... Anyways, although migration the project
now does not make sense, it is a good idea for the next project...

Thanks everybody,

J.

On 20.02.2012 08:31, Wilhelmsen Tor Iver wrote:
>> Thanks a lot. One last stupid question: is this supposed to work for Wicket 1.4?
>
> Doubful, the event system was added in 1.5
>
> - Tor Iver
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
>


Mit freundlichen Grüßen,

Jürgen Lind

-- 
Dr. Jürgen Lind
iteratec GmbH                Fon: +49 (0)89 614551-44
Inselkammerstrasse 4         Fax: +49 (0)89 614551-10
82008 Unterhaching           Web: www.iteratec.de

Sitz und Registergericht der iteratec GmbH: München HRB 113 519
Geschäftsführer: Klaus Eberhardt, Mark Goerke, Inge Hanschke, Ralf Menzel

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org


RE: Component specific JavaScript

Posted by Wilhelmsen Tor Iver <To...@arrive.no>.
> Thanks a lot. One last stupid question: is this supposed to work for Wicket 1.4?

Doubful, the event system was added in 1.5

- Tor Iver

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org


Re: Component specific JavaScript

Posted by Jürgen Lind <Ju...@iteratec.de>.
Thanks a lot. One last stupid question: is this supposed to work for Wicket 1.4?

J.

On 19.02.2012 15:28, Christoph Leiter wrote:
> $(document).ready(function() {
>       Wicket.Event.subscribe('/dom/node/added', function(element) {
>           $(element).css('border', '1px solid red');
>      });
> });


-- 
Dr. Jürgen Lind
iteratec GmbH                Fon: +49 (0)89 614551-44
Inselkammerstrasse 4         Fax: +49 (0)89 614551-10
82008 Unterhaching           Web: www.iteratec.de

Sitz und Registergericht der iteratec GmbH: München HRB 113 519
Geschäftsführer: Klaus Eberhardt, Mark Goerke, Inge Hanschke, Ralf Menzel

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org


Re: Component specific JavaScript

Posted by Christoph Leiter <ma...@christophleiter.com>.
Sure:

$(document).ready(function() {
     Wicket.Event.subscribe('/dom/node/added', function(element) {
         $(element).css('border', '1px solid red');
    });
});


On 19.02.2012 13:39, Jürgen Lind wrote:
> I'm not sure if I get you right on this one: the first argument of which
> event
> handler is the added element? Could you probably add some code to
> illustrate this?
>
> J.
>
> On 19.02.2012 13:28, Christoph Leiter wrote:
>> Hi Juergen,
>>
>> there's actually no need to scan the full DOM with this method. :) The
>> first argument of the event handler is the added element. You can simply
>> use it as is or pass it to $() to do jQuery magic just for the relevant
>> part.
>>
>>
>> Christoph
>>
>>
>> On 19.02.2012 13:18, Jürgen Lind wrote:
>>> Christoph,
>>>
>>> I have use yout approach (jQuery + css-class) for some time now as well.
>>> However, I
>>> have found that if the DOM tree grows rather large, a full scan puts
>>> significant load
>>> on the browser. That's why I want to be more specific and limit the
>>> scanning + updating
>>> to the relevant parts of the page.
>>>
>>> J.
>>>
>>> On 19.02.2012 13:02, Christoph Leiter wrote:
>>>> On 18.02.2012 17:46, Jürgen Lind wrote:
>>>>> thank you for your reply, I did not know that such a method exists
>>>>> (does
>>>>> it for 1.4
>>>>> or is this already Wicket 1.5). An secondly: are these handlers
>>>>> fired on
>>>>> a ajax
>>>>> update of an existing DOM Element or only when it is added?
>>>>
>>>> This is also available in 1.4. The events are fired when you add
>>>> something to the ajax request via target.add(Component)
>>>>
>>>>> And where would I put the Javascript that registers the handler? In
>>>>> the
>>>>> Markup-Page of
>>>>> the Component? How do I make sure, the handler is added only once?
>>>>
>>>> I use jQuery and register the handler globally in my main.js for every
>>>> page within $(document).ready().
>>>>
>>>> This approach works very well if you don't want to create subclasses of
>>>> components but rather execute some specific JS if e.g. a css class is
>>>> present. I use it to add a hint image to every autocomplete textfield
>>>> via jQuery.
>>>>
>>>> If it's more component specific then the renderHead() solution seems
>>>> better.
>>>>
>>>>
>>>> Christoph
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>>>> For additional commands, e-mail: users-help@wicket.apache.org
>>>>
>>>
>>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>> For additional commands, e-mail: users-help@wicket.apache.org
>>
>
>
> Mit freundlichen Grüßen,
>
> Jürgen Lind
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org


Re: Component specific JavaScript

Posted by Jürgen Lind <Ju...@iteratec.de>.
I'm not sure if I get you right on this one: the first argument of which event
handler is the added element? Could you probably add some code to illustrate this?

J.

On 19.02.2012 13:28, Christoph Leiter wrote:
> Hi Juergen,
>
> there's actually no need to scan the full DOM with this method. :) The
> first argument of the event handler is the added element. You can simply
> use it as is or pass it to $() to do jQuery magic just for the relevant
> part.
>
>
> Christoph
>
>
> On 19.02.2012 13:18, Jürgen Lind wrote:
>> Christoph,
>>
>> I have use yout approach (jQuery + css-class) for some time now as well.
>> However, I
>> have found that if the DOM tree grows rather large, a full scan puts
>> significant load
>> on the browser. That's why I want to be more specific and limit the
>> scanning + updating
>> to the relevant parts of the page.
>>
>> J.
>>
>> On 19.02.2012 13:02, Christoph Leiter wrote:
>>> On 18.02.2012 17:46, Jürgen Lind wrote:
>>>> thank you for your reply, I did not know that such a method exists (does
>>>> it for 1.4
>>>> or is this already Wicket 1.5). An secondly: are these handlers fired on
>>>> a ajax
>>>> update of an existing DOM Element or only when it is added?
>>>
>>> This is also available in 1.4. The events are fired when you add
>>> something to the ajax request via target.add(Component)
>>>
>>>> And where would I put the Javascript that registers the handler? In the
>>>> Markup-Page of
>>>> the Component? How do I make sure, the handler is added only once?
>>>
>>> I use jQuery and register the handler globally in my main.js for every
>>> page within $(document).ready().
>>>
>>> This approach works very well if you don't want to create subclasses of
>>> components but rather execute some specific JS if e.g. a css class is
>>> present. I use it to add a hint image to every autocomplete textfield
>>> via jQuery.
>>>
>>> If it's more component specific then the renderHead() solution seems
>>> better.
>>>
>>>
>>> Christoph
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>>> For additional commands, e-mail: users-help@wicket.apache.org
>>>
>>
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
>


Mit freundlichen Grüßen,

Jürgen Lind

-- 
Dr. Jürgen Lind
iteratec GmbH                Fon: +49 (0)89 614551-44
Inselkammerstrasse 4         Fax: +49 (0)89 614551-10
82008 Unterhaching           Web: www.iteratec.de

Sitz und Registergericht der iteratec GmbH: München HRB 113 519
Geschäftsführer: Klaus Eberhardt, Mark Goerke, Inge Hanschke, Ralf Menzel

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org


Re: Component specific JavaScript

Posted by Christoph Leiter <ma...@christophleiter.com>.
Hi Juergen,

there's actually no need to scan the full DOM with this method. :) The 
first argument of the event handler is the added element. You can simply 
use it as is or pass it to $() to do jQuery magic just for the relevant 
part.


Christoph


On 19.02.2012 13:18, Jürgen Lind wrote:
> Christoph,
>
> I have use yout approach (jQuery + css-class) for some time now as well.
> However, I
> have found that if the DOM tree grows rather large, a full scan puts
> significant load
> on the browser. That's why I want to be more specific and limit the
> scanning + updating
> to the relevant parts of the page.
>
> J.
>
> On 19.02.2012 13:02, Christoph Leiter wrote:
>> On 18.02.2012 17:46, Jürgen Lind wrote:
>>> thank you for your reply, I did not know that such a method exists (does
>>> it for 1.4
>>> or is this already Wicket 1.5). An secondly: are these handlers fired on
>>> a ajax
>>> update of an existing DOM Element or only when it is added?
>>
>> This is also available in 1.4. The events are fired when you add
>> something to the ajax request via target.add(Component)
>>
>>> And where would I put the Javascript that registers the handler? In the
>>> Markup-Page of
>>> the Component? How do I make sure, the handler is added only once?
>>
>> I use jQuery and register the handler globally in my main.js for every
>> page within $(document).ready().
>>
>> This approach works very well if you don't want to create subclasses of
>> components but rather execute some specific JS if e.g. a css class is
>> present. I use it to add a hint image to every autocomplete textfield
>> via jQuery.
>>
>> If it's more component specific then the renderHead() solution seems
>> better.
>>
>>
>> Christoph
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>> For additional commands, e-mail: users-help@wicket.apache.org
>>
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org


Re: Component specific JavaScript

Posted by Jürgen Lind <Ju...@iteratec.de>.
Christoph,

I have use yout approach (jQuery + css-class) for some time now as well. However, I
have found that if the DOM tree grows rather large, a full scan puts significant load
on the browser. That's why I want to be more specific and limit the scanning + updating
to the relevant parts of the page.

J.

On 19.02.2012 13:02, Christoph Leiter wrote:
> On 18.02.2012 17:46, Jürgen Lind wrote:
>> thank you for your reply, I did not know that such a method exists (does
>> it for 1.4
>> or is this already Wicket 1.5). An secondly: are these handlers fired on
>> a ajax
>> update of an existing DOM Element or only when it is added?
>
> This is also available in 1.4. The events are fired when you add
> something to the ajax request via target.add(Component)
>
>> And where would I put the Javascript that registers the handler? In the
>> Markup-Page of
>> the Component? How do I make sure, the handler is added only once?
>
> I use jQuery and register the handler globally in my main.js for every
> page within $(document).ready().
>
> This approach works very well if you don't want to create subclasses of
> components but rather execute some specific JS if e.g. a css class is
> present. I use it to add a hint image to every autocomplete textfield
> via jQuery.
>
> If it's more component specific then the renderHead() solution seems better.
>
>
> Christoph
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
>


-- 
Dr. Jürgen Lind
iteratec GmbH                Fon: +49 (0)89 614551-44
Inselkammerstrasse 4         Fax: +49 (0)89 614551-10
82008 Unterhaching           Web: www.iteratec.de

Sitz und Registergericht der iteratec GmbH: München HRB 113 519
Geschäftsführer: Klaus Eberhardt, Mark Goerke, Inge Hanschke, Ralf Menzel

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org


Re: Component specific JavaScript

Posted by Christoph Leiter <ma...@christophleiter.com>.
On 18.02.2012 17:46, Jürgen Lind wrote:
> thank you for your reply, I did not know that such a method exists (does
> it for 1.4
> or is this already Wicket 1.5). An secondly: are these handlers fired on
> a ajax
> update of an existing DOM Element or only when it is added?

This is also available in 1.4. The events are fired when you add 
something to the ajax request via target.add(Component)

> And where would I put the Javascript that registers the handler? In the
> Markup-Page of
> the Component? How do I make sure, the handler is added only once?

I use jQuery and register the handler globally in my main.js for every 
page within $(document).ready().

This approach works very well if you don't want to create subclasses of 
components but rather execute some specific JS if e.g. a css class is 
present. I use it to add a hint image to every autocomplete textfield 
via jQuery.

If it's more component specific then the renderHead() solution seems better.


Christoph

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org


Re: Component specific JavaScript

Posted by Jürgen Lind <Ju...@iteratec.de>.
Hi Christoph,

thank you for your reply, I did not know that such a method exists (does it for 1.4
or is this already Wicket 1.5). An secondly: are these handlers fired on a ajax
update of an existing DOM Element or only when it is added?

And where would I put the Javascript that registers the handler? In the Markup-Page of
the Component? How do I make sure, the handler is added only once?


J.

On 18.02.2012 17:39, Christoph Leiter wrote:
> Hello Juergen,
>
> you can register a function that gets called when wicket creates a new
> element in the DOM:
>
> Wicket.Event.subscribe('/dom/node/added', function(element) {
>       // do stuff
> });
>
> You can also use the '/dom/node/removing' channel.
>
> Hope this helps.
>
>
> Christoph
>
>
>
>
> Jürgen Lind (2012-02-18 16:55):
>> Hi,
>>
>> I was wondering if there is any kind of best practice to add specific
>> javascript
>> to a component. I often have the case, where a piece of javascript needs
>> to run
>> when the component is rendered as part of full-page request, and then
>> subsequently
>> as part of a self-triggered Ajax-Request or as part of an Ajax-Request
>> triggered
>> by another component.
>>
>> I would like to have one place where I can put the Javascript and be
>> shure, it is
>> run every time...
>>
>> Cheers,
>>
>> J.
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
>


Mit freundlichen Grüßen,

Jürgen Lind

-- 
Dr. Jürgen Lind
iteratec GmbH                Fon: +49 (0)89 614551-44
Inselkammerstrasse 4         Fax: +49 (0)89 614551-10
82008 Unterhaching           Web: www.iteratec.de

Sitz und Registergericht der iteratec GmbH: München HRB 113 519
Geschäftsführer: Klaus Eberhardt, Mark Goerke, Inge Hanschke, Ralf Menzel

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org


Re: Component specific JavaScript

Posted by Christoph Leiter <ma...@christophleiter.com>.
Hello Juergen,

you can register a function that gets called when wicket creates a new 
element in the DOM:

Wicket.Event.subscribe('/dom/node/added', function(element) {
     // do stuff
});

You can also use the '/dom/node/removing' channel.

Hope this helps.


Christoph




Jürgen Lind (2012-02-18 16:55):
> Hi,
>
> I was wondering if there is any kind of best practice to add specific
> javascript
> to a component. I often have the case, where a piece of javascript needs
> to run
> when the component is rendered as part of full-page request, and then
> subsequently
> as part of a self-triggered Ajax-Request or as part of an Ajax-Request
> triggered
> by another component.
>
> I would like to have one place where I can put the Javascript and be
> shure, it is
> run every time...
>
> Cheers,
>
> J.
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org