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)