From b9c0bd997aeb3b6555b40af21560e747f67f7730 Mon Sep 17 00:00:00 2001 From: serge-rider Date: Mon, 19 Feb 2018 23:10:50 +0300 Subject: [PATCH] #3006 Numeric format: configure decimal part render (from column scale) --- plugins/org.jkiss.dbeaver.core/OSGI-INF/l10n/bundle.properties | 2 ++ plugins/org.jkiss.dbeaver.core/plugin.xml | 1 + .../model/impl/data/formatters/NumberDataFormatter.java | 3 ++- .../dbeaver/model/impl/data/formatters/NumberFormatSample.java | 2 ++ 4 files changed, 7 insertions(+), 1 deletion(-) diff --git a/plugins/org.jkiss.dbeaver.core/OSGI-INF/l10n/bundle.properties b/plugins/org.jkiss.dbeaver.core/OSGI-INF/l10n/bundle.properties index baa8bff7e0..a7e659e4c3 100644 --- a/plugins/org.jkiss.dbeaver.core/OSGI-INF/l10n/bundle.properties +++ b/plugins/org.jkiss.dbeaver.core/OSGI-INF/l10n/bundle.properties @@ -334,6 +334,8 @@ DateFormatter.number.general.maxFractDigits.label=Maximum fraction digits DateFormatter.number.general.maxFractDigits.description=Maximum fraction digits DateFormatter.number.general.minFractDigits.label=Minimum fraction digits DateFormatter.number.general.minFractDigits.description=Minimum fraction digits +DateFormatter.number.general.useTypeScale.label=Use data type scale for fraction digits +DateFormatter.number.general.useTypeScale.description=Use column/attribute data type scale as minimum fraction digits number DateFormatter.number.general.roundingMode.label=Rounding mode DateFormatter.number.general.roundingMode.description=Rounding mode diff --git a/plugins/org.jkiss.dbeaver.core/plugin.xml b/plugins/org.jkiss.dbeaver.core/plugin.xml index 2805575690..6b3183ef23 100644 --- a/plugins/org.jkiss.dbeaver.core/plugin.xml +++ b/plugins/org.jkiss.dbeaver.core/plugin.xml @@ -3356,6 +3356,7 @@ + diff --git a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/data/formatters/NumberDataFormatter.java b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/data/formatters/NumberDataFormatter.java index 5e2461334b..814d63e308 100644 --- a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/data/formatters/NumberDataFormatter.java +++ b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/data/formatters/NumberDataFormatter.java @@ -71,7 +71,8 @@ public class NumberDataFormatter implements DBDDataFormatter { // just skip it } } - if (type != null) { + Object useTypeScale = CommonUtils.toString(properties.get(NumberFormatSample.PROP_USE_TYPE_SCALE)); + if (type != null && CommonUtils.toBoolean(useTypeScale)) { if (type.getScale() != null && type.getScale() > 0) { int fractionDigits = type.getScale(); if (fractionDigits > MAX_DEFAULT_FRACTIONS_DIGITS) fractionDigits = MAX_DEFAULT_FRACTIONS_DIGITS; diff --git a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/data/formatters/NumberFormatSample.java b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/data/formatters/NumberFormatSample.java index 0f1bb3bd81..7290f2065b 100644 --- a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/data/formatters/NumberFormatSample.java +++ b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/data/formatters/NumberFormatSample.java @@ -30,6 +30,7 @@ public class NumberFormatSample implements DBDDataFormatterSample { public static final String PROP_MIN_INT_DIGITS ="minIntegerDigits"; public static final String PROP_MAX_FRACT_DIGITS ="maxFractionDigits"; public static final String PROP_MIN_FRACT_DIGITS ="minFractionDigits"; + public static final String PROP_USE_TYPE_SCALE ="useTypeScale"; public static final String PROP_ROUNDING_MODE ="roundingMode"; @Override @@ -42,6 +43,7 @@ public class NumberFormatSample implements DBDDataFormatterSample { props.put(PROP_MIN_INT_DIGITS, tmp.getMinimumIntegerDigits()); props.put(PROP_MAX_FRACT_DIGITS, Math.max(tmp.getMaximumFractionDigits(), 10)); props.put(PROP_MIN_FRACT_DIGITS, tmp.getMinimumFractionDigits()); + props.put(PROP_USE_TYPE_SCALE, true); props.put(PROP_ROUNDING_MODE, tmp.getRoundingMode().name()); return props; } -- GitLab