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 51b667fe EMPIREDB-404 code optimization
51b667fe is described below
commit 51b667fe6df1733c569f109bcf7af677ba2a8640
Author: Rainer Döbele <[email protected]>
AuthorDate: Tue Mar 21 21:53:54 2023 +0100
EMPIREDB-404
code optimization
---
.../apache/empire/jsf2/components/ControlTag.java | 13 +++------
.../apache/empire/jsf2/components/InputTag.java | 31 ++++++++--------------
.../apache/empire/jsf2/components/ValueTag.java | 30 +++++++++++++++++++++
.../empire/jsf2/utils/TagEncodingHelper.java | 20 ++++++++++++++
.../org/apache/empire/commons/StringUtils.java | 12 +++++++++
5 files changed, 76 insertions(+), 30 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 e7ea9f51..543fb6ef 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
@@ -553,21 +553,14 @@ public class ControlTag extends UIInput implements
NamingContainer
child.setRendered((valueOutput ? renderValue : !renderValue));
}
// wrapperTag
- String wrapperClass =
helper.getTagAttributeStringEx("wrapperClass");
- if (wrapperClass!=null)
- { // control wrapper tag
- ResponseWriter writer = context.getResponseWriter();
- writer.startElement(InputControl.HTML_TAG_DIV, this);
- // style class
- helper.writeStyleClass(writer, wrapperClass);
- }
+ String wrapperTag = helper.writeWrapperTag(context, false,
renderValue);
// render
control.renderInput(parent, inpInfo, context);
// wrapperTagEnd
- if (wrapperClass!=null)
+ if (wrapperTag!=null)
{ // control wrapper tag
ResponseWriter writer = context.getResponseWriter();
- writer.endElement(InputControl.HTML_TAG_DIV);
+ writer.endElement(wrapperTag);
}
} finally {
creatingComponents = 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 ca29c3e9..b2e632a3 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
@@ -189,16 +189,7 @@ public class InputTag extends UIInput implements
NamingContainer
setRenderInput(!renderValue);
// wrapperTag
- String wrapperClass = helper.getTagAttributeStringEx("wrapperClass");
- if (wrapperClass!=null)
- { // control wrapper tag
- ResponseWriter writer = context.getResponseWriter();
- writer.startElement(InputControl.HTML_TAG_DIV, this);
- // render id
- helper.writeComponentId(writer, false);
- // style class
- helper.writeStyleClass(writer, wrapperClass);
- }
+ String wrapperTag = helper.writeWrapperTag(context, true, renderValue);
// render components
if (renderValue)
{ // render value
@@ -212,22 +203,14 @@ public class InputTag extends UIInput implements
NamingContainer
control.renderInput(this, inpInfo, context);
}
// wrapperTagEnd
- if (wrapperClass!=null)
+ if (wrapperTag!=null)
{ // control wrapper tag
ResponseWriter writer = context.getResponseWriter();
- writer.endElement(InputControl.HTML_TAG_DIV);
+ writer.endElement(wrapperTag);
}
saveState();
}
- @Override
- public void setId(String id)
- { // complete
- id = helper.completeInputTagId(id);
- // setId
- super.setId(id);
- }
-
@Override
public String getId()
{
@@ -239,6 +222,14 @@ public class InputTag extends UIInput implements
NamingContainer
return compId;
}
+ @Override
+ public void setId(String id)
+ { // complete
+ id = helper.completeInputTagId(id);
+ // setId
+ super.setId(id);
+ }
+
@Override
public void setRequired(boolean required)
{
diff --git
a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/ValueTag.java
b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/ValueTag.java
index 2083ed00..02c2f169 100644
---
a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/ValueTag.java
+++
b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/ValueTag.java
@@ -22,6 +22,7 @@ import java.io.IOException;
import javax.faces.component.UIOutput;
import javax.faces.context.FacesContext;
+import javax.faces.context.ResponseWriter;
import org.apache.empire.commons.StringUtils;
import org.apache.empire.data.DataType;
@@ -50,6 +51,25 @@ public class ValueTag extends UIOutput // implements
NamingContainer
return "javax.faces.NamingContainer";
}
+ @Override
+ public String getId()
+ {
+ String compId = super.getId();
+ // Mojarra-Patch since Id might have been set to "null"
+ if ("null".equals(compId))
+ compId = helper.completeInputTagId(null);
+ // done
+ return compId;
+ }
+
+ @Override
+ public void setId(String id)
+ { // complete
+ id = helper.completeInputTagId(id);
+ // setId
+ super.setId(id);
+ }
+
@Override
public void encodeBegin(FacesContext context)
throws IOException
@@ -62,7 +82,17 @@ public class ValueTag extends UIOutput // implements
NamingContainer
// render components
InputControl control = helper.getInputControl();
InputControl.ValueInfo vi = helper.getValueInfo(context);
+
+ // wrapperTag
+ String wrapperTag = helper.writeWrapperTag(context, true, true);
+ // render value
renderControlValue(control, vi, context);
+ // wrapperTagEnd
+ if (wrapperTag!=null)
+ { // control wrapper tag
+ ResponseWriter writer = context.getResponseWriter();
+ writer.endElement(wrapperTag);
+ }
}
protected void renderControlValue(InputControl control,
InputControl.ValueInfo vi, FacesContext context)
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 c2989765..da88a608 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
@@ -1468,6 +1468,26 @@ public class TagEncodingHelper implements NamingContainer
writeStyleClass(writer, this.cssStyleClass, userStyle);
}
+ public String writeWrapperTag(FacesContext context, boolean renderId,
boolean renderValue)
+ throws IOException
+ {
+ String wrapperClass = getTagAttributeStringEx("wrapperClass");
+ if (wrapperClass==null)
+ return null;
+ // start element
+ String tagName = InputControl.HTML_TAG_DIV;
+ ResponseWriter writer = context.getResponseWriter();
+ writer.startElement(tagName, this.component);
+ // render id
+ if (renderId)
+ writeComponentId(writer, false);
+ // style class
+ String wrapCtxClass = (renderValue ? "eWrapVal" : "eWrapInp");
+ writeStyleClass(writer, wrapCtxClass, StringUtils.nullIf(wrapperClass,
'-'));
+ // return tagName
+ return tagName;
+ }
+
/* ********************** FormGridTag ********************** */
protected FormGridTag getFormGrid()
diff --git a/empire-db/src/main/java/org/apache/empire/commons/StringUtils.java
b/empire-db/src/main/java/org/apache/empire/commons/StringUtils.java
index b746c918..cc0aa687 100644
--- a/empire-db/src/main/java/org/apache/empire/commons/StringUtils.java
+++ b/empire-db/src/main/java/org/apache/empire/commons/StringUtils.java
@@ -139,6 +139,18 @@ public class StringUtils
return ((strval.length()==0) ? null : strval);
}
+ /**
+ * Returns null if the string supplied is null, an empty String or a
specific character
+ *
+ * @param value the value to check
+ * @param nullChar the char that indicates null
+ * @return null if the value supplied is null, an empty String or the
nullChar
+ */
+ public static String nullIf(String value, char nullChar)
+ {
+ return (value==null || value.length()==0 || (value.length()==1 &&
value.charAt(0)==nullChar) ? null : value);
+ }
+
/**
* Returns true if the given substring is part of the string provided by
value
*