EMPIREDB-282
JSF: added minimum integer digits to number formatting
diff --git a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/controls/TextInputControl.java b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/controls/TextInputControl.java
index 0c57401..776e09b 100644
--- a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/controls/TextInputControl.java
+++ b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/controls/TextInputControl.java
@@ -514,6 +514,13 @@
nf.setMaximumFractionDigits(fractionDigits);
nf.setMinimumFractionDigits(fractionDigits);
}
+ // IntegerDigits (left-padding)
+ Object intDigits = column.getAttribute(Column.COLATTR_INTEGER_DIGITS);
+ if (intDigits != null) {
+ int integerDigits = ObjectUtils.getInteger(intDigits);
+ if (integerDigits>0)
+ nf.setMinimumIntegerDigits(integerDigits);
+ }
// Number format
return nf;
}
diff --git a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/utils/TagEncodingHelper.java b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/utils/TagEncodingHelper.java
index e30a44d..6c86fdf 100644
--- a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/utils/TagEncodingHelper.java
+++ b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/utils/TagEncodingHelper.java
@@ -966,6 +966,13 @@
return ((ColumnExprWrapper) col).getExpr();
return col;
}
+
+ protected Column unwrapColumn(Column col)
+ {
+ if (col instanceof ColumnExprWrapper)
+ return ((ColumnExprWrapper) col).getSourceColumn();
+ return col;
+ }
protected Object findRecord()
{
@@ -1072,7 +1079,7 @@
if (getColumn() != null)
{ // Do we have a record?
if (getRecord() instanceof Record)
- return ((Record) record).getFieldOptions(column);
+ return ((Record) record).getFieldOptions(unwrapColumn(column));
// get From Column
return column.getOptions();
}
diff --git a/empire-db/src/main/java/org/apache/empire/data/Column.java b/empire-db/src/main/java/org/apache/empire/data/Column.java
index dd7d0dd..622ac01 100644
--- a/empire-db/src/main/java/org/apache/empire/data/Column.java
+++ b/empire-db/src/main/java/org/apache/empire/data/Column.java
@@ -44,6 +44,7 @@
public static final String COLATTR_NUMBER_TYPE = "numberType"; // "Integer", "Currency", "Percent"
public static final String COLATTR_NUMBER_GROUPSEP = "numberGroupSeparator"; // boolean (true or false)
public static final String COLATTR_FRACTION_DIGITS = "numberFractionDigits"; // integer
+ public static final String COLATTR_INTEGER_DIGITS = "numberIntegerDigits"; // integer
public static final String COLATTR_CURRENCY_CODE = "currencyCode"; // "ISO 4217 code of the currency"
public static final String COLATTR_DATETIMEPATTERN = "dateTimePattern"; // default is yyyy-MM-dd HH:mm:ss