overrwrite getmodelvalue() and convert it to string there -igor
On Fri, Dec 4, 2009 at 2:10 PM, Sam Barrow <[email protected]> wrote: > I'll try that. > What about the problem with the square brackets? I can't find a function > to override that allows me to format the text inside the textarea > > On Fri, 2009-12-04 at 14:01 -0800, Igor Vaynberg wrote: >> ok, override convertValue() instead of convertInput() and then the >> exception will be handled for you >> >> -igor >> >> On Fri, Dec 4, 2009 at 1:39 PM, Sam Barrow <[email protected]> wrote: >> > No I'm getting a ConversionException, I must have made a typo. But for >> > the single text field I get a message in the feedback panel. >> > >> > On Fri, 2009-12-04 at 13:25 -0800, Igor Vaynberg wrote: >> >> so walk the code and see where your ConversionException is being >> >> wrapped by a RuntimeException >> >> >> >> -igor >> >> >> >> On Fri, Dec 4, 2009 at 1:08 PM, Sam Barrow <[email protected]> wrote: >> >> > That's what I'm doing, but i still get the conversion exception >> >> > >> >> > public final class EmailAddressConverter implements IConverter { >> >> > >> >> > private static final long serialVersionUID = >> >> > -4264887925119691218L; >> >> > >> >> > �...@override >> >> > public Object convertToObject(final String value, final Locale >> >> > locale) >> >> > { >> >> > if (StringUtils.isNotBlank(value)) { >> >> > if (Valid.emailAddress(value)) { >> >> > return new EmailAddress(value); >> >> > } >> >> > else { >> >> > throw new ConversionException("Invalid >> >> > email address."); >> >> > } >> >> > } >> >> > else { >> >> > return null; >> >> > } >> >> > } >> >> > �...@override >> >> > public String convertToString(final Object value, final Locale >> >> > locale) >> >> > { >> >> > return value.toString(); >> >> > } >> >> > >> >> > } >> >> > >> >> > >> >> > On Fri, 2009-12-04 at 12:16 -0800, Igor Vaynberg wrote: >> >> >> you should do convertToObject() call in a try block, catch any >> >> >> exception and throw a conversionexception >> >> >> >> >> >> -igor >> >> >> >> >> >> On Fri, Dec 4, 2009 at 11:32 AM, Sam Barrow <[email protected]> wrote: >> >> >> > >> >> >> > 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: [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] >> >> >> > >> > >> > --------------------------------------------------------------------- >> > 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]
