EMPIREDB-320
skipping validation of child input components for e:input and e:control tags
diff --git a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/ControlTag.java b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/ControlTag.java
index 7356389..52e1e23 100644
--- a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/ControlTag.java
+++ b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/ControlTag.java
@@ -595,7 +595,7 @@
     public void processValidators(FacesContext context)

     {

         try {

-            processingValidators = true;

+            processingValidators = helper.skipInputValidators();

             super.processValidators(context);

         } finally {

             processingValidators = false;

diff --git a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/InputTag.java b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/InputTag.java
index ae6a209..123a8eb 100644
--- a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/InputTag.java
+++ b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/InputTag.java
@@ -299,7 +299,7 @@
     public void processValidators(FacesContext context)

     {

         try {

-            processingValidators = true;

+            processingValidators = helper.skipInputValidators();

             super.processValidators(context);

         } finally {

             processingValidators = false;

diff --git a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/controls/InputControl.java b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/controls/InputControl.java
index e7928bf..717393d 100644
--- a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/controls/InputControl.java
+++ b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/controls/InputControl.java
@@ -671,6 +671,11 @@
         // add Style

         setInputStyleClass(input, styleClass);

     }

+    

+    public boolean skipInputValidators()

+    {

+        return true;

+    }

 

     /**

      * Returns the value formated as a string

diff --git a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/controls/SelectInputControl.java b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/controls/SelectInputControl.java
index b973291..36679ef 100644
--- a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/controls/SelectInputControl.java
+++ b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/controls/SelectInputControl.java
@@ -217,7 +217,7 @@
                 if (ObjectUtils.compareEqual(oe.getValue(), currentValue))

                     break;

                 // next oe

-                oe = ioe.next();

+                oe = (ioe.hasNext() ? ioe.next() : null);

             }

             if (oe == null)

             {   // remove obsolete items

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 9b9af08..c2d7625 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
@@ -1674,6 +1674,11 @@
         return this.insideUIData;

     }

     

+    public boolean skipInputValidators()

+    {

+        return (this.control!=null ? this.control.skipInputValidators() : false);

+    }

+    

     public void saveComponentId(UIComponent comp)

     {

         if (comp==null || comp.getId()==null)

diff --git a/empire-db/src/main/java/org/apache/empire/commons/Options.java b/empire-db/src/main/java/org/apache/empire/commons/Options.java
index 8bf29cd..895c824 100644
--- a/empire-db/src/main/java/org/apache/empire/commons/Options.java
+++ b/empire-db/src/main/java/org/apache/empire/commons/Options.java
@@ -314,7 +314,8 @@
             b.append(StringUtils.toString(e.getValue()));
             b.append("\":\"");
             b.append(e.getText());
-            b.append("\"");
+            b.append("\":");
+            b.append(e.isActive() ? "1" : "0");
             first = false;
         }    
         b.append("}");
@@ -335,6 +336,8 @@
             // Create Option Element
             Element opt = XMLUtil.addElement(element, "option", e.getText());
             opt.setAttribute("value", value);
+            if (e.isActive()==false)
+                opt.setAttribute("disabled", "true");
         }
     }