Discussion:
Set Double to more than 3 digits in AjaxEditableLabel
Vishal Popat
2018-08-16 07:26:07 UTC
Permalink
Hi,

In Wicket 6.29.0, I did the following within a class that extended AjaxEditableLabel

@Override
public IConverter<Double> getConverter(Class clazz) {
DoubleConverter converter = (DoubleConverter)DoubleConverter.INSTANCE;
NumberFormat format = converter.getNumberFormat(getLocale());
format.setMaximumFractionDigits(12);
converter.setNumberFormat(getLocale(), format);
return converter;
}

In Wicket 7.10.0, converter.setNumberFormat no longer exists. I am not sure what I need to do to increase the fraction digit to 12 as it is currently set to 3.

Any help would be appreciated.

Vishal
---------------------------------------------------------------------
To unsubscribe, e-mail: users-***@wicket.apache.org
For additional commands, e-mail: users-***@wicket.apache.org
Martin Grigorov
2018-08-16 12:43:51 UTC
Permalink
Hi,

The way you did this will mutate the singleton instance.
The recommended way is to instantiate it yourself and override
org.apache.wicket.util.convert.converter.AbstractDecimalConverter#newNumberFormat
I.e.
DoubleConverter dc = new DoubleConverter() {
@Override protected NumberFormat newNumberFormat(final Locale locale) {
NumberFormat format = super.createNumberFormat(getLocale());
format.setMaximumFractionDigits(12);
return format;
}
}
Post by Vishal Popat
Hi,
In Wicket 6.29.0, I did the following within a class that extended AjaxEditableLabel
@Override
public IConverter<Double> getConverter(Class clazz) {
DoubleConverter converter =
(DoubleConverter)DoubleConverter.INSTANCE;
NumberFormat format = converter.getNumberFormat(getLocale());
format.setMaximumFractionDigits(12);
converter.setNumberFormat(getLocale(), format);
return converter;
}
In Wicket 7.10.0, converter.setNumberFormat no longer exists. I am not
sure what I need to do to increase the fraction digit to 12 as it is
currently set to 3.
Any help would be appreciated.
Vishal
---------------------------------------------------------------------
vp143
2018-08-17 06:27:42 UTC
Permalink
Thanks Martin, that worked great!

Just for completeness, I needed to make a slight modification as I did not
find super.createNumberFormat

DoubleConverter dc = new DoubleConverter() {
@Override
protected NumberFormat newNumberFormat(final Locale locale) {
NumberFormat format = NumberFormat.getInstance(locale);
format.setMaximumFractionDigits(12);
return format;
}
};

--
Sent from: http://apache-wicket.1842946.n4.nabble.com/Users-forum-f1842947.html

---------------------------------------------------------------------
To unsubscribe, e-mail: users-***@wicket.apache.org
For additional commands, e-mail: users-***@wicket.apache.org
Martin Grigorov
2018-08-17 08:15:59 UTC
Permalink
Yes, it should have been super.newNumberFormat(locale)
Post by vp143
Thanks Martin, that worked great!
Just for completeness, I needed to make a slight modification as I did not
find super.createNumberFormat
DoubleConverter dc = new DoubleConverter() {
@Override
protected NumberFormat newNumberFormat(final Locale locale) {
NumberFormat format =
NumberFormat.getInstance(locale);
format.setMaximumFractionDigits(12);
return format;
}
};
--
http://apache-wicket.1842946.n4.nabble.com/Users-forum-f1842947.html
---------------------------------------------------------------------
Loading...