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: [EMAIL PROTECTED] >>>>>>>> For additional commands, e-mail: [EMAIL PROTECTED] >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>> >>>>>>> >>>>>> --------------------------------------------------------------------- >>>>>> To unsubscribe, e-mail: [EMAIL PROTECTED] >>>>>> For additional commands, e-mail: [EMAIL PROTECTED] >>>>>> >>>>>> >>>>>> >>>>>> >>>>> >>>>> >>>> >>>> --------------------------------------------------------------------- >>>> To unsubscribe, e-mail: [EMAIL PROTECTED] >>>> For additional commands, e-mail: [EMAIL PROTECTED] >>>> >>>> >>> >>> >>> >>> --------------------------------------------------------------------- >>> To unsubscribe, e-mail: [EMAIL PROTECTED] >>> For additional commands, e-mail: [EMAIL PROTECTED] >>> >>> >>> >> >> -- >> 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: [EMAIL PROTECTED] >> For additional commands, e-mail: [EMAIL PROTECTED] >> >> > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > > -- 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: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]