[richfaces-svn-commits] JBoss Rich Faces SVN: r2279 - trunk/framework/impl/src/main/java/org/ajax4jsf/component.
richfaces-svn-commits at lists.jboss.org
richfaces-svn-commits at lists.jboss.org
Wed Aug 15 15:44:05 EDT 2007
Author: alexsmirnov
Date: 2007-08-15 15:44:05 -0400 (Wed, 15 Aug 2007)
New Revision: 2279
Modified:
trunk/framework/impl/src/main/java/org/ajax4jsf/component/UIDataAdaptor.java
Log:
Fix dataTable save/restoreState problem.
Modified: trunk/framework/impl/src/main/java/org/ajax4jsf/component/UIDataAdaptor.java
===================================================================
--- trunk/framework/impl/src/main/java/org/ajax4jsf/component/UIDataAdaptor.java 2007-08-15 19:09:33 UTC (rev 2278)
+++ trunk/framework/impl/src/main/java/org/ajax4jsf/component/UIDataAdaptor.java 2007-08-15 19:44:05 UTC (rev 2279)
@@ -659,7 +659,8 @@
public void setId(String id) {
// If component created by restoring tree or JSP, initial Id is null.
boolean haveId = null != super.getId();
- String baseClientId = haveId?getBaseClientId(getFacesContext()):null;
+ String baseClientId = haveId ? getBaseClientId(getFacesContext())
+ : null;
super.setId(id);
_baseClientId = null;
_clientId = null;
@@ -670,7 +671,7 @@
// switch to different model and state.
// Step one - save old values.
this._statesMap.put(baseClientId, this._currentState);
- this._modelsMap.put(baseClientId,this._currentModel);
+ this._modelsMap.put(baseClientId, this._currentModel);
this._ajaxRowKeysMap.put(baseClientId, this._ajaxRowKey);
// Step two - restore values for a new clientId.
baseClientId = getBaseClientId(getFacesContext());
@@ -974,7 +975,7 @@
public void processUpdates(FacesContext faces) {
processUpdates(faces, null);
-// resetComponent(faces);
+ // resetComponent(faces);
}
protected void processValidators(FacesContext faces, Object argument) {
@@ -989,9 +990,9 @@
public void encodeBegin(FacesContext context) throws IOException {
resetDataModel();
- if(!keepSaved(context)){
- childState.remove(getBaseClientId(context));
- }
+ if (!keepSaved(context)) {
+ childState.remove(getBaseClientId(context));
+ }
// Mark component as used, if parent UIData change own range states not
// accessed at
// encode phase must be unsaved.
@@ -1132,7 +1133,7 @@
// For Ajax events, keep row value.
if (!(rowEvent.getPhaseId() == PhaseId.RENDER_RESPONSE)) {
this._ajaxRowKey = eventRowKey;
-// this._ajaxRowKeysMap.put(getBaseClientId(faces), eventRowKey);
+ // this._ajaxRowKeysMap.put(getBaseClientId(faces), eventRowKey);
}
setRowKey(faces, oldRowKey);
restoreOrigValue(faces);
@@ -1287,8 +1288,10 @@
this._statesMap.put(key, compState);
this._modelsMap.put(key, idState.model);
}
- this._currentState = (DataComponentState) _statesMap.get(getBaseClientId(faces));
- this._currentModel = (ExtendedDataModel) _modelsMap.get(getBaseClientId(faces));
+ this._currentState = (DataComponentState) _statesMap
+ .get(getBaseClientId(faces));
+ this._currentModel = (ExtendedDataModel) _modelsMap
+ .get(getBaseClientId(faces));
}
public Object saveState(FacesContext faces) {
@@ -1311,20 +1314,25 @@
Object stateKey = stateEntry.getKey();
if (encodedIds.isEmpty() || encodedIds.contains(stateKey)) {
PerIdState idState = new PerIdState();
- idState.model = getExtendedDataModel().getSerializableModel(
- dataComponentState.getRange());
// Save component state , depended if implemented interfaces.
if (null == dataComponentState) {
idState.componentState = null;
- } else if (dataComponentState instanceof Serializable) {
- idState.componentState = dataComponentState;
- } else if (dataComponentState instanceof StateHolder) {
- // TODO - change RichFaces Tree component, for remove
- // reference to component from state.
- // Change this code to reference for saveAttachedState.
- idState.componentState = ((StateHolder) dataComponentState)
- .saveState(faces);
- idState.stateInHolder = true;
+ } else {
+ if (dataComponentState instanceof Serializable) {
+ idState.componentState = dataComponentState;
+ } else if (dataComponentState instanceof StateHolder) {
+ idState.componentState = ((StateHolder) dataComponentState)
+ .saveState(faces);
+ idState.stateInHolder = true;
+ }
+ ExtendedDataModel extendedDataModel = (ExtendedDataModel) this._modelsMap
+ .get(stateKey);
+ if (null != extendedDataModel) {
+ idState.model = extendedDataModel
+ .getSerializableModel(dataComponentState
+ .getRange());
+
+ }
}
if (null != idState.model || null != idState.componentState) {
state.componentStates.put(stateKey, idState);
More information about the richfaces-svn-commits
mailing list