Author: jdonnerstag
Date: Sun Oct 18 14:17:56 2009
New Revision: 826445
URL: http://svn.apache.org/viewvc?rev=826445&view=rev
Log:
on MarkupFragments: changed autoAdd to use new render
Modified:
wicket/trunk/wicket/src/main/java/org/apache/wicket/Component.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/MarkupContainer.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/link/AbstractLink.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/parser/filter/RelativePathPrefixHandler.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/parser/filter/WicketLinkTagHandler.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/resolver/AutoLinkResolver.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/resolver/HtmlHeaderResolver.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/resolver/MarkupInheritanceResolver.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/resolver/WicketMessageResolver.java
wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosureTest.java
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/Component.java
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/Component.java?rev=826445&r1=826444&r2=826445&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/Component.java
(original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/Component.java Sun Oct
18 14:17:56 2009
@@ -465,6 +465,9 @@
*/
int generatedMarkupId = -1;
+ /** Must only be used by auto components */
+ private transient IMarkupFragment markup;
+
/**
* The object that holds the component state.
* <p>
@@ -704,6 +707,11 @@
*/
public IMarkupFragment getMarkup()
{
+ if (markup != null)
+ {
+ return markup;
+ }
+
if (parent == null)
{
throw new MarkupException(
@@ -714,6 +722,17 @@
}
/**
+ * Set the markup for the component. Note that the component's markup
variable is transient and
+ * thus must only be used for one render cycle. E.g. auto-component are
using it.
+ *
+ * @param markup
+ */
+ public final void setMarkup(final IMarkupFragment markup)
+ {
+ this.markup = markup;
+ }
+
+ /**
* Callback method invoked after the component was added to its parent
AND you can walk up the
* hierarchy up until the Page. That is, all parents must be have been
added to their parents as
* well. Add this point in time {...@link #getMarkup() getMarkup} is
guaranteed to be available.
@@ -2139,7 +2158,7 @@
{
// Invoke prepareForRender only if this is the root
component to be rendered
MarkupContainer parent = getParent();
- if ((parent == null) || (parent.getFlag(FLAG_RENDERING)
== false))
+ if ((parent == null) || (parent.getFlag(FLAG_RENDERING)
== false) || isAuto())
{
prepareForRender();
}
Modified:
wicket/trunk/wicket/src/main/java/org/apache/wicket/MarkupContainer.java
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/MarkupContainer.java?rev=826445&r1=826444&r2=826445&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/MarkupContainer.java
(original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/MarkupContainer.java
Sun Oct 18 14:17:56 2009
@@ -255,24 +255,14 @@
children_remove(index);
}
add(component);
- component.prepareForRender();
- try
- {
- if (markupStream == null)
- {
- // Allow currently invisible components to be
re-rendered as well
- if (component.getParent() != null)
- {
- markupStream =
component.findMarkupStream();
- }
- }
- component.render(markupStream);
- }
- finally
+ component.render();
+
+ if (markupStream != null)
{
- component.afterRender();
+ markupStream.skipComponent();
}
+
return true;
}
Modified:
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/link/AbstractLink.java
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/link/AbstractLink.java?rev=826445&r1=826444&r2=826445&view=diff
==============================================================================
---
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/link/AbstractLink.java
(original)
+++
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/link/AbstractLink.java
Sun Oct 18 14:17:56 2009
@@ -109,6 +109,9 @@
return this;
}
+ /**
+ * @see org.apache.wicket.Component#onBeforeRender()
+ */
@Override
protected void onBeforeRender()
{
@@ -157,7 +160,8 @@
protected void onComponentTagBody(final MarkupStream markupStream,
final ComponentTag openTag)
{
// Draw anything before the body?
- if (!isLinkEnabled() && getBeforeDisabledLink() != null)
+ boolean beforeAfter = (!isLinkEnabled() &&
getBeforeDisabledLink() != null);
+ if (beforeAfter)
{
getResponse().write(getBeforeDisabledLink());
}
@@ -166,7 +170,7 @@
renderComponentTagBody(markupStream, openTag);
// Draw anything after the body?
- if (!isLinkEnabled() && getAfterDisabledLink() != null)
+ if (beforeAfter)
{
getResponse().write(getAfterDisabledLink());
}
Modified:
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/parser/filter/RelativePathPrefixHandler.java
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/parser/filter/RelativePathPrefixHandler.java?rev=826445&r1=826444&r2=826445&view=diff
==============================================================================
---
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/parser/filter/RelativePathPrefixHandler.java
(original)
+++
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/parser/filter/RelativePathPrefixHandler.java
Sun Oct 18 14:17:56 2009
@@ -24,7 +24,6 @@
import org.apache.wicket.behavior.AbstractBehavior;
import org.apache.wicket.behavior.IBehavior;
import org.apache.wicket.markup.ComponentTag;
-import org.apache.wicket.markup.IMarkupFragment;
import org.apache.wicket.markup.MarkupElement;
import org.apache.wicket.markup.MarkupStream;
import org.apache.wicket.markup.WicketTag;
@@ -153,8 +152,6 @@
String id = WICKET_RELATIVE_PATH_PREFIX_CONTAINER_ID +
container.getPage().getAutoIndex();
- final IMarkupFragment markup =
markupStream.getMarkupFragment();
-
// we do not want to mess with the hierarchy, so the
container has to be
// transparent as it may have wicket components inside.
for example a raw anchor tag
// that contains a label.
@@ -162,15 +159,6 @@
{
private static final long serialVersionUID = 1L;
- /**
- * @see org.apache.wicket.Component#getMarkup()
- */
- @Override
- public IMarkupFragment getMarkup()
- {
- return markup;
- }
-
@Override
public boolean isTransparentResolver()
{
@@ -178,6 +166,7 @@
}
};
+ wc.setMarkup(markupStream.getMarkupFragment());
container.autoAdd(wc, markupStream);
return true;
}
Modified:
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/parser/filter/WicketLinkTagHandler.java
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/parser/filter/WicketLinkTagHandler.java?rev=826445&r1=826444&r2=826445&view=diff
==============================================================================
---
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/parser/filter/WicketLinkTagHandler.java
(original)
+++
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/parser/filter/WicketLinkTagHandler.java
Sun Oct 18 14:17:56 2009
@@ -23,7 +23,6 @@
import org.apache.wicket.MarkupContainer;
import org.apache.wicket.WicketRuntimeException;
import org.apache.wicket.markup.ComponentTag;
-import org.apache.wicket.markup.IMarkupFragment;
import org.apache.wicket.markup.MarkupElement;
import org.apache.wicket.markup.MarkupStream;
import org.apache.wicket.markup.WicketTag;
@@ -214,8 +213,6 @@
final String id = tag.getId() +
container.getPage().getAutoIndex();
tag.setId(id);
- final IMarkupFragment markup =
markupStream.getMarkupFragment();
-
final Component component = new
WebMarkupContainer(id)
{
private static final long
serialVersionUID = 1L;
@@ -228,17 +225,9 @@
{
return true;
}
-
- /**
- * @see
org.apache.wicket.Component#getMarkup()
- */
- @Override
- public IMarkupFragment getMarkup()
- {
- return markup;
- }
};
+
component.setMarkup(markupStream.getMarkupFragment());
container.autoAdd(component, markupStream);
// Yes, we handled the tag
Modified:
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/resolver/AutoLinkResolver.java
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/resolver/AutoLinkResolver.java?rev=826445&r1=826444&r2=826445&view=diff
==============================================================================
---
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/resolver/AutoLinkResolver.java
(original)
+++
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/resolver/AutoLinkResolver.java
Sun Oct 18 14:17:56 2009
@@ -28,6 +28,7 @@
import org.apache.wicket.ResourceReference;
import org.apache.wicket.application.IClassResolver;
import org.apache.wicket.markup.ComponentTag;
+import org.apache.wicket.markup.IMarkupFragment;
import org.apache.wicket.markup.MarkupStream;
import org.apache.wicket.markup.html.PackageResource;
import org.apache.wicket.markup.html.WebMarkupContainer;
@@ -774,6 +775,9 @@
final Component link = resolveAutomaticLink(container,
WicketLinkTagHandler.AUTOLINK_ID, tag);
+ IMarkupFragment markup =
markupStream.getMarkupFragment();
+ link.setMarkup(markup);
+
// Add the link to the container
container.autoAdd(link, markupStream);
if (log.isDebugEnabled())
Modified:
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/resolver/HtmlHeaderResolver.java
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/resolver/HtmlHeaderResolver.java?rev=826445&r1=826444&r2=826445&view=diff
==============================================================================
---
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/resolver/HtmlHeaderResolver.java
(original)
+++
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/resolver/HtmlHeaderResolver.java
Sun Oct 18 14:17:56 2009
@@ -20,7 +20,6 @@
import org.apache.wicket.Page;
import org.apache.wicket.WicketRuntimeException;
import org.apache.wicket.markup.ComponentTag;
-import org.apache.wicket.markup.IMarkupFragment;
import org.apache.wicket.markup.MarkupException;
import org.apache.wicket.markup.MarkupStream;
import org.apache.wicket.markup.WicketTag;
@@ -76,8 +75,9 @@
{
// Create a special header component which will gather
additional
// input the <head> from 'contributors'.
- final WebMarkupContainer header =
newHtmlHeaderContainer(HtmlHeaderSectionHandler.HEADER_ID +
+ WebMarkupContainer header =
newHtmlHeaderContainer(HtmlHeaderSectionHandler.HEADER_ID +
container.getPage().getAutoIndex());
+ header.setMarkup(markupStream.getMarkupFragment());
container.autoAdd(header, markupStream);
// Yes, we handled the tag
@@ -90,11 +90,9 @@
// head first.
if (container instanceof WebPage)
{
- final IMarkupFragment markup =
markupStream.getMarkupFragment();
-
// Create a special header component which will
gather
// additional input the <head> from
'contributors'.
- final MarkupContainer header =
newHtmlHeaderContainer(HtmlHeaderSectionHandler.HEADER_ID +
+ MarkupContainer header =
newHtmlHeaderContainer(HtmlHeaderSectionHandler.HEADER_ID +
container.getPage().getAutoIndex());
// It is <wicket:head>. Because they do not
provide any
@@ -111,14 +109,9 @@
{
return true;
}
-
- @Override
- public IMarkupFragment getMarkup()
- {
- return markup;
- }
};
+
header2.setMarkup(markupStream.getMarkupFragment());
header2.setRenderBodyOnly(true);
header.add(header2);
@@ -127,8 +120,6 @@
}
else if (container instanceof HtmlHeaderContainer)
{
- final IMarkupFragment markup =
markupStream.getMarkupFragment();
-
// It is <wicket:head>. Because they do not
provide any
// additional functionality there are merely a
means of surrounding
// relevant markup. Thus we simply create a
WebMarkupContainer to handle
@@ -143,13 +134,8 @@
{
return true;
}
-
- @Override
- public IMarkupFragment getMarkup()
- {
- return markup;
- }
};
+
header.setMarkup(markupStream.getMarkupFragment());
header.setRenderBodyOnly(true);
try
Modified:
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/resolver/MarkupInheritanceResolver.java
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/resolver/MarkupInheritanceResolver.java?rev=826445&r1=826444&r2=826445&view=diff
==============================================================================
---
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/resolver/MarkupInheritanceResolver.java
(original)
+++
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/resolver/MarkupInheritanceResolver.java
Sun Oct 18 14:17:56 2009
@@ -65,14 +65,14 @@
// It must be <wicket:extend...>
if (wicketTag.isExtendTag())
{
- container.autoAdd(new
TransparentWebMarkupContainer(id), markupStream);
+ container.autoAdd(new
MarkupInheritanceContainer(id), markupStream);
return true;
}
// It must be <wicket:child...>
if (wicketTag.isChildTag())
{
- container.autoAdd(new
TransparentWebMarkupContainer(id), markupStream);
+ container.autoAdd(new
MarkupInheritanceContainer(id), markupStream);
return true;
}
}
@@ -83,14 +83,14 @@
/**
* This is a WebMarkupContainer, except that it is transparent for it
child components.
*/
- private static class TransparentWebMarkupContainer extends
WebMarkupContainer
+ private static class MarkupInheritanceContainer extends
WebMarkupContainer
{
private static final long serialVersionUID = 1L;
/**
* @param id
*/
- public TransparentWebMarkupContainer(final String id)
+ public MarkupInheritanceContainer(final String id)
{
super(id);
}
Modified:
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/resolver/WicketMessageResolver.java
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/resolver/WicketMessageResolver.java?rev=826445&r1=826444&r2=826445&view=diff
==============================================================================
---
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/resolver/WicketMessageResolver.java
(original)
+++
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/resolver/WicketMessageResolver.java
Sun Oct 18 14:17:56 2009
@@ -26,7 +26,6 @@
import org.apache.wicket.Response;
import org.apache.wicket.WicketRuntimeException;
import org.apache.wicket.markup.ComponentTag;
-import org.apache.wicket.markup.IMarkupFragment;
import org.apache.wicket.markup.MarkupElement;
import org.apache.wicket.markup.MarkupException;
import org.apache.wicket.markup.MarkupStream;
@@ -140,9 +139,8 @@
}
final String id = "_message_" +
container.getPage().getAutoIndex();
- MessageContainer label = new
MessageContainer(id, messageKey,
- markupStream.getMarkupFragment());
-
+ MessageContainer label = new
MessageContainer(id, messageKey);
+
label.setMarkup(markupStream.getMarkupFragment());
label.setRenderBodyOnly(container.getApplication()
.getMarkupSettings()
.getStripWicketTags());
@@ -179,8 +177,6 @@
{
private static final long serialVersionUID = 1L;
- private final IMarkupFragment markupFragment;
-
/**
* Construct.
*
@@ -188,14 +184,11 @@
* @param messageKey
* @param markupFragment
*/
- public MessageContainer(final String id, final String
messageKey,
- final IMarkupFragment markupFragment)
+ public MessageContainer(final String id, final String
messageKey)
{
// The message key becomes the model
super(id, new Model<String>(messageKey));
- this.markupFragment = markupFragment;
-
setEscapeModelStrings(false);
}
@@ -414,14 +407,5 @@
}
super.onComponentTag(tag);
}
-
- /**
- * @see org.apache.wicket.Component#getMarkup()
- */
- @Override
- public IMarkupFragment getMarkup()
- {
- return markupFragment;
- }
}
}
\ No newline at end of file
Modified:
wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosureTest.java
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosureTest.java?rev=826445&r1=826444&r2=826445&view=diff
==============================================================================
---
wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosureTest.java
(original)
+++
wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosureTest.java
Sun Oct 18 14:17:56 2009
@@ -118,7 +118,7 @@
*/
public void testVisibilityOfChildren() throws Exception
{
- // render with enclosure initally visible
+ // render with enclosure initially visible
tester.startPage(EnclosurePage_6.class);
String doc = tester.getServletResponse().getDocument();
assertTrue(doc.contains("content1"));