You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by lu...@apache.org on 2010/01/31 00:56:18 UTC
svn commit: r904919 - in /myfaces/core/trunk:
api/src/main/java/javax/faces/component/UIComponentBase.java
api/src/main/java/javax/faces/component/behavior/AjaxBehavior.java
impl/src/main/java/org/apache/myfaces/view/facelets/tag/jsf/core/AjaxHandler.java
Author: lu4242
Date: Sat Jan 30 23:56:17 2010
New Revision: 904919
URL: http://svn.apache.org/viewvc?rev=904919&view=rev
Log:
MYFACES-2342 New objects added for new api in UIViewRoot, UIComponent and UIComponentBase could be saved and restored
Modified:
myfaces/core/trunk/api/src/main/java/javax/faces/component/UIComponentBase.java
myfaces/core/trunk/api/src/main/java/javax/faces/component/behavior/AjaxBehavior.java
myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/tag/jsf/core/AjaxHandler.java
Modified: myfaces/core/trunk/api/src/main/java/javax/faces/component/UIComponentBase.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/api/src/main/java/javax/faces/component/UIComponentBase.java?rev=904919&r1=904918&r2=904919&view=diff
==============================================================================
--- myfaces/core/trunk/api/src/main/java/javax/faces/component/UIComponentBase.java (original)
+++ myfaces/core/trunk/api/src/main/java/javax/faces/component/UIComponentBase.java Sat Jan 30 23:56:17 2010
@@ -1711,7 +1711,7 @@
if (initialStateMarked())
{
HashMap<String, Object> stateMap = new HashMap<String, Object>(_behaviorsMap.size(), 1);
-
+ boolean nullDelta = true;
for (Map.Entry<String, List<ClientBehavior> > entry : _behaviorsMap.entrySet())
{
// The list is always an instance of _DeltaList so we can cast to
@@ -1724,13 +1724,19 @@
{
stateMap.put(entry.getKey(), new _AttachedDeltaWrapper(_behaviorsMap.getClass(),
attachedState));
+ nullDelta = false;
}
}
else
{
stateMap.put(entry.getKey(), saveAttachedState(facesContext, holder));
+ nullDelta = false;
}
}
+ if (nullDelta)
+ {
+ return null;
+ }
return stateMap;
}
else
@@ -1804,7 +1810,7 @@
if (initialStateMarked())
{
HashMap<Class<? extends SystemEvent>, Object> stateMap = new HashMap<Class<? extends SystemEvent>, Object>(_systemEventListenerClassMap.size(), 1);
-
+ boolean nullDelta = true;
for (Map.Entry<Class<? extends SystemEvent>, List<SystemEventListener> > entry : _systemEventListenerClassMap.entrySet())
{
// The list is always an instance of _DeltaList so we can cast to
@@ -1817,13 +1823,19 @@
{
stateMap.put(entry.getKey(), new _AttachedDeltaWrapper(_systemEventListenerClassMap.getClass(),
attachedState));
+ nullDelta = false;
}
}
else
{
stateMap.put(entry.getKey(), saveAttachedState(facesContext, holder));
+ nullDelta = false;
}
}
+ if (nullDelta)
+ {
+ return null;
+ }
return stateMap;
}
else
Modified: myfaces/core/trunk/api/src/main/java/javax/faces/component/behavior/AjaxBehavior.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/api/src/main/java/javax/faces/component/behavior/AjaxBehavior.java?rev=904919&r1=904918&r2=904919&view=diff
==============================================================================
--- myfaces/core/trunk/api/src/main/java/javax/faces/component/behavior/AjaxBehavior.java (original)
+++ myfaces/core/trunk/api/src/main/java/javax/faces/component/behavior/AjaxBehavior.java Sat Jan 30 23:56:17 2010
@@ -18,7 +18,14 @@
*/
package javax.faces.component.behavior;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.EnumSet;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
import javax.el.ValueExpression;
import javax.faces.context.FacesContext;
@@ -240,7 +247,12 @@
@Override
- public void restoreState(FacesContext facesContext, Object o) {
+ public void restoreState(FacesContext facesContext, Object o)
+ {
+ if (o == null)
+ {
+ return;
+ }
Object[] values = (Object[]) o;
if (values[0] != null) {
@@ -250,11 +262,27 @@
}
@Override
- public Object saveState(FacesContext facesContext) {
- Object[] values = new Object[2];
- values[0] = super.saveState(facesContext);
- values[1] = deltaStateHelper.saveState(facesContext);
- return values;
+ public Object saveState(FacesContext facesContext)
+ {
+ if (initialStateMarked())
+ {
+ Object parentSaved = super.saveState(facesContext);
+ Object deltaStateHelperSaved = deltaStateHelper.saveState(facesContext);
+
+ if (parentSaved == null && deltaStateHelperSaved == null)
+ {
+ //No values
+ return null;
+ }
+ return new Object[]{parentSaved, deltaStateHelperSaved};
+ }
+ else
+ {
+ Object[] values = new Object[2];
+ values[0] = super.saveState(facesContext);
+ values[1] = deltaStateHelper.saveState(facesContext);
+ return values;
+ }
}
private void assertNull(Object item) {
Modified: myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/tag/jsf/core/AjaxHandler.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/tag/jsf/core/AjaxHandler.java?rev=904919&r1=904918&r2=904919&view=diff
==============================================================================
--- myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/tag/jsf/core/AjaxHandler.java (original)
+++ myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/tag/jsf/core/AjaxHandler.java Sat Jan 30 23:56:17 2010
@@ -250,6 +250,12 @@
outputScript.setId(uid);
parent.getChildren().add(outputScript);
+
+ if (((AbstractFaceletContext)ctx).isMarkInitialState())
+ {
+ //Call it only if we are using partial state saving
+ outputScript.markInitialState();
+ }
facesContext.getAttributes().put(STANDARD_JSF_AJAX_LIBRARY_LOADED, Boolean.TRUE);
}
}