I decided against using the ObjectAutoCompleteTextField because it was too 
restrictive in the Object you supply. I went with the component on the wiki and 
ended up adding another getter/setter to my page to separate the value from the 
display when it gets the object selected.

However, I revisited the Wicketstuff component with your suggestion, and adding:
builder.idProperty("userId"); 

works to set the value for the field that is submitted. 

However, there is no way to tell it the value to use for the display!  It's 
just serializing the Object I give it as the display (ie 
my.package.model.per...@77aa0759])

What I need is to give it a list of objects and to be able to specify what 
properties to use for the display value and the submit value. It needs 
something like:
builder.displayProperty("displayName");

thanks,
Steve

On 22/12/2009, at 10:00 AM, Albert Romanius wrote:

> I am not sure, but you could try to set idProperty in 
> ObjectAutoCompleteBuilder
> 
> 
> On Mon, Dec 21, 2009 at 10:54 AM, Steve Swinsburg
> <steve.swinsb...@gmail.com> wrote:
>> On further investigation, the values aren't being separated after all. What
>> is added to the textfield is what is submitted in the form.
>> Is it possible to submit a different value than just the display text?
>> thanks,
>> Steve
>> 
>> On 21/12/2009, at 1:54 PM, Steve Swinsburg wrote:
>> 
>> Nevermind. I ended up going with this approach where I could separate the
>> values:
>> http://cwiki.apache.org/WICKET/autocomplete-using-a-wicket-model.html
>> I will add my code snippet to the page.
>> cheers,
>> Steve
>> On 21/12/2009, at 11:57 AM, Steve Swinsburg wrote:
>> 
>> Hi,
>> I am using ObjectAutoCompleteField from WicketStuff and it looks like what I
>> need for my scenario:
>> I have an object list with a bunch of fields and when the user searches, it
>> needs to match on a certain field and display the list of matches. The
>> examples do this with a Car object with an Integer field for the ID and a
>> String for the car name.
>> However, there seems to be no way to tell it *what* fields to use in the
>> supplied object. You can only give the component the Type of fields to look
>> up, and it gets the field to use by reflection. This assumes only one field
>> in that object will be of that Type.
>> ie
>> How could I make it would with a list of these objects:
>> class Person {
>> String userId;
>> String displayName;
>> ...
>> }
>> Giving the ObjectAutoCompleteField the types <Person,String> won't work, it
>> won't know what field to use.
>> 
>> List<Person> persons = getPersons();
>> ObjectAutoCompleteBuilder<Person,String> builder = new
>> ObjectAutoCompleteBuilder<Person,String>(
>> new AutoCompletionChoicesProvider<User>() {
>> public Iterator<Person> getChoices(String input) {
>> List<Person> subSet = getPersonSubSet(persons, input);
>> return subSet.iterator();
>> }
>> }
>> );
>> ObjectAutoCompleteField toField = builder.build("toField", new
>> Model<String>());
>> form.add(toField);
>> 
>> Any ideas?
>> thanks,
>> Steve
>> 
>> 
> 
> 
> 
> -- 
> Albert
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> For additional commands, e-mail: users-h...@wicket.apache.org
> 

Attachment: smime.p7s
Description: S/MIME cryptographic signature

Reply via email to