EMPIREDB-354
TextInputControl: set cssStyle inside UIData
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 2ef2baf..e51e894 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
@@ -29,6 +29,7 @@
import java.util.Locale;
import javax.faces.component.UIComponent;
+import javax.faces.component.UIInput;
import javax.faces.component.html.HtmlInputText;
import javax.faces.component.html.HtmlOutputText;
import javax.faces.component.html.HtmlPanelGroup;
@@ -98,7 +99,7 @@
compList.add(input);
// add unit
String unit = getUnitString(ii);
- if (StringUtils.isNotEmpty(unit))
+ if (StringUtils.isNotEmpty(unit) && !hasFormatOption(ii, "nounit"))
{ // add the unit
compList.add(createUnitLabel("eUnit", ii, unit));
}
@@ -121,10 +122,24 @@
throw new UnexpectedReturnValueException(comp.getClass().getName(), "compList.get(0)");
}
HtmlInputText input = (HtmlInputText) comp;
- // required
- addRemoveStyle(input, InputControl.STYLECLASS_REQUIRED, ii.isRequired());
+ if (ii.isInsideUIData())
+ { // always reset the style class inside UIData
+ String tagStyle = StringUtils.toString(ii.getAttribute("styleClass"), null);
+ String cssStyle = getInputStyleClass(ii, tagStyle);
+ input.setStyleClass(cssStyle);
+ /*
+ String curStyle = input.getStyleClass();
+ if (curStyle==null || !curStyle.equals(cssStyle))
+ { // log.info("{} -> {} vs '{}'", ii.getColumn().getName(), inpStyle, reqStyle);
+ input.setStyleClass(cssStyle);
+ }
+ */
+ }
+ // required
+ addRemoveStyle(input, InputControl.STYLECLASS_REQUIRED, ii.isRequired());
// modified
addRemoveStyle(input, InputControl.STYLECLASS_MODIFIED, ii.isModified());
+
// disabled
DisabledType disabled = ii.getDisabled();
if (disabled!=null)
@@ -157,6 +172,15 @@
return span;
}
+ @Override
+ protected void setInputStyleClass(UIInput input, String cssStyleClass)
+ {
+ if (input instanceof HtmlInputText)
+ ((HtmlInputText)input).setStyleClass(cssStyleClass);
+ else
+ super.setInputStyleClass(input, cssStyleClass);
+ }
+
// ------- parsing -------
@Override