Author: ivaynberg
Date: Sat Aug 30 23:56:01 2008
New Revision: 690647

URL: http://svn.apache.org/viewvc?rev=690647&view=rev
Log:
WICKET-1789: border rendering bugfix

Modified:
    
wicket/branches/wicket-1.3.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/html/border/Border.java

Modified: 
wicket/branches/wicket-1.3.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/html/border/Border.java
URL: 
http://svn.apache.org/viewvc/wicket/branches/wicket-1.3.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/html/border/Border.java?rev=690647&r1=690646&r2=690647&view=diff
==============================================================================
--- 
wicket/branches/wicket-1.3.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/html/border/Border.java
 (original)
+++ 
wicket/branches/wicket-1.3.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/html/border/Border.java
 Sat Aug 30 23:56:01 2008
@@ -292,7 +292,7 @@
 
                // body.isVisible(false) needs a little extra work. We must 
skip the
                // markup between <span wicket:id="myBorder"> and </span>
-               if (body.isVisible() == false)
+               if (isBodyVisible() == false)
                {
                        originalMarkupStream.skipToMatchingCloseTag(openTag);
                }
@@ -302,6 +302,26 @@
        }
 
        /**
+        * Determines whether or not the border body is visible.
+        * 
+        * @return true if body of the border is visible, false otherwise
+        */
+       private boolean isBodyVisible()
+       {
+               // in order to determine this we have to visit all components 
between the border and the
+               // body because border body can be embedded inside other 
containers.
+
+               boolean bodyVisible = true;
+               Component cursor = body;
+               while (cursor != this && bodyVisible)
+               {
+                       bodyVisible = cursor.determineVisibility();
+                       cursor = cursor.getParent();
+               }
+               return bodyVisible;
+       }
+
+       /**
         * @see 
org.apache.wicket.Component#renderHead(org.apache.wicket.markup.html.internal.HtmlHeaderContainer)
         */
        public void renderHead(HtmlHeaderContainer container)


Reply via email to