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 2ee72d70 EMPIREDB-439: ControlTag: synchronize jakarta classes
2ee72d70 is described below
commit 2ee72d70ec4ba3d47ea8c429b4c6311735449993
Author: Rainer Döbele <[email protected]>
AuthorDate: Sat Oct 19 11:46:57 2024 +0200
EMPIREDB-439:
ControlTag: synchronize jakarta classes
---
.../empire/jakarta/components/ControlTag.java | 31 ++++++++------
.../empire/jakarta/components/FormGridTag.java | 1 +
.../apache/empire/jakarta/components/InputTag.java | 2 +-
.../empire/jakarta/utils/ControlRenderInfo.java | 12 ++++--
.../empire/jakarta/utils/TagEncodingHelper.java | 48 +++++++++++-----------
.../apache/empire/jsf2/components/FormGridTag.java | 1 +
6 files changed, 55 insertions(+), 40 deletions(-)
diff --git
a/empire-db-jakarta-faces/src/main/java/org/apache/empire/jakarta/components/ControlTag.java
b/empire-db-jakarta-faces/src/main/java/org/apache/empire/jakarta/components/ControlTag.java
index 020379fb..f32cd6a5 100644
---
a/empire-db-jakarta-faces/src/main/java/org/apache/empire/jakarta/components/ControlTag.java
+++
b/empire-db-jakarta-faces/src/main/java/org/apache/empire/jakarta/components/ControlTag.java
@@ -172,7 +172,7 @@ public class ControlTag extends UIInput implements
NamingContainer
throws IOException
{
// encode input components
- control.renderInput(context, this);
+ control.renderInput(context, this, (this.tagName==null));
// don't call super.encodeChildren()!
}
}
@@ -618,19 +618,26 @@ public class ControlTag extends UIInput implements
NamingContainer
}
}
- public void renderInput(FacesContext context, UIComponent parent)
+ public void renderInput(FacesContext context, UIComponent parent, boolean
allowWrapper)
throws IOException
{
- boolean renderValue = helper.isRenderValueComponent();
- // wrapperTag
- String wrapperTag = helper.writeWrapperTag(context, false,
renderValue);
- // render
- control.renderInput(parent, inpInfo, context);
- // wrapperTagEnd
- if (wrapperTag!=null)
- { // control wrapper tag
- ResponseWriter writer = context.getResponseWriter();
- writer.endElement(wrapperTag);
+ if (allowWrapper)
+ { // render separate wrapper tag
+ boolean renderValue = helper.isRenderValueComponent();
+ // wrapperTag
+ String wrapperTag = helper.writeWrapperTag(context, false,
renderValue);
+ // render
+ control.renderInput(parent, inpInfo, context);
+ // wrapperTagEnd
+ if (wrapperTag!=null)
+ { // control wrapper tag
+ ResponseWriter writer = context.getResponseWriter();
+ writer.endElement(wrapperTag);
+ }
+ }
+ else
+ { // the InputSeparatorComponent acts as wrapper
+ control.renderInput(parent, inpInfo, context);
}
}
diff --git
a/empire-db-jakarta-faces/src/main/java/org/apache/empire/jakarta/components/FormGridTag.java
b/empire-db-jakarta-faces/src/main/java/org/apache/empire/jakarta/components/FormGridTag.java
index c07c15f8..1e2bd1ce 100644
---
a/empire-db-jakarta-faces/src/main/java/org/apache/empire/jakarta/components/FormGridTag.java
+++
b/empire-db-jakarta-faces/src/main/java/org/apache/empire/jakarta/components/FormGridTag.java
@@ -48,6 +48,7 @@ public class FormGridTag extends UIOutput // implements
NamingContainer
LEGACY(InputControl.HTML_TAG_DIV, null, InputControl.HTML_TAG_TD,
InputControl.HTML_TAG_TD),
TABLE (InputControl.HTML_TAG_TABLE, InputControl.HTML_TAG_TR,
InputControl.HTML_TAG_TD, InputControl.HTML_TAG_TD),
GRID (InputControl.HTML_TAG_DIV, InputControl.HTML_TAG_DIV,
InputControl.HTML_TAG_DIV, InputControl.HTML_TAG_DIV),
+ LEAN (InputControl.HTML_TAG_DIV, InputControl.HTML_TAG_DIV, null,
InputControl.HTML_TAG_DIV),
FLAT (InputControl.HTML_TAG_DIV, InputControl.HTML_TAG_DIV, null,
null);
public final String GRID_TAG;
diff --git
a/empire-db-jakarta-faces/src/main/java/org/apache/empire/jakarta/components/InputTag.java
b/empire-db-jakarta-faces/src/main/java/org/apache/empire/jakarta/components/InputTag.java
index 3503169f..e9a297b3 100644
---
a/empire-db-jakarta-faces/src/main/java/org/apache/empire/jakarta/components/InputTag.java
+++
b/empire-db-jakarta-faces/src/main/java/org/apache/empire/jakarta/components/InputTag.java
@@ -173,7 +173,7 @@ public class InputTag extends UIInput implements
NamingContainer
// Render when visible
if (controlVisible)
{ // Render now
- String wrapperTag = helper.writeWrapperTag(context, true,
renderValue);
+ String wrapperTag = helper.writeWrapperTag(context,
helper.hasComponentId(), renderValue);
// render components
if (renderValue)
{ // render value
diff --git
a/empire-db-jakarta-faces/src/main/java/org/apache/empire/jakarta/utils/ControlRenderInfo.java
b/empire-db-jakarta-faces/src/main/java/org/apache/empire/jakarta/utils/ControlRenderInfo.java
index f89b2086..1c01c5e2 100644
---
a/empire-db-jakarta-faces/src/main/java/org/apache/empire/jakarta/utils/ControlRenderInfo.java
+++
b/empire-db-jakarta-faces/src/main/java/org/apache/empire/jakarta/utils/ControlRenderInfo.java
@@ -127,11 +127,15 @@ public class ControlRenderInfo
public void writeInputWrapperAttributes(ResponseWriter writer,
TagEncodingHelper helper)
throws IOException
{
- // style Class
+ // wrapper Class
+ String wrapperClass = helper.getTagAttributeStringEx("wrapperClass");
+ if (wrapperClass!=null && wrapperClass.equals("-"))
+ wrapperClass= null;
+ // extra
String extraStyleClass = helper.getControlExtraInputWrapperStyle();
- helper.writeStyleClass(writer, TagStyleClass.CONTROL_INPUT.get(),
extraStyleClass);
- // colspan
- String colSpan =
INPUT_WRAPPER_TAG.equalsIgnoreCase(InputControl.HTML_TAG_TD) ?
helper.getTagAttributeStringEx("colspan") : null;
+ helper.writeStyleClass(writer, TagStyleClass.CONTROL_INPUT.get(),
wrapperClass, extraStyleClass);
+ // colspan for <td>
+ String colSpan =
InputControl.HTML_TAG_TD.equalsIgnoreCase(INPUT_WRAPPER_TAG) ?
helper.getTagAttributeStringEx("colspan") : null;
if (colSpan!=null)
writer.writeAttribute("colspan", colSpan, null);
}
diff --git
a/empire-db-jakarta-faces/src/main/java/org/apache/empire/jakarta/utils/TagEncodingHelper.java
b/empire-db-jakarta-faces/src/main/java/org/apache/empire/jakarta/utils/TagEncodingHelper.java
index 1a19847b..8f8e86f4 100644
---
a/empire-db-jakarta-faces/src/main/java/org/apache/empire/jakarta/utils/TagEncodingHelper.java
+++
b/empire-db-jakarta-faces/src/main/java/org/apache/empire/jakarta/utils/TagEncodingHelper.java
@@ -25,20 +25,6 @@ import java.util.Iterator;
import java.util.Locale;
import java.util.Set;
-import jakarta.el.ValueExpression;
-import jakarta.faces.FacesWrapper;
-import jakarta.faces.application.FacesMessage;
-import jakarta.faces.component.NamingContainer;
-import jakarta.faces.component.UIComponent;
-import jakarta.faces.component.UIData;
-import jakarta.faces.component.UIInput;
-import jakarta.faces.component.UIOutput;
-import jakarta.faces.component.html.HtmlOutputLabel;
-import jakarta.faces.component.html.HtmlOutputText;
-import jakarta.faces.component.html.HtmlPanelGroup;
-import jakarta.faces.context.FacesContext;
-import jakarta.faces.context.ResponseWriter;
-
import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.beanutils.BeanUtilsBean;
import org.apache.commons.beanutils.PropertyUtils;
@@ -85,6 +71,20 @@ import org.apache.empire.jakarta.controls.TextInputControl;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import jakarta.el.ValueExpression;
+import jakarta.faces.FacesWrapper;
+import jakarta.faces.application.FacesMessage;
+import jakarta.faces.component.NamingContainer;
+import jakarta.faces.component.UIComponent;
+import jakarta.faces.component.UIData;
+import jakarta.faces.component.UIInput;
+import jakarta.faces.component.UIOutput;
+import jakarta.faces.component.html.HtmlOutputLabel;
+import jakarta.faces.component.html.HtmlOutputText;
+import jakarta.faces.component.html.HtmlPanelGroup;
+import jakarta.faces.context.FacesContext;
+import jakarta.faces.context.ResponseWriter;
+
/**
* TagEncodingHelper
* Used by all Empire Components to exchange data and render
@@ -2092,11 +2092,20 @@ public class TagEncodingHelper implements
NamingContainer
writeStyleClass(writer, this.cssStyleClass, userStyle);
}
+ /**
+ * Writes a wrapper tag for <e:value> and <e:input>
+ * Hint: For <e:control> the input separater tag acts as the wrapper
+ * @param context the faces context
+ * @param renderId flag whether or not to render the components client id
+ * @param renderValue flag whether to render and input wrapper (false) or
a value wrapper (true)
+ * @return the tag name of the wrapper tag
+ * @throws IOException
+ */
public String writeWrapperTag(FacesContext context, boolean renderId,
boolean renderValue)
throws IOException
{
String wrapperClass = getTagAttributeStringEx("wrapperClass");
- if (wrapperClass==null)
+ if (wrapperClass==null || wrapperClass.equals("-"))
return null;
// start element
String tagName = InputControl.HTML_TAG_DIV;
@@ -2107,16 +2116,9 @@ public class TagEncodingHelper implements NamingContainer
writeComponentId(writer);
// style class
String contextClass = (renderValue ? TagStyleClass.VALUE_WRAPPER.get()
: TagStyleClass.INPUT_WRAPPER.get());
- writeStyleClass(writer, contextClass, nullIf(wrapperClass, '-'));
+ writeStyleClass(writer, contextClass, wrapperClass);
// return tagName
return tagName;
}
- /* ********************** Miscellaneous ********************** */
-
- protected String nullIf(String value, char nullChar)
- {
- return (value==null || value.length()==0 || (value.length()==1 &&
value.charAt(0)==nullChar) ? null : value);
- }
-
}
diff --git
a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/FormGridTag.java
b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/FormGridTag.java
index f9904d72..74954fa7 100644
---
a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/FormGridTag.java
+++
b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/FormGridTag.java
@@ -48,6 +48,7 @@ public class FormGridTag extends UIOutput // implements
NamingContainer
LEGACY(InputControl.HTML_TAG_DIV, null, InputControl.HTML_TAG_TD,
InputControl.HTML_TAG_TD),
TABLE (InputControl.HTML_TAG_TABLE, InputControl.HTML_TAG_TR,
InputControl.HTML_TAG_TD, InputControl.HTML_TAG_TD),
GRID (InputControl.HTML_TAG_DIV, InputControl.HTML_TAG_DIV,
InputControl.HTML_TAG_DIV, InputControl.HTML_TAG_DIV),
+ LEAN (InputControl.HTML_TAG_DIV, InputControl.HTML_TAG_DIV, null,
InputControl.HTML_TAG_DIV),
FLAT (InputControl.HTML_TAG_DIV, InputControl.HTML_TAG_DIV, null,
null);
public final String GRID_TAG;