You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by iv...@apache.org on 2008/08/31 08:56:02 UTC

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

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)