You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@empire-db.apache.org by do...@apache.org on 2012/09/07 17:13:13 UTC
svn commit: r1382062 - in
/empire-db/trunk/empire-db-jsf2/src/main/java/org/apache/empire/jsf2:
components/ controls/ utils/
Author: doebele
Date: Fri Sep 7 15:13:12 2012
New Revision: 1382062
URL: http://svn.apache.org/viewvc?rev=1382062&view=rev
Log:
EMPIREDB-157
JSF2 add or remove disabled style for input controls
Modified:
empire-db/trunk/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/SelectTag.java
empire-db/trunk/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/controls/CheckboxInputControl.java
empire-db/trunk/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/controls/InputControl.java
empire-db/trunk/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/controls/SelectInputControl.java
empire-db/trunk/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/controls/TextAreaInputControl.java
empire-db/trunk/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/controls/TextInputControl.java
empire-db/trunk/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/utils/TagEncodingHelper.java
Modified: empire-db/trunk/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/SelectTag.java
URL: http://svn.apache.org/viewvc/empire-db/trunk/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/SelectTag.java?rev=1382062&r1=1382061&r2=1382062&view=diff
==============================================================================
--- empire-db/trunk/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/SelectTag.java (original)
+++ empire-db/trunk/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/SelectTag.java Fri Sep 7 15:13:12 2012
@@ -179,6 +179,7 @@ public class SelectTag extends UIInput i
// disabled
boolean disabled = isDisabled();
input.setDisabled(disabled);
+ control.addRemoveDisabledStyle(input, disabled);
// input.setLabel(getLabelString());
// input.setRequired(col.isRequired() && !col.isAutoGenerated());
// input.setId(this.getId() + INPUT_SUFFIX);
Modified: empire-db/trunk/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/controls/CheckboxInputControl.java
URL: http://svn.apache.org/viewvc/empire-db/trunk/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/controls/CheckboxInputControl.java?rev=1382062&r1=1382061&r2=1382062&view=diff
==============================================================================
--- empire-db/trunk/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/controls/CheckboxInputControl.java (original)
+++ empire-db/trunk/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/controls/CheckboxInputControl.java Fri Sep 7 15:13:12 2012
@@ -71,9 +71,11 @@ public class CheckboxInputControl extend
}
// disabled
- Object dis = ii.getAttributeEx("disabled");
- boolean disabled = (dis!=null) ? ObjectUtils.getBoolean(dis) : ii.isDisabled();
+ boolean disabled = ii.isDisabled();
input.setDisabled(disabled);
+
+ // style
+ addRemoveDisabledStyle(input, input.isDisabled());
// Set Value
setInputValue(input, ii);
Modified: empire-db/trunk/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/controls/InputControl.java
URL: http://svn.apache.org/viewvc/empire-db/trunk/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/controls/InputControl.java?rev=1382062&r1=1382061&r2=1382062&view=diff
==============================================================================
--- empire-db/trunk/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/controls/InputControl.java (original)
+++ empire-db/trunk/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/controls/InputControl.java Fri Sep 7 15:13:12 2012
@@ -33,7 +33,6 @@ import org.apache.empire.commons.ObjectU
import org.apache.empire.commons.Options;
import org.apache.empire.commons.StringUtils;
import org.apache.empire.data.Column;
-import org.apache.empire.db.exceptions.FieldIsReadOnlyException;
import org.apache.empire.exceptions.InvalidArgumentException;
import org.apache.empire.exceptions.ObjectNotValidException;
import org.apache.empire.exceptions.UnexpectedReturnValueException;
@@ -202,7 +201,8 @@ public abstract class InputControl
void setValue(Object value);
void validate(Object value);
boolean isRequired();
- boolean isDisabled(); // readOnly
+ boolean isDisabled(); // disabled or readOnly
+ boolean isFieldReadOnly(); // not disabled only readOnly (for input[type=text] only!)
// input
String getInputId();
String getStyleClass(String addlStyle);
@@ -277,9 +277,11 @@ public abstract class InputControl
{
// Disabled
if (ii.isDisabled())
- {
+ { // Ignore submitted value
+ log.debug("Ignoring submitted value for disabled field {}.", ii.getColumn().getName());
input.setSubmittedValue(null);
- throw new FieldIsReadOnlyException(ii.getColumn());
+ // throw new FieldIsReadOnlyException(ii.getColumn());
+ return null;
}
// Save submitted value
FacesContext fc = FacesContext.getCurrentInstance();
@@ -487,6 +489,24 @@ public abstract class InputControl
input.getAttributes().put(name, value);
}
+ public void addRemoveDisabledStyle(UIInput input, boolean disabled)
+ {
+ String styleClass = StringUtils.toString(input.getAttributes().get("styleClass"), "");
+ boolean hasDisStyle = (styleClass.indexOf("eInpDis")>=0);
+ if (disabled==hasDisStyle)
+ return; // Nothing to do
+ // Special IceFaces patch
+ if (styleClass.endsWith("-dis"))
+ styleClass = styleClass.substring(0, styleClass.length()-4);
+ // add or remove disabled style
+ if (disabled)
+ styleClass += " eInpDis";
+ else
+ styleClass = styleClass.replace(" eInpDis", "");
+ // add Style
+ input.getAttributes().put("styleClass", styleClass);
+ }
+
/**
* Returns the value formated as a string
* this is a simple default implementation that does no type-secific formatting
Modified: empire-db/trunk/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/controls/SelectInputControl.java
URL: http://svn.apache.org/viewvc/empire-db/trunk/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/controls/SelectInputControl.java?rev=1382062&r1=1382061&r2=1382062&view=diff
==============================================================================
--- empire-db/trunk/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/controls/SelectInputControl.java (original)
+++ empire-db/trunk/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/controls/SelectInputControl.java Fri Sep 7 15:13:12 2012
@@ -84,8 +84,7 @@ public class SelectInputControl extends
// copy Attributes
copyAttributes(parent, ii, input);
// disabled
- Object dis = ii.getAttributeEx("disabled");
- boolean disabled = (dis!=null) ? ObjectUtils.getBoolean(dis) : ii.isDisabled();
+ boolean disabled = ii.isDisabled();
input.setDisabled(disabled);
// Options
Options options = ii.getOptions();
@@ -103,9 +102,7 @@ public class SelectInputControl extends
// cast
input = (HtmlSelectOneMenu)comp;
// disabled
- // boolean disabled = input.isDisabled();
- Object dis = ii.getAttributeEx("disabled");
- boolean disabled = (dis!=null) ? ObjectUtils.getBoolean(dis) : ii.isDisabled();
+ boolean disabled = ii.isDisabled();
input.setDisabled(disabled);
// Options (sync)
Options options = ii.getOptions();
@@ -113,6 +110,9 @@ public class SelectInputControl extends
String nullText = (hasEmpty) ? getNullText(ii) : "";
syncOptions(input, ii.getTextResolver(), options, hasEmpty, nullText);
}
+
+ // style
+ addRemoveDisabledStyle(input, input.isDisabled());
// Set Value
setInputValue(input, ii);
Modified: empire-db/trunk/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/controls/TextAreaInputControl.java
URL: http://svn.apache.org/viewvc/empire-db/trunk/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/controls/TextAreaInputControl.java?rev=1382062&r1=1382061&r2=1382062&view=diff
==============================================================================
--- empire-db/trunk/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/controls/TextAreaInputControl.java (original)
+++ empire-db/trunk/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/controls/TextAreaInputControl.java Fri Sep 7 15:13:12 2012
@@ -68,10 +68,6 @@ public class TextAreaInputControl extend
}
// once
copyAttributes(parent, ii, input);
- // disabled
- Object dis = ii.getAttributeEx("disabled");
- if (dis!=null)
- input.setDisabled(ObjectUtils.getBoolean(dis));
// cols
int cols = getFormatInteger(ii, FORMAT_COLS, FORMAT_COLS_ATTRIBUTE);
if (cols>0)
@@ -91,9 +87,18 @@ public class TextAreaInputControl extend
// cast
input = (HtmlInputTextarea)comp;
}
+
+ // disabled
+ Object dis = ii.getAttributeEx("disabled");
+ if (dis!=null)
+ input.setDisabled(ObjectUtils.getBoolean(dis));
+ // field-readOnly
+ if (ObjectUtils.getBoolean(dis)==false)
+ input.setReadonly(ii.isFieldReadOnly());
+ // style
+ addRemoveDisabledStyle(input, (input.isDisabled() || input.isReadonly()));
// Set Value
- input.setReadonly(ii.isDisabled());
setInputValue(input, ii);
}
Modified: empire-db/trunk/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/controls/TextInputControl.java
URL: http://svn.apache.org/viewvc/empire-db/trunk/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/controls/TextInputControl.java?rev=1382062&r1=1382061&r2=1382062&view=diff
==============================================================================
--- empire-db/trunk/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/controls/TextInputControl.java (original)
+++ empire-db/trunk/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/controls/TextInputControl.java Fri Sep 7 15:13:12 2012
@@ -87,10 +87,6 @@ public class TextInputControl extends In
}
// once
copyAttributes(parent, ii, input);
- // disabled
- Object dis = ii.getAttributeEx("disabled");
- if (dis!=null)
- input.setDisabled(ObjectUtils.getBoolean(dis));
// language
input.setLang(ii.getLocale().getLanguage());
// maxlength
@@ -121,11 +117,19 @@ public class TextInputControl extends In
// cast
input = (HtmlInputText)comp;
}
-
- // Set Value
- input.setReadonly(ii.isDisabled()); // || ii.getColumn().isAutoGenerated()
- setInputValue(input, ii);
+
+ // disabled
+ Object dis = ii.getAttributeEx("disabled");
+ if (dis!=null)
+ input.setDisabled(ObjectUtils.getBoolean(dis));
+ // field-readOnly
+ if (ObjectUtils.getBoolean(dis)==false)
+ input.setReadonly(ii.isFieldReadOnly());
+ // style
+ addRemoveDisabledStyle(input, (input.isDisabled() || input.isReadonly()));
+ // set value
+ setInputValue(input, ii);
}
// ------- parsing -------
Modified: empire-db/trunk/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/utils/TagEncodingHelper.java
URL: http://svn.apache.org/viewvc/empire-db/trunk/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/utils/TagEncodingHelper.java?rev=1382062&r1=1382061&r2=1382062&view=diff
==============================================================================
--- empire-db/trunk/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/utils/TagEncodingHelper.java (original)
+++ empire-db/trunk/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/utils/TagEncodingHelper.java Fri Sep 7 15:13:12 2012
@@ -301,6 +301,21 @@ public class TagEncodingHelper implement
}
@Override
+ public boolean isFieldReadOnly()
+ { // Check Record
+ if (isRecordReadOnly())
+ return true;
+ // Check Record
+ if ((getRecord() instanceof Record))
+ { // Ask Record
+ Record r = (Record) record;
+ return r.isFieldReadOnly(getColumn());
+ }
+ // column
+ return getColumn().isReadOnly();
+ }
+
+ @Override
public String getInputId()
{
Column c = getColumn();
@@ -311,8 +326,8 @@ public class TagEncodingHelper implement
public String getStyleClass(String addlStyle)
{
String style = getTagStyleClass(addlStyle);
- if (isReadOnly())
- style += " eInpDis";
+ // if (isReadOnly())
+ // style += " eInpDis";
return style;
}
@@ -324,37 +339,9 @@ public class TagEncodingHelper implement
@Override
public Object getAttributeEx(String name)
- {
- Object value = getTagAttributeValue(name);
- if (value==null)
- { // Check Column
- value = getColumn().getAttribute(name);
- }
- // Checks whether it's another column
- if (value instanceof Column)
- { // Special case: Value is a column
- Column col = ((Column)value);
- Object rec = getRecord();
- if (rec instanceof Record)
- return ((Record)rec).getValue(col);
- else if (rec!=null)
- { // Get Value from a bean
- String property = col.getBeanPropertyName();
- try
- { // Use Beanutils to get Property
- PropertyUtilsBean pub = BeanUtilsBean.getInstance().getPropertyUtils();
- return pub.getSimpleProperty(rec, property);
- }
- catch (Exception e)
- { log.error("BeanUtils.getSimpleProperty failed for "+property, e);
- return null;
- }
- }
- return null;
- }
- return value;
+ {
+ return getAttributeValueEx(name);
}
-
}
// Logger
@@ -718,7 +705,7 @@ public class TagEncodingHelper implement
public boolean isReadOnly()
{
// check attribute
- Object val = getTagAttributeValue("disabled");
+ Object val = getAttributeValueEx("disabled");
if (val != null && ObjectUtils.getBoolean(val))
return true;
// Check Record
@@ -1093,6 +1080,38 @@ public class TagEncodingHelper implement
{
return tag.getAttributes().get(name);
}
+
+ public Object getAttributeValueEx(String name)
+ {
+ Object value = getTagAttributeValue(name);
+ if (value==null)
+ { // Check Column
+ value = getColumn().getAttribute(name);
+ }
+ // Checks whether it's another column
+ if (value instanceof Column)
+ { // Special case: Value is a column
+ Column col = ((Column)value);
+ Object rec = getRecord();
+ if (rec instanceof Record)
+ return ((Record)rec).getValue(col);
+ else if (rec!=null)
+ { // Get Value from a bean
+ String property = col.getBeanPropertyName();
+ try
+ { // Use Beanutils to get Property
+ PropertyUtilsBean pub = BeanUtilsBean.getInstance().getPropertyUtils();
+ return pub.getSimpleProperty(rec, property);
+ }
+ catch (Exception e)
+ { log.error("BeanUtils.getSimpleProperty failed for "+property, e);
+ return null;
+ }
+ }
+ return null;
+ }
+ return value;
+ }
public String getTagAttributeString(String name, String defValue)
{