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 <peat...@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 <peat...@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 <peat...@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-unsubscr...@wicket.apache.org
> >>>> For additional commands, e-mail: users-h...@wicket.apache.org
> >>>>
> >>>>
> >>>>
> >>>>
> >>>
> >>>
> >>
> >> --
> >> http://jetwick.com twitter search prototype
> >>
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> >> For additional commands, e-mail: users-h...@wicket.apache.org
> >>
> >>
> >>
> >
>
>
> --
> http://jetwick.com twitter search prototype
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> For additional commands, e-mail: users-h...@wicket.apache.org
>
>

Reply via email to