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 1dafbb11 EMPIREDB-405 new Enum "TagStyleClass" holding all 
StyleClasses used by the JSF components
1dafbb11 is described below

commit 1dafbb111834172d36159d24a29b47e9457b336f
Author: Rainer Döbele <[email protected]>
AuthorDate: Wed Mar 22 20:43:25 2023 +0100

    EMPIREDB-405
    new Enum "TagStyleClass" holding all StyleClasses used by the JSF components
---
 .../apache/empire/jsf2/components/ControlTag.java  |  17 +-
 .../apache/empire/jsf2/components/FormGridTag.java |   3 +-
 .../apache/empire/jsf2/components/InputTag.java    |   5 +-
 .../apache/empire/jsf2/components/LabelTag.java    |   3 +-
 .../org/apache/empire/jsf2/components/LinkTag.java |   3 +-
 .../apache/empire/jsf2/components/MenuListTag.java |   3 +-
 .../apache/empire/jsf2/components/SelectTag.java   |   5 +-
 .../apache/empire/jsf2/components/TabPageTag.java  |   3 +-
 .../apache/empire/jsf2/components/TabViewTag.java  |  16 +-
 .../apache/empire/jsf2/components/TitleTag.java    |   3 +-
 .../apache/empire/jsf2/components/ValueTag.java    |   3 +-
 .../apache/empire/jsf2/controls/InputControl.java  |  41 +++--
 .../empire/jsf2/controls/RadioInputControl.java    |  11 +-
 .../empire/jsf2/controls/SelectInputControl.java   |   3 +-
 .../empire/jsf2/controls/TextInputControl.java     |   9 +-
 .../empire/jsf2/utils/TagEncodingHelper.java       |  26 +--
 .../apache/empire/jsf2/utils/TagStyleClass.java    | 183 +++++++++++++++++++++
 17 files changed, 253 insertions(+), 84 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 543fb6ef..b03f4eb4 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
@@ -41,15 +41,12 @@ import org.apache.empire.jsf2.controls.InputControl;
 import org.apache.empire.jsf2.utils.ControlRenderInfo;
 import org.apache.empire.jsf2.utils.TagEncodingHelper;
 import org.apache.empire.jsf2.utils.TagEncodingHelperFactory;
+import org.apache.empire.jsf2.utils.TagStyleClass;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 public class ControlTag extends UIInput implements NamingContainer
 {
-    public static String CONTROL_CLASS = "eControl";
-    public static String LABEL_SEPARATOR_CLASS = "eCtlLabel";
-    public static String INPUT_SEPARATOR_CLASS = "eCtlInput";
-
     /**
      * ControlSeparatorComponent
      */
@@ -136,7 +133,7 @@ public class ControlTag extends UIInput implements 
NamingContainer
         {
             // style Class
             String labelClass = helper.getTagAttributeStringEx("labelClass");
-            helper.writeStyleClass(writer, ControlTag.LABEL_SEPARATOR_CLASS, 
labelClass);
+            helper.writeStyleClass(writer, TagStyleClass.CONTROL_LABEL.get(), 
labelClass);
         }
 
         @Override
@@ -164,7 +161,7 @@ public class ControlTag extends UIInput implements 
NamingContainer
         {
             // style Class
             String inputClass = helper.getTagAttributeStringEx("inputClass");
-            helper.writeStyleClass(writer, ControlTag.INPUT_SEPARATOR_CLASS, 
inputClass);
+            helper.writeStyleClass(writer, TagStyleClass.CONTROL_INPUT.get(), 
inputClass);
             // colspan
             String colSpan = 
tagName.equalsIgnoreCase(InputControl.HTML_TAG_TD) ? 
helper.getTagAttributeStringEx("colspan") : null;            
             if (colSpan!=null)
@@ -225,7 +222,7 @@ public class ControlTag extends UIInput implements 
NamingContainer
             if (valInfo == null)
                 valInfo = helper.getValueInfo(context); // Oops, should not 
come here 
 
-            String styleClass = helper.getTagStyleClass("eInpDis");
+            String styleClass = 
helper.getTagStyleClass(TagStyleClass.INPUT_DIS.get());
             String tooltip = 
helper.getValueTooltip(helper.getTagAttributeValue("title"));
 
             // render components
@@ -238,7 +235,7 @@ public class ControlTag extends UIInput implements 
NamingContainer
 
     protected static final String     readOnlyState        = "readOnlyState";
 
-    protected final TagEncodingHelper helper               = 
TagEncodingHelperFactory.create(this, "eInput"); // Must be "eInput" not 
"eControl"!
+    protected final TagEncodingHelper helper               = 
TagEncodingHelperFactory.create(this, TagStyleClass.INPUT.get()); // Must be 
"INPUT" not "CONTROL"!
 
     protected InputControl            control              = null;
     protected InputControl.InputInfo  inpInfo              = null;
@@ -335,7 +332,7 @@ public class ControlTag extends UIInput implements 
NamingContainer
             // style class
             String controlClass = 
helper.getTagAttributeStringEx("controlClass"); 
             String styleClass   = helper.getControlContextStyleClass(); 
-            helper.writeStyleClass(writer, CONTROL_CLASS, controlClass, 
styleClass);
+            helper.writeStyleClass(writer, TagStyleClass.CONTROL.get(), 
controlClass, styleClass);
         }
         
         // LabelSeparatorComponent
@@ -401,7 +398,7 @@ public class ControlTag extends UIInput implements 
NamingContainer
                 writer.startElement(tagName, this);
                 // style Class
                 String inpClass = helper.getTagAttributeStringEx("inputClass");
-                helper.writeStyleClass(writer, 
ControlTag.INPUT_SEPARATOR_CLASS, inpClass);
+                helper.writeStyleClass(writer, 
TagStyleClass.CONTROL_INPUT.get(), inpClass);
                 // write more
                 String colSpan = 
tagName.equalsIgnoreCase(InputControl.HTML_TAG_TD) ? 
helper.getTagAttributeStringEx("colspan") : null;
                 if (colSpan!=null)
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 96f47f97..107d94c9 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
@@ -31,6 +31,7 @@ import org.apache.empire.jsf2.controls.InputControl;
 import org.apache.empire.jsf2.utils.ControlRenderInfo;
 import org.apache.empire.jsf2.utils.TagEncodingHelper;
 import org.apache.empire.jsf2.utils.TagEncodingHelperFactory;
+import org.apache.empire.jsf2.utils.TagStyleClass;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -85,7 +86,7 @@ public class FormGridTag extends UIOutput implements 
NamingContainer
         }
     }
     
-    protected final TagEncodingHelper helper = 
TagEncodingHelperFactory.create(this, "eFormGrid");
+    protected final TagEncodingHelper helper = 
TagEncodingHelperFactory.create(this, TagStyleClass.FORM_GRID.get());
     
     protected ControlRenderInfo controlRenderInfo = null;
     
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 b2e632a3..97e0521f 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
@@ -39,6 +39,7 @@ import org.apache.empire.exceptions.InvalidArgumentException;
 import org.apache.empire.jsf2.controls.InputControl;
 import org.apache.empire.jsf2.utils.TagEncodingHelper;
 import org.apache.empire.jsf2.utils.TagEncodingHelperFactory;
+import org.apache.empire.jsf2.utils.TagStyleClass;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -51,7 +52,7 @@ public class InputTag extends UIInput implements 
NamingContainer
     // private static final String inputInfoPropName = 
InputControl.InputInfo.class.getSimpleName();
     protected static final String     readOnlyState        = "readOnlyState";
 
-    protected final TagEncodingHelper helper               = 
TagEncodingHelperFactory.create(this, "eInput");
+    protected final TagEncodingHelper helper               = 
TagEncodingHelperFactory.create(this, TagStyleClass.INPUT.get());
 
     protected InputControl            control              = null;
     protected InputControl.InputInfo  inpInfo              = null;
@@ -194,7 +195,7 @@ public class InputTag extends UIInput implements 
NamingContainer
         if (renderValue)
         {   // render value
             String tagName = "span";
-            String styleClass = helper.getTagStyleClass("eInpDis");
+            String styleClass = 
helper.getTagStyleClass(TagStyleClass.INPUT_DIS.get());
             String tooltip = 
helper.getValueTooltip(helper.getTagAttributeValue("title"));
             control.renderValue(this, tagName, styleClass, tooltip, inpInfo, 
context);
         }
diff --git 
a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/LabelTag.java 
b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/LabelTag.java
index c14c7db7..dd3edf19 100644
--- 
a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/LabelTag.java
+++ 
b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/LabelTag.java
@@ -30,6 +30,7 @@ import org.apache.empire.commons.ObjectUtils;
 import org.apache.empire.data.DataType;
 import org.apache.empire.jsf2.utils.TagEncodingHelper;
 import org.apache.empire.jsf2.utils.TagEncodingHelperFactory;
+import org.apache.empire.jsf2.utils.TagStyleClass;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -38,7 +39,7 @@ public class LabelTag extends UIOutput // implements 
NamingContainer
     // Logger
     private static final Logger log = LoggerFactory.getLogger(LabelTag.class);
     
-    protected final TagEncodingHelper helper = 
TagEncodingHelperFactory.create(this, "eLabel");
+    protected final TagEncodingHelper helper = 
TagEncodingHelperFactory.create(this, TagStyleClass.LABEL.get());
 
     private boolean creatingComponents = false;
     
diff --git 
a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/LinkTag.java 
b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/LinkTag.java
index 9663518c..4b72f561 100644
--- 
a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/LinkTag.java
+++ 
b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/LinkTag.java
@@ -45,6 +45,7 @@ import org.apache.empire.jsf2.utils.ParameterMap;
 import org.apache.empire.jsf2.utils.StringResponseWriter;
 import org.apache.empire.jsf2.utils.TagEncodingHelper;
 import org.apache.empire.jsf2.utils.TagEncodingHelperFactory;
+import org.apache.empire.jsf2.utils.TagStyleClass;
 import org.apache.myfaces.shared.renderkit.html.HTML;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -65,7 +66,7 @@ public class LinkTag extends UIOutput // implements 
NamingContainer
     // Logger
     private static final Logger log = LoggerFactory.getLogger(LinkTag.class);
     
-    protected final TagEncodingHelper helper = 
TagEncodingHelperFactory.create(this, "eLink");
+    protected final TagEncodingHelper helper = 
TagEncodingHelperFactory.create(this, TagStyleClass.LINK.get());
 
     private boolean creatingComponents = false;
     
diff --git 
a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/MenuListTag.java
 
b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/MenuListTag.java
index 5bdbd6af..bc4928c6 100644
--- 
a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/MenuListTag.java
+++ 
b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/MenuListTag.java
@@ -30,13 +30,14 @@ import javax.faces.context.ResponseWriter;
 import org.apache.empire.commons.StringUtils;
 import org.apache.empire.jsf2.utils.TagEncodingHelper;
 import org.apache.empire.jsf2.utils.TagEncodingHelperFactory;
+import org.apache.empire.jsf2.utils.TagStyleClass;
 
 public class MenuListTag extends UIOutput implements NamingContainer
 {
     // Logger
     // private static final Logger log = 
LoggerFactory.getLogger(MenuListTag.class);
     
-    protected final TagEncodingHelper helper = 
TagEncodingHelperFactory.create(this, "eMenuList");
+    protected final TagEncodingHelper helper = 
TagEncodingHelperFactory.create(this, TagStyleClass.MENU.get());
     
     private enum Properties
     {
diff --git 
a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/SelectTag.java 
b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/SelectTag.java
index 33c8b20d..11f9a5b3 100644
--- 
a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/SelectTag.java
+++ 
b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/SelectTag.java
@@ -47,7 +47,7 @@ import 
org.apache.empire.jsf2.controls.InputControl.DisabledType;
 import org.apache.empire.jsf2.controls.InputControl.InputInfo;
 import org.apache.empire.jsf2.controls.InputControlManager;
 import org.apache.empire.jsf2.controls.SelectInputControl;
-import org.apache.empire.jsf2.utils.TagEncodingHelper;
+import org.apache.empire.jsf2.utils.TagStyleClass;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -425,7 +425,8 @@ public class SelectTag extends UIInput implements 
NamingContainer
         Map<String, Object> inputMap = input.getAttributes();
         // css style
         String userStyle = StringUtils.toString(tagMap.get("styleClass"));
-        String cssStyle = 
TagEncodingHelper.assembleStyleClassString("eSelect", null, null, userStyle);
+        // String cssStyle = 
TagEncodingHelper.assembleStyleClassString(TagStyleClass.SELECT.get(), null, 
null, userStyle);
+        String cssStyle = TagStyleClass.SELECT.append(userStyle);
         inputMap.put("styleClass", cssStyle);
         // other
         copyAttribute(inputMap, tagMap, "style");
diff --git 
a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/TabPageTag.java
 
b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/TabPageTag.java
index 031cf22b..f76f2655 100644
--- 
a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/TabPageTag.java
+++ 
b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/TabPageTag.java
@@ -29,13 +29,14 @@ import javax.faces.context.ResponseWriter;
 import org.apache.empire.jsf2.controls.InputControl;
 import org.apache.empire.jsf2.utils.TagEncodingHelper;
 import org.apache.empire.jsf2.utils.TagEncodingHelperFactory;
+import org.apache.empire.jsf2.utils.TagStyleClass;
 
 public class TabPageTag extends UIOutput implements NamingContainer
 {
     // Logger
     // private static final Logger log = 
LoggerFactory.getLogger(MenuTag.class);
     
-    protected final TagEncodingHelper helper = 
TagEncodingHelperFactory.create(this, "eTabPage");
+    protected final TagEncodingHelper helper = 
TagEncodingHelperFactory.create(this, TagStyleClass.TAB_PAGE.get());
 
     @Override
     public String getFamily()
diff --git 
a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/TabViewTag.java
 
b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/TabViewTag.java
index b1a50329..a69e0334 100644
--- 
a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/TabViewTag.java
+++ 
b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/TabViewTag.java
@@ -44,6 +44,7 @@ import org.apache.empire.jsf2.controls.InputControl;
 import org.apache.empire.jsf2.controls.InputControlManager;
 import org.apache.empire.jsf2.utils.TagEncodingHelper;
 import org.apache.empire.jsf2.utils.TagEncodingHelperFactory;
+import org.apache.empire.jsf2.utils.TagStyleClass;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -53,15 +54,13 @@ public class TabViewTag extends UIOutput implements 
NamingContainer
     // private static final Logger log = 
LoggerFactory.getLogger(MenuTag.class);
     private static final Logger       log                    = 
LoggerFactory.getLogger(TabViewTag.class);
 
-    protected final String            TAB_STYLE_CLASS        = "eTabView";
-
     protected final String            TAB_ACTIVE_INDEX       = "activeIndex";
 
     protected final String            TABLINK_ID_PREFIX      = "tabLink";
 
     protected final String            TAB_RENDERED_ATTRIBUTE = "visible";
 
-    protected final TagEncodingHelper helper                 = 
TagEncodingHelperFactory.create(this, this.TAB_STYLE_CLASS);
+    protected final TagEncodingHelper helper                 = 
TagEncodingHelperFactory.create(this, TagStyleClass.TAB_VIEW.get());
 
     public static class TabPageActionListener implements ActionListener, 
StateHolder
     {
@@ -269,16 +268,16 @@ public class TabViewTag extends UIOutput implements 
NamingContainer
                 boolean disabled = 
ObjectUtils.getBoolean(TagEncodingHelper.getTagAttributeValue(page, 
"disabled"));
                 writer.startElement(InputControl.HTML_TAG_TD, this);
                 // tab label
-                String styleClass = "eTabLabel";
+                String styleClasses = TagStyleClass.TAB_LABEL.get();
                 if (active)
                 {
-                    styleClass += " eTabActive";
+                    styleClasses = 
TagStyleClass.TAB_ACTIVE.addTo(styleClasses);
                 }
                 else if (disabled)
                 {
-                    styleClass += " eTabDisabled";
+                    styleClasses = 
TagStyleClass.TAB_DISABLED.addTo(styleClasses);
                 }
-                writer.writeAttribute(InputControl.HTML_ATTR_CLASS, 
styleClass, null);
+                writer.writeAttribute(InputControl.HTML_ATTR_CLASS, 
styleClasses, null);
                 // encode Link
                 encodeTabLink(context, writer, index, page, (active || 
disabled));
                 writer.endElement(InputControl.HTML_TAG_TD);
@@ -326,8 +325,7 @@ public class TabViewTag extends UIOutput implements 
NamingContainer
         link.setValue(page.getTabLabel());
         link.setDisabled(disabled);
         // Set Style
-        String styleClass = "eTabLink";
-        link.setStyleClass(styleClass);
+        link.setStyleClass(TagStyleClass.TAB_LINK.get());
 
         // encode link
         link.setRendered(true);
diff --git 
a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/TitleTag.java 
b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/TitleTag.java
index f21d2214..b6b4408d 100644
--- 
a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/TitleTag.java
+++ 
b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/TitleTag.java
@@ -30,6 +30,7 @@ import org.apache.empire.data.Column;
 import org.apache.empire.exceptions.InvalidArgumentException;
 import org.apache.empire.jsf2.utils.TagEncodingHelper;
 import org.apache.empire.jsf2.utils.TagEncodingHelperFactory;
+import org.apache.empire.jsf2.utils.TagStyleClass;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -38,7 +39,7 @@ public class TitleTag extends UIOutput // implements 
NamingContainer
     // Logger
     private static final Logger log = LoggerFactory.getLogger(TitleTag.class);
     
-    protected final TagEncodingHelper helper = 
TagEncodingHelperFactory.create(this, "eTitle");
+    protected final TagEncodingHelper helper = 
TagEncodingHelperFactory.create(this, TagStyleClass.TITLE.get());
 
     public TitleTag()
     {
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 02c2f169..38f451fd 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
@@ -29,6 +29,7 @@ import org.apache.empire.data.DataType;
 import org.apache.empire.jsf2.controls.InputControl;
 import org.apache.empire.jsf2.utils.TagEncodingHelper;
 import org.apache.empire.jsf2.utils.TagEncodingHelperFactory;
+import org.apache.empire.jsf2.utils.TagStyleClass;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -38,7 +39,7 @@ public class ValueTag extends UIOutput // implements 
NamingContainer
     // Logger
     private static final Logger log = LoggerFactory.getLogger(ValueTag.class);
     
-    protected final TagEncodingHelper helper = 
TagEncodingHelperFactory.create(this, "eVal");
+    protected final TagEncodingHelper helper = 
TagEncodingHelperFactory.create(this, TagStyleClass.VALUE.get());
 
     public ValueTag()
     {
diff --git 
a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/controls/InputControl.java
 
b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/controls/InputControl.java
index 38b902a7..267369e2 100644
--- 
a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/controls/InputControl.java
+++ 
b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/controls/InputControl.java
@@ -43,6 +43,7 @@ import org.apache.empire.exceptions.InvalidArgumentException;
 import org.apache.empire.exceptions.ItemNotFoundException;
 import org.apache.empire.exceptions.UnexpectedReturnValueException;
 import org.apache.empire.jsf2.app.TextResolver;
+import org.apache.empire.jsf2.utils.TagStyleClass;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -76,10 +77,6 @@ public abstract class InputControl
     
     // HTML
     public static String HTML_EXPR_NBSP = "&nbsp;";
-    
-    // style classes
-    public static final String STYLECLASS_REQUIRED    = " eInpReq";
-    public static final String STYLECLASS_MODIFIED    = " eInpModified";
 
     public InputControl()
     {
@@ -643,14 +640,11 @@ public abstract class InputControl
         String addlStyles = null;
         if (ii.isRequired())
         {   // required
-            addlStyles = STYLECLASS_REQUIRED;
+            addlStyles = TagStyleClass.INPUT_REQ.get();
         }
         if (ii.isModified()) 
-        {   // modified only
-            if (addlStyles==null)
-                addlStyles = STYLECLASS_MODIFIED;
-            else
-                addlStyles+= STYLECLASS_MODIFIED;
+        {   // modified
+            addlStyles = TagStyleClass.INPUT_MOD.addTo(addlStyles);
         }
         copyAttributes(parent, ii, input, addlStyles);
     }
@@ -669,35 +663,40 @@ public abstract class InputControl
     
     public void addRemoveValueNullStyle(UIInput input, boolean nullValue)
     {
-        addRemoveStyle(input, " eValNull", nullValue);
+        addRemoveStyle(input, TagStyleClass.VALUE_NULL, nullValue);
     }
 
     public void addRemoveDisabledStyle(UIInput input, boolean disabled)
     {
-        addRemoveStyle(input, " eInpDis", disabled);
+        addRemoveStyle(input, TagStyleClass.INPUT_DIS, disabled);
     }
 
     public void addRemoveInvalidStyle(UIInput input, boolean invalid)
     {
-        addRemoveStyle(input, " eInvalid", invalid);
+        addRemoveStyle(input, TagStyleClass.VALUE_INVALID, invalid);
     }
-
+    
     public void addRemoveStyle(UIInput input, String styleName, boolean 
setStyle)
     {
-        String styleClass = 
StringUtils.toString(input.getAttributes().get("styleClass"), "");
-        boolean hasStyle = (styleClass.indexOf(styleName) >= 0);
+        String styleClasses = 
StringUtils.toString(input.getAttributes().get("styleClass"), "");
+        boolean hasStyle = TagStyleClass.existsIn(styleClasses, styleName);
         if (setStyle == hasStyle)
             return; // Nothing to do
         // Special IceFaces patch
-        if (styleClass.endsWith("-dis"))
-            styleClass = styleClass.substring(0, styleClass.length() - 4);
+        if (styleClasses.endsWith("-dis"))
+            styleClasses = styleClasses.substring(0, styleClasses.length() - 
4);
         // add or remove disabled style
         if (setStyle)
-            styleClass += styleName;
+            styleClasses = TagStyleClass.addTo(styleClasses, styleName);
         else
-            styleClass = styleClass.replace(styleName, "");
+            styleClasses = TagStyleClass.removeFrom(styleClasses, styleName);
         // add Style
-        setInputStyleClass(input, styleClass);
+        setInputStyleClass(input, styleClasses);
+    }
+
+    public final void addRemoveStyle(UIInput input, TagStyleClass style, 
boolean setStyle)
+    {
+        this.addRemoveStyle(input, style.get(), setStyle);
     }
     
     /**
diff --git 
a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/controls/RadioInputControl.java
 
b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/controls/RadioInputControl.java
index a7179184..bfdc3260 100644
--- 
a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/controls/RadioInputControl.java
+++ 
b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/controls/RadioInputControl.java
@@ -39,6 +39,7 @@ import org.apache.empire.data.Column;
 import org.apache.empire.exceptions.InvalidArgumentException;
 import org.apache.empire.exceptions.UnexpectedReturnValueException;
 import org.apache.empire.jsf2.app.TextResolver;
+import org.apache.empire.jsf2.utils.TagStyleClass;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -71,7 +72,7 @@ public class RadioInputControl extends InputControl
         throws IOException
     {
         Object value = vi.getValue(true);
-        String style = vi.getStyleClass("eCtlRadio")+" eInpDis";
+        String style = 
vi.getStyleClass(TagStyleClass.RADIO.append(TagStyleClass.INPUT_DIS.get()));
         writer.startElement(HTML_TAG_DIV, null);
         writer.writeAttribute(HTML_ATTR_CLASS, style, null);
         writer.startElement(HTML_TAG_TABLE, null);
@@ -90,7 +91,7 @@ public class RadioInputControl extends InputControl
             writer.endElement(HTML_TAG_INPUT);
             // label
             writer.startElement(HTML_TAG_LABEL, null);
-            writer.writeAttribute(HTML_ATTR_CLASS, "eCtlRadio", null);
+            writer.writeAttribute(HTML_ATTR_CLASS, TagStyleClass.RADIO.get(), 
null);
             String text = e.getText();
             text = vi.getTextResolver().resolveText(text);
             writer.writeText(text, null);
@@ -106,12 +107,8 @@ public class RadioInputControl extends InputControl
     @Override
     protected void copyAttributes(UIComponent parent, InputInfo ii, UIInput 
input, String additonalStyle)
     {
-        if (additonalStyle!=null)
-            additonalStyle = additonalStyle+" eCtlRadio";
-        else
-            additonalStyle = "eCtlRadio"; 
         // copy
-        super.copyAttributes(parent, ii, input, additonalStyle);
+        super.copyAttributes(parent, ii, input, 
TagStyleClass.RADIO.append(additonalStyle));
     }
 
     @Override
diff --git 
a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/controls/SelectInputControl.java
 
b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/controls/SelectInputControl.java
index 866eef73..92d8f416 100644
--- 
a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/controls/SelectInputControl.java
+++ 
b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/controls/SelectInputControl.java
@@ -38,6 +38,7 @@ import org.apache.empire.data.Column;
 import org.apache.empire.exceptions.InvalidArgumentException;
 import org.apache.empire.exceptions.UnexpectedReturnValueException;
 import org.apache.empire.jsf2.app.TextResolver;
+import org.apache.empire.jsf2.utils.TagStyleClass;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -126,7 +127,7 @@ public class SelectInputControl extends InputControl
         }
         UISelectOne input = (UISelectOne)comp;
         // required
-       addRemoveStyle(input, InputControl.STYLECLASS_REQUIRED, 
ii.isRequired());
+       addRemoveStyle(input, TagStyleClass.INPUT_REQ, ii.isRequired());
         // disabled
        boolean disabled = setDisabled(input, ii);
         // check phase
diff --git 
a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/controls/TextInputControl.java
 
b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/controls/TextInputControl.java
index a585d5bd..f440f507 100644
--- 
a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/controls/TextInputControl.java
+++ 
b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/controls/TextInputControl.java
@@ -44,6 +44,7 @@ import org.apache.empire.data.Column;
 import org.apache.empire.data.DataType;
 import org.apache.empire.exceptions.InvalidArgumentException;
 import org.apache.empire.exceptions.UnexpectedReturnValueException;
+import org.apache.empire.jsf2.utils.TagStyleClass;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -101,13 +102,13 @@ public class TextInputControl extends InputControl
         String unit = getUnitString(ii);
         if (StringUtils.isNotEmpty(unit))
         {   // add the unit
-            compList.add(createUnitLabel("eUnit", ii, unit));
+            compList.add(createUnitLabel(TagStyleClass.UNIT.get(), ii, unit));
         }
         // add hint
         String hint = StringUtils.toString(ii.getAttribute("hint"));
         if (StringUtils.isNotEmpty(hint) && !ii.isDisabled())
         {   // add the hint (if not an empty string!)
-            compList.add(createUnitLabel("eInputHint", ii, hint));
+            compList.add(createUnitLabel(TagStyleClass.INPUT_HINT.get(), ii, 
hint));
         }
         // update
         updateInputState(compList, ii, context, context.getCurrentPhaseId());
@@ -136,9 +137,9 @@ public class TextInputControl extends InputControl
             */
         }
         // required
-        addRemoveStyle(input, InputControl.STYLECLASS_REQUIRED, 
ii.isRequired());
+        addRemoveStyle(input, TagStyleClass.INPUT_REQ, ii.isRequired());
         // modified
-        addRemoveStyle(input, InputControl.STYLECLASS_MODIFIED, 
ii.isModified());
+        addRemoveStyle(input, TagStyleClass.INPUT_MOD, ii.isModified());
 
         // disabled
         DisabledType disabled = ii.getDisabled();
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 96bb456f..76b09136 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
@@ -1671,26 +1671,10 @@ public class TagEncodingHelper implements 
NamingContainer
             label.getChildren().clear();
     }
 
-    protected String completeLabelStyleClass(String styleClass, boolean 
required)
-    {
-        final String LABEL_REQ_STYLE = InputControl.STYLECLASS_REQUIRED;
-
-        boolean hasRequired = StringUtils.contains(styleClass, 
LABEL_REQ_STYLE);
-        if (required==hasRequired)
-            return styleClass; // no change
-        // must be empty at least
-        if (styleClass==null)
-            styleClass="";
-        // add or remove
-        if (required) {
-            styleClass += LABEL_REQ_STYLE;
-        }    
-        else
-        {   // remove both   
-            styleClass = StringUtils.remove(styleClass, LABEL_REQ_STYLE);
-        }    
-        // done
-        return styleClass;
+    protected String completeLabelStyleClass(String styleClasses, boolean 
required)
+    {
+        styleClasses = TagStyleClass.INPUT_REQ.addOrRemove(styleClasses, 
required);
+        return styleClasses;
     }
     
     protected void addRequiredMark(HtmlOutputLabel label)
@@ -1705,7 +1689,7 @@ public class TagEncodingHelper implements NamingContainer
     
     /* ********************** CSS-generation ********************** */
 
-    public static final String assembleStyleClassString(String tagCssStyle, 
String typeClass, String addlStyle, String userStyle)
+    protected String assembleStyleClassString(String tagCssStyle, String 
typeClass, String addlStyle, String userStyle)
     {
         // handle simple case
         if (StringUtils.isEmpty(userStyle) && StringUtils.isEmpty(addlStyle))
diff --git 
a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/utils/TagStyleClass.java 
b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/utils/TagStyleClass.java
new file mode 100644
index 00000000..15652872
--- /dev/null
+++ 
b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/utils/TagStyleClass.java
@@ -0,0 +1,183 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.empire.jsf2.utils;
+
+/**
+ * Collection of TagStyleClasses
+ */
+public enum TagStyleClass
+{
+    VALUE("eVal"),
+    VALUE_NULL("eValNull"),
+    VALUE_INVALID("eInvalid"),
+    LABEL("eLabel"),
+    INPUT("eInput"),
+    INPUT_DIS("eInpDis"),
+    INPUT_REQ("eInpReq"),
+    INPUT_MOD("eInpModified"),
+    INPUT_HINT("eInputHint"),
+    CONTROL("eControl"),
+    CONTROL_LABEL("eCtlLabel"),
+    CONTROL_INPUT("eCtlInput"),
+    FORM_GRID("eFormGrid"),
+    SELECT("eSelect"),
+    RADIO("eCtlRadio"),
+    LINK("eLink"),
+    TITLE("eTitle"),
+    MENU("eMenuList"),
+    UNIT("eUnit"),
+    TAB_VIEW("eTabView"),
+    TAB_PAGE("eTabPage"),
+    TAB_LINK("eTabLink"),
+    TAB_LABEL("eTabLabel"),
+    TAB_ACTIVE("eTabActive"),
+    TAB_DISABLED("eTabDisabled");
+    
+    private static final char SPACE = ' ';
+    
+    private String styleClassName;
+    
+    private TagStyleClass(String styleClassName)
+    {
+        this.styleClassName = styleClassName;
+    }
+
+    public String get()
+    {
+        return styleClassName;
+    }
+
+    public void set(String styleClassName)
+    {
+        this.styleClassName = styleClassName;
+    }
+    
+    /* operations */
+
+    private static final int find(String styleClasses, String styleClassName, 
int fromIdx)
+    {
+        // find
+        int idx = (styleClasses!=null ? styleClasses.indexOf(styleClassName, 
fromIdx) : -1);
+        if (idx<0)
+            return -1;
+        // starts with space?
+        if (idx>0 && styleClasses.charAt(idx-1)!=SPACE)
+            return find(styleClasses, styleClassName, idx+1); // recurse
+        // ends with space?
+        int end = idx+styleClassName.length(); 
+        if (end<styleClasses.length() && styleClasses.charAt(end)!=SPACE)
+            return find(styleClasses, styleClassName, idx+1); // recurse
+        // found
+        return idx;
+    }
+    
+    public static final boolean existsIn(String styleClasses, String 
styleClassName)
+    {   // find
+        return (find(styleClasses, styleClassName, 0)>=0);
+    }
+
+    public final boolean existsIn(String styleClasses)
+    {
+        return existsIn(styleClasses, this.styleClassName);
+    }
+    
+    public static final String addTo(String styleClasses, String 
styleClassName)
+    {
+        // check 
+        if (styleClasses==null || styleClasses.length()==0)
+            return styleClassName;
+        if (existsIn(styleClasses, styleClassName))
+            return styleClasses;
+        // add with space
+        StringBuilder b = new 
StringBuilder(styleClasses.length()+styleClassName.length()+1);
+        b.append(styleClasses);
+        b.append(" ");
+        b.append(styleClassName);
+        return b.toString();
+    }
+
+    public final String addTo(String styleClasses)
+    {
+        return addTo(styleClasses, this.styleClassName);
+    }
+    
+    public final String append(String... appends)
+    {
+        String result = this.styleClassName;
+        for (int i=0; i<appends.length; i++)
+        {   // append
+            String append = appends[i];
+            if (append!=null && append.length()>0)
+                result = addTo(result, append);
+        }
+        return result;
+    }
+    
+    public static final String removeFrom(String styleClasses, String 
styleClassName)
+    {
+        // find
+        int idx = find(styleClasses, styleClassName, 0);
+        if (idx<0)
+            return styleClasses; // not contained
+        // remove now
+        if (idx<=1)
+        {   // remove from start
+            idx += styleClassName.length();
+            if (styleClasses.length()>idx && styleClasses.charAt(idx)==SPACE)
+                idx++;
+            return styleClasses.substring(idx);
+        }
+        if (idx+styleClassName.length()==styleClasses.length())
+        {   // remove from end
+            return styleClasses.substring(0, idx-1); // at the end
+        }
+        // in between
+        int after  = idx + styleClassName.length();
+        int before = idx - 1; // SPACE assumed!
+        StringBuilder b = new 
StringBuilder(styleClasses.length()-(after-before));
+        b.append(styleClasses.substring(0, before));
+        b.append(styleClasses.substring(after));
+        return b.toString();
+    }
+
+    public final String removeFrom(String styleClasses)
+    {
+        return removeFrom(styleClasses, this.styleClassName);
+    }
+    
+    public final static String addOrRemove(String styleClasses, String 
styleClassName, boolean add)
+    {
+        // add or remove
+        if (add)
+            return TagStyleClass.addTo(styleClasses, styleClassName);
+        else
+            return TagStyleClass.removeFrom(styleClasses, styleClassName);
+    }
+    
+    public final String addOrRemove(String styleClasses, boolean add)
+    {
+        return addOrRemove(styleClasses, this.styleClassName, add);
+    }
+    
+    @Override
+    public String toString()
+    {
+        return this.styleClassName;
+    }
+}


Reply via email to