Author: jdonnerstag
Date: Mon Oct  5 19:26:12 2009
New Revision: 821981

URL: http://svn.apache.org/viewvc?rev=821981&view=rev
Log:
fixed 
Issue: WICKET-2506

Added:
    
wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePage_7.html
    
wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePage_7.java
Modified:
    
wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/markup/html/internal/Enclosure.java
    
wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosureTest.java

Modified: 
wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/markup/html/internal/Enclosure.java
URL: 
http://svn.apache.org/viewvc/wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/markup/html/internal/Enclosure.java?rev=821981&r1=821980&r2=821981&view=diff
==============================================================================
--- 
wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/markup/html/internal/Enclosure.java
 (original)
+++ 
wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/markup/html/internal/Enclosure.java
 Mon Oct  5 19:26:12 2009
@@ -195,10 +195,13 @@
                while (it.hasNext())
                {
                        final ComponentTag tag = it.next();
-                       final Component child = container.get(tag.getId());
-                       // record original visiblity allowed value, will 
restore later
-                       changes.put(child, child.isVisibilityAllowed());
-                       child.setVisibilityAllowed(isVisible());
+                       if (tag.isAutoComponentTag() == false)
+                       {
+                               final Component child = 
container.get(tag.getId());
+                               // record original visiblity allowed value, 
will restore later
+                               changes.put(child, child.isVisibilityAllowed());
+                               child.setVisibilityAllowed(isVisible());
+                       }
                }
                it.rewind();
        }
@@ -225,43 +228,49 @@
                {
                        final ComponentTag tag = it.next();
 
-                       Component child = container.get(tag.getId());
-                       if (child == null)
+                       if (tag.isAutoComponentTag() == false)
                        {
-                               // component does not yet exist in the 
container, attempt to resolve it using
-                               // resolvers
-                               final int tagIndex = it.getCurrentIndex();
-
-                               // because the resolvers can auto-add and 
therefore immediately render the component
-                               // we have to buffer the output since we do not 
yet know the visibility of the
-                               // enclosure
-                               CharSequence buffer = new 
ResponseBufferZone(getRequestCycle(), markupStream)
+                               Component child = container.get(tag.getId());
+                               if (child == null)
                                {
-                                       @Override
-                                       protected void 
executeInsideBufferedZone()
+                                       // component does not yet exist in the 
container, attempt to resolve it using
+                                       // resolvers
+                                       final int tagIndex = 
it.getCurrentIndex();
+
+                                       // because the resolvers can auto-add 
and therefore immediately render the
+                                       // component we have to buffer the 
output since we do not yet know the
+                                       // visibility of the enclosure
+                                       CharSequence buffer = new 
ResponseBufferZone(getRequestCycle(), markupStream)
                                        {
-                                               
markupStream.setCurrentIndex(tagIndex);
-                                               
ComponentResolvers.resolve(getApplication(), container, markupStream, tag);
-                                       }
-                               }.execute();
+                                               @Override
+                                               protected void 
executeInsideBufferedZone()
+                                               {
+                                                       
markupStream.setCurrentIndex(tagIndex);
+                                                       
ComponentResolvers.resolve(getApplication(), container, markupStream,
+                                                               tag);
+                                               }
+                                       }.execute();
 
-                               child = container.get(tag.getId());
-                               checkChildComponent(child);
+                                       child = container.get(tag.getId());
+                                       checkChildComponent(child);
 
-                               if (buffer.length() > 0)
-                               {
-                                       // we have already rendered this child 
component, insert a stub component that
-                                       // will dump the markup during the 
normal render process if the enclosure is
-                                       // visible
-                                       final Component stub = new 
AutoMarkupLabel(child.getId(), buffer);
-                                       container.replace(stub); // ok here 
because we are replacing auto with auto
+                                       if (buffer.length() > 0)
+                                       {
+                                               // we have already rendered 
this child component, insert a stub component
+                                               // that will dump the markup 
during the normal render process if the
+                                               // enclosure is visible
+                                               final Component stub = new 
AutoMarkupLabel(child.getId(), buffer);
+                                               container.replace(stub); // ok 
here because we are replacing auto with auto
+                                       }
                                }
                        }
                }
                it.rewind();
        }
 
-
+       /**
+        * @see org.apache.wicket.Component#onDetach()
+        */
        @Override
        protected void onDetach()
        {
@@ -269,6 +278,9 @@
                super.onDetach();
        }
 
+       /**
+        * 
+        */
        private void restoreOriginalChildVisibility()
        {
                if (changes != null)

Added: 
wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePage_7.html
URL: 
http://svn.apache.org/viewvc/wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePage_7.html?rev=821981&view=auto
==============================================================================
--- 
wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePage_7.html
 (added)
+++ 
wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePage_7.html
 Mon Oct  5 19:26:12 2009
@@ -0,0 +1,14 @@
+<html>
+  <div wicket:id="group">
+    <table>
+      <wicket:enclosure child="radio">
+        <tr>
+          <td><input type="radio" wicket:id="radio" /> radio</td>
+        </tr>
+        <tr>
+          <td><a href="woops" class="linkhint">woops</a></td>
+        </tr>
+      </wicket:enclosure>
+    </table>
+  </div>
+</html>

Added: 
wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePage_7.java
URL: 
http://svn.apache.org/viewvc/wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePage_7.java?rev=821981&view=auto
==============================================================================
--- 
wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePage_7.java
 (added)
+++ 
wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePage_7.java
 Mon Oct  5 19:26:12 2009
@@ -0,0 +1,29 @@
+/*
+ * 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.form.Radio;
+import org.apache.wicket.markup.html.form.RadioGroup;
+
+public class EnclosurePage_7 extends WebPage
+{
+       public EnclosurePage_7()
+       {
+               this.add(new RadioGroup("group").add(new Radio<Void>("radio")));
+       }
+}

Modified: 
wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosureTest.java
URL: 
http://svn.apache.org/viewvc/wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosureTest.java?rev=821981&r1=821980&r2=821981&view=diff
==============================================================================
--- 
wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosureTest.java
 (original)
+++ 
wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosureTest.java
 Mon Oct  5 19:26:12 2009
@@ -136,4 +136,13 @@
                assertTrue(doc.contains("content1"));
                assertTrue(doc.contains("content2"));
        }
+
+       /**
+        * 
+        */
+       public void testRender()
+       {
+               tester = new WicketTester(EnclosurePage_7.class);
+               tester.startPage(EnclosurePage_7.class);
+       }
 }


Reply via email to