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
 	{