You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by "Igor Vaynberg (JIRA)" <ji...@apache.org> on 2007/08/31 07:40:30 UTC
[jira] Resolved: (WICKET-530) FormComponent.type ignored for print
[ https://issues.apache.org/jira/browse/WICKET-530?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Igor Vaynberg resolved WICKET-530.
----------------------------------
Resolution: Won't Fix
Assignee: Igor Vaynberg
all you have to do is override getconverter() and return the appropriate one, so
add(new textfield("value") { iconverter getconverter() { return new MyTwoDecimalPointDoubleConverter(); }
>PS: Why FormComponent.type is Class? I think Object or String will be better. This gives >more freedom for ConverterLocator. In my project I have about 4 converters for Double >which uses four different DecimalFormats for convert/parse values. Why do I need >create four classes for it? With String type selector I can be use four instances of one >DecimalFormatConverter each of them is initialized with customized DecimalFormat >instance.
because type is safer and refactorable, lets say you wanted to make a textfield for integers..
add(new textfield("age", Integer.class) makes sense, where as
add(new textfield("age", "wicket.integer") doesnt because that is a magic string that the user has to dig up from somewhere. besides this is type conversion - where you convert between a String and some other Class so it makes sense.
> FormComponent.type ignored for print
> ------------------------------------
>
> Key: WICKET-530
> URL: https://issues.apache.org/jira/browse/WICKET-530
> Project: Wicket
> Issue Type: Bug
> Components: wicket
> Affects Versions: 1.3.0-beta1
> Environment: jdk1.4 wicket-1.3.-incubating-beta1
> Reporter: Ivlev Dmitry
> Assignee: Igor Vaynberg
> Fix For: 1.3.0-rc1
>
>
> I have created text field:
> add(new TextField("quantity", Converters.QUANTITY.getClass()));
> and register my custom converter in session's ConverterLocator.
> But my converter is not called for markup output because:
> TextField.onComponentTag => tag.put("value", getValue());
> FormComponent.getValue => return getModelValue();
> FormComponent.getModelValue => return getModelObjectAsString();
> Component.getModelObjectAsString() =>
> final Object modelObject = getModelObject();
> if (modelObject != null)
> {
> // Get converter
> final IConverter converter = getConverter(modelObject.getClass());
> As a result FormComponent.type is ignored and I need to overwrite method getConverter for right converter selection.
> PS: Why FormComponent.type is Class? I think Object or String will be better. This gives more freedom for ConverterLocator. In my project I have about 4 converters for Double which uses four different DecimalFormats for convert/parse values. Why do I need create four classes for it? With String type selector I can be use four instances of one DecimalFormatConverter each of them is initialized with customized DecimalFormat instance.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.