You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by ad...@apache.org on 2015/08/16 22:55:57 UTC
wicket git commit: WICKET-5965 Queuing a component in head
Repository: wicket
Updated Branches:
refs/heads/master a9056384f -> 31c885690
WICKET-5965 Queuing a component in head
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/31c88569
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/31c88569
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/31c88569
Branch: refs/heads/master
Commit: 31c885690722855242c6bc14b9afe59b4eb67830
Parents: a905638
Author: Andrea Del Bene <ad...@apache.org>
Authored: Sun Aug 16 22:55:13 2015 +0200
Committer: Andrea Del Bene <ad...@apache.org>
Committed: Sun Aug 16 22:55:13 2015 +0200
----------------------------------------------------------------------
.../parser/filter/HtmlHeaderSectionHandler.java | 27 ++++++++++++++++++++
.../HtmlHeaderItemsContainerTest.java | 8 +++---
.../wicket/queueing/ComponentQueueingTest.java | 19 ++++++++++++++
3 files changed, 50 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/31c88569/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/HtmlHeaderSectionHandler.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/HtmlHeaderSectionHandler.java b/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/HtmlHeaderSectionHandler.java
index 0ea0002..5b79f80 100644
--- a/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/HtmlHeaderSectionHandler.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/HtmlHeaderSectionHandler.java
@@ -18,11 +18,16 @@ package org.apache.wicket.markup.parser.filter;
import java.text.ParseException;
+import org.apache.wicket.Component;
+import org.apache.wicket.MarkupContainer;
import org.apache.wicket.markup.ComponentTag;
+import org.apache.wicket.markup.ComponentTag.IAutoComponentFactory;
import org.apache.wicket.markup.Markup;
import org.apache.wicket.markup.MarkupElement;
import org.apache.wicket.markup.MarkupException;
import org.apache.wicket.markup.MarkupStream;
+import org.apache.wicket.markup.html.internal.HtmlHeaderContainer;
+import org.apache.wicket.markup.html.internal.HtmlHeaderItemsContainer;
import org.apache.wicket.markup.parser.AbstractMarkupFilter;
import org.apache.wicket.markup.parser.XmlTag.TagType;
import org.apache.wicket.markup.resolver.HtmlHeaderResolver;
@@ -72,6 +77,24 @@ public final class HtmlHeaderSectionHandler extends AbstractMarkupFilter
/** The Markup available so far for the resource */
private final Markup markup;
+ private static final IAutoComponentFactory HTML_HEADER_FACTORY = new IAutoComponentFactory()
+ {
+ @Override
+ public Component newComponent(MarkupContainer container, ComponentTag tag)
+ {
+ return new HtmlHeaderContainer(tag.getId());
+ }
+ };
+
+ private static final IAutoComponentFactory HTML_HEADER_ITEMS_FACTORY = new IAutoComponentFactory()
+ {
+ @Override
+ public Component newComponent(MarkupContainer container, ComponentTag tag)
+ {
+ return new HtmlHeaderItemsContainer(tag.getId());
+ }
+ };
+
/**
* Construct.
*
@@ -164,6 +187,7 @@ public final class HtmlHeaderSectionHandler extends AbstractMarkupFilter
tag.setId(HEADER_ID);
tag.setAutoComponentTag(true);
tag.setModified(true);
+ tag.setAutoComponentFactory(HTML_HEADER_ITEMS_FACTORY);
}
/**
@@ -188,6 +212,7 @@ public final class HtmlHeaderSectionHandler extends AbstractMarkupFilter
tag.setId(HEADER_ID);
tag.setAutoComponentTag(true);
tag.setModified(true);
+ tag.setAutoComponentFactory(HTML_HEADER_FACTORY);
}
}
else if (tag.isClose())
@@ -201,6 +226,7 @@ public final class HtmlHeaderSectionHandler extends AbstractMarkupFilter
headOpenTag.setAutoComponentTag(false);
headOpenTag.setModified(false);
headOpenTag.setFlag(ComponentTag.RENDER_RAW, true);
+ headOpenTag.setAutoComponentFactory(null);
}
foundClosingHead = true;
@@ -217,6 +243,7 @@ public final class HtmlHeaderSectionHandler extends AbstractMarkupFilter
openTag.setId(HEADER_ID);
openTag.setAutoComponentTag(true);
openTag.setModified(true);
+ openTag.setAutoComponentFactory(HTML_HEADER_FACTORY);
final ComponentTag closeTag = new ComponentTag(HEAD, TagType.CLOSE);
closeTag.setOpenTag(openTag);
http://git-wip-us.apache.org/repos/asf/wicket/blob/31c88569/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/headeritems/HtmlHeaderItemsContainerTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/headeritems/HtmlHeaderItemsContainerTest.java b/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/headeritems/HtmlHeaderItemsContainerTest.java
index 6239b58..df889e5 100644
--- a/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/headeritems/HtmlHeaderItemsContainerTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/headeritems/HtmlHeaderItemsContainerTest.java
@@ -32,7 +32,7 @@ public class HtmlHeaderItemsContainerTest extends WicketTestCase
{
tester.startPage(PageWithHeaderItems.class);
String responseAsString = tester.getLastResponseAsString();
-// System.err.println("RES:\n" + responseAsString);
+
int idxMetaCharset = responseAsString.indexOf("<meta charset=\"utf-8\"");
int idxMetaPanelWicketHead = responseAsString.indexOf("meta name=\"panel-wicket-head\"");
int idxWicketAjaxJs = responseAsString.indexOf("wicket-ajax-jquery.js");
@@ -57,7 +57,7 @@ public class HtmlHeaderItemsContainerTest extends WicketTestCase
{
tester.startPage(PageWithoutHeaderItems.class);
String responseAsString = tester.getLastResponseAsString();
-// System.err.println("RES:\n" + responseAsString);
+
int idxMetaCharset = responseAsString.indexOf("<meta charset=\"utf-8\"");
int idxMetaPanelWicketHead = responseAsString.indexOf("meta name=\"panel-wicket-head\"");
int idxWicketAjaxJs = responseAsString.indexOf("wicket-ajax-jquery.js");
@@ -82,7 +82,7 @@ public class HtmlHeaderItemsContainerTest extends WicketTestCase
{
tester.startPage(SubPageWithoutHeaderItemsAndWicketHead.class);
String responseAsString = tester.getLastResponseAsString();
-// System.err.println("RES:\n" + responseAsString);
+
int idxMetaCharset = responseAsString.indexOf("<meta charset=\"utf-8\"");
int idxMetaPanelWicketHead = responseAsString.indexOf("meta name=\"panel-wicket-head\"");
int idxWicketAjaxJs = responseAsString.indexOf("wicket-ajax-jquery.js");
@@ -111,7 +111,7 @@ public class HtmlHeaderItemsContainerTest extends WicketTestCase
{
tester.startPage(SubPageWithHeaderItemsAndWicketHead.class);
String responseAsString = tester.getLastResponseAsString();
-// System.err.println("RES:\n" + responseAsString);
+
int idxMetaCharset = responseAsString.indexOf("<meta charset=\"utf-8\"");
int idxMetaPanelWicketHead = responseAsString.indexOf("meta name=\"panel-wicket-head\"");
int idxWicketAjaxJs = responseAsString.indexOf("wicket-ajax-jquery.js");
http://git-wip-us.apache.org/repos/asf/wicket/blob/31c88569/wicket-core/src/test/java/org/apache/wicket/queueing/ComponentQueueingTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/queueing/ComponentQueueingTest.java b/wicket-core/src/test/java/org/apache/wicket/queueing/ComponentQueueingTest.java
index 33b49c0..3912d62 100644
--- a/wicket-core/src/test/java/org/apache/wicket/queueing/ComponentQueueingTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/queueing/ComponentQueueingTest.java
@@ -28,6 +28,7 @@ import org.apache.wicket.WicketRuntimeException;
import org.apache.wicket.markup.IMarkupResourceStreamProvider;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.WebPage;
+import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.border.Border;
import org.apache.wicket.markup.html.internal.Enclosure;
import org.apache.wicket.markup.html.link.Link;
@@ -702,6 +703,24 @@ public class ComponentQueueingTest extends WicketTestCase
assertThat(page, hasPath(new Path(a, b)));
}
+
+ @Test
+ public void queueInsideHeader()
+ {
+ TestPage page = new TestPage();
+ page.setPageMarkup("<html>"
+ +"<head><title wicket:id='title'></title></head>"
+ + "<body><div>"
+ + "Hello!"
+ + "</div></body>"
+ + "</html>");
+
+ page.queue(new Label("title"));
+
+ tester.startPage(page);
+
+ tester.assertContains("title");
+ }
private static class A extends WebMarkupContainer
{