I am trying to make a TextArea that allows you to input a list of strings (separated by a newline) and turns that list into a Collection. I had it working but it was kind of hacked together, I'm trying to do it the clean way now. I have it working except for two things:
If I give it an empty collection for the model object then it display square brackets [] inside the text area. I don't have the conversion 100% working. Like when you have a TextField<Date>, I'm trying to make it do the same thing to each line. It works, but when it is an invalid value, instead of a nice error message "X is not a valid Y" I get a runtime exception from whatever IConverter I am using. Source: public final class CollectionTextArea<Type> extends TextArea<Collection<Type>> { private static final long serialVersionUID = 7147538499297387635L; private Class<?> elementType; public CollectionTextArea(final String id, final Class<?> elementType) { super(id); setElementType(elementType); } public CollectionTextArea(final String id, final Class<?> elementType, final IModel<Collection<Type>> model) { super(id, model); setElementType(elementType); } public Class<?> getElementType() { return elementType; } public void setElementType(Class<?> elementType) { this.elementType = elementType; } @Override protected void onBeforeRender() { super.onBeforeRender(); } @Override @SuppressWarnings("unchecked") protected void convertInput() { final String text = getRawInput(); final List<Type> lines = new ArrayList<Type>(); if (text != null) { for (final String line: text.split("\\r\\n")) { if (StringUtils.isNotBlank(line)) { Type value = (Type) getApplication().getConverterLocator().getConverter(getElementType()).convertToObject(line, getLocale()); lines.add(value); } } } setConvertedInput(lines); } } --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org