JsonSerializerSettings settings = new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore, MissingMemberHandling = MissingMemberHandling.Ignore, Formatting = Formatting.None, DateFormatHandling = DateFormatHandling.IsoDateFormat, Converters = new List<JsonConverter> { new DecimalConverter() } };
public void setMaximumFractionDigits(int maximumFractionDigits) { converter.setMaximumFractionDigits(maximumFractionDigits); } }
@Override public List<Double> convertToObject(String value, Locale locale) throws ConversionException { List<Double> result = new ArrayList<>(); if (value != null && !"-".equals(value.trim())) { String[] values = value.split("\\s+"); for (String s : values) { Double v = converter.convertToObject(s, locale); if (v != null) { result.add(v); } } } return result; }
@Override public String convertToString(List<Double> value, Locale locale) { if (value == null || value.isEmpty()) { return "-"; } else { StringBuilder sb = new StringBuilder(); for (int i = 0; i < value.size(); i++) { String str = converter.convertToString(value.get(i), locale); sb.append(str); if (i < value.size() - 1) { sb.append(" "); } } return sb.toString(); } }
@Override public Double convertToObject(String value, Locale locale) { if (value == null || value.trim().length() == 0) { return null; } final NumberFormat format = getNumberFormat(locale); final DecimalFormatSymbols symbols = ((DecimalFormat) format).getDecimalFormatSymbols(); if (value.equals(symbols.getNaN())) { return new Double(Double.NaN); } else if (value.equals(symbols.getInfinity())) { return new Double(Double.POSITIVE_INFINITY); } else if (value.equals("-" + symbols.getInfinity())) { return new Double(Double.NEGATIVE_INFINITY); } else { return super.convertToObject(value, locale); } }
public void setMaximumFractionDigits(int maximumFractionDigits) { decimalConverter.setMaximumFractionDigits(maximumFractionDigits); }
public DecimalTextField(String id, IModel<Double> model) { super(id, model, Double.class); decimalConverter = new DecimalConverter(); }