You are viewing a plain text version of this content. The canonical link for it is here.
Posted to adffaces-commits@incubator.apache.org by aw...@apache.org on 2006/06/30 21:49:33 UTC

svn commit: r418387 - in /incubator/adffaces/trunk/adf-faces/adf-faces-api/src: main/java/org/apache/myfaces/adf/component/ChildArrayList.java test/java/org/apache/myfaces/adf/component/AddRemoveTest.java

Author: awiner
Date: Fri Jun 30 14:49:33 2006
New Revision: 418387

URL: http://svn.apache.org/viewvc?rev=418387&view=rev
Log:
ADFFACES-41:  Children out of order in ChildArrayList when re-added to different parent.  Thanks to John Fan for the patch.

Modified:
    incubator/adffaces/trunk/adf-faces/adf-faces-api/src/main/java/org/apache/myfaces/adf/component/ChildArrayList.java
    incubator/adffaces/trunk/adf-faces/adf-faces-api/src/test/java/org/apache/myfaces/adf/component/AddRemoveTest.java

Modified: incubator/adffaces/trunk/adf-faces/adf-faces-api/src/main/java/org/apache/myfaces/adf/component/ChildArrayList.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/trunk/adf-faces/adf-faces-api/src/main/java/org/apache/myfaces/adf/component/ChildArrayList.java?rev=418387&r1=418386&r2=418387&view=diff
==============================================================================
--- incubator/adffaces/trunk/adf-faces/adf-faces-api/src/main/java/org/apache/myfaces/adf/component/ChildArrayList.java (original)
+++ incubator/adffaces/trunk/adf-faces/adf-faces-api/src/main/java/org/apache/myfaces/adf/component/ChildArrayList.java Fri Jun 30 14:49:33 2006
@@ -45,9 +45,16 @@
       throw new IndexOutOfBoundsException("index:"+index+" size:"+size());
 
     UIComponent child = (UIComponent) element;
-    if (child.getParent() != null)
+
+    UIComponent oldParent = child.getParent();
+    if (oldParent != null)
     {
-      index = __removeFromParent(child, index);
+      int adjustedIndex = __removeFromParent(child, index);
+      // Only adjust the index when the child is re-added to the same parent
+      if (oldParent == _parent)
+      {
+        index = adjustedIndex; 
+      }
     }
 
     child.setParent(_parent);

Modified: incubator/adffaces/trunk/adf-faces/adf-faces-api/src/test/java/org/apache/myfaces/adf/component/AddRemoveTest.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/trunk/adf-faces/adf-faces-api/src/test/java/org/apache/myfaces/adf/component/AddRemoveTest.java?rev=418387&r1=418386&r2=418387&view=diff
==============================================================================
--- incubator/adffaces/trunk/adf-faces/adf-faces-api/src/test/java/org/apache/myfaces/adf/component/AddRemoveTest.java (original)
+++ incubator/adffaces/trunk/adf-faces/adf-faces-api/src/test/java/org/apache/myfaces/adf/component/AddRemoveTest.java Fri Jun 30 14:49:33 2006
@@ -73,6 +73,10 @@
     assertEquals(0, a.getChildren().size());
     assertEquals(2, e.getChildren().size());
     assertEquals(e, c.getParent());
+
+    //Make sure the children are in the right order under "e" 
+    assertEquals(e.getChildren().get(0), d);
+    assertEquals(e.getChildren().get(1), c);
   }
 
   public void testAddFacet()