You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@empire-db.apache.org by do...@apache.org on 2012/09/17 15:11:43 UTC
svn commit: r1386597 - in
/empire-db/trunk/empire-db-jsf2/src/main/java/org/apache/empire/jsf2:
components/ControlTag.java components/InputTag.java
controls/SelectInputControl.java utils/TagEncodingHelper.java
Author: doebele
Date: Mon Sep 17 13:11:42 2012
New Revision: 1386597
URL: http://svn.apache.org/viewvc?rev=1386597&view=rev
Log:
EMPIREDB-157
JSF2 skip validation for null values in partial requests
Modified:
empire-db/trunk/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/ControlTag.java
empire-db/trunk/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/InputTag.java
empire-db/trunk/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/controls/SelectInputControl.java
empire-db/trunk/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/utils/TagEncodingHelper.java
Modified: empire-db/trunk/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/ControlTag.java
URL: http://svn.apache.org/viewvc/empire-db/trunk/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/ControlTag.java?rev=1386597&r1=1386596&r2=1386597&view=diff
==============================================================================
--- empire-db/trunk/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/ControlTag.java (original)
+++ empire-db/trunk/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/ControlTag.java Mon Sep 17 13:11:42 2012
@@ -439,9 +439,9 @@ public class ControlTag extends UIInput
{ // Check state
if (inpInfo==null || !isValid())
return;
- // Skip Null values if not required
- if (hasRequiredFlagSet && !isRequired() && isEmpty(value)) // && helper.isValueRequired()
- { // Value is null, but not required
+ // Skip Null values on partial submit
+ if (isEmpty(value) && isPartialSubmit(context)) // && helper.isValueRequired()
+ { // Value is null
log.debug("Skipping validation for {} due to Null value.", inpInfo.getColumn().getName());
return;
}
@@ -486,8 +486,8 @@ public class ControlTag extends UIInput
// check required?
Object value = getLocalValue();
// check required
- if (hasRequiredFlagSet && !isRequired() && isEmpty(value) && helper.isValueRequired())
- { // Value is null, but not required
+ if (isEmpty(value) && isPartialSubmit(context) && helper.getColumn().isRequired())
+ { // Value is null, but required
log.debug("Skipping model update for {} due to Null value.", inpInfo.getColumn().getName());
return;
}
@@ -516,6 +516,15 @@ public class ControlTag extends UIInput
return helper.isValueRequired();
}
+ private boolean isPartialSubmit(FacesContext context)
+ {
+ // Check Required Flag
+ if (hasRequiredFlagSet && !isRequired())
+ return true;
+ // partial
+ return helper.isPartialSubmit(context);
+ }
+
/**
* Check the parent allows the creation of a if the ValueOutputComponent.
* This method should never return false. If it does, the method "helper.isRecordReadOnly()" does not return the same value for subsequent calls as when the component was first encoded.
Modified: empire-db/trunk/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/InputTag.java
URL: http://svn.apache.org/viewvc/empire-db/trunk/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/InputTag.java?rev=1386597&r1=1386596&r2=1386597&view=diff
==============================================================================
--- empire-db/trunk/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/InputTag.java (original)
+++ empire-db/trunk/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/InputTag.java Mon Sep 17 13:11:42 2012
@@ -172,8 +172,8 @@ public class InputTag extends UIInput im
if (inpInfo==null)
return;
// Skip Null values if not required
- if (hasRequiredFlagSet && !isRequired() && isEmpty(value)) // && helper.isValueRequired()
- { // Value is null, but not required
+ if (isEmpty(value) && isPartialSubmit(context)) // && helper.isValueRequired()
+ { // Value is null
log.debug("Skipping validation for {} due to Null value.", inpInfo.getColumn().getName());
return;
}
@@ -218,8 +218,8 @@ public class InputTag extends UIInput im
return;
// check required
Object value = getLocalValue();
- if (hasRequiredFlagSet && !isRequired() && isEmpty(value) && helper.isValueRequired())
- { // Value is null, but not required
+ if (isEmpty(value) && isPartialSubmit(context) && helper.getColumn().isReadOnly())
+ { // Value is null, but required
log.debug("Skipping model update for {} due to Null value.", inpInfo.getColumn().getName());
return;
}
@@ -247,6 +247,15 @@ public class InputTag extends UIInput im
return helper.isValueRequired();
}
+ private boolean isPartialSubmit(FacesContext context)
+ {
+ // Check Required Flag
+ if (hasRequiredFlagSet && !isRequired())
+ return true;
+ // partial
+ return helper.isPartialSubmit(context);
+ }
+
/**
* write value element
* @param vi
Modified: empire-db/trunk/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/controls/SelectInputControl.java
URL: http://svn.apache.org/viewvc/empire-db/trunk/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/controls/SelectInputControl.java?rev=1386597&r1=1386596&r2=1386597&view=diff
==============================================================================
--- empire-db/trunk/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/controls/SelectInputControl.java (original)
+++ empire-db/trunk/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/controls/SelectInputControl.java Mon Sep 17 13:11:42 2012
@@ -113,6 +113,7 @@ public class SelectInputControl extends
// style
addRemoveDisabledStyle(input, input.isDisabled());
+ addRemoveInvalidStyle(input, ii.hasError());
// Set Value
setInputValue(input, ii);
Modified: empire-db/trunk/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/utils/TagEncodingHelper.java
URL: http://svn.apache.org/viewvc/empire-db/trunk/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/utils/TagEncodingHelper.java?rev=1386597&r1=1386596&r2=1386597&view=diff
==============================================================================
--- empire-db/trunk/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/utils/TagEncodingHelper.java (original)
+++ empire-db/trunk/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/utils/TagEncodingHelper.java Mon Sep 17 13:11:42 2012
@@ -500,6 +500,11 @@ public class TagEncodingHelper implement
// create
return new InputInfoImpl(getColumn(), getTextResolver(ctx));
}
+
+ public boolean isPartialSubmit(FacesContext ctx)
+ {
+ return FacesUtils.getFacesApplication().isPartialSubmit(ctx);
+ }
public boolean isSkipValidation()
{