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