You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by mb...@apache.org on 2005/11/11 23:39:31 UTC
svn commit: r332660 - in /myfaces: impl/trunk/tld/entities/
tomahawk/trunk/src/java/org/apache/myfaces/component/html/ext/
tomahawk/trunk/src/java/org/apache/myfaces/taglib/html/ext/
Author: mbr
Date: Fri Nov 11 14:39:21 2005
New Revision: 332660
URL: http://svn.apache.org/viewcvs?rev=332660&view=rev
Log:
added preserveRowStates to t:datatable.
Rowstates will not be discarded before rendering the table if the value is true
for this flag
Modified:
myfaces/impl/trunk/tld/entities/extended_data_table_attributes.xml
myfaces/tomahawk/trunk/src/java/org/apache/myfaces/component/html/ext/HtmlDataTableHack.java
myfaces/tomahawk/trunk/src/java/org/apache/myfaces/taglib/html/ext/HtmlDataTableTag.java
Modified: myfaces/impl/trunk/tld/entities/extended_data_table_attributes.xml
URL: http://svn.apache.org/viewcvs/myfaces/impl/trunk/tld/entities/extended_data_table_attributes.xml?rev=332660&r1=332659&r2=332660&view=diff
==============================================================================
--- myfaces/impl/trunk/tld/entities/extended_data_table_attributes.xml (original)
+++ myfaces/impl/trunk/tld/entities/extended_data_table_attributes.xml Fri Nov 11 14:39:21 2005
@@ -18,6 +18,21 @@
</description>
</attribute>
<attribute>
+ <name>preserveRowStates</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>
+ Indicates whether the state for each row should not be discarded before
+ the datatable is rendered again. Setting this to true might be hepful if
+ an input component inside the datatable has no valuebinding and the value
+ entered in there should be displayed again.
+ This will only work reliable if the datamodel of the datatable did not change
+ either by sorting, removing or adding rows.
+
+ Default: false
+ </description>
+ </attribute>
+ <attribute>
<name>forceIdIndexFormula</name>
<required>false</required>
<rtexprvalue>false</rtexprvalue>
Modified: myfaces/tomahawk/trunk/src/java/org/apache/myfaces/component/html/ext/HtmlDataTableHack.java
URL: http://svn.apache.org/viewcvs/myfaces/tomahawk/trunk/src/java/org/apache/myfaces/component/html/ext/HtmlDataTableHack.java?rev=332660&r1=332659&r2=332660&view=diff
==============================================================================
--- myfaces/tomahawk/trunk/src/java/org/apache/myfaces/component/html/ext/HtmlDataTableHack.java (original)
+++ myfaces/tomahawk/trunk/src/java/org/apache/myfaces/component/html/ext/HtmlDataTableHack.java Fri Nov 11 14:39:21 2005
@@ -64,8 +64,12 @@
private static final Class OBJECT_ARRAY_CLASS = (new Object[0]).getClass();
+ private static final boolean DEFAULT_PRESERVEROWSTATES = false;
+
private int _rowIndex = -1;
+ private Boolean _preserveRowStates;
+
public boolean isRowAvailable()
{
return getDataModel().isRowAvailable();
@@ -122,11 +126,28 @@
{
//Refresh DataModel for rendering:
_dataModelMap.clear();
- //_rowStates.clear(); todo: should not be necessary.
+ if(!isPreserveRowStates())
+ {
+ _rowStates.clear();
+ }
}
super.encodeBegin(context);
}
+ public void setPreserveRowStates(boolean preserveRowStates)
+ {
+ _preserveRowStates = Boolean.valueOf(preserveRowStates);
+ }
+
+ public boolean isPreserveRowStates()
+ {
+ if (_preserveRowStates != null)
+ return _preserveRowStates.booleanValue();
+ ValueBinding vb = getValueBinding("preserveRowStates");
+ Boolean v = vb != null ? (Boolean) vb.getValue(getFacesContext()) : null;
+ return v != null ? v.booleanValue() : DEFAULT_PRESERVEROWSTATES;
+ }
+
protected boolean hasErrorMessages(FacesContext context)
{
for(Iterator iter = context.getMessages(); iter.hasNext();)
@@ -406,6 +427,21 @@
{
return new ScalarDataModel(value);
}
+ }
+
+ public Object saveState(FacesContext context)
+ {
+ Object[] values = new Object[2];
+ values[0] = super.saveState(context);
+ values[1] = _preserveRowStates;
+ return values;
+ }
+
+ public void restoreState(FacesContext context, Object state)
+ {
+ Object[] values = (Object[])state;
+ super.restoreState(context, values[0]);
+ _preserveRowStates = (Boolean) values[1];
}
private static final DataModel EMPTY_DATA_MODEL = new _SerializableDataModel()
Modified: myfaces/tomahawk/trunk/src/java/org/apache/myfaces/taglib/html/ext/HtmlDataTableTag.java
URL: http://svn.apache.org/viewcvs/myfaces/tomahawk/trunk/src/java/org/apache/myfaces/taglib/html/ext/HtmlDataTableTag.java?rev=332660&r1=332659&r2=332660&view=diff
==============================================================================
--- myfaces/tomahawk/trunk/src/java/org/apache/myfaces/taglib/html/ext/HtmlDataTableTag.java (original)
+++ myfaces/tomahawk/trunk/src/java/org/apache/myfaces/taglib/html/ext/HtmlDataTableTag.java Fri Nov 11 14:39:21 2005
@@ -42,6 +42,7 @@
}
private String _preserveDataModel;
+ private String _preserveRowStates;
private String _forceIdIndexFormula;
private String _sortColumn;
private String _sortAscending;
@@ -72,6 +73,7 @@
super.release();
_preserveDataModel=null;
+ _preserveRowStates = null;
_forceIdIndexFormula=null;
_sortColumn=null;
_sortAscending=null;
@@ -103,6 +105,7 @@
super.setProperties(component);
setBooleanProperty(component, "preserveDataModel", _preserveDataModel);
+ setBooleanProperty(component, "preserveRowStates", _preserveRowStates);
setValueBinding(component, "forceIdIndexFormula", _forceIdIndexFormula);
setValueBinding(component, "sortColumn", _sortColumn);
setValueBinding(component, "sortAscending", _sortAscending);
@@ -132,6 +135,11 @@
public void setPreserveDataModel(String preserveDataModel)
{
_preserveDataModel = preserveDataModel;
+ }
+
+ public void setPreserveRowStates(String preserveRowStates)
+ {
+ _preserveRowStates = preserveRowStates;
}
public void setForceIdIndexFormula(String forceIdIndexFormula)