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");
}
}