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;

Reply via email to