You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@wicket.apache.org by Oliver Lieven <ol...@provantis.de> on 2007/10/09 07:18:55 UTC

AutoCompleteTextfield - how to populate two input fields

Hi,

in an address edit panel I've got the two AutoCompleteText fields 'zipcode'
and 'city'.

When a users begins typing into the zipcode-field, the autocomplete shows up
and offers valid "zipcode - city" combinations. After selecting a value from
the autocomplete the 'zipcode' is set. Same for 'city' field, i.e. after
selecting a "zipcode - city" from the city's autocomplete the "city"-field
is set accordingly.
(Thanks for the great autocomplete-support in Wicket which allows separation
of displayvalue and textvalue!)

Now to my question: after selection of a "zipcode - city" combination from
either autocomplete list I would like to set both fields (zipcode and city).
I already attached an AjaxFormComponentUpdatingBehavior which gets called
after a selection in the autocomplete list, but it just gets the
zipcode/city currently set.
Since the zipcode-city relation is 1:n (e.g. Berlin has many zipcodes) I'm
wondering if there is a way to access the full selected value (and not only
the AbstractAutoCompleteTextRenderer.textvalue set).


Thanks for any help and tips!
Oliver


-- 
View this message in context: http://www.nabble.com/AutoCompleteTextfield---how-to-populate-two-input-fields-tf4592192.html#a13109510
Sent from the Wicket - User mailing list archive at Nabble.com.


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


Re: AutoCompleteTextfield - how to populate two input fields

Posted by Toscano <ko...@gmail.com>.
Hello,

I know this message is from long time ago... but actually I'm stuck in a
similar situation... is too much to ask if I can get that code too?
Actually I know is too much to ask, but...

Thanks,
Oskar




Francisco Diaz Trepat - gmail wrote:
> 
> I'm on in.
> I'll send you the samples latter in the day.
> 
> cheers,
> 
> f(t)
> 
> On 10/11/07, German Morales <ge...@delta-sys.com> wrote:
>>
>> Hallo,
>>
>> With some luck you will get the usage examples later. (Francisco?)
>>
>> German
>>
>> It seems that Oliver Lieven wrote:
>> >
>> > Hi German,
>> >
>> > thanks for your offer, would be great if you could send me your code.
>> >
>> > BTW, in the meantime I got my 2nd approach working, too. I've got the
>> two
>> > separate textfields, each of them showing the "zipcode - city"
>> > autocomplete
>> > lists when data is entered. After selecting from the autocomplete list,
>> > both
>> > fields are updated correctly!
>> >
>> > Regards,
>> > Oliver
>> >
>> >
>> >
>> > German Morales wrote:
>> >>
>> >> Hi again,
>> >>
>> >> Yes, we have something similar to what you describe in your point 2.
>> >>
>> >> The only difference is that we have other structure. What we have is
>> the
>> >> following:
>> >>
>> >> -Each locality has an internal ID, a Zip Code, a City and a (swiss)
>> >> kanton.
>> >>
>> >> -in the html we have a Hidden, which stores the internal ID, and 1
>> >> (only)
>> >> TextField, which shows Zip Code + City + Canton (For example: "8052
>> >> Seebach, ZH").
>> >>
>> >> -then we have an extension as you mention (AutoCompleteTextField,
>> >> Renderer, Behavior, JavaScript), which is already working with this
>> >> schema. It also contains many fixes over the original
>> >> autocompletetextfield (perhaps originated from the extra behavior?).
>> >>
>> >> If this approach is good for you, i can send you our version, plus
>> some
>> >> example usages.
>> >>
>> >> Regards,
>> >>
>> >> German
>> >>
>> >>
>> >> It seems that Oliver Lieven wrote:
>> >>>
>> >>> Hi,
>> >>>
>> >>> thanks for your answer.
>> >>>
>> >>> No, solution didn't work as supposed, mainly because the AutoComplete
>> >>> fills
>> >>> the input field in the browser with the data (in my case either
>> zipcode
>> >>> or
>> >>> city), but doesn't update the model.
>> >>>
>> >>> To update the model I have to attach some Ajax...Behavior, but this
>> is
>> >>> called with the data put into the textfield (i.e. either the selected
>> >>> zipcode put into the zipcode field by the autocomplete, *or* the
>> >>> selected
>> >>> city from the city field). In the Ajax...Behavior's onUpdate()-method
>> >>> neither the city nor the zipcode are enough to determine the value to
>> >>> use
>> >>> to
>> >>> update the related field.
>> >>>
>> >>> So I had two other ideas:
>> >>>
>> >>> 1. in my autocomplete-list I set the "textvalue" to the id of a
>> >>> "zipcode-city" combination. When the user selects from the
>> >>> autocomplete-list, this id is written into the corresponding
>> >>> input-field.
>> >>> The attached AjaxOnChangeBehavior now gets this id, determines the
>> >>> zipcode-city, and updates the city and the zipcode field. This works,
>> >>> but
>> >>> looks a little strange to the user (e.g. selection of "71254
>> Ditzingen"
>> >>> from
>> >>> autocomplete-list writes the id ("1223") into the zipcode-field, this
>> >>> issues
>> >>> the Ajax-call, which updates both fields with the correct data, i.e.
>> >>> zipcode=71254, city=Ditzingen). As I said, works but not pretty.
>> >>>
>> >>> 2. So I'm currently extended the AutoCompleteTextField, ...Renderer,
>> >>> ...Behavior, ..JavaScript to accept a second, "related" field in its
>> >>> constructor. I then attach two attributes to the autocomplete-list
>> >>> entries
>> >>> (say textvalue and textvalue2), and modified the JavaScript to update
>> >>> both
>> >>> fields. This seems to me the best approach to my specific problem,
>> and
>> >>> seems
>> >>> to work as intended.
>> >>>
>> >>> Hope my answer was not to confusing...
>> >>> regards,
>> >>> Oliver
>> >>>
>> >>>
>> >>> German Morales wrote:
>> >>>>
>> >>>> Hi,
>> >>>>
>> >>>> Sorry, i'm a little late with my response.
>> >>>> Did the suggestion by Nino work?
>> >>>>
>> >>>> If it works, i would like to know more details about it.
>> >>>>
>> >>>> If not, we already had a somehow similar problem (Swiss addresses),
>> >>>> and
>> >>>> we
>> >>>> have a different solution already working. Perhaps it can help you
>> >>>> too.
>> >>>>
>> >>>> Regards,
>> >>>>
>> >>>> German
>> >>>>
>> >>>>
>> >>>> It seems that Nino Saturnino Martinez Vazquez Wael wrote:
>> >>>>> NP, waiting with excitement to hear if it works:)
>> >>>>>
>> >>>>> Oliver Lieven wrote:
>> >>>>>> Thanks allot for your efforts and detailed answer! Sounds good,
>> I'll
>> >>>>>> give it
>> >>>>>> a try.
>> >>>>>>
>> >>>>>>
>> >>>>>> Nino.Martinez wrote:
>> >>>>>>
>> >>>>>>> No what I meant was that when a user selects something in one  of
>> >>>>>>> your
>> >>>>>>> auto complete fields  they'll automatickly select something in
>> >>>>>>> both,
>> >>>>>>> might have been a little scares on information:
>> >>>>>>>
>> >>>>>>> IModel commonModel=new Model();
>> >>>>>>>
>> >>>>>>>
>> >>>>>>> AbstractModel() Text=new AbstractModel(){
>> >>>>>>>
>> >>>>>>> getObject{
>> >>>>>>>     return commonModel.getObject.Text;
>> >>>>>>> }
>> >>>>>>> setObject(obj){
>> >>>>>>>     commonModel.setObject(obj)
>> >>>>>>> }
>> >>>>>>>
>> >>>>>>> }
>> >>>>>>>
>> >>>>>>>
>> >>>>>>> AbstractModel() name=new AbstractModel(){
>> >>>>>>>
>> >>>>>>> getObject{
>> >>>>>>>     return commonModel.getObject.name;
>> >>>>>>> }
>> >>>>>>> setObject(obj){
>> >>>>>>>     commonModel.setObject(obj)
>> >>>>>>> }
>> >>>>>>>
>> >>>>>>> }
>> >>>>>>>
>> >>>>>>>
>> >>>>>>>
>> >>>>>>> AutoCompleteTextField phoneName = new AutoCompleteTextField(
>> >>>>>>>                 "phoneName", name,
>> >>>>>>>                 new BestEffortRendererAutoCompleteRenderer()) {
>> >>>>>>>             @Override
>> >>>>>>>             protected Iterator getChoices(String input) {
>> >>>>>>>
>> >>>>>>>                 return findItems(input);
>> >>>>>>>             }
>> >>>>>>>         };
>> >>>>>>>
>> >>>>>>>
>> >>>>>>> AutoCompleteTextField phoneSeries = new AutoCompleteTextField(
>> >>>>>>>                 "phoneName", text,
>> >>>>>>>                 new BestEffortRendererAutoCompleteRenderer()) {
>> >>>>>>>             @Override
>> >>>>>>>             protected Iterator getChoices(String input) {
>> >>>>>>>
>> >>>>>>>                 return findItems(input);
>> >>>>>>>             }
>> >>>>>>>         };
>> >>>>>>>
>> >>>>>>> And ofcourse you need to add the other completefield to the
>> >>>>>>> ajaxresponse...
>> >>>>>>>
>> >>>>>>> Hope this pseudo code works a little better... Was on my way out
>> >>>>>>> the
>> >>>>>>> door before...
>> >>>>>>>
>> >>>>>>>
>> >>>>>>> Oliver Lieven wrote:
>> >>>>>>>
>> >>>>>>>> Hi Nino,
>> >>>>>>>> thanks for your fast reply. Yes, a shared PropertyModel would
>> help
>> >>>>>>>> to
>> >>>>>>>> keep
>> >>>>>>>> both fields synchronized.
>> >>>>>>>>
>> >>>>>>>> I still can't see how this could help me to determine the value
>> >>>>>>>> selected
>> >>>>>>>> by
>> >>>>>>>> the user.
>> >>>>>>>> The AutoComplete works like
>> >>>>>>>>
>> >>>>>>>> 1. getChoices() is called to populate the autocomplete list with
>> >>>>>>>> my
>> >>>>>>>> "zipcode
>> >>>>>>>> - city" options
>> >>>>>>>> 2. when user selects a value from the autocomplete list, the
>> >>>>>>>> corresponding
>> >>>>>>>> field is set with the "textvalue" (e.g. the 'city' field is
>> filled
>> >>>>>>>> with
>> >>>>>>>> the
>> >>>>>>>> city's name)
>> >>>>>>>> 3. because of this update, the city-field's
>> >>>>>>>> AjaxFormComponentUpdatingBehavior.onUpdate() is called
>> >>>>>>>> 4. in onUpdate() the getConvertedInput() method returns the city
>> >>>>>>>> name,
>> >>>>>>>> which
>> >>>>>>>> is insufficient to determine the corresponding zipcode (because
>> of
>> >>>>>>>> the
>> >>>>>>>> n:1
>> >>>>>>>> relation (city may have many zipcodes)).
>> >>>>>>>>
>> >>>>>>>> So I'm still looking for a way to determine the exact
>> combination
>> >>>>>>>> selected
>> >>>>>>>> by the user...
>> >>>>>>>>
>> >>>>>>>> regards,
>> >>>>>>>> Oliver
>> >>>>>>>>
>> >>>>>>>>
>> >>>>>>>> Nino.Martinez wrote:
>> >>>>>>>>
>> >>>>>>>>
>> >>>>>>>>> Quick answer, why not use property models and use both in the
>> >>>>>>>>> fiields
>> >>>>>>>>> you mention?
>> >>>>>>>>>
>> >>>>>>>>> Oliver Lieven wrote:
>> >>>>>>>>>
>> >>>>>>>>>
>> >>>>>>>>>> Hi,
>> >>>>>>>>>>
>> >>>>>>>>>> in an address edit panel I've got the two AutoCompleteText
>> >>>>>>>>>> fields
>> >>>>>>>>>> 'zipcode'
>> >>>>>>>>>> and 'city'.
>> >>>>>>>>>>
>> >>>>>>>>>> When a users begins typing into the zipcode-field, the
>> >>>>>>>>>> autocomplete
>> >>>>>>>>>> shows
>> >>>>>>>>>> up
>> >>>>>>>>>> and offers valid "zipcode - city" combinations. After
>> selecting
>> >>>>>>>>>> a
>> >>>>>>>>>> value
>> >>>>>>>>>> from
>> >>>>>>>>>> the autocomplete the 'zipcode' is set. Same for 'city' field,
>> >>>>>>>>>> i.e.
>> >>>>>>>>>> after
>> >>>>>>>>>> selecting a "zipcode - city" from the city's autocomplete the
>> >>>>>>>>>> "city"-field
>> >>>>>>>>>> is set accordingly.
>> >>>>>>>>>> (Thanks for the great autocomplete-support in Wicket which
>> >>>>>>>>>> allows
>> >>>>>>>>>> separation
>> >>>>>>>>>> of displayvalue and textvalue!)
>> >>>>>>>>>>
>> >>>>>>>>>> Now to my question: after selection of a "zipcode - city"
>> >>>>>>>>>> combination
>> >>>>>>>>>> from
>> >>>>>>>>>> either autocomplete list I would like to set both fields
>> >>>>>>>>>> (zipcode
>> >>>>>>>>>> and
>> >>>>>>>>>> city).
>> >>>>>>>>>> I already attached an AjaxFormComponentUpdatingBehavior which
>> >>>>>>>>>> gets
>> >>>>>>>>>> called
>> >>>>>>>>>> after a selection in the autocomplete list, but it just gets
>> the
>> >>>>>>>>>> zipcode/city currently set.
>> >>>>>>>>>> Since the zipcode-city relation is 1:n (e.g. Berlin has many
>> >>>>>>>>>> zipcodes)
>> >>>>>>>>>> I'm
>> >>>>>>>>>> wondering if there is a way to access the full selected value
>> >>>>>>>>>> (and
>> >>>>>>>>>> not
>> >>>>>>>>>> only
>> >>>>>>>>>> the AbstractAutoCompleteTextRenderer.textvalue set).
>> >>>>>>>>>>
>> >>>>>>>>>>
>> >>>>>>>>>> Thanks for any help and tips!
>> >>>>>>>>>> Oliver
>> >>>>>>>>>>
>> >>>>>>>>>>
>> >>>>>>>>>>
>> >>>>>>>>>>
>> >>>>>>>>>>
>> >>>>>>>>> ------------------------------------------------------------
>> ---------
>> >>>>>>>>> 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
>> >>>>>>>
>> >>>>>>>
>> >>>>>>>
>> >>>>>>>
>> >>>>>>
>> >>>>>>
>> >>>>>
>> >>>>> ------------------------------------------------------------
>> ---------
>> >>>>> 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
>> >>>>
>> >>>>
>> >>>>
>> >>>
>> >>> --
>> >>> View this message in context:
>> >>> http://www.nabble.com/AutoCompleteTextfield---how-to-populat
>> e-two-input-fields-tf4592192.html#a13158414
>> >>> Sent from the Wicket - User mailing list archive at Nabble.com.
>> >>>
>> >>>
>> >>> ---------------------------------------------------------------------
>> >>> 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
>> >>
>> >>
>> >>
>> >
>> > --
>> > View this message in context:
>> > http://www.nabble.com/AutoCompleteTextfield---how-to-populat
>> e-two-input-fields-tf4592192.html#a13166291
>> > Sent from the Wicket - User mailing list archive at Nabble.com.
>> >
>> >
>> > ---------------------------------------------------------------------
>> > To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>> > For additional commands, e-mail: users-help@wicket.apache.org
>> >
>> >
>>
>>
> 
> 

-- 
View this message in context: http://www.nabble.com/AutoCompleteTextfield---how-to-populate-two-input-fields-tp13109510p21577650.html
Sent from the Wicket - User mailing list archive at Nabble.com.


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


Re: AutoCompleteTextfield - how to populate two input fields

Posted by Francisco Diaz Trepat - gmail <fr...@gmail.com>.
I'm on in.
I'll send you the samples latter in the day.

cheers,

f(t)

On 10/11/07, German Morales <ge...@delta-sys.com> wrote:
>
> Hallo,
>
> With some luck you will get the usage examples later. (Francisco?)
>
> German
>
> It seems that Oliver Lieven wrote:
> >
> > Hi German,
> >
> > thanks for your offer, would be great if you could send me your code.
> >
> > BTW, in the meantime I got my 2nd approach working, too. I've got the
> two
> > separate textfields, each of them showing the "zipcode - city"
> > autocomplete
> > lists when data is entered. After selecting from the autocomplete list,
> > both
> > fields are updated correctly!
> >
> > Regards,
> > Oliver
> >
> >
> >
> > German Morales wrote:
> >>
> >> Hi again,
> >>
> >> Yes, we have something similar to what you describe in your point 2.
> >>
> >> The only difference is that we have other structure. What we have is
> the
> >> following:
> >>
> >> -Each locality has an internal ID, a Zip Code, a City and a (swiss)
> >> kanton.
> >>
> >> -in the html we have a Hidden, which stores the internal ID, and 1
> >> (only)
> >> TextField, which shows Zip Code + City + Canton (For example: "8052
> >> Seebach, ZH").
> >>
> >> -then we have an extension as you mention (AutoCompleteTextField,
> >> Renderer, Behavior, JavaScript), which is already working with this
> >> schema. It also contains many fixes over the original
> >> autocompletetextfield (perhaps originated from the extra behavior?).
> >>
> >> If this approach is good for you, i can send you our version, plus some
> >> example usages.
> >>
> >> Regards,
> >>
> >> German
> >>
> >>
> >> It seems that Oliver Lieven wrote:
> >>>
> >>> Hi,
> >>>
> >>> thanks for your answer.
> >>>
> >>> No, solution didn't work as supposed, mainly because the AutoComplete
> >>> fills
> >>> the input field in the browser with the data (in my case either
> zipcode
> >>> or
> >>> city), but doesn't update the model.
> >>>
> >>> To update the model I have to attach some Ajax...Behavior, but this is
> >>> called with the data put into the textfield (i.e. either the selected
> >>> zipcode put into the zipcode field by the autocomplete, *or* the
> >>> selected
> >>> city from the city field). In the Ajax...Behavior's onUpdate()-method
> >>> neither the city nor the zipcode are enough to determine the value to
> >>> use
> >>> to
> >>> update the related field.
> >>>
> >>> So I had two other ideas:
> >>>
> >>> 1. in my autocomplete-list I set the "textvalue" to the id of a
> >>> "zipcode-city" combination. When the user selects from the
> >>> autocomplete-list, this id is written into the corresponding
> >>> input-field.
> >>> The attached AjaxOnChangeBehavior now gets this id, determines the
> >>> zipcode-city, and updates the city and the zipcode field. This works,
> >>> but
> >>> looks a little strange to the user (e.g. selection of "71254
> Ditzingen"
> >>> from
> >>> autocomplete-list writes the id ("1223") into the zipcode-field, this
> >>> issues
> >>> the Ajax-call, which updates both fields with the correct data, i.e.
> >>> zipcode=71254, city=Ditzingen). As I said, works but not pretty.
> >>>
> >>> 2. So I'm currently extended the AutoCompleteTextField, ...Renderer,
> >>> ...Behavior, ..JavaScript to accept a second, "related" field in its
> >>> constructor. I then attach two attributes to the autocomplete-list
> >>> entries
> >>> (say textvalue and textvalue2), and modified the JavaScript to update
> >>> both
> >>> fields. This seems to me the best approach to my specific problem, and
> >>> seems
> >>> to work as intended.
> >>>
> >>> Hope my answer was not to confusing...
> >>> regards,
> >>> Oliver
> >>>
> >>>
> >>> German Morales wrote:
> >>>>
> >>>> Hi,
> >>>>
> >>>> Sorry, i'm a little late with my response.
> >>>> Did the suggestion by Nino work?
> >>>>
> >>>> If it works, i would like to know more details about it.
> >>>>
> >>>> If not, we already had a somehow similar problem (Swiss addresses),
> >>>> and
> >>>> we
> >>>> have a different solution already working. Perhaps it can help you
> >>>> too.
> >>>>
> >>>> Regards,
> >>>>
> >>>> German
> >>>>
> >>>>
> >>>> It seems that Nino Saturnino Martinez Vazquez Wael wrote:
> >>>>> NP, waiting with excitement to hear if it works:)
> >>>>>
> >>>>> Oliver Lieven wrote:
> >>>>>> Thanks allot for your efforts and detailed answer! Sounds good,
> I'll
> >>>>>> give it
> >>>>>> a try.
> >>>>>>
> >>>>>>
> >>>>>> Nino.Martinez wrote:
> >>>>>>
> >>>>>>> No what I meant was that when a user selects something in one  of
> >>>>>>> your
> >>>>>>> auto complete fields  they'll automatickly select something in
> >>>>>>> both,
> >>>>>>> might have been a little scares on information:
> >>>>>>>
> >>>>>>> IModel commonModel=new Model();
> >>>>>>>
> >>>>>>>
> >>>>>>> AbstractModel() Text=new AbstractModel(){
> >>>>>>>
> >>>>>>> getObject{
> >>>>>>>     return commonModel.getObject.Text;
> >>>>>>> }
> >>>>>>> setObject(obj){
> >>>>>>>     commonModel.setObject(obj)
> >>>>>>> }
> >>>>>>>
> >>>>>>> }
> >>>>>>>
> >>>>>>>
> >>>>>>> AbstractModel() name=new AbstractModel(){
> >>>>>>>
> >>>>>>> getObject{
> >>>>>>>     return commonModel.getObject.name;
> >>>>>>> }
> >>>>>>> setObject(obj){
> >>>>>>>     commonModel.setObject(obj)
> >>>>>>> }
> >>>>>>>
> >>>>>>> }
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>> AutoCompleteTextField phoneName = new AutoCompleteTextField(
> >>>>>>>                 "phoneName", name,
> >>>>>>>                 new BestEffortRendererAutoCompleteRenderer()) {
> >>>>>>>             @Override
> >>>>>>>             protected Iterator getChoices(String input) {
> >>>>>>>
> >>>>>>>                 return findItems(input);
> >>>>>>>             }
> >>>>>>>         };
> >>>>>>>
> >>>>>>>
> >>>>>>> AutoCompleteTextField phoneSeries = new AutoCompleteTextField(
> >>>>>>>                 "phoneName", text,
> >>>>>>>                 new BestEffortRendererAutoCompleteRenderer()) {
> >>>>>>>             @Override
> >>>>>>>             protected Iterator getChoices(String input) {
> >>>>>>>
> >>>>>>>                 return findItems(input);
> >>>>>>>             }
> >>>>>>>         };
> >>>>>>>
> >>>>>>> And ofcourse you need to add the other completefield to the
> >>>>>>> ajaxresponse...
> >>>>>>>
> >>>>>>> Hope this pseudo code works a little better... Was on my way out
> >>>>>>> the
> >>>>>>> door before...
> >>>>>>>
> >>>>>>>
> >>>>>>> Oliver Lieven wrote:
> >>>>>>>
> >>>>>>>> Hi Nino,
> >>>>>>>> thanks for your fast reply. Yes, a shared PropertyModel would
> help
> >>>>>>>> to
> >>>>>>>> keep
> >>>>>>>> both fields synchronized.
> >>>>>>>>
> >>>>>>>> I still can't see how this could help me to determine the value
> >>>>>>>> selected
> >>>>>>>> by
> >>>>>>>> the user.
> >>>>>>>> The AutoComplete works like
> >>>>>>>>
> >>>>>>>> 1. getChoices() is called to populate the autocomplete list with
> >>>>>>>> my
> >>>>>>>> "zipcode
> >>>>>>>> - city" options
> >>>>>>>> 2. when user selects a value from the autocomplete list, the
> >>>>>>>> corresponding
> >>>>>>>> field is set with the "textvalue" (e.g. the 'city' field is
> filled
> >>>>>>>> with
> >>>>>>>> the
> >>>>>>>> city's name)
> >>>>>>>> 3. because of this update, the city-field's
> >>>>>>>> AjaxFormComponentUpdatingBehavior.onUpdate() is called
> >>>>>>>> 4. in onUpdate() the getConvertedInput() method returns the city
> >>>>>>>> name,
> >>>>>>>> which
> >>>>>>>> is insufficient to determine the corresponding zipcode (because
> of
> >>>>>>>> the
> >>>>>>>> n:1
> >>>>>>>> relation (city may have many zipcodes)).
> >>>>>>>>
> >>>>>>>> So I'm still looking for a way to determine the exact combination
> >>>>>>>> selected
> >>>>>>>> by the user...
> >>>>>>>>
> >>>>>>>> regards,
> >>>>>>>> Oliver
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> Nino.Martinez wrote:
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>> Quick answer, why not use property models and use both in the
> >>>>>>>>> fiields
> >>>>>>>>> you mention?
> >>>>>>>>>
> >>>>>>>>> Oliver Lieven wrote:
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>> Hi,
> >>>>>>>>>>
> >>>>>>>>>> in an address edit panel I've got the two AutoCompleteText
> >>>>>>>>>> fields
> >>>>>>>>>> 'zipcode'
> >>>>>>>>>> and 'city'.
> >>>>>>>>>>
> >>>>>>>>>> When a users begins typing into the zipcode-field, the
> >>>>>>>>>> autocomplete
> >>>>>>>>>> shows
> >>>>>>>>>> up
> >>>>>>>>>> and offers valid "zipcode - city" combinations. After selecting
> >>>>>>>>>> a
> >>>>>>>>>> value
> >>>>>>>>>> from
> >>>>>>>>>> the autocomplete the 'zipcode' is set. Same for 'city' field,
> >>>>>>>>>> i.e.
> >>>>>>>>>> after
> >>>>>>>>>> selecting a "zipcode - city" from the city's autocomplete the
> >>>>>>>>>> "city"-field
> >>>>>>>>>> is set accordingly.
> >>>>>>>>>> (Thanks for the great autocomplete-support in Wicket which
> >>>>>>>>>> allows
> >>>>>>>>>> separation
> >>>>>>>>>> of displayvalue and textvalue!)
> >>>>>>>>>>
> >>>>>>>>>> Now to my question: after selection of a "zipcode - city"
> >>>>>>>>>> combination
> >>>>>>>>>> from
> >>>>>>>>>> either autocomplete list I would like to set both fields
> >>>>>>>>>> (zipcode
> >>>>>>>>>> and
> >>>>>>>>>> city).
> >>>>>>>>>> I already attached an AjaxFormComponentUpdatingBehavior which
> >>>>>>>>>> gets
> >>>>>>>>>> called
> >>>>>>>>>> after a selection in the autocomplete list, but it just gets
> the
> >>>>>>>>>> zipcode/city currently set.
> >>>>>>>>>> Since the zipcode-city relation is 1:n (e.g. Berlin has many
> >>>>>>>>>> zipcodes)
> >>>>>>>>>> I'm
> >>>>>>>>>> wondering if there is a way to access the full selected value
> >>>>>>>>>> (and
> >>>>>>>>>> not
> >>>>>>>>>> only
> >>>>>>>>>> the AbstractAutoCompleteTextRenderer.textvalue set).
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>> Thanks for any help and tips!
> >>>>>>>>>> Oliver
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>> ------------------------------------------------------------
> ---------
> >>>>>>>>> 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
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>
> >>>>>>
> >>>>>
> >>>>> ------------------------------------------------------------
> ---------
> >>>>> 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
> >>>>
> >>>>
> >>>>
> >>>
> >>> --
> >>> View this message in context:
> >>> http://www.nabble.com/AutoCompleteTextfield---how-to-populat
> e-two-input-fields-tf4592192.html#a13158414
> >>> Sent from the Wicket - User mailing list archive at Nabble.com.
> >>>
> >>>
> >>> ---------------------------------------------------------------------
> >>> 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
> >>
> >>
> >>
> >
> > --
> > View this message in context:
> > http://www.nabble.com/AutoCompleteTextfield---how-to-populat
> e-two-input-fields-tf4592192.html#a13166291
> > Sent from the Wicket - User mailing list archive at Nabble.com.
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> > For additional commands, e-mail: users-help@wicket.apache.org
> >
> >
>
>

Re: AutoCompleteTextfield - how to populate two input fields

Posted by Oliver Lieven <ol...@provantis.de>.
Hi German,

thanks for your offer, would be great if you could send me your code.

BTW, in the meantime I got my 2nd approach working, too. I've got the two
separate textfields, each of them showing the "zipcode - city" autocomplete
lists when data is entered. After selecting from the autocomplete list, both
fields are updated correctly! 

Regards,
Oliver 



German Morales wrote:
> 
> Hi again,
> 
> Yes, we have something similar to what you describe in your point 2.
> 
> The only difference is that we have other structure. What we have is the
> following:
> 
> -Each locality has an internal ID, a Zip Code, a City and a (swiss)
> kanton.
> 
> -in the html we have a Hidden, which stores the internal ID, and 1 (only)
> TextField, which shows Zip Code + City + Canton (For example: "8052
> Seebach, ZH").
> 
> -then we have an extension as you mention (AutoCompleteTextField,
> Renderer, Behavior, JavaScript), which is already working with this
> schema. It also contains many fixes over the original
> autocompletetextfield (perhaps originated from the extra behavior?).
> 
> If this approach is good for you, i can send you our version, plus some
> example usages.
> 
> Regards,
> 
> German
> 
> 
> It seems that Oliver Lieven wrote:
>>
>> Hi,
>>
>> thanks for your answer.
>>
>> No, solution didn't work as supposed, mainly because the AutoComplete
>> fills
>> the input field in the browser with the data (in my case either zipcode
>> or
>> city), but doesn't update the model.
>>
>> To update the model I have to attach some Ajax...Behavior, but this is
>> called with the data put into the textfield (i.e. either the selected
>> zipcode put into the zipcode field by the autocomplete, *or* the selected
>> city from the city field). In the Ajax...Behavior's onUpdate()-method
>> neither the city nor the zipcode are enough to determine the value to use
>> to
>> update the related field.
>>
>> So I had two other ideas:
>>
>> 1. in my autocomplete-list I set the "textvalue" to the id of a
>> "zipcode-city" combination. When the user selects from the
>> autocomplete-list, this id is written into the corresponding input-field.
>> The attached AjaxOnChangeBehavior now gets this id, determines the
>> zipcode-city, and updates the city and the zipcode field. This works, but
>> looks a little strange to the user (e.g. selection of "71254 Ditzingen"
>> from
>> autocomplete-list writes the id ("1223") into the zipcode-field, this
>> issues
>> the Ajax-call, which updates both fields with the correct data, i.e.
>> zipcode=71254, city=Ditzingen). As I said, works but not pretty.
>>
>> 2. So I'm currently extended the AutoCompleteTextField, ...Renderer,
>> ...Behavior, ..JavaScript to accept a second, "related" field in its
>> constructor. I then attach two attributes to the autocomplete-list
>> entries
>> (say textvalue and textvalue2), and modified the JavaScript to update
>> both
>> fields. This seems to me the best approach to my specific problem, and
>> seems
>> to work as intended.
>>
>> Hope my answer was not to confusing...
>> regards,
>> Oliver
>>
>>
>> German Morales wrote:
>>>
>>> Hi,
>>>
>>> Sorry, i'm a little late with my response.
>>> Did the suggestion by Nino work?
>>>
>>> If it works, i would like to know more details about it.
>>>
>>> If not, we already had a somehow similar problem (Swiss addresses), and
>>> we
>>> have a different solution already working. Perhaps it can help you too.
>>>
>>> Regards,
>>>
>>> German
>>>
>>>
>>> It seems that Nino Saturnino Martinez Vazquez Wael wrote:
>>>> NP, waiting with excitement to hear if it works:)
>>>>
>>>> Oliver Lieven wrote:
>>>>> Thanks allot for your efforts and detailed answer! Sounds good, I'll
>>>>> give it
>>>>> a try.
>>>>>
>>>>>
>>>>> Nino.Martinez wrote:
>>>>>
>>>>>> No what I meant was that when a user selects something in one  of
>>>>>> your
>>>>>> auto complete fields  they'll automatickly select something in both,
>>>>>> might have been a little scares on information:
>>>>>>
>>>>>> IModel commonModel=new Model();
>>>>>>
>>>>>>
>>>>>> AbstractModel() Text=new AbstractModel(){
>>>>>>
>>>>>> getObject{
>>>>>>     return commonModel.getObject.Text;
>>>>>> }
>>>>>> setObject(obj){
>>>>>>     commonModel.setObject(obj)
>>>>>> }
>>>>>>
>>>>>> }
>>>>>>
>>>>>>
>>>>>> AbstractModel() name=new AbstractModel(){
>>>>>>
>>>>>> getObject{
>>>>>>     return commonModel.getObject.name;
>>>>>> }
>>>>>> setObject(obj){
>>>>>>     commonModel.setObject(obj)
>>>>>> }
>>>>>>
>>>>>> }
>>>>>>
>>>>>>
>>>>>>
>>>>>> AutoCompleteTextField phoneName = new AutoCompleteTextField(
>>>>>>                 "phoneName", name,
>>>>>>                 new BestEffortRendererAutoCompleteRenderer()) {
>>>>>>             @Override
>>>>>>             protected Iterator getChoices(String input) {
>>>>>>
>>>>>>                 return findItems(input);
>>>>>>             }
>>>>>>         };
>>>>>>
>>>>>>
>>>>>> AutoCompleteTextField phoneSeries = new AutoCompleteTextField(
>>>>>>                 "phoneName", text,
>>>>>>                 new BestEffortRendererAutoCompleteRenderer()) {
>>>>>>             @Override
>>>>>>             protected Iterator getChoices(String input) {
>>>>>>
>>>>>>                 return findItems(input);
>>>>>>             }
>>>>>>         };
>>>>>>
>>>>>> And ofcourse you need to add the other completefield to the
>>>>>> ajaxresponse...
>>>>>>
>>>>>> Hope this pseudo code works a little better... Was on my way out the
>>>>>> door before...
>>>>>>
>>>>>>
>>>>>> Oliver Lieven wrote:
>>>>>>
>>>>>>> Hi Nino,
>>>>>>> thanks for your fast reply. Yes, a shared PropertyModel would help
>>>>>>> to
>>>>>>> keep
>>>>>>> both fields synchronized.
>>>>>>>
>>>>>>> I still can't see how this could help me to determine the value
>>>>>>> selected
>>>>>>> by
>>>>>>> the user.
>>>>>>> The AutoComplete works like
>>>>>>>
>>>>>>> 1. getChoices() is called to populate the autocomplete list with my
>>>>>>> "zipcode
>>>>>>> - city" options
>>>>>>> 2. when user selects a value from the autocomplete list, the
>>>>>>> corresponding
>>>>>>> field is set with the "textvalue" (e.g. the 'city' field is filled
>>>>>>> with
>>>>>>> the
>>>>>>> city's name)
>>>>>>> 3. because of this update, the city-field's
>>>>>>> AjaxFormComponentUpdatingBehavior.onUpdate() is called
>>>>>>> 4. in onUpdate() the getConvertedInput() method returns the city
>>>>>>> name,
>>>>>>> which
>>>>>>> is insufficient to determine the corresponding zipcode (because of
>>>>>>> the
>>>>>>> n:1
>>>>>>> relation (city may have many zipcodes)).
>>>>>>>
>>>>>>> So I'm still looking for a way to determine the exact combination
>>>>>>> selected
>>>>>>> by the user...
>>>>>>>
>>>>>>> regards,
>>>>>>> Oliver
>>>>>>>
>>>>>>>
>>>>>>> Nino.Martinez wrote:
>>>>>>>
>>>>>>>
>>>>>>>> Quick answer, why not use property models and use both in the
>>>>>>>> fiields
>>>>>>>> you mention?
>>>>>>>>
>>>>>>>> Oliver Lieven wrote:
>>>>>>>>
>>>>>>>>
>>>>>>>>> Hi,
>>>>>>>>>
>>>>>>>>> in an address edit panel I've got the two AutoCompleteText fields
>>>>>>>>> 'zipcode'
>>>>>>>>> and 'city'.
>>>>>>>>>
>>>>>>>>> When a users begins typing into the zipcode-field, the
>>>>>>>>> autocomplete
>>>>>>>>> shows
>>>>>>>>> up
>>>>>>>>> and offers valid "zipcode - city" combinations. After selecting a
>>>>>>>>> value
>>>>>>>>> from
>>>>>>>>> the autocomplete the 'zipcode' is set. Same for 'city' field, i.e.
>>>>>>>>> after
>>>>>>>>> selecting a "zipcode - city" from the city's autocomplete the
>>>>>>>>> "city"-field
>>>>>>>>> is set accordingly.
>>>>>>>>> (Thanks for the great autocomplete-support in Wicket which allows
>>>>>>>>> separation
>>>>>>>>> of displayvalue and textvalue!)
>>>>>>>>>
>>>>>>>>> Now to my question: after selection of a "zipcode - city"
>>>>>>>>> combination
>>>>>>>>> from
>>>>>>>>> either autocomplete list I would like to set both fields (zipcode
>>>>>>>>> and
>>>>>>>>> city).
>>>>>>>>> I already attached an AjaxFormComponentUpdatingBehavior which gets
>>>>>>>>> called
>>>>>>>>> after a selection in the autocomplete list, but it just gets the
>>>>>>>>> zipcode/city currently set.
>>>>>>>>> Since the zipcode-city relation is 1:n (e.g. Berlin has many
>>>>>>>>> zipcodes)
>>>>>>>>> I'm
>>>>>>>>> wondering if there is a way to access the full selected value (and
>>>>>>>>> not
>>>>>>>>> only
>>>>>>>>> the AbstractAutoCompleteTextRenderer.textvalue set).
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Thanks for any help and tips!
>>>>>>>>> Oliver
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>> ---------------------------------------------------------------------
>>>>>>>> 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
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>
>>>> ---------------------------------------------------------------------
>>>> 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
>>>
>>>
>>>
>>
>> --
>> View this message in context:
>> http://www.nabble.com/AutoCompleteTextfield---how-to-populate-two-input-fields-tf4592192.html#a13158414
>> Sent from the Wicket - User mailing list archive at Nabble.com.
>>
>>
>> ---------------------------------------------------------------------
>> 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
> 
> 
> 

-- 
View this message in context: http://www.nabble.com/AutoCompleteTextfield---how-to-populate-two-input-fields-tf4592192.html#a13166291
Sent from the Wicket - User mailing list archive at Nabble.com.


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


Re: AutoCompleteTextfield - how to populate two input fields

Posted by German Morales <ge...@delta-sys.com>.
Hi again,

Yes, we have something similar to what you describe in your point 2.

The only difference is that we have other structure. What we have is the
following:

-Each locality has an internal ID, a Zip Code, a City and a (swiss) kanton.

-in the html we have a Hidden, which stores the internal ID, and 1 (only)
TextField, which shows Zip Code + City + Canton (For example: "8052
Seebach, ZH").

-then we have an extension as you mention (AutoCompleteTextField,
Renderer, Behavior, JavaScript), which is already working with this
schema. It also contains many fixes over the original
autocompletetextfield (perhaps originated from the extra behavior?).

If this approach is good for you, i can send you our version, plus some
example usages.

Regards,

German


It seems that Oliver Lieven wrote:
>
> Hi,
>
> thanks for your answer.
>
> No, solution didn't work as supposed, mainly because the AutoComplete
> fills
> the input field in the browser with the data (in my case either zipcode or
> city), but doesn't update the model.
>
> To update the model I have to attach some Ajax...Behavior, but this is
> called with the data put into the textfield (i.e. either the selected
> zipcode put into the zipcode field by the autocomplete, *or* the selected
> city from the city field). In the Ajax...Behavior's onUpdate()-method
> neither the city nor the zipcode are enough to determine the value to use
> to
> update the related field.
>
> So I had two other ideas:
>
> 1. in my autocomplete-list I set the "textvalue" to the id of a
> "zipcode-city" combination. When the user selects from the
> autocomplete-list, this id is written into the corresponding input-field.
> The attached AjaxOnChangeBehavior now gets this id, determines the
> zipcode-city, and updates the city and the zipcode field. This works, but
> looks a little strange to the user (e.g. selection of "71254 Ditzingen"
> from
> autocomplete-list writes the id ("1223") into the zipcode-field, this
> issues
> the Ajax-call, which updates both fields with the correct data, i.e.
> zipcode=71254, city=Ditzingen). As I said, works but not pretty.
>
> 2. So I'm currently extended the AutoCompleteTextField, ...Renderer,
> ...Behavior, ..JavaScript to accept a second, "related" field in its
> constructor. I then attach two attributes to the autocomplete-list entries
> (say textvalue and textvalue2), and modified the JavaScript to update both
> fields. This seems to me the best approach to my specific problem, and
> seems
> to work as intended.
>
> Hope my answer was not to confusing...
> regards,
> Oliver
>
>
> German Morales wrote:
>>
>> Hi,
>>
>> Sorry, i'm a little late with my response.
>> Did the suggestion by Nino work?
>>
>> If it works, i would like to know more details about it.
>>
>> If not, we already had a somehow similar problem (Swiss addresses), and
>> we
>> have a different solution already working. Perhaps it can help you too.
>>
>> Regards,
>>
>> German
>>
>>
>> It seems that Nino Saturnino Martinez Vazquez Wael wrote:
>>> NP, waiting with excitement to hear if it works:)
>>>
>>> Oliver Lieven wrote:
>>>> Thanks allot for your efforts and detailed answer! Sounds good, I'll
>>>> give it
>>>> a try.
>>>>
>>>>
>>>> Nino.Martinez wrote:
>>>>
>>>>> No what I meant was that when a user selects something in one  of
>>>>> your
>>>>> auto complete fields  they'll automatickly select something in both,
>>>>> might have been a little scares on information:
>>>>>
>>>>> IModel commonModel=new Model();
>>>>>
>>>>>
>>>>> AbstractModel() Text=new AbstractModel(){
>>>>>
>>>>> getObject{
>>>>>     return commonModel.getObject.Text;
>>>>> }
>>>>> setObject(obj){
>>>>>     commonModel.setObject(obj)
>>>>> }
>>>>>
>>>>> }
>>>>>
>>>>>
>>>>> AbstractModel() name=new AbstractModel(){
>>>>>
>>>>> getObject{
>>>>>     return commonModel.getObject.name;
>>>>> }
>>>>> setObject(obj){
>>>>>     commonModel.setObject(obj)
>>>>> }
>>>>>
>>>>> }
>>>>>
>>>>>
>>>>>
>>>>> AutoCompleteTextField phoneName = new AutoCompleteTextField(
>>>>>                 "phoneName", name,
>>>>>                 new BestEffortRendererAutoCompleteRenderer()) {
>>>>>             @Override
>>>>>             protected Iterator getChoices(String input) {
>>>>>
>>>>>                 return findItems(input);
>>>>>             }
>>>>>         };
>>>>>
>>>>>
>>>>> AutoCompleteTextField phoneSeries = new AutoCompleteTextField(
>>>>>                 "phoneName", text,
>>>>>                 new BestEffortRendererAutoCompleteRenderer()) {
>>>>>             @Override
>>>>>             protected Iterator getChoices(String input) {
>>>>>
>>>>>                 return findItems(input);
>>>>>             }
>>>>>         };
>>>>>
>>>>> And ofcourse you need to add the other completefield to the
>>>>> ajaxresponse...
>>>>>
>>>>> Hope this pseudo code works a little better... Was on my way out the
>>>>> door before...
>>>>>
>>>>>
>>>>> Oliver Lieven wrote:
>>>>>
>>>>>> Hi Nino,
>>>>>> thanks for your fast reply. Yes, a shared PropertyModel would help
>>>>>> to
>>>>>> keep
>>>>>> both fields synchronized.
>>>>>>
>>>>>> I still can't see how this could help me to determine the value
>>>>>> selected
>>>>>> by
>>>>>> the user.
>>>>>> The AutoComplete works like
>>>>>>
>>>>>> 1. getChoices() is called to populate the autocomplete list with my
>>>>>> "zipcode
>>>>>> - city" options
>>>>>> 2. when user selects a value from the autocomplete list, the
>>>>>> corresponding
>>>>>> field is set with the "textvalue" (e.g. the 'city' field is filled
>>>>>> with
>>>>>> the
>>>>>> city's name)
>>>>>> 3. because of this update, the city-field's
>>>>>> AjaxFormComponentUpdatingBehavior.onUpdate() is called
>>>>>> 4. in onUpdate() the getConvertedInput() method returns the city
>>>>>> name,
>>>>>> which
>>>>>> is insufficient to determine the corresponding zipcode (because of
>>>>>> the
>>>>>> n:1
>>>>>> relation (city may have many zipcodes)).
>>>>>>
>>>>>> So I'm still looking for a way to determine the exact combination
>>>>>> selected
>>>>>> by the user...
>>>>>>
>>>>>> regards,
>>>>>> Oliver
>>>>>>
>>>>>>
>>>>>> Nino.Martinez wrote:
>>>>>>
>>>>>>
>>>>>>> Quick answer, why not use property models and use both in the
>>>>>>> fiields
>>>>>>> you mention?
>>>>>>>
>>>>>>> Oliver Lieven wrote:
>>>>>>>
>>>>>>>
>>>>>>>> Hi,
>>>>>>>>
>>>>>>>> in an address edit panel I've got the two AutoCompleteText fields
>>>>>>>> 'zipcode'
>>>>>>>> and 'city'.
>>>>>>>>
>>>>>>>> When a users begins typing into the zipcode-field, the
>>>>>>>> autocomplete
>>>>>>>> shows
>>>>>>>> up
>>>>>>>> and offers valid "zipcode - city" combinations. After selecting a
>>>>>>>> value
>>>>>>>> from
>>>>>>>> the autocomplete the 'zipcode' is set. Same for 'city' field, i.e.
>>>>>>>> after
>>>>>>>> selecting a "zipcode - city" from the city's autocomplete the
>>>>>>>> "city"-field
>>>>>>>> is set accordingly.
>>>>>>>> (Thanks for the great autocomplete-support in Wicket which allows
>>>>>>>> separation
>>>>>>>> of displayvalue and textvalue!)
>>>>>>>>
>>>>>>>> Now to my question: after selection of a "zipcode - city"
>>>>>>>> combination
>>>>>>>> from
>>>>>>>> either autocomplete list I would like to set both fields (zipcode
>>>>>>>> and
>>>>>>>> city).
>>>>>>>> I already attached an AjaxFormComponentUpdatingBehavior which gets
>>>>>>>> called
>>>>>>>> after a selection in the autocomplete list, but it just gets the
>>>>>>>> zipcode/city currently set.
>>>>>>>> Since the zipcode-city relation is 1:n (e.g. Berlin has many
>>>>>>>> zipcodes)
>>>>>>>> I'm
>>>>>>>> wondering if there is a way to access the full selected value (and
>>>>>>>> not
>>>>>>>> only
>>>>>>>> the AbstractAutoCompleteTextRenderer.textvalue set).
>>>>>>>>
>>>>>>>>
>>>>>>>> Thanks for any help and tips!
>>>>>>>> Oliver
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>> ---------------------------------------------------------------------
>>>>>>> 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
>>>>>
>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>
>>> ---------------------------------------------------------------------
>>> 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
>>
>>
>>
>
> --
> View this message in context:
> http://www.nabble.com/AutoCompleteTextfield---how-to-populate-two-input-fields-tf4592192.html#a13158414
> Sent from the Wicket - User mailing list archive at Nabble.com.
>
>
> ---------------------------------------------------------------------
> 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: AutoCompleteTextfield - how to populate two input fields

Posted by Oliver Lieven <ol...@provantis.de>.
Hi,

thanks for your answer.

No, solution didn't work as supposed, mainly because the AutoComplete fills
the input field in the browser with the data (in my case either zipcode or
city), but doesn't update the model.

To update the model I have to attach some Ajax...Behavior, but this is
called with the data put into the textfield (i.e. either the selected
zipcode put into the zipcode field by the autocomplete, *or* the selected
city from the city field). In the Ajax...Behavior's onUpdate()-method
neither the city nor the zipcode are enough to determine the value to use to
update the related field.

So I had two other ideas:

1. in my autocomplete-list I set the "textvalue" to the id of a
"zipcode-city" combination. When the user selects from the
autocomplete-list, this id is written into the corresponding input-field.
The attached AjaxOnChangeBehavior now gets this id, determines the
zipcode-city, and updates the city and the zipcode field. This works, but
looks a little strange to the user (e.g. selection of "71254 Ditzingen" from
autocomplete-list writes the id ("1223") into the zipcode-field, this issues
the Ajax-call, which updates both fields with the correct data, i.e.
zipcode=71254, city=Ditzingen). As I said, works but not pretty.

2. So I'm currently extended the AutoCompleteTextField, ...Renderer,
...Behavior, ..JavaScript to accept a second, "related" field in its
constructor. I then attach two attributes to the autocomplete-list entries
(say textvalue and textvalue2), and modified the JavaScript to update both
fields. This seems to me the best approach to my specific problem, and seems
to work as intended.

Hope my answer was not to confusing...
regards,
Oliver


German Morales wrote:
> 
> Hi,
> 
> Sorry, i'm a little late with my response.
> Did the suggestion by Nino work?
> 
> If it works, i would like to know more details about it.
> 
> If not, we already had a somehow similar problem (Swiss addresses), and we
> have a different solution already working. Perhaps it can help you too.
> 
> Regards,
> 
> German
> 
> 
> It seems that Nino Saturnino Martinez Vazquez Wael wrote:
>> NP, waiting with excitement to hear if it works:)
>>
>> Oliver Lieven wrote:
>>> Thanks allot for your efforts and detailed answer! Sounds good, I'll
>>> give it
>>> a try.
>>>
>>>
>>> Nino.Martinez wrote:
>>>
>>>> No what I meant was that when a user selects something in one  of your
>>>> auto complete fields  they'll automatickly select something in both,
>>>> might have been a little scares on information:
>>>>
>>>> IModel commonModel=new Model();
>>>>
>>>>
>>>> AbstractModel() Text=new AbstractModel(){
>>>>
>>>> getObject{
>>>>     return commonModel.getObject.Text;
>>>> }
>>>> setObject(obj){
>>>>     commonModel.setObject(obj)
>>>> }
>>>>
>>>> }
>>>>
>>>>
>>>> AbstractModel() name=new AbstractModel(){
>>>>
>>>> getObject{
>>>>     return commonModel.getObject.name;
>>>> }
>>>> setObject(obj){
>>>>     commonModel.setObject(obj)
>>>> }
>>>>
>>>> }
>>>>
>>>>
>>>>
>>>> AutoCompleteTextField phoneName = new AutoCompleteTextField(
>>>>                 "phoneName", name,
>>>>                 new BestEffortRendererAutoCompleteRenderer()) {
>>>>             @Override
>>>>             protected Iterator getChoices(String input) {
>>>>
>>>>                 return findItems(input);
>>>>             }
>>>>         };
>>>>
>>>>
>>>> AutoCompleteTextField phoneSeries = new AutoCompleteTextField(
>>>>                 "phoneName", text,
>>>>                 new BestEffortRendererAutoCompleteRenderer()) {
>>>>             @Override
>>>>             protected Iterator getChoices(String input) {
>>>>
>>>>                 return findItems(input);
>>>>             }
>>>>         };
>>>>
>>>> And ofcourse you need to add the other completefield to the
>>>> ajaxresponse...
>>>>
>>>> Hope this pseudo code works a little better... Was on my way out the
>>>> door before...
>>>>
>>>>
>>>> Oliver Lieven wrote:
>>>>
>>>>> Hi Nino,
>>>>> thanks for your fast reply. Yes, a shared PropertyModel would help to
>>>>> keep
>>>>> both fields synchronized.
>>>>>
>>>>> I still can't see how this could help me to determine the value
>>>>> selected
>>>>> by
>>>>> the user.
>>>>> The AutoComplete works like
>>>>>
>>>>> 1. getChoices() is called to populate the autocomplete list with my
>>>>> "zipcode
>>>>> - city" options
>>>>> 2. when user selects a value from the autocomplete list, the
>>>>> corresponding
>>>>> field is set with the "textvalue" (e.g. the 'city' field is filled
>>>>> with
>>>>> the
>>>>> city's name)
>>>>> 3. because of this update, the city-field's
>>>>> AjaxFormComponentUpdatingBehavior.onUpdate() is called
>>>>> 4. in onUpdate() the getConvertedInput() method returns the city name,
>>>>> which
>>>>> is insufficient to determine the corresponding zipcode (because of the
>>>>> n:1
>>>>> relation (city may have many zipcodes)).
>>>>>
>>>>> So I'm still looking for a way to determine the exact combination
>>>>> selected
>>>>> by the user...
>>>>>
>>>>> regards,
>>>>> Oliver
>>>>>
>>>>>
>>>>> Nino.Martinez wrote:
>>>>>
>>>>>
>>>>>> Quick answer, why not use property models and use both in the fiields
>>>>>> you mention?
>>>>>>
>>>>>> Oliver Lieven wrote:
>>>>>>
>>>>>>
>>>>>>> Hi,
>>>>>>>
>>>>>>> in an address edit panel I've got the two AutoCompleteText fields
>>>>>>> 'zipcode'
>>>>>>> and 'city'.
>>>>>>>
>>>>>>> When a users begins typing into the zipcode-field, the autocomplete
>>>>>>> shows
>>>>>>> up
>>>>>>> and offers valid "zipcode - city" combinations. After selecting a
>>>>>>> value
>>>>>>> from
>>>>>>> the autocomplete the 'zipcode' is set. Same for 'city' field, i.e.
>>>>>>> after
>>>>>>> selecting a "zipcode - city" from the city's autocomplete the
>>>>>>> "city"-field
>>>>>>> is set accordingly.
>>>>>>> (Thanks for the great autocomplete-support in Wicket which allows
>>>>>>> separation
>>>>>>> of displayvalue and textvalue!)
>>>>>>>
>>>>>>> Now to my question: after selection of a "zipcode - city"
>>>>>>> combination
>>>>>>> from
>>>>>>> either autocomplete list I would like to set both fields (zipcode
>>>>>>> and
>>>>>>> city).
>>>>>>> I already attached an AjaxFormComponentUpdatingBehavior which gets
>>>>>>> called
>>>>>>> after a selection in the autocomplete list, but it just gets the
>>>>>>> zipcode/city currently set.
>>>>>>> Since the zipcode-city relation is 1:n (e.g. Berlin has many
>>>>>>> zipcodes)
>>>>>>> I'm
>>>>>>> wondering if there is a way to access the full selected value (and
>>>>>>> not
>>>>>>> only
>>>>>>> the AbstractAutoCompleteTextRenderer.textvalue set).
>>>>>>>
>>>>>>>
>>>>>>> Thanks for any help and tips!
>>>>>>> Oliver
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>> ---------------------------------------------------------------------
>>>>>> 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
>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>
>> ---------------------------------------------------------------------
>> 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
> 
> 
> 

-- 
View this message in context: http://www.nabble.com/AutoCompleteTextfield---how-to-populate-two-input-fields-tf4592192.html#a13158414
Sent from the Wicket - User mailing list archive at Nabble.com.


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


Re: AutoCompleteTextfield - how to populate two input fields

Posted by German Morales <ge...@delta-sys.com>.
Hi,

Sorry, i'm a little late with my response.
Did the suggestion by Nino work?

If it works, i would like to know more details about it.

If not, we already had a somehow similar problem (Swiss addresses), and we
have a different solution already working. Perhaps it can help you too.

Regards,

German


It seems that Nino Saturnino Martinez Vazquez Wael wrote:
> NP, waiting with excitement to hear if it works:)
>
> Oliver Lieven wrote:
>> Thanks allot for your efforts and detailed answer! Sounds good, I'll
>> give it
>> a try.
>>
>>
>> Nino.Martinez wrote:
>>
>>> No what I meant was that when a user selects something in one  of your
>>> auto complete fields  they'll automatickly select something in both,
>>> might have been a little scares on information:
>>>
>>> IModel commonModel=new Model();
>>>
>>>
>>> AbstractModel() Text=new AbstractModel(){
>>>
>>> getObject{
>>>     return commonModel.getObject.Text;
>>> }
>>> setObject(obj){
>>>     commonModel.setObject(obj)
>>> }
>>>
>>> }
>>>
>>>
>>> AbstractModel() name=new AbstractModel(){
>>>
>>> getObject{
>>>     return commonModel.getObject.name;
>>> }
>>> setObject(obj){
>>>     commonModel.setObject(obj)
>>> }
>>>
>>> }
>>>
>>>
>>>
>>> AutoCompleteTextField phoneName = new AutoCompleteTextField(
>>>                 "phoneName", name,
>>>                 new BestEffortRendererAutoCompleteRenderer()) {
>>>             @Override
>>>             protected Iterator getChoices(String input) {
>>>
>>>                 return findItems(input);
>>>             }
>>>         };
>>>
>>>
>>> AutoCompleteTextField phoneSeries = new AutoCompleteTextField(
>>>                 "phoneName", text,
>>>                 new BestEffortRendererAutoCompleteRenderer()) {
>>>             @Override
>>>             protected Iterator getChoices(String input) {
>>>
>>>                 return findItems(input);
>>>             }
>>>         };
>>>
>>> And ofcourse you need to add the other completefield to the
>>> ajaxresponse...
>>>
>>> Hope this pseudo code works a little better... Was on my way out the
>>> door before...
>>>
>>>
>>> Oliver Lieven wrote:
>>>
>>>> Hi Nino,
>>>> thanks for your fast reply. Yes, a shared PropertyModel would help to
>>>> keep
>>>> both fields synchronized.
>>>>
>>>> I still can't see how this could help me to determine the value
>>>> selected
>>>> by
>>>> the user.
>>>> The AutoComplete works like
>>>>
>>>> 1. getChoices() is called to populate the autocomplete list with my
>>>> "zipcode
>>>> - city" options
>>>> 2. when user selects a value from the autocomplete list, the
>>>> corresponding
>>>> field is set with the "textvalue" (e.g. the 'city' field is filled
>>>> with
>>>> the
>>>> city's name)
>>>> 3. because of this update, the city-field's
>>>> AjaxFormComponentUpdatingBehavior.onUpdate() is called
>>>> 4. in onUpdate() the getConvertedInput() method returns the city name,
>>>> which
>>>> is insufficient to determine the corresponding zipcode (because of the
>>>> n:1
>>>> relation (city may have many zipcodes)).
>>>>
>>>> So I'm still looking for a way to determine the exact combination
>>>> selected
>>>> by the user...
>>>>
>>>> regards,
>>>> Oliver
>>>>
>>>>
>>>> Nino.Martinez wrote:
>>>>
>>>>
>>>>> Quick answer, why not use property models and use both in the fiields
>>>>> you mention?
>>>>>
>>>>> Oliver Lieven wrote:
>>>>>
>>>>>
>>>>>> Hi,
>>>>>>
>>>>>> in an address edit panel I've got the two AutoCompleteText fields
>>>>>> 'zipcode'
>>>>>> and 'city'.
>>>>>>
>>>>>> When a users begins typing into the zipcode-field, the autocomplete
>>>>>> shows
>>>>>> up
>>>>>> and offers valid "zipcode - city" combinations. After selecting a
>>>>>> value
>>>>>> from
>>>>>> the autocomplete the 'zipcode' is set. Same for 'city' field, i.e.
>>>>>> after
>>>>>> selecting a "zipcode - city" from the city's autocomplete the
>>>>>> "city"-field
>>>>>> is set accordingly.
>>>>>> (Thanks for the great autocomplete-support in Wicket which allows
>>>>>> separation
>>>>>> of displayvalue and textvalue!)
>>>>>>
>>>>>> Now to my question: after selection of a "zipcode - city"
>>>>>> combination
>>>>>> from
>>>>>> either autocomplete list I would like to set both fields (zipcode
>>>>>> and
>>>>>> city).
>>>>>> I already attached an AjaxFormComponentUpdatingBehavior which gets
>>>>>> called
>>>>>> after a selection in the autocomplete list, but it just gets the
>>>>>> zipcode/city currently set.
>>>>>> Since the zipcode-city relation is 1:n (e.g. Berlin has many
>>>>>> zipcodes)
>>>>>> I'm
>>>>>> wondering if there is a way to access the full selected value (and
>>>>>> not
>>>>>> only
>>>>>> the AbstractAutoCompleteTextRenderer.textvalue set).
>>>>>>
>>>>>>
>>>>>> Thanks for any help and tips!
>>>>>> Oliver
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>> ---------------------------------------------------------------------
>>>>> 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
>>>
>>>
>>>
>>>
>>
>>
>
> ---------------------------------------------------------------------
> 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: AutoCompleteTextfield - how to populate two input fields

Posted by Nino Saturnino Martinez Vazquez Wael <ni...@jayway.dk>.
NP, waiting with excitement to hear if it works:)

Oliver Lieven wrote:
> Thanks allot for your efforts and detailed answer! Sounds good, I'll give it
> a try.
>
>
> Nino.Martinez wrote:
>   
>> No what I meant was that when a user selects something in one  of your 
>> auto complete fields  they'll automatickly select something in both, 
>> might have been a little scares on information:
>>
>> IModel commonModel=new Model();
>>
>>
>> AbstractModel() Text=new AbstractModel(){
>>
>> getObject{
>>     return commonModel.getObject.Text;
>> }
>> setObject(obj){
>>     commonModel.setObject(obj)
>> }
>>
>> }
>>
>>
>> AbstractModel() name=new AbstractModel(){
>>
>> getObject{
>>     return commonModel.getObject.name;
>> }
>> setObject(obj){
>>     commonModel.setObject(obj)
>> }
>>
>> }
>>
>>
>>
>> AutoCompleteTextField phoneName = new AutoCompleteTextField(
>>                 "phoneName", name,
>>                 new BestEffortRendererAutoCompleteRenderer()) {
>>             @Override
>>             protected Iterator getChoices(String input) {
>>
>>                 return findItems(input);
>>             }
>>         };
>>
>>
>> AutoCompleteTextField phoneSeries = new AutoCompleteTextField(
>>                 "phoneName", text,
>>                 new BestEffortRendererAutoCompleteRenderer()) {
>>             @Override
>>             protected Iterator getChoices(String input) {
>>
>>                 return findItems(input);
>>             }
>>         };
>>
>> And ofcourse you need to add the other completefield to the
>> ajaxresponse...
>>
>> Hope this pseudo code works a little better... Was on my way out the 
>> door before...
>>
>>
>> Oliver Lieven wrote:
>>     
>>> Hi Nino,
>>> thanks for your fast reply. Yes, a shared PropertyModel would help to
>>> keep
>>> both fields synchronized.
>>>
>>> I still can't see how this could help me to determine the value selected
>>> by
>>> the user. 
>>> The AutoComplete works like
>>>
>>> 1. getChoices() is called to populate the autocomplete list with my
>>> "zipcode
>>> - city" options
>>> 2. when user selects a value from the autocomplete list, the
>>> corresponding
>>> field is set with the "textvalue" (e.g. the 'city' field is filled with
>>> the
>>> city's name)
>>> 3. because of this update, the city-field's
>>> AjaxFormComponentUpdatingBehavior.onUpdate() is called
>>> 4. in onUpdate() the getConvertedInput() method returns the city name,
>>> which
>>> is insufficient to determine the corresponding zipcode (because of the
>>> n:1
>>> relation (city may have many zipcodes)).
>>>
>>> So I'm still looking for a way to determine the exact combination
>>> selected
>>> by the user...
>>>
>>> regards,
>>> Oliver
>>>
>>>
>>> Nino.Martinez wrote:
>>>   
>>>       
>>>> Quick answer, why not use property models and use both in the fiields 
>>>> you mention?
>>>>
>>>> Oliver Lieven wrote:
>>>>     
>>>>         
>>>>> Hi,
>>>>>
>>>>> in an address edit panel I've got the two AutoCompleteText fields
>>>>> 'zipcode'
>>>>> and 'city'.
>>>>>
>>>>> When a users begins typing into the zipcode-field, the autocomplete
>>>>> shows
>>>>> up
>>>>> and offers valid "zipcode - city" combinations. After selecting a value
>>>>> from
>>>>> the autocomplete the 'zipcode' is set. Same for 'city' field, i.e.
>>>>> after
>>>>> selecting a "zipcode - city" from the city's autocomplete the
>>>>> "city"-field
>>>>> is set accordingly.
>>>>> (Thanks for the great autocomplete-support in Wicket which allows
>>>>> separation
>>>>> of displayvalue and textvalue!)
>>>>>
>>>>> Now to my question: after selection of a "zipcode - city" combination
>>>>> from
>>>>> either autocomplete list I would like to set both fields (zipcode and
>>>>> city).
>>>>> I already attached an AjaxFormComponentUpdatingBehavior which gets
>>>>> called
>>>>> after a selection in the autocomplete list, but it just gets the
>>>>> zipcode/city currently set.
>>>>> Since the zipcode-city relation is 1:n (e.g. Berlin has many zipcodes)
>>>>> I'm
>>>>> wondering if there is a way to access the full selected value (and not
>>>>> only
>>>>> the AbstractAutoCompleteTextRenderer.textvalue set).
>>>>>
>>>>>
>>>>> Thanks for any help and tips!
>>>>> Oliver
>>>>>
>>>>>
>>>>>   
>>>>>       
>>>>>           
>>>> ---------------------------------------------------------------------
>>>> 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
>>
>>
>>
>>     
>
>   

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


Re: AutoCompleteTextfield - how to populate two input fields

Posted by Oliver Lieven <ol...@provantis.de>.
Thanks allot for your efforts and detailed answer! Sounds good, I'll give it
a try.


Nino.Martinez wrote:
> 
> No what I meant was that when a user selects something in one  of your 
> auto complete fields  they'll automatickly select something in both, 
> might have been a little scares on information:
> 
> IModel commonModel=new Model();
> 
> 
> AbstractModel() Text=new AbstractModel(){
> 
> getObject{
>     return commonModel.getObject.Text;
> }
> setObject(obj){
>     commonModel.setObject(obj)
> }
> 
> }
> 
> 
> AbstractModel() name=new AbstractModel(){
> 
> getObject{
>     return commonModel.getObject.name;
> }
> setObject(obj){
>     commonModel.setObject(obj)
> }
> 
> }
> 
> 
> 
> AutoCompleteTextField phoneName = new AutoCompleteTextField(
>                 "phoneName", name,
>                 new BestEffortRendererAutoCompleteRenderer()) {
>             @Override
>             protected Iterator getChoices(String input) {
> 
>                 return findItems(input);
>             }
>         };
> 
> 
> AutoCompleteTextField phoneSeries = new AutoCompleteTextField(
>                 "phoneName", text,
>                 new BestEffortRendererAutoCompleteRenderer()) {
>             @Override
>             protected Iterator getChoices(String input) {
> 
>                 return findItems(input);
>             }
>         };
> 
> And ofcourse you need to add the other completefield to the
> ajaxresponse...
> 
> Hope this pseudo code works a little better... Was on my way out the 
> door before...
> 
> 
> Oliver Lieven wrote:
>> Hi Nino,
>> thanks for your fast reply. Yes, a shared PropertyModel would help to
>> keep
>> both fields synchronized.
>>
>> I still can't see how this could help me to determine the value selected
>> by
>> the user. 
>> The AutoComplete works like
>>
>> 1. getChoices() is called to populate the autocomplete list with my
>> "zipcode
>> - city" options
>> 2. when user selects a value from the autocomplete list, the
>> corresponding
>> field is set with the "textvalue" (e.g. the 'city' field is filled with
>> the
>> city's name)
>> 3. because of this update, the city-field's
>> AjaxFormComponentUpdatingBehavior.onUpdate() is called
>> 4. in onUpdate() the getConvertedInput() method returns the city name,
>> which
>> is insufficient to determine the corresponding zipcode (because of the
>> n:1
>> relation (city may have many zipcodes)).
>>
>> So I'm still looking for a way to determine the exact combination
>> selected
>> by the user...
>>
>> regards,
>> Oliver
>>
>>
>> Nino.Martinez wrote:
>>   
>>> Quick answer, why not use property models and use both in the fiields 
>>> you mention?
>>>
>>> Oliver Lieven wrote:
>>>     
>>>> Hi,
>>>>
>>>> in an address edit panel I've got the two AutoCompleteText fields
>>>> 'zipcode'
>>>> and 'city'.
>>>>
>>>> When a users begins typing into the zipcode-field, the autocomplete
>>>> shows
>>>> up
>>>> and offers valid "zipcode - city" combinations. After selecting a value
>>>> from
>>>> the autocomplete the 'zipcode' is set. Same for 'city' field, i.e.
>>>> after
>>>> selecting a "zipcode - city" from the city's autocomplete the
>>>> "city"-field
>>>> is set accordingly.
>>>> (Thanks for the great autocomplete-support in Wicket which allows
>>>> separation
>>>> of displayvalue and textvalue!)
>>>>
>>>> Now to my question: after selection of a "zipcode - city" combination
>>>> from
>>>> either autocomplete list I would like to set both fields (zipcode and
>>>> city).
>>>> I already attached an AjaxFormComponentUpdatingBehavior which gets
>>>> called
>>>> after a selection in the autocomplete list, but it just gets the
>>>> zipcode/city currently set.
>>>> Since the zipcode-city relation is 1:n (e.g. Berlin has many zipcodes)
>>>> I'm
>>>> wondering if there is a way to access the full selected value (and not
>>>> only
>>>> the AbstractAutoCompleteTextRenderer.textvalue set).
>>>>
>>>>
>>>> Thanks for any help and tips!
>>>> Oliver
>>>>
>>>>
>>>>   
>>>>       
>>> ---------------------------------------------------------------------
>>> 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
> 
> 
> 

-- 
View this message in context: http://www.nabble.com/AutoCompleteTextfield---how-to-populate-two-input-fields-tf4592192.html#a13111019
Sent from the Wicket - User mailing list archive at Nabble.com.


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


Re: AutoCompleteTextfield - how to populate two input fields

Posted by Nino Saturnino Martinez Vazquez Wael <ni...@jayway.dk>.
No what I meant was that when a user selects something in one  of your 
auto complete fields  they'll automatickly select something in both, 
might have been a little scares on information:

IModel commonModel=new Model();


AbstractModel() Text=new AbstractModel(){

getObject{
    return commonModel.getObject.Text;
}
setObject(obj){
    commonModel.setObject(obj)
}

}


AbstractModel() name=new AbstractModel(){

getObject{
    return commonModel.getObject.name;
}
setObject(obj){
    commonModel.setObject(obj)
}

}



AutoCompleteTextField phoneName = new AutoCompleteTextField(
                "phoneName", name,
                new BestEffortRendererAutoCompleteRenderer()) {
            @Override
            protected Iterator getChoices(String input) {

                return findItems(input);
            }
        };


AutoCompleteTextField phoneSeries = new AutoCompleteTextField(
                "phoneName", text,
                new BestEffortRendererAutoCompleteRenderer()) {
            @Override
            protected Iterator getChoices(String input) {

                return findItems(input);
            }
        };

And ofcourse you need to add the other completefield to the ajaxresponse...

Hope this pseudo code works a little better... Was on my way out the 
door before...


Oliver Lieven wrote:
> Hi Nino,
> thanks for your fast reply. Yes, a shared PropertyModel would help to keep
> both fields synchronized.
>
> I still can't see how this could help me to determine the value selected by
> the user. 
> The AutoComplete works like
>
> 1. getChoices() is called to populate the autocomplete list with my "zipcode
> - city" options
> 2. when user selects a value from the autocomplete list, the corresponding
> field is set with the "textvalue" (e.g. the 'city' field is filled with the
> city's name)
> 3. because of this update, the city-field's
> AjaxFormComponentUpdatingBehavior.onUpdate() is called
> 4. in onUpdate() the getConvertedInput() method returns the city name, which
> is insufficient to determine the corresponding zipcode (because of the n:1
> relation (city may have many zipcodes)).
>
> So I'm still looking for a way to determine the exact combination selected
> by the user...
>
> regards,
> Oliver
>
>
> Nino.Martinez wrote:
>   
>> Quick answer, why not use property models and use both in the fiields 
>> you mention?
>>
>> Oliver Lieven wrote:
>>     
>>> Hi,
>>>
>>> in an address edit panel I've got the two AutoCompleteText fields
>>> 'zipcode'
>>> and 'city'.
>>>
>>> When a users begins typing into the zipcode-field, the autocomplete shows
>>> up
>>> and offers valid "zipcode - city" combinations. After selecting a value
>>> from
>>> the autocomplete the 'zipcode' is set. Same for 'city' field, i.e. after
>>> selecting a "zipcode - city" from the city's autocomplete the
>>> "city"-field
>>> is set accordingly.
>>> (Thanks for the great autocomplete-support in Wicket which allows
>>> separation
>>> of displayvalue and textvalue!)
>>>
>>> Now to my question: after selection of a "zipcode - city" combination
>>> from
>>> either autocomplete list I would like to set both fields (zipcode and
>>> city).
>>> I already attached an AjaxFormComponentUpdatingBehavior which gets called
>>> after a selection in the autocomplete list, but it just gets the
>>> zipcode/city currently set.
>>> Since the zipcode-city relation is 1:n (e.g. Berlin has many zipcodes)
>>> I'm
>>> wondering if there is a way to access the full selected value (and not
>>> only
>>> the AbstractAutoCompleteTextRenderer.textvalue set).
>>>
>>>
>>> Thanks for any help and tips!
>>> Oliver
>>>
>>>
>>>   
>>>       
>> ---------------------------------------------------------------------
>> 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: AutoCompleteTextfield - how to populate two input fields

Posted by Oliver Lieven <ol...@provantis.de>.
Hi Nino,
thanks for your fast reply. Yes, a shared PropertyModel would help to keep
both fields synchronized.

I still can't see how this could help me to determine the value selected by
the user. 
The AutoComplete works like

1. getChoices() is called to populate the autocomplete list with my "zipcode
- city" options
2. when user selects a value from the autocomplete list, the corresponding
field is set with the "textvalue" (e.g. the 'city' field is filled with the
city's name)
3. because of this update, the city-field's
AjaxFormComponentUpdatingBehavior.onUpdate() is called
4. in onUpdate() the getConvertedInput() method returns the city name, which
is insufficient to determine the corresponding zipcode (because of the n:1
relation (city may have many zipcodes)).

So I'm still looking for a way to determine the exact combination selected
by the user...

regards,
Oliver


Nino.Martinez wrote:
> 
> Quick answer, why not use property models and use both in the fiields 
> you mention?
> 
> Oliver Lieven wrote:
>> Hi,
>>
>> in an address edit panel I've got the two AutoCompleteText fields
>> 'zipcode'
>> and 'city'.
>>
>> When a users begins typing into the zipcode-field, the autocomplete shows
>> up
>> and offers valid "zipcode - city" combinations. After selecting a value
>> from
>> the autocomplete the 'zipcode' is set. Same for 'city' field, i.e. after
>> selecting a "zipcode - city" from the city's autocomplete the
>> "city"-field
>> is set accordingly.
>> (Thanks for the great autocomplete-support in Wicket which allows
>> separation
>> of displayvalue and textvalue!)
>>
>> Now to my question: after selection of a "zipcode - city" combination
>> from
>> either autocomplete list I would like to set both fields (zipcode and
>> city).
>> I already attached an AjaxFormComponentUpdatingBehavior which gets called
>> after a selection in the autocomplete list, but it just gets the
>> zipcode/city currently set.
>> Since the zipcode-city relation is 1:n (e.g. Berlin has many zipcodes)
>> I'm
>> wondering if there is a way to access the full selected value (and not
>> only
>> the AbstractAutoCompleteTextRenderer.textvalue set).
>>
>>
>> Thanks for any help and tips!
>> Oliver
>>
>>
>>   
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
> 
> 
> 

-- 
View this message in context: http://www.nabble.com/AutoCompleteTextfield---how-to-populate-two-input-fields-tf4592192.html#a13109927
Sent from the Wicket - User mailing list archive at Nabble.com.


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


Re: AutoCompleteTextfield - how to populate two input fields

Posted by Nino Saturnino Martinez Vazquez Wael <ni...@jayway.dk>.
Quick answer, why not use property models and use both in the fiields 
you mention?

Oliver Lieven wrote:
> Hi,
>
> in an address edit panel I've got the two AutoCompleteText fields 'zipcode'
> and 'city'.
>
> When a users begins typing into the zipcode-field, the autocomplete shows up
> and offers valid "zipcode - city" combinations. After selecting a value from
> the autocomplete the 'zipcode' is set. Same for 'city' field, i.e. after
> selecting a "zipcode - city" from the city's autocomplete the "city"-field
> is set accordingly.
> (Thanks for the great autocomplete-support in Wicket which allows separation
> of displayvalue and textvalue!)
>
> Now to my question: after selection of a "zipcode - city" combination from
> either autocomplete list I would like to set both fields (zipcode and city).
> I already attached an AjaxFormComponentUpdatingBehavior which gets called
> after a selection in the autocomplete list, but it just gets the
> zipcode/city currently set.
> Since the zipcode-city relation is 1:n (e.g. Berlin has many zipcodes) I'm
> wondering if there is a way to access the full selected value (and not only
> the AbstractAutoCompleteTextRenderer.textvalue set).
>
>
> Thanks for any help and tips!
> Oliver
>
>
>   

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