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 2012/12/08 02:25:54 UTC

svn commit: r1418587 - /myfaces/core/branches/2.0.x/impl/src/main/java/org/apache/myfaces/view/facelets/DefaultFaceletsStateManagementStrategy.java

Author: lu4242
Date: Sat Dec  8 01:25:53 2012
New Revision: 1418587

URL: http://svn.apache.org/viewvc?rev=1418587&view=rev
Log:
small refactor, more some inner classes out of restoreState method.

Modified:
    myfaces/core/branches/2.0.x/impl/src/main/java/org/apache/myfaces/view/facelets/DefaultFaceletsStateManagementStrategy.java

Modified: myfaces/core/branches/2.0.x/impl/src/main/java/org/apache/myfaces/view/facelets/DefaultFaceletsStateManagementStrategy.java
URL: http://svn.apache.org/viewvc/myfaces/core/branches/2.0.x/impl/src/main/java/org/apache/myfaces/view/facelets/DefaultFaceletsStateManagementStrategy.java?rev=1418587&r1=1418586&r2=1418587&view=diff
==============================================================================
--- myfaces/core/branches/2.0.x/impl/src/main/java/org/apache/myfaces/view/facelets/DefaultFaceletsStateManagementStrategy.java (original)
+++ myfaces/core/branches/2.0.x/impl/src/main/java/org/apache/myfaces/view/facelets/DefaultFaceletsStateManagementStrategy.java Sat Dec  8 01:25:53 2012
@@ -355,36 +355,7 @@ public class DefaultFaceletsStateManagem
                             String clientId = clientIdsRemoved.get(i);
                             if (!idsRemovedSet.contains(clientId))
                             {
-                                view.invokeOnComponent(context, clientId, new ContextCallback()
-                                    {
-                                        public void invokeContextCallback(FacesContext context,
-                                                UIComponent target)
-                                        {
-                                            if (target.getParent() != null)
-                                            {
-                                                if (!target.getParent().getChildren().remove(target))
-                                                {
-                                                    String key = null;
-                                                    if (target.getParent().getFacetCount() > 0)
-                                                    {
-                                                        for (Map.Entry<String, UIComponent> entry :
-                                                                target.getParent().getFacets().entrySet())
-                                                        {
-                                                            if (entry.getValue()==target)
-                                                            {
-                                                                key = entry.getKey();
-                                                                break;
-                                                            }
-                                                        }
-                                                    }
-                                                    if (key != null)
-                                                    {
-                                                        target.getParent().getFacets().remove(key);
-                                                    }
-                                                }
-                                            }
-                                        }
-                                    });
+                                view.invokeOnComponent(context, clientId, new RemoveComponentCallback());
                                 idsRemovedSet.add(clientId);
                             }
                         }
@@ -422,40 +393,8 @@ public class DefaultFaceletsStateManagem
                                     else
                                     {
                                         final String parentClientId = (String) addedState[0];
-                                        view.invokeOnComponent(context, parentClientId, new ContextCallback()
-                                        {
-                                            public void invokeContextCallback(FacesContext context,
-                                                    UIComponent target)
-                                            {
-                                                if (addedState[1] != null)
-                                                {
-                                                    String facetName = (String) addedState[1];
-                                                    UIComponent child
-                                                            = internalRestoreTreeStructure((TreeStructComponent)
-                                                                                           addedState[3]);
-                                                    child.processRestoreState(context, addedState[4]);
-                                                    target.getFacets().put(facetName,child);
-                                                }
-                                                else
-                                                {
-                                                    Integer childIndex = (Integer) addedState[2];
-                                                    UIComponent child
-                                                            = internalRestoreTreeStructure((TreeStructComponent)
-                                                                                           addedState[3]);
-                                                    child.processRestoreState(context, addedState[4]);
-                                                    try
-                                                    {
-                                                        target.getChildren().add(childIndex, child);
-                                                    }
-                                                    catch (IndexOutOfBoundsException e)
-                                                    {
-                                                        // We can't be sure about where should be this 
-                                                        // item, so just add it. 
-                                                        target.getChildren().add(child);
-                                                    }
-                                                }
-                                            }
-                                        });
+                                        view.invokeOnComponent(context, parentClientId, 
+                                            new AddComponentCallback(addedState));
                                     }
                                 }
                             }
@@ -489,7 +428,79 @@ public class DefaultFaceletsStateManagem
         //}
         return view;
     }
-    
+
+    public static class RemoveComponentCallback implements ContextCallback
+    {
+        public void invokeContextCallback(FacesContext context,
+                UIComponent target)
+        {
+            if (target.getParent() != null)
+            {
+                if (!target.getParent().getChildren().remove(target))
+                {
+                    String key = null;
+                    if (target.getParent().getFacetCount() > 0)
+                    {
+                        for (Map.Entry<String, UIComponent> entry :
+                                target.getParent().getFacets().entrySet())
+                        {
+                            if (entry.getValue()==target)
+                            {
+                                key = entry.getKey();
+                                break;
+                            }
+                        }
+                    }
+                    if (key != null)
+                    {
+                        target.getParent().getFacets().remove(key);
+                    }
+                }
+            }
+        }
+    }
+
+    public static class AddComponentCallback implements ContextCallback
+    {
+        private final Object[] addedState;
+        
+        public AddComponentCallback(Object[] addedState)
+        {
+            this.addedState = addedState;
+        }
+        
+        public void invokeContextCallback(FacesContext context,
+                UIComponent target)
+        {
+            if (addedState[1] != null)
+            {
+                String facetName = (String) addedState[1];
+                UIComponent child
+                        = internalRestoreTreeStructure((TreeStructComponent)
+                                                       addedState[3]);
+                child.processRestoreState(context, addedState[4]);
+                target.getFacets().put(facetName,child);
+            }
+            else
+            {
+                Integer childIndex = (Integer) addedState[2];
+                UIComponent child
+                        = internalRestoreTreeStructure((TreeStructComponent)
+                                                       addedState[3]);
+                child.processRestoreState(context, addedState[4]);
+                try
+                {
+                    target.getChildren().add(childIndex, child);
+                }
+                catch (IndexOutOfBoundsException e)
+                {
+                    // We can't be sure about where should be this 
+                    // item, so just add it. 
+                    target.getChildren().add(child);
+                }
+            }
+        }
+    }
 
     @Override
     public Object saveView (FacesContext context)
@@ -1208,7 +1219,7 @@ public class DefaultFaceletsStateManagem
         }
     }
     
-    private TreeStructComponent internalBuildTreeStructureToSave(UIComponent component)
+    private static TreeStructComponent internalBuildTreeStructureToSave(UIComponent component)
     {
         TreeStructComponent structComp = new TreeStructComponent(component.getClass().getName(),
                                                                  component.getId());
@@ -1255,7 +1266,7 @@ public class DefaultFaceletsStateManagem
         return structComp;
     }
     
-    private UIComponent internalRestoreTreeStructure(TreeStructComponent treeStructComp)
+    private static UIComponent internalRestoreTreeStructure(TreeStructComponent treeStructComp)
     {
         String compClass = treeStructComp.getComponentClass();
         String compId = treeStructComp.getComponentId();