Author: jdonnerstag
Date: Sat Dec  1 02:38:52 2007
New Revision: 600079

URL: http://svn.apache.org/viewvc?rev=600079&view=rev
Log:
fixed wicket-1188: <wicket:enclosure child="xxx"> bug when located as first 
level son of a non transparent border

Added:
    
wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePageExpectedResult_3.html
   (with props)
    
wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePage_3.html
   (with props)
    
wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePage_3.java
   (with props)
    
wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/markup/html/internal/MyBorder.html
   (with props)
    
wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/markup/html/internal/MyBorder.java
   (with props)
Modified:
    
wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/html/internal/Enclosure.java
    
wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosureTest.java

Modified: 
wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/html/internal/Enclosure.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/html/internal/Enclosure.java?rev=600079&r1=600078&r2=600079&view=diff
==============================================================================
--- 
wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/html/internal/Enclosure.java
 (original)
+++ 
wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/html/internal/Enclosure.java
 Sat Dec  1 02:38:52 2007
@@ -24,6 +24,8 @@
 import org.apache.wicket.markup.MarkupException;
 import org.apache.wicket.markup.MarkupStream;
 import org.apache.wicket.markup.html.WebMarkupContainer;
+import org.apache.wicket.markup.html.border.Border;
+import org.apache.wicket.markup.html.border.Border.BorderBodyContainer;
 import org.apache.wicket.markup.parser.filter.EnclosureHandler;
 import org.apache.wicket.markup.resolver.EnclosureResolver;
 import org.apache.wicket.response.NullResponse;
@@ -113,9 +115,20 @@
        private Component getChildComponent(final CharSequence childId)
        {
                MarkupContainer parent = getParent();
-               while ((parent != null) && parent.isTransparentResolver())
+               while (parent != null)
                {
-                       parent = parent.getParent();
+                       if (parent.isTransparentResolver())
+                       {
+                               parent = parent.getParent();
+                       }
+                       else if (parent instanceof BorderBodyContainer)
+                       {
+                               parent = 
((BorderBodyContainer)parent).findParent(Border.class);
+                       }
+                       else
+                       {
+                               break;
+                       }
                }
 
                if (parent == null)

Added: 
wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePageExpectedResult_3.html
URL: 
http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePageExpectedResult_3.html?rev=600079&view=auto
==============================================================================
--- 
wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePageExpectedResult_3.html
 (added)
+++ 
wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePageExpectedResult_3.html
 Sat Dec  1 02:38:52 2007
@@ -0,0 +1,13 @@
+<html xmlns:wicket>
+<body>
+  <span wicket:id="border"><wicket:border>
+  before <wicket:body>
+    <wicket:enclosure child="newLink">
+      <div class="action">
+        <a href="?wicket:interface=:0:border:newLink::ILinkListener::" 
wicket:id="newLink">test</a>
+      </div>
+    </wicket:enclosure>
+  </wicket:body> after
+</wicket:border></span> 
+</body>
+</html>

Propchange: 
wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePageExpectedResult_3.html
------------------------------------------------------------------------------
    svn:eol-style = native

Added: 
wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePage_3.html
URL: 
http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePage_3.html?rev=600079&view=auto
==============================================================================
--- 
wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePage_3.html
 (added)
+++ 
wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePage_3.html
 Sat Dec  1 02:38:52 2007
@@ -0,0 +1,11 @@
+<html xmlns:wicket>
+<body>
+  <span wicket:id="border">
+    <wicket:enclosure child="newLink">
+      <div class="action">
+        <a wicket:id="newLink">test</a>
+      </div>
+    </wicket:enclosure>
+  </span> 
+</body>
+</html>

Propchange: 
wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePage_3.html
------------------------------------------------------------------------------
    svn:eol-style = native

Added: 
wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePage_3.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePage_3.java?rev=600079&view=auto
==============================================================================
--- 
wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePage_3.java
 (added)
+++ 
wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePage_3.java
 Sat Dec  1 02:38:52 2007
@@ -0,0 +1,50 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.wicket.markup.html.internal;
+
+import org.apache.wicket.markup.html.WebPage;
+import org.apache.wicket.markup.html.border.Border;
+import org.apache.wicket.markup.html.link.Link;
+
+
+/**
+ * Mock page for testing.
+ * 
+ * @author Juergen Donnerstag
+ */
+public class EnclosurePage_3 extends WebPage
+{
+       private static final long serialVersionUID = 1L;
+
+       /**
+        * Construct.
+        */
+       public EnclosurePage_3()
+       {
+               Border border = new MyBorder("border");
+               add(border);
+
+               border.add(new Link("newLink")
+               {
+                       private static final long serialVersionUID = 1L;
+
+                       public void onClick()
+                       {
+                       }
+               });
+       }
+}

Propchange: 
wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePage_3.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: 
wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosureTest.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosureTest.java?rev=600079&r1=600078&r2=600079&view=diff
==============================================================================
--- 
wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosureTest.java
 (original)
+++ 
wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosureTest.java
 Sat Dec  1 02:38:52 2007
@@ -64,4 +64,12 @@
        {
                executeTest(EnclosurePage_2.class, 
"EnclosurePageExpectedResult_2.html");
        }
+
+       /**
+        * @throws Exception
+        */
+       public void testRenderHomePage3() throws Exception
+       {
+               executeTest(EnclosurePage_3.class, 
"EnclosurePageExpectedResult_3.html");
+       }
 }

Added: 
wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/markup/html/internal/MyBorder.html
URL: 
http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/markup/html/internal/MyBorder.html?rev=600079&view=auto
==============================================================================
--- 
wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/markup/html/internal/MyBorder.html
 (added)
+++ 
wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/markup/html/internal/MyBorder.html
 Sat Dec  1 02:38:52 2007
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<wicket:border>
+  before <wicket:body/> after
+</wicket:border>
+    

Propchange: 
wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/markup/html/internal/MyBorder.html
------------------------------------------------------------------------------
    svn:eol-style = native

Added: 
wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/markup/html/internal/MyBorder.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/markup/html/internal/MyBorder.java?rev=600079&view=auto
==============================================================================
--- 
wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/markup/html/internal/MyBorder.java
 (added)
+++ 
wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/markup/html/internal/MyBorder.java
 Sat Dec  1 02:38:52 2007
@@ -0,0 +1,39 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.wicket.markup.html.internal;
+
+import org.apache.wicket.markup.html.border.Border;
+
+
+/**
+ * 
+ * @author Juergen Donnerstag
+ */
+public class MyBorder extends Border
+{
+       private static final long serialVersionUID = 1L;
+
+       /**
+        * Construct.
+        * 
+        * @param id
+        */
+       public MyBorder(String id)
+       {
+               super(id);
+       }
+}

Propchange: 
wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/markup/html/internal/MyBorder.java
------------------------------------------------------------------------------
    svn:eol-style = native


Reply via email to