Re: AutoCompleteTextfield - how to populate two input fields
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 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 automa
Re: AutoCompleteTextfield - how to populate two input fields
I'm on in. I'll send you the samples latter in the day. cheers, f(t) On 10/11/07, German Morales <[EMAIL PROTECTED]> 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) > >>> } > >>>
Re: AutoCompleteTextfield - how to populate two input fields
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( >> "phoneN
Re: AutoCompleteTextfield - how to populate two input fields
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 Pro
Re: AutoCompleteTextfield - how to populate two input fields
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 u
Re: AutoCompleteTextfield - how to populate two input fields
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] > > > > > >>> --
Re: AutoCompleteTextfield - how to populate two input fields
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]
Re: AutoCompleteTextfield - how to populate two input fields
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] > > > -- 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: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: AutoCompleteTextfield - how to populate two input fields
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]
Re: AutoCompleteTextfield - how to populate two input fields
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] > > > -- 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: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: AutoCompleteTextfield - how to populate two input fields
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]