You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by jd...@apache.org on 2006/11/05 10:49:42 UTC
svn commit: r471388 - in
/incubator/wicket/trunk/wicket/src/main/java/wicket/markup:
MarkupCache.java loader/AbstractMarkupLoader.java
loader/DefaultMarkupLoader.java loader/HeaderCleanupMarkupLoader.java
Author: jdonnerstag
Date: Sun Nov 5 01:49:41 2006
New Revision: 471388
URL: http://svn.apache.org/viewvc?view=rev&rev=471388
Log:
javadoc and cleanups related to recent <wicket:head> changes
Added:
incubator/wicket/trunk/wicket/src/main/java/wicket/markup/loader/HeaderCleanupMarkupLoader.java (with props)
Modified:
incubator/wicket/trunk/wicket/src/main/java/wicket/markup/MarkupCache.java
incubator/wicket/trunk/wicket/src/main/java/wicket/markup/loader/AbstractMarkupLoader.java
incubator/wicket/trunk/wicket/src/main/java/wicket/markup/loader/DefaultMarkupLoader.java
Modified: incubator/wicket/trunk/wicket/src/main/java/wicket/markup/MarkupCache.java
URL: http://svn.apache.org/viewvc/incubator/wicket/trunk/wicket/src/main/java/wicket/markup/MarkupCache.java?view=diff&rev=471388&r1=471387&r2=471388
==============================================================================
--- incubator/wicket/trunk/wicket/src/main/java/wicket/markup/MarkupCache.java (original)
+++ incubator/wicket/trunk/wicket/src/main/java/wicket/markup/MarkupCache.java Sun Nov 5 01:49:41 2006
@@ -28,8 +28,8 @@
import wicket.Application;
import wicket.MarkupContainer;
import wicket.WicketRuntimeException;
-import wicket.markup.loader.AbstractMarkupLoader;
import wicket.markup.loader.DefaultMarkupLoader;
+import wicket.markup.loader.HeaderCleanupMarkupLoader;
import wicket.markup.loader.IMarkupLoader;
import wicket.markup.loader.InheritedMarkupMarkupLoader;
import wicket.util.listener.IChangeListener;
@@ -413,10 +413,11 @@
*/
protected IMarkupLoader newMarkupLoader()
{
- AbstractMarkupLoader loaderChain = new InheritedMarkupMarkupLoader(application);
- loaderChain.setParent(new DefaultMarkupLoader(application));
-
- return loaderChain;
+ return new InheritedMarkupMarkupLoader(application)
+ .setParent(
+ new HeaderCleanupMarkupLoader(application)
+ .setParent(
+ new DefaultMarkupLoader(application)));
}
/**
Modified: incubator/wicket/trunk/wicket/src/main/java/wicket/markup/loader/AbstractMarkupLoader.java
URL: http://svn.apache.org/viewvc/incubator/wicket/trunk/wicket/src/main/java/wicket/markup/loader/AbstractMarkupLoader.java?view=diff&rev=471388&r1=471387&r2=471388
==============================================================================
--- incubator/wicket/trunk/wicket/src/main/java/wicket/markup/loader/AbstractMarkupLoader.java (original)
+++ incubator/wicket/trunk/wicket/src/main/java/wicket/markup/loader/AbstractMarkupLoader.java Sun Nov 5 01:49:41 2006
@@ -26,7 +26,7 @@
import wicket.util.resource.ResourceStreamNotFoundException;
/**
- * Default implementation of a IMarkupLoader. We expect most real
+ * Abstract implementation of a IMarkupLoader. We expect most real
* implementations of IMarkupLoader to provide there own loadMarkup()
* implementation and call the default implementation provided in this class if
* chaining the loaders is required.
@@ -45,12 +45,15 @@
}
/**
+ * Sets the parent markup loader which allows to chains them.
*
* @param parent
+ * @return parent
*/
- public void setParent(final IMarkupLoader parent)
+ public IMarkupLoader setParent(final IMarkupLoader parent)
{
this.parentLoader = parent;
+ return this;
}
/**
Modified: incubator/wicket/trunk/wicket/src/main/java/wicket/markup/loader/DefaultMarkupLoader.java
URL: http://svn.apache.org/viewvc/incubator/wicket/trunk/wicket/src/main/java/wicket/markup/loader/DefaultMarkupLoader.java?view=diff&rev=471388&r1=471387&r2=471388
==============================================================================
--- incubator/wicket/trunk/wicket/src/main/java/wicket/markup/loader/DefaultMarkupLoader.java (original)
+++ incubator/wicket/trunk/wicket/src/main/java/wicket/markup/loader/DefaultMarkupLoader.java Sun Nov 5 01:49:41 2006
@@ -22,7 +22,6 @@
import wicket.Application;
import wicket.MarkupContainer;
-import wicket.markup.MarkupElement;
import wicket.markup.MarkupFragment;
import wicket.markup.MarkupResourceStream;
import wicket.util.resource.ResourceStreamNotFoundException;
@@ -60,42 +59,6 @@
MarkupFragment markup = application.getMarkupSettings().getMarkupParserFactory()
.newMarkupParser(markupResourceStream).readAndParse();
- checkHeaders(markup);
-
return markup;
- }
-
- /**
- * On Pages with wicket:head and automatically added head tag, move the
- * wicket:head tags inside the head tag.
- *
- * @param markup
- */
- private void checkHeaders(final MarkupFragment markup)
- {
- final MarkupFragment header = MarkupFragmentUtils.getHeadTag(markup);
- if (header != null)
- {
- markup.visitChildren(MarkupFragment.class, new MarkupFragment.IVisitor()
- {
- public Object visit(final MarkupElement element, final MarkupFragment parent)
- {
- if (element == header)
- {
- return CONTINUE_TRAVERSAL_BUT_DONT_GO_DEEPER;
- }
-
- if (((MarkupFragment)element).getTag().isWicketHeadTag())
- {
- if (parent.removeMarkupElement(element) == true)
- {
- header.addMarkupElement(header.size() - 1, element);
- }
- }
-
- return CONTINUE_TRAVERSAL;
- }
- });
- }
}
}
Added: incubator/wicket/trunk/wicket/src/main/java/wicket/markup/loader/HeaderCleanupMarkupLoader.java
URL: http://svn.apache.org/viewvc/incubator/wicket/trunk/wicket/src/main/java/wicket/markup/loader/HeaderCleanupMarkupLoader.java?view=auto&rev=471388
==============================================================================
--- incubator/wicket/trunk/wicket/src/main/java/wicket/markup/loader/HeaderCleanupMarkupLoader.java (added)
+++ incubator/wicket/trunk/wicket/src/main/java/wicket/markup/loader/HeaderCleanupMarkupLoader.java Sun Nov 5 01:49:41 2006
@@ -0,0 +1,94 @@
+/*
+ * $Id: MarkupCache.java 4639 2006-02-26 01:44:07 -0800 (Sun, 26 Feb 2006)
+ * jdonnerstag $ $Revision$ $Date: 2006-02-26 01:44:07 -0800 (Sun, 26 Feb
+ * 2006) $
+ *
+ * ==============================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package wicket.markup.loader;
+
+import java.io.IOException;
+
+import wicket.Application;
+import wicket.MarkupContainer;
+import wicket.markup.MarkupElement;
+import wicket.markup.MarkupFragment;
+import wicket.markup.MarkupResourceStream;
+import wicket.util.resource.ResourceStreamNotFoundException;
+
+/**
+ * On Pages with <wicket:head> and automatically added head tag, it
+ * can happen that <wicket:head> tags are not inside the <head> tag.
+ * Change it by moving <wicket:head> into the <head> tag
+ *
+ * @author Juergen Donnerstag
+ */
+public class HeaderCleanupMarkupLoader extends AbstractMarkupLoader
+{
+ /** The Wicket application */
+ private final Application application;
+
+ /**
+ * Constructor.
+ *
+ * @param application
+ */
+ public HeaderCleanupMarkupLoader(final Application application)
+ {
+ this.application = application;
+ }
+
+ /**
+ * @see wicket.markup.loader.IMarkupLoader#loadMarkup(wicket.MarkupContainer,
+ * wicket.markup.MarkupResourceStream)
+ */
+ public final MarkupFragment loadMarkup(final MarkupContainer container,
+ final MarkupResourceStream markupResourceStream) throws IOException,
+ ResourceStreamNotFoundException
+ {
+ // Invoke the parent markup loader to read and parse the markup
+ final MarkupFragment markup = super.loadMarkup(container, markupResourceStream);
+
+ // On Pages with <wicket:head> and automatically added head tag, it
+ // can happen that <wicket:head> tags are not inside the <head> tag.
+ // Change it by moviing <wicket:head> into the <head> tag
+
+ final MarkupFragment header = MarkupFragmentUtils.getHeadTag(markup);
+ if (header != null)
+ {
+ markup.visitChildren(MarkupFragment.class, new MarkupFragment.IVisitor()
+ {
+ public Object visit(final MarkupElement element, final MarkupFragment parent)
+ {
+ if (element == header)
+ {
+ return CONTINUE_TRAVERSAL_BUT_DONT_GO_DEEPER;
+ }
+
+ if (((MarkupFragment)element).getTag().isWicketHeadTag())
+ {
+ if (parent.removeMarkupElement(element) == true)
+ {
+ header.addMarkupElement(header.size() - 1, element);
+ }
+ }
+
+ return CONTINUE_TRAVERSAL;
+ }
+ });
+ }
+
+ return markup;
+ }
+}
Propchange: incubator/wicket/trunk/wicket/src/main/java/wicket/markup/loader/HeaderCleanupMarkupLoader.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/wicket/trunk/wicket/src/main/java/wicket/markup/loader/HeaderCleanupMarkupLoader.java
------------------------------------------------------------------------------
svn:keywords = "LastChangedDate LastChangedRevision URL"