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 = " ";
-
- // 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;
+ }
+}