protected static DecimalFormat getDefaultDecimalFormat(Locale locale) { return BEANS.get(NumberFormatProvider.class).getNumberInstance(locale); }
/** * Create a string representing a number using locale specific minus, decimalSeparator and percent symbols * * @param minus * @param integerPart * @param fractionPart * @param percentSuffix * @return */ public static String createLocaleSpecificNumberString(Locale loc, boolean minus, String integerPart, String fractionPart, NumberStringPercentSuffix percentSuffix) { DecimalFormatSymbols symbols = (BEANS.get(NumberFormatProvider.class).getPercentInstance(loc)).getDecimalFormatSymbols(); StringBuilder sb = new StringBuilder(); if (minus) { sb.append(symbols.getMinusSign()); } sb.append(integerPart); if (fractionPart != null) { sb.append(symbols.getDecimalSeparator()).append(fractionPart); } sb.append(percentSuffix.getSuffix(symbols)); return sb.toString(); }
@Override public boolean isPercent() { NumberFormat percentNF = BEANS.get(NumberFormatProvider.class).getPercentInstance(NlsLocale.get()); if (percentNF instanceof DecimalFormat) { DecimalFormat percentDF = (DecimalFormat) percentNF; DecimalFormat internalDF = getFormatInternal(); return internalDF.getPositiveSuffix().equals(percentDF.getPositiveSuffix()) && internalDF.getNegativeSuffix().equals(percentDF.getNegativeSuffix()); } else { throw new NumberFormatException(); } }
protected void initFormat() { DecimalFormat format = BEANS.get(NumberFormatProvider.class).getNumberInstance(NlsLocale.get()); format.setParseBigDecimal(true); format.setMinimumFractionDigits(0); format.setMaximumFractionDigits(0); format.setMaximumIntegerDigits(getConfiguredMaxIntegerDigits()); propertySupport.setProperty(INumberValueContainer.PROP_DECIMAL_FORMAT, format); }
@Override public boolean isPercent() { DecimalFormat percentDF = BEANS.get(NumberFormatProvider.class).getPercentInstance(NlsLocale.get()); DecimalFormat internalDF = getFormatInternal(); return internalDF.getPositiveSuffix().equals(percentDF.getPositiveSuffix()) && internalDF.getNegativeSuffix().equals(percentDF.getNegativeSuffix()); }
protected void initFormat() { DecimalFormat format = BEANS.get(NumberFormatProvider.class).getNumberInstance(NlsLocale.get()); format.setParseBigDecimal(true); format.setMinimumFractionDigits(0); format.setMaximumFractionDigits(0); format.setMaximumIntegerDigits(getConfiguredMaxIntegerDigits()); propertySupport.setProperty(INumberValueContainer.PROP_DECIMAL_FORMAT, format); }
@Override public void setPercent(boolean b) { DecimalFormat percentDF = BEANS.get(NumberFormatProvider.class).getPercentInstance(NlsLocale.get()); DecimalFormat format = getFormat(); if (b) { format.setPositiveSuffix(percentDF.getPositiveSuffix()); format.setNegativeSuffix(percentDF.getNegativeSuffix()); } else { if (isPercent()) { format.setPositiveSuffix(""); format.setNegativeSuffix(""); } } setFormat(format); }
@Override public void setPercent(boolean b) { try { DecimalFormat percentDF = BEANS.get(NumberFormatProvider.class).getPercentInstance(NlsLocale.get()); DecimalFormat format = getFormat(); if (b) { format.setPositiveSuffix(percentDF.getPositiveSuffix()); format.setNegativeSuffix(percentDF.getNegativeSuffix()); } else { if (isPercent()) { format.setPositiveSuffix(""); format.setNegativeSuffix(""); } } setFormat(format); } finally { setFieldChanging(false); } }