This is an automated email from the ASF dual-hosted git repository.

doebele pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/empire-db.git


The following commit(s) were added to refs/heads/master by this push:
     new 9c1d141  EMPIREDB-320 skipping validation of child input components 
for e:input and e:control tags
9c1d141 is described below

commit 9c1d141f660c04febb3d950bcc0317a9f5435011
Author: Rainer Döbele <[email protected]>
AuthorDate: Thu Nov 28 18:39:04 2019 +0100

    EMPIREDB-320
    skipping validation of child input components for e:input and e:control tags
---
 .../src/main/java/org/apache/empire/jsf2/components/ControlTag.java  | 2 +-
 .../src/main/java/org/apache/empire/jsf2/components/InputTag.java    | 2 +-
 .../src/main/java/org/apache/empire/jsf2/controls/InputControl.java  | 5 +++++
 .../java/org/apache/empire/jsf2/controls/SelectInputControl.java     | 2 +-
 .../main/java/org/apache/empire/jsf2/utils/TagEncodingHelper.java    | 5 +++++
 empire-db/src/main/java/org/apache/empire/commons/Options.java       | 5 ++++-
 6 files changed, 17 insertions(+), 4 deletions(-)

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 class ControlTag extends UIInput implements 
NamingContainer
     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 class InputTag extends UIInput implements 
NamingContainer
     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 @@ public abstract class InputControl
         // 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 @@ public class SelectInputControl extends InputControl
                 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 @@ public class TagEncodingHelper implements NamingContainer
         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 @@ public class Options extends AbstractSet<OptionEntry> 
implements Cloneable, Seri
             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 @@ public class Options extends AbstractSet<OptionEntry> 
implements Cloneable, Seri
             // Create Option Element
             Element opt = XMLUtil.addElement(element, "option", e.getText());
             opt.setAttribute("value", value);
+            if (e.isActive()==false)
+                opt.setAttribute("disabled", "true");
         }
     }
 

Reply via email to