You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by "Michael Mehrle (JIRA)" <ji...@apache.org> on 2008/02/07 00:59:08 UTC

[jira] Created: (WICKET-1328) AutoCompleteTextField.getModelObject() needs the means to return an underlying collection of POJOs.

AutoCompleteTextField.getModelObject() needs the means to return an underlying collection of POJOs. 
----------------------------------------------------------------------------------------------------

                 Key: WICKET-1328
                 URL: https://issues.apache.org/jira/browse/WICKET-1328
             Project: Wicket
          Issue Type: New Feature
          Components: wicket-extensions
    Affects Versions: 1.3.0-final
         Environment: Assigning an iterator of POJOs to AutoCompleteTextField instead of Strings.
            Reporter: Michael Mehrle
            Priority: Minor


When assigning AutoCompleteTextField an iterator of POJOs instead of Strings (via the overridden getChoices() method, which returns an Iterator),. getModelObject() needs to be able to return POJO instances instead of the Strings produced by the custom AutoCompleteTextRenderer. 

This situation arose when I had to feed a list of POJOs into my AutoCompleteTextfield - which worked fine after writing a simple subclass of AbstractAutoCompleteTextRenderer, which grabbed the POJO's name field for screen rendering (the list inside the <div> tag). Problem is that the call to getModelObject *seems* to use the text from renderer.getTextValue(), which required me to manually match that string to the name fields of the cached POJOs. In a preferred scenario getModelObject() would return the object references that were fed into getChoices().

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Closed: (WICKET-1328) AutoCompleteTextField.getModelObject() needs the means to return an underlying collection of POJOs.

Posted by "Johan Compagner (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/WICKET-1328?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Johan Compagner closed WICKET-1328.
-----------------------------------

    Resolution: Won't Fix

the AutoCompleetTextField doesnt work  like the DropDownChoice with its ChoiceRenderer maybe we should rewrite (or just write a new one from the start)

But for the AutoCompleetTextField you just have to create a Converter for this, the problem with a auto compleet is that you dont really have to choose something out of the list
they are or just can be hints.. So the choicerendere wont really work in this case.

this is an example:

		final AutoCompleteTextField field = new AutoCompleteTextField("ac", new Model(
			Locale.ENGLISH), Locale.class, false)
		{
			/**
			 * @see org.apache.wicket.Component#getConverter(java.lang.Class)
			 */
			@Override
			public IConverter getConverter(Class type)
			{
				return new IConverter()
				{

					public String convertToString(Object value, Locale locale)
					{
						return value.toString();
					}

					public Object convertToObject(String value, Locale locale)
					{
						return new Locale(value);
					}

				};
			}

			@Override
			protected Iterator getChoices(String input)
			{
				if (Strings.isEmpty(input))
				{
					return Collections.EMPTY_LIST.iterator();
				}

				List choices = new ArrayList(10);

				Locale[] locales = Locale.getAvailableLocales();

				for (int i = 0; i < locales.length; i++)
				{
					final Locale locale = locales[i];

					if (locale.toString().toUpperCase().startsWith(input.toUpperCase()))
					{
						choices.add(locale);
						if (choices.size() == 10)
						{
							break;
						}
					}
				}

				return choices.iterator();
			}
		};

> AutoCompleteTextField.getModelObject() needs the means to return an underlying collection of POJOs. 
> ----------------------------------------------------------------------------------------------------
>
>                 Key: WICKET-1328
>                 URL: https://issues.apache.org/jira/browse/WICKET-1328
>             Project: Wicket
>          Issue Type: New Feature
>          Components: wicket-extensions
>    Affects Versions: 1.3.0-final
>         Environment: Assigning an iterator of POJOs to AutoCompleteTextField instead of Strings.
>            Reporter: Michael Mehrle
>            Priority: Minor
>   Original Estimate: 3h
>  Remaining Estimate: 3h
>
> When assigning AutoCompleteTextField an iterator of POJOs instead of Strings (via the overridden getChoices() method, which returns an Iterator),. getModelObject() needs to be able to return POJO instances instead of the Strings produced by the custom AutoCompleteTextRenderer. 
> This situation arose when I had to feed a list of POJOs into my AutoCompleteTextfield - which worked fine after writing a simple subclass of AbstractAutoCompleteTextRenderer, which grabbed the POJO's name field for screen rendering (the list inside the <div> tag). Problem is that the call to getModelObject *seems* to use the text from renderer.getTextValue(), which required me to manually match that string to the name fields of the cached POJOs. In a preferred scenario getModelObject() would return the object references that were fed into getChoices().

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (WICKET-1328) AutoCompleteTextField.getModelObject() needs the means to return an underlying collection of POJOs.

Posted by "Michael Mehrle (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/WICKET-1328?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12576636#action_12576636 ] 

Michael Mehrle commented on WICKET-1328:
----------------------------------------

Thanks for looking at this. The offered solution should work for me - the Converter can then connect to the appropriate service (or a simple list of detached domain objects) to retrieve and return the POJO via its id. Thanks!

Michael

> AutoCompleteTextField.getModelObject() needs the means to return an underlying collection of POJOs. 
> ----------------------------------------------------------------------------------------------------
>
>                 Key: WICKET-1328
>                 URL: https://issues.apache.org/jira/browse/WICKET-1328
>             Project: Wicket
>          Issue Type: New Feature
>          Components: wicket-extensions
>    Affects Versions: 1.3.0-final
>         Environment: Assigning an iterator of POJOs to AutoCompleteTextField instead of Strings.
>            Reporter: Michael Mehrle
>            Priority: Minor
>   Original Estimate: 3h
>  Remaining Estimate: 3h
>
> When assigning AutoCompleteTextField an iterator of POJOs instead of Strings (via the overridden getChoices() method, which returns an Iterator),. getModelObject() needs to be able to return POJO instances instead of the Strings produced by the custom AutoCompleteTextRenderer. 
> This situation arose when I had to feed a list of POJOs into my AutoCompleteTextfield - which worked fine after writing a simple subclass of AbstractAutoCompleteTextRenderer, which grabbed the POJO's name field for screen rendering (the list inside the <div> tag). Problem is that the call to getModelObject *seems* to use the text from renderer.getTextValue(), which required me to manually match that string to the name fields of the cached POJOs. In a preferred scenario getModelObject() would return the object references that were fed into getChoices().

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.