You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@wicket.apache.org by Peter Karich <pe...@yahoo.de> on 2010/09/09 12:00:25 UTC

Custom autocompletion event 'on selection change'

Hi,

I would like to fire an ajax event every time the user changes the
selection of the choices
e.g. he switches from 'wiki' to 'wicket' with keys or mouse

Which function is necessary to fire such an event on the client side?
I never did sth. similar to this and tried (without success + a long
time) to customize wicket-autocomplete.js according to some hints [1] .
And how can I add a behaviour on the server side which listens to this
custom event? Any hints?

Regards,
Peter.

[1]
http://day-to-day-stuff.blogspot.com/2006/10/wicket-autocompletion-improvements.html
http://karthikg.wordpress.com/2008/01/24/developing-a-custom-apache-wicket-component/
http://ptrthomas.wordpress.com/2009/08/12/wicket-tutorial-yui-autocomplete-using-json-and-ajax/

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


Re: Custom autocompletion event 'on selection change'

Posted by Peter Karich <pe...@yahoo.de>.
Hi Martin, hi Pieter!

wow! This works now and I thought one has to write ajax assembler to
make it running ...
Thanks a lot!

Are the ajax functions documented anywhere?

Regards,
Peter.

> Hi Peter,
>
> Use wicketAjaxGet() instead of Wicket.Ajax.Request.get().
> The former uses the latter and knows how to process the xml response
> returned by AjaxRequestTarget.
>
> On Thu, Sep 9, 2010 at 5:54 PM, Peter Karich <pe...@yahoo.de> wrote:
>
>   
>> Hi Martin,
>>
>> your instructions helped a lot! Now I can send an ajax request via * and
>> recieve the request via **
>>
>> But the problem is that the javascript function 'doUpdateChoices' will
>> only update the choices-divs
>> and not all the targets that I added in the java method
>> 'onSelectionChange'.
>>
>> Do you know how to handle this?
>>
>> (And - not so important - do you know the meaning of the parameters of
>> 'Wicket.Ajax.Request' especially 'wicket-autocomplete|d'?)
>>
>> Regards,
>> Peter.
>>
>> *
>> function setSelected(newSelected) {
>>        if (newSelected != selected) {
>>            selected = newSelected;
>>            selChSinceLastRender = true;
>>            localThrottler.throttle(getMenuId(), throttleDelay,
>> sendSelectedValue);
>>        }
>> }
>>
>> function sendSelectedValue() {
>>        showIndicator();
>>        var value = handleSelection(getSelectedValue());
>>        Wicket.Log.info("Send ajax request! Selected value:" + value);
>>        var request = new
>> Wicket.Ajax.Request(callbackUrl+(callbackUrl.indexOf("?")>-1 ? "&" :
>> "?") + "sv="+processValue(value),
>>            doUpdateChoices, false, true, false, "wicket-autocomplete|d");
>>        request.get();
>> }
>>
>>
>> **
>> @Override
>> protected void respond(AjaxRequestTarget target) {
>>        final RequestCycle requestCycle = RequestCycle.get();
>>        String val = requestCycle.getRequest().getParameter("sv");
>>        if (val != null)
>>            onSelectionChange(target, val);
>>        else {
>>            val = requestCycle.getRequest().getParameter("q");
>>            onRequest(val, requestCycle);
>>         }
>> }
>>
>>
>>     
>>> Hi Peter,
>>>
>>> Looking at the code I think you'll need to touch wicket-autocomplete.js.
>>> Copy it to your project and override
>>>
>>>       
>> org.apache.wicket.extensions.ajax.markup.html.autocomplete.AutoCompleteBehavior#renderHead(IHeaderResponse)
>>     
>>> so that it loads your .js file.
>>> Then make
>>>
>>>       
>> org.apache.wicket.extensions.ajax.markup.html.autocomplete.AutoCompleteTextField.newAutoCompleteBehavior(IAutoCompleteRenderer<T>,
>>     
>>> AutoCompleteSettings) return your custom AutoCompleteBehavior.
>>>
>>> In the .js itself you'll need to touch "function
>>>       
>> setSelected(newSelected)"
>>     
>>> at line 212 (1.4-SNAPSHOT). Each time this function is called you'll have
>>>       
>> to
>>     
>>> make your Ajax call.
>>>
>>> Good luck!
>>>
>>> On Thu, Sep 9, 2010 at 1:07 PM, Peter Karich <pe...@yahoo.de> wrote:
>>>
>>>
>>>       
>>>> Hi Pieter,
>>>>
>>>> thanks for your quick response! And sorry, I didn't mention that I am
>>>>         
>> using
>>     
>>>>
>>>>         
>> org.apache.wicket.extensions.ajax.markup.html.autocomplete.AutoCompleteTextField
>>     
>>>> from wicket extensions. Or did you have another autocomplete component
>>>> in mind that I am not aware of?
>>>>
>>>> Nevertheless I tried the AjaxFormComponentUpdatingBehavior which has the
>>>> unwanted side effect that other values will be submitted too.
>>>> Then I tried with
>>>> autoCompleteField.add(new OnChangeAjaxBehavior() {
>>>>        @Override
>>>>       protected void onUpdate(AjaxRequestTarget target) {
>>>> // sout here
>>>>       });
>>>>
>>>> But this will fire only every time I change the textfield value, not the
>>>> selection of the suggestions :-(
>>>>
>>>> Regards,
>>>> Peter.
>>>>
>>>>
>>>>         
>>>>> add AjaxFormComponentUpdatingBehavior to your dropdownChoice.
>>>>>
>>>>> new AjaxFormComponentUpdatingBehavior("onchange") {
>>>>>             @Override
>>>>>             protected void onUpdate(AjaxRequestTarget target) {
>>>>>                 //do the needed stuff here...
>>>>>             }
>>>>>         })
>>>>>
>>>>> The onUpdate() will be triggered when the selection changes, however
>>>>>           
>> the
>>     
>>>>> behavor will be different if you do this with mous or keys (and even
>>>>>           
>> from
>>     
>>>>> browser to brower if I'm not mistaking....)
>>>>> Anyhow, with FireFow it is a follows:
>>>>>
>>>>> with mouse: onUpdate(..) is fired from the moment you change the
>>>>>
>>>>>           
>>>> selection.
>>>>
>>>>         
>>>>> with keys: onUpdate(..) is fired from the moment you change the
>>>>>           
>> selection
>>     
>>>>> AND the component loses focus (by pressing tab for example) or the user
>>>>> presses ENTER
>>>>>
>>>>>
>>>>> Hope this helps.
>>>>>
>>>>>
>>>>> Pieter
>>>>>
>>>>> On Thu, Sep 9, 2010 at 12:00 PM, Peter Karich <pe...@yahoo.de>
>>>>>           
>> wrote:
>>     
>>>>>
>>>>>
>>>>>           
>>>>>> Hi,
>>>>>>
>>>>>> I would like to fire an ajax event every time the user changes the
>>>>>> selection of the choices
>>>>>> e.g. he switches from 'wiki' to 'wicket' with keys or mouse
>>>>>>
>>>>>> Which function is necessary to fire such an event on the client side?
>>>>>> I never did sth. similar to this and tried (without success + a long
>>>>>> time) to customize wicket-autocomplete.js according to some hints [1]
>>>>>>             
>> .
>>     
>>>>>> And how can I add a behaviour on the server side which listens to this
>>>>>> custom event? Any hints?
>>>>>>
>>>>>> Regards,
>>>>>> Peter.
>>>>>>
>>>>>> [1]
>>>>>>
>>>>>>
>>>>>>
>>>>>>             
>>>>         
>> http://day-to-day-stuff.blogspot.com/2006/10/wicket-autocompletion-improvements.html
>>     
>>>>         
>>>>>>
>>>>>>             
>>>>         
>> http://karthikg.wordpress.com/2008/01/24/developing-a-custom-apache-wicket-component/
>>     
>>>>         
>>>>>>
>>>>>>             
>>>>         
>> http://ptrthomas.wordpress.com/2009/08/12/wicket-tutorial-yui-autocomplete-using-json-and-ajax/
>>     
>>


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


Re: Custom autocompletion event 'on selection change'

Posted by Martin Grigorov <mg...@apache.org>.
Hi Peter,

Use wicketAjaxGet() instead of Wicket.Ajax.Request.get().
The former uses the latter and knows how to process the xml response
returned by AjaxRequestTarget.

On Thu, Sep 9, 2010 at 5:54 PM, Peter Karich <pe...@yahoo.de> wrote:

> Hi Martin,
>
> your instructions helped a lot! Now I can send an ajax request via * and
> recieve the request via **
>
> But the problem is that the javascript function 'doUpdateChoices' will
> only update the choices-divs
> and not all the targets that I added in the java method
> 'onSelectionChange'.
>
> Do you know how to handle this?
>
> (And - not so important - do you know the meaning of the parameters of
> 'Wicket.Ajax.Request' especially 'wicket-autocomplete|d'?)
>
> Regards,
> Peter.
>
> *
> function setSelected(newSelected) {
>        if (newSelected != selected) {
>            selected = newSelected;
>            selChSinceLastRender = true;
>            localThrottler.throttle(getMenuId(), throttleDelay,
> sendSelectedValue);
>        }
> }
>
> function sendSelectedValue() {
>        showIndicator();
>        var value = handleSelection(getSelectedValue());
>        Wicket.Log.info("Send ajax request! Selected value:" + value);
>        var request = new
> Wicket.Ajax.Request(callbackUrl+(callbackUrl.indexOf("?")>-1 ? "&" :
> "?") + "sv="+processValue(value),
>            doUpdateChoices, false, true, false, "wicket-autocomplete|d");
>        request.get();
> }
>
>
> **
> @Override
> protected void respond(AjaxRequestTarget target) {
>        final RequestCycle requestCycle = RequestCycle.get();
>        String val = requestCycle.getRequest().getParameter("sv");
>        if (val != null)
>            onSelectionChange(target, val);
>        else {
>            val = requestCycle.getRequest().getParameter("q");
>            onRequest(val, requestCycle);
>         }
> }
>
>
> > Hi Peter,
> >
> > Looking at the code I think you'll need to touch wicket-autocomplete.js.
> > Copy it to your project and override
> >
> org.apache.wicket.extensions.ajax.markup.html.autocomplete.AutoCompleteBehavior#renderHead(IHeaderResponse)
> > so that it loads your .js file.
> > Then make
> >
> org.apache.wicket.extensions.ajax.markup.html.autocomplete.AutoCompleteTextField.newAutoCompleteBehavior(IAutoCompleteRenderer<T>,
> > AutoCompleteSettings) return your custom AutoCompleteBehavior.
> >
> > In the .js itself you'll need to touch "function
> setSelected(newSelected)"
> > at line 212 (1.4-SNAPSHOT). Each time this function is called you'll have
> to
> > make your Ajax call.
> >
> > Good luck!
> >
> > On Thu, Sep 9, 2010 at 1:07 PM, Peter Karich <pe...@yahoo.de> wrote:
> >
> >
> >> Hi Pieter,
> >>
> >> thanks for your quick response! And sorry, I didn't mention that I am
> using
> >>
> >>
> org.apache.wicket.extensions.ajax.markup.html.autocomplete.AutoCompleteTextField
> >> from wicket extensions. Or did you have another autocomplete component
> >> in mind that I am not aware of?
> >>
> >> Nevertheless I tried the AjaxFormComponentUpdatingBehavior which has the
> >> unwanted side effect that other values will be submitted too.
> >> Then I tried with
> >> autoCompleteField.add(new OnChangeAjaxBehavior() {
> >>        @Override
> >>       protected void onUpdate(AjaxRequestTarget target) {
> >> // sout here
> >>       });
> >>
> >> But this will fire only every time I change the textfield value, not the
> >> selection of the suggestions :-(
> >>
> >> Regards,
> >> Peter.
> >>
> >>
> >>> add AjaxFormComponentUpdatingBehavior to your dropdownChoice.
> >>>
> >>> new AjaxFormComponentUpdatingBehavior("onchange") {
> >>>             @Override
> >>>             protected void onUpdate(AjaxRequestTarget target) {
> >>>                 //do the needed stuff here...
> >>>             }
> >>>         })
> >>>
> >>> The onUpdate() will be triggered when the selection changes, however
> the
> >>> behavor will be different if you do this with mous or keys (and even
> from
> >>> browser to brower if I'm not mistaking....)
> >>> Anyhow, with FireFow it is a follows:
> >>>
> >>> with mouse: onUpdate(..) is fired from the moment you change the
> >>>
> >> selection.
> >>
> >>> with keys: onUpdate(..) is fired from the moment you change the
> selection
> >>> AND the component loses focus (by pressing tab for example) or the user
> >>> presses ENTER
> >>>
> >>>
> >>> Hope this helps.
> >>>
> >>>
> >>> Pieter
> >>>
> >>> On Thu, Sep 9, 2010 at 12:00 PM, Peter Karich <pe...@yahoo.de>
> wrote:
> >>>
> >>>
> >>>
> >>>> Hi,
> >>>>
> >>>> I would like to fire an ajax event every time the user changes the
> >>>> selection of the choices
> >>>> e.g. he switches from 'wiki' to 'wicket' with keys or mouse
> >>>>
> >>>> Which function is necessary to fire such an event on the client side?
> >>>> I never did sth. similar to this and tried (without success + a long
> >>>> time) to customize wicket-autocomplete.js according to some hints [1]
> .
> >>>> And how can I add a behaviour on the server side which listens to this
> >>>> custom event? Any hints?
> >>>>
> >>>> Regards,
> >>>> Peter.
> >>>>
> >>>> [1]
> >>>>
> >>>>
> >>>>
> >>
> http://day-to-day-stuff.blogspot.com/2006/10/wicket-autocompletion-improvements.html
> >>
> >>>>
> >>>>
> >>
> http://karthikg.wordpress.com/2008/01/24/developing-a-custom-apache-wicket-component/
> >>
> >>>>
> >>>>
> >>
> http://ptrthomas.wordpress.com/2009/08/12/wicket-tutorial-yui-autocomplete-using-json-and-ajax/
> >>
> >>>> ---------------------------------------------------------------------
> >>>> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> >>>> For additional commands, e-mail: users-help@wicket.apache.org
> >>>>
> >>>>
> >>>>
> >>>>
> >>>
> >>>
> >>
> >> --
> >> http://jetwick.com twitter search prototype
> >>
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> >> For additional commands, e-mail: users-help@wicket.apache.org
> >>
> >>
> >>
> >
>
>
> --
> http://jetwick.com twitter search prototype
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
>
>

Re: Custom autocompletion event 'on selection change'

Posted by Peter Karich <pe...@yahoo.de>.
Hi Martin,

your instructions helped a lot! Now I can send an ajax request via * and
recieve the request via **

But the problem is that the javascript function 'doUpdateChoices' will
only update the choices-divs
and not all the targets that I added in the java method 'onSelectionChange'.

Do you know how to handle this?

(And - not so important - do you know the meaning of the parameters of
'Wicket.Ajax.Request' especially 'wicket-autocomplete|d'?)

Regards,
Peter.

*
function setSelected(newSelected) {
        if (newSelected != selected) {
            selected = newSelected;
            selChSinceLastRender = true;
            localThrottler.throttle(getMenuId(), throttleDelay,
sendSelectedValue);
        }
}

function sendSelectedValue() {
        showIndicator();       
        var value = handleSelection(getSelectedValue());
        Wicket.Log.info("Send ajax request! Selected value:" + value);
        var request = new
Wicket.Ajax.Request(callbackUrl+(callbackUrl.indexOf("?")>-1 ? "&" :
"?") + "sv="+processValue(value),
            doUpdateChoices, false, true, false, "wicket-autocomplete|d");
        request.get();
}


**
@Override
protected void respond(AjaxRequestTarget target) {
        final RequestCycle requestCycle = RequestCycle.get();
        String val = requestCycle.getRequest().getParameter("sv");
        if (val != null)
            onSelectionChange(target, val);
        else {
            val = requestCycle.getRequest().getParameter("q");
            onRequest(val, requestCycle);
        }
}


> Hi Peter,
>
> Looking at the code I think you'll need to touch wicket-autocomplete.js.
> Copy it to your project and override
> org.apache.wicket.extensions.ajax.markup.html.autocomplete.AutoCompleteBehavior#renderHead(IHeaderResponse)
> so that it loads your .js file.
> Then make
> org.apache.wicket.extensions.ajax.markup.html.autocomplete.AutoCompleteTextField.newAutoCompleteBehavior(IAutoCompleteRenderer<T>,
> AutoCompleteSettings) return your custom AutoCompleteBehavior.
>
> In the .js itself you'll need to touch "function setSelected(newSelected)"
> at line 212 (1.4-SNAPSHOT). Each time this function is called you'll have to
> make your Ajax call.
>
> Good luck!
>
> On Thu, Sep 9, 2010 at 1:07 PM, Peter Karich <pe...@yahoo.de> wrote:
>
>   
>> Hi Pieter,
>>
>> thanks for your quick response! And sorry, I didn't mention that I am using
>>
>> org.apache.wicket.extensions.ajax.markup.html.autocomplete.AutoCompleteTextField
>> from wicket extensions. Or did you have another autocomplete component
>> in mind that I am not aware of?
>>
>> Nevertheless I tried the AjaxFormComponentUpdatingBehavior which has the
>> unwanted side effect that other values will be submitted too.
>> Then I tried with
>> autoCompleteField.add(new OnChangeAjaxBehavior() {
>>        @Override
>>       protected void onUpdate(AjaxRequestTarget target) {
>> // sout here
>>       });
>>
>> But this will fire only every time I change the textfield value, not the
>> selection of the suggestions :-(
>>
>> Regards,
>> Peter.
>>
>>     
>>> add AjaxFormComponentUpdatingBehavior to your dropdownChoice.
>>>
>>> new AjaxFormComponentUpdatingBehavior("onchange") {
>>>             @Override
>>>             protected void onUpdate(AjaxRequestTarget target) {
>>>                 //do the needed stuff here...
>>>             }
>>>         })
>>>
>>> The onUpdate() will be triggered when the selection changes, however the
>>> behavor will be different if you do this with mous or keys (and even from
>>> browser to brower if I'm not mistaking....)
>>> Anyhow, with FireFow it is a follows:
>>>
>>> with mouse: onUpdate(..) is fired from the moment you change the
>>>       
>> selection.
>>     
>>> with keys: onUpdate(..) is fired from the moment you change the selection
>>> AND the component loses focus (by pressing tab for example) or the user
>>> presses ENTER
>>>
>>>
>>> Hope this helps.
>>>
>>>
>>> Pieter
>>>
>>> On Thu, Sep 9, 2010 at 12:00 PM, Peter Karich <pe...@yahoo.de> wrote:
>>>
>>>
>>>       
>>>> Hi,
>>>>
>>>> I would like to fire an ajax event every time the user changes the
>>>> selection of the choices
>>>> e.g. he switches from 'wiki' to 'wicket' with keys or mouse
>>>>
>>>> Which function is necessary to fire such an event on the client side?
>>>> I never did sth. similar to this and tried (without success + a long
>>>> time) to customize wicket-autocomplete.js according to some hints [1] .
>>>> And how can I add a behaviour on the server side which listens to this
>>>> custom event? Any hints?
>>>>
>>>> Regards,
>>>> Peter.
>>>>
>>>> [1]
>>>>
>>>>
>>>>         
>> http://day-to-day-stuff.blogspot.com/2006/10/wicket-autocompletion-improvements.html
>>     
>>>>
>>>>         
>> http://karthikg.wordpress.com/2008/01/24/developing-a-custom-apache-wicket-component/
>>     
>>>>
>>>>         
>> http://ptrthomas.wordpress.com/2009/08/12/wicket-tutorial-yui-autocomplete-using-json-and-ajax/
>>     
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>>>> For additional commands, e-mail: users-help@wicket.apache.org
>>>>
>>>>
>>>>
>>>>         
>>>
>>>       
>>
>> --
>> http://jetwick.com twitter search prototype
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>> For additional commands, e-mail: users-help@wicket.apache.org
>>
>>
>>     
>   


-- 
http://jetwick.com twitter search prototype


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


Re: Custom autocompletion event 'on selection change'

Posted by Martin Grigorov <mg...@apache.org>.
Hi Peter,

Looking at the code I think you'll need to touch wicket-autocomplete.js.
Copy it to your project and override
org.apache.wicket.extensions.ajax.markup.html.autocomplete.AutoCompleteBehavior#renderHead(IHeaderResponse)
so that it loads your .js file.
Then make
org.apache.wicket.extensions.ajax.markup.html.autocomplete.AutoCompleteTextField.newAutoCompleteBehavior(IAutoCompleteRenderer<T>,
AutoCompleteSettings) return your custom AutoCompleteBehavior.

In the .js itself you'll need to touch "function setSelected(newSelected)"
at line 212 (1.4-SNAPSHOT). Each time this function is called you'll have to
make your Ajax call.

Good luck!

On Thu, Sep 9, 2010 at 1:07 PM, Peter Karich <pe...@yahoo.de> wrote:

> Hi Pieter,
>
> thanks for your quick response! And sorry, I didn't mention that I am using
>
> org.apache.wicket.extensions.ajax.markup.html.autocomplete.AutoCompleteTextField
> from wicket extensions. Or did you have another autocomplete component
> in mind that I am not aware of?
>
> Nevertheless I tried the AjaxFormComponentUpdatingBehavior which has the
> unwanted side effect that other values will be submitted too.
> Then I tried with
> autoCompleteField.add(new OnChangeAjaxBehavior() {
>        @Override
>       protected void onUpdate(AjaxRequestTarget target) {
> // sout here
>       });
>
> But this will fire only every time I change the textfield value, not the
> selection of the suggestions :-(
>
> Regards,
> Peter.
>
> > add AjaxFormComponentUpdatingBehavior to your dropdownChoice.
> >
> > new AjaxFormComponentUpdatingBehavior("onchange") {
> >             @Override
> >             protected void onUpdate(AjaxRequestTarget target) {
> >                 //do the needed stuff here...
> >             }
> >         })
> >
> > The onUpdate() will be triggered when the selection changes, however the
> > behavor will be different if you do this with mous or keys (and even from
> > browser to brower if I'm not mistaking....)
> > Anyhow, with FireFow it is a follows:
> >
> > with mouse: onUpdate(..) is fired from the moment you change the
> selection.
> > with keys: onUpdate(..) is fired from the moment you change the selection
> > AND the component loses focus (by pressing tab for example) or the user
> > presses ENTER
> >
> >
> > Hope this helps.
> >
> >
> > Pieter
> >
> > On Thu, Sep 9, 2010 at 12:00 PM, Peter Karich <pe...@yahoo.de> wrote:
> >
> >
> >> Hi,
> >>
> >> I would like to fire an ajax event every time the user changes the
> >> selection of the choices
> >> e.g. he switches from 'wiki' to 'wicket' with keys or mouse
> >>
> >> Which function is necessary to fire such an event on the client side?
> >> I never did sth. similar to this and tried (without success + a long
> >> time) to customize wicket-autocomplete.js according to some hints [1] .
> >> And how can I add a behaviour on the server side which listens to this
> >> custom event? Any hints?
> >>
> >> Regards,
> >> Peter.
> >>
> >> [1]
> >>
> >>
> http://day-to-day-stuff.blogspot.com/2006/10/wicket-autocompletion-improvements.html
> >>
> >>
> http://karthikg.wordpress.com/2008/01/24/developing-a-custom-apache-wicket-component/
> >>
> >>
> http://ptrthomas.wordpress.com/2009/08/12/wicket-tutorial-yui-autocomplete-using-json-and-ajax/
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> >> For additional commands, e-mail: users-help@wicket.apache.org
> >>
> >>
> >>
> >
> >
>
>
> --
> http://jetwick.com twitter search prototype
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
>
>

Re: Custom autocompletion event 'on selection change'

Posted by Peter Karich <pe...@yahoo.de>.
Hi Pieter,

thanks for your quick response! And sorry, I didn't mention that I am using
org.apache.wicket.extensions.ajax.markup.html.autocomplete.AutoCompleteTextField
from wicket extensions. Or did you have another autocomplete component
in mind that I am not aware of?

Nevertheless I tried the AjaxFormComponentUpdatingBehavior which has the
unwanted side effect that other values will be submitted too.
Then I tried with
autoCompleteField.add(new OnChangeAjaxBehavior() {
       @Override
       protected void onUpdate(AjaxRequestTarget target) {
// sout here
       });

But this will fire only every time I change the textfield value, not the
selection of the suggestions :-(

Regards,
Peter.

> add AjaxFormComponentUpdatingBehavior to your dropdownChoice.
>
> new AjaxFormComponentUpdatingBehavior("onchange") {
>             @Override
>             protected void onUpdate(AjaxRequestTarget target) {
>                 //do the needed stuff here...
>             }
>         })
>
> The onUpdate() will be triggered when the selection changes, however the
> behavor will be different if you do this with mous or keys (and even from
> browser to brower if I'm not mistaking....)
> Anyhow, with FireFow it is a follows:
>
> with mouse: onUpdate(..) is fired from the moment you change the selection.
> with keys: onUpdate(..) is fired from the moment you change the selection
> AND the component loses focus (by pressing tab for example) or the user
> presses ENTER
>
>
> Hope this helps.
>
>
> Pieter
>
> On Thu, Sep 9, 2010 at 12:00 PM, Peter Karich <pe...@yahoo.de> wrote:
>
>   
>> Hi,
>>
>> I would like to fire an ajax event every time the user changes the
>> selection of the choices
>> e.g. he switches from 'wiki' to 'wicket' with keys or mouse
>>
>> Which function is necessary to fire such an event on the client side?
>> I never did sth. similar to this and tried (without success + a long
>> time) to customize wicket-autocomplete.js according to some hints [1] .
>> And how can I add a behaviour on the server side which listens to this
>> custom event? Any hints?
>>
>> Regards,
>> Peter.
>>
>> [1]
>>
>> http://day-to-day-stuff.blogspot.com/2006/10/wicket-autocompletion-improvements.html
>>
>> http://karthikg.wordpress.com/2008/01/24/developing-a-custom-apache-wicket-component/
>>
>> http://ptrthomas.wordpress.com/2009/08/12/wicket-tutorial-yui-autocomplete-using-json-and-ajax/
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>> For additional commands, e-mail: users-help@wicket.apache.org
>>
>>
>>     
>
>   


-- 
http://jetwick.com twitter search prototype


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


Re: Custom autocompletion event 'on selection change'

Posted by Pieter Degraeuwe <pi...@systemworks.be>.
add AjaxFormComponentUpdatingBehavior to your dropdownChoice.

new AjaxFormComponentUpdatingBehavior("onchange") {
            @Override
            protected void onUpdate(AjaxRequestTarget target) {
                //do the needed stuff here...
            }
        })

The onUpdate() will be triggered when the selection changes, however the
behavor will be different if you do this with mous or keys (and even from
browser to brower if I'm not mistaking....)
Anyhow, with FireFow it is a follows:

with mouse: onUpdate(..) is fired from the moment you change the selection.
with keys: onUpdate(..) is fired from the moment you change the selection
AND the component loses focus (by pressing tab for example) or the user
presses ENTER


Hope this helps.


Pieter

On Thu, Sep 9, 2010 at 12:00 PM, Peter Karich <pe...@yahoo.de> wrote:

> Hi,
>
> I would like to fire an ajax event every time the user changes the
> selection of the choices
> e.g. he switches from 'wiki' to 'wicket' with keys or mouse
>
> Which function is necessary to fire such an event on the client side?
> I never did sth. similar to this and tried (without success + a long
> time) to customize wicket-autocomplete.js according to some hints [1] .
> And how can I add a behaviour on the server side which listens to this
> custom event? Any hints?
>
> Regards,
> Peter.
>
> [1]
>
> http://day-to-day-stuff.blogspot.com/2006/10/wicket-autocompletion-improvements.html
>
> http://karthikg.wordpress.com/2008/01/24/developing-a-custom-apache-wicket-component/
>
> http://ptrthomas.wordpress.com/2009/08/12/wicket-tutorial-yui-autocomplete-using-json-and-ajax/
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
>
>


-- 
Pieter Degraeuwe
Systemworks bvba
Belgiƫlaan 61
9070 Destelbergen
GSM: +32 (0)485/68.60.85
Email: pieter.degraeuwe@systemworks.be
visit us at http://www.systemworks.be