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 2016/03/17 13:52:47 UTC
empire-db git commit: EMPIREDB-232 fixed UIDate InputTag problem
Repository: empire-db
Updated Branches:
refs/heads/master b487e6383 -> 911dc38c1
EMPIREDB-232
fixed UIDate InputTag problem
Project: http://git-wip-us.apache.org/repos/asf/empire-db/repo
Commit: http://git-wip-us.apache.org/repos/asf/empire-db/commit/911dc38c
Tree: http://git-wip-us.apache.org/repos/asf/empire-db/tree/911dc38c
Diff: http://git-wip-us.apache.org/repos/asf/empire-db/diff/911dc38c
Branch: refs/heads/master
Commit: 911dc38c195dc6c7b27c5a46f1b2b21e09e88a4f
Parents: b487e63
Author: Rainer Döbele <do...@apache.org>
Authored: Thu Mar 17 13:52:42 2016 +0100
Committer: Rainer Döbele <do...@apache.org>
Committed: Thu Mar 17 13:52:42 2016 +0100
----------------------------------------------------------------------
.../apache/empire/jsf2/components/InputTag.java | 68 ++++++++++++--------
1 file changed, 41 insertions(+), 27 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/empire-db/blob/911dc38c/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/InputTag.java
----------------------------------------------------------------------
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 1441a88..b6d962b 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
@@ -147,34 +147,35 @@ public class InputTag extends UIInput implements NamingContainer
// init
helper.encodeBegin();
control = helper.getInputControl();
+ inpInfo = helper.getInputInfo(context);
+ // set required
+ if (hasRequiredFlagSet == false)
+ super.setRequired(helper.isValueRequired());
+ // create input
+ if (this.getChildCount()==0)
+ { // create input
+ control.createInput(this, inpInfo, context);
+ attachEvents(context);
+ }
+ else
+ { // update state
+ control.updateInputState(this, inpInfo, context, true);
+ }
+
+ // set readonly
+ boolean readOnly = helper.isRecordReadOnly();
+ setRenderInput(!readOnly);
// render components
- if (helper.isRecordReadOnly())
- {
- InputControl.ValueInfo valInfo = helper.getValueInfo(context);
- // render value
+ if (readOnly)
+ { // render value
ResponseWriter writer = context.getResponseWriter();
- String tag = writeStartElement(valInfo, writer);
- control.renderValue(valInfo, writer);
+ String tag = writeStartElement(inpInfo, writer);
+ control.renderValue(inpInfo, writer);
writer.endElement(tag);
}
else
- {
- inpInfo = helper.getInputInfo(context);
- // set required
- if (hasRequiredFlagSet == false)
- super.setRequired(helper.isValueRequired());
- // create input
- if (this.getChildCount()==0)
- { // create input
- control.createInput(this, inpInfo, context);
- attachEvents(context);
- }
- else
- { // update state
- control.updateInputState(this, inpInfo, context, true);
- }
- // render input
+ { // render input
control.renderInput(this, inpInfo, context);
}
saveState();
@@ -188,27 +189,27 @@ public class InputTag extends UIInput implements NamingContainer
helper.setRecord(null);
}
- /*
@Override
public void processDecodes(FacesContext context)
{
if (helper.isInsideUIData())
{ // Check input controls
if (getChildCount()>0)
- { // Change readOnly and disabled too
+ { // Set readOnly and disabled for each row
boolean readOnly = helper.isRecordReadOnly();
- log.info("Changing UIInput readOnly state for {} to {}", helper.getColumnName(), readOnly);
+ setRenderInput(!readOnly);
+ // get control
if (control==null)
control = helper.getInputControl();
if (inpInfo==null)
inpInfo = helper.getInputInfo(context);
- control.updateInputState(this, inpInfo, context);
+ // update control
+ control.updateInputState(this, inpInfo, context, false);
}
}
// default
super.processDecodes(context);
}
- */
@Override
public void setRequired(boolean required)
@@ -329,6 +330,19 @@ public class InputTag extends UIInput implements NamingContainer
return helper.isValueRequired();
}
+ protected void setRenderInput(boolean renderInput)
+ {
+ for (UIComponent child : getChildren())
+ {
+ if (child.isRendered()!=renderInput)
+ {
+ if (log.isDebugEnabled())
+ log.debug("Changing UIInput rendered state for {} to {}", helper.getColumnName(), renderInput);
+ child.setRendered(renderInput);
+ }
+ }
+ }
+
protected boolean isPartialSubmit(FacesContext context)
{
// Check Required Flag