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 2010/10/17 12:51:06 UTC
svn commit: r1023452 - in
/wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html:
WebMarkupContainerWithAssociatedMarkup.java border/Border.java
form/FormComponentPanel.java panel/Panel.java
Author: jdonnerstag
Date: Sun Oct 17 10:51:06 2010
New Revision: 1023452
URL: http://svn.apache.org/viewvc?rev=1023452&view=rev
Log:
eliminated copy & paste around getMarkup() with Panel and FormComponentPanel
Modified:
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/WebMarkupContainerWithAssociatedMarkup.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/border/Border.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/form/FormComponentPanel.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/panel/Panel.java
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/WebMarkupContainerWithAssociatedMarkup.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/WebMarkupContainerWithAssociatedMarkup.java?rev=1023452&r1=1023451&r2=1023452&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/WebMarkupContainerWithAssociatedMarkup.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/WebMarkupContainerWithAssociatedMarkup.java Sun Oct 17 10:51:06 2010
@@ -88,13 +88,12 @@ public class WebMarkupContainerWithAssoc
/**
* Search the child's markup in the header section of the markup
*
- * @param markup
* @param child
* @return Null, if not found
*/
- public IMarkupFragment findMarkupInAssociatedFileHeader(final IMarkupFragment markup,
- final Component child)
+ public IMarkupFragment findMarkupInAssociatedFileHeader(final Component child)
{
+ IMarkupFragment markup = getAssociatedMarkup();
IMarkupFragment childMarkup = null;
MarkupStream stream = new MarkupStream(markup);
while (stream.skipUntil(ComponentTag.class) && (childMarkup == null))
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/border/Border.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/border/Border.java?rev=1023452&r1=1023451&r2=1023452&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/border/Border.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/border/Border.java Sun Oct 17 10:51:06 2010
@@ -405,7 +405,7 @@ public abstract class Border extends Web
return childMarkup;
}
- return findMarkupInAssociatedFileHeader(markup, child);
+ return findMarkupInAssociatedFileHeader(child);
}
/**
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/form/FormComponentPanel.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/form/FormComponentPanel.java?rev=1023452&r1=1023451&r2=1023452&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/form/FormComponentPanel.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/form/FormComponentPanel.java Sun Oct 17 10:51:06 2010
@@ -19,12 +19,11 @@ package org.apache.wicket.markup.html.fo
import org.apache.wicket.Component;
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;
import org.apache.wicket.markup.html.ContainerWithAssociatedMarkupHelper;
import org.apache.wicket.markup.html.internal.HtmlHeaderContainer;
import org.apache.wicket.markup.html.panel.Panel;
+import org.apache.wicket.markup.html.panel.Panel.PanelMarkupHelper;
import org.apache.wicket.markup.parser.XmlTag;
import org.apache.wicket.markup.parser.filter.WicketTagIdentifier;
import org.apache.wicket.model.IModel;
@@ -226,66 +225,6 @@ public abstract class FormComponentPanel
@Override
public IMarkupFragment getMarkup(final Component child)
{
- IMarkupFragment markup = getAssociatedMarkup();
- if (markup == null)
- {
- throw new MarkupException("Failed to find associated markup file. Component: " +
- toString());
- }
-
- // Find <wicket:panel>
- IMarkupFragment panelMarkup = findPanelTag(markup);
- if (panelMarkup == null)
- {
- throw new MarkupException(
- "Expected to find <wicket:panel> in associated markup file. Markup: " +
- markup.toString());
- }
-
- // If child == null, return the markup starting with <wicket:panel>
- if (child == null)
- {
- return panelMarkup;
- }
-
- // else, find the markup fragment for the child component
- return panelMarkup.find(child.getId());
- }
-
- /**
- * Search for <wicket:'name' ...> on the same level, but ignoring other "transparent" tags
- * such as <wicket:enclosure> etc.
- *
- * @param markup
- * @param name
- * @return null, if not found
- */
- private final IMarkupFragment findPanelTag(final IMarkupFragment markup)
- {
- MarkupStream stream = new MarkupStream(markup);
-
- while (stream.skipUntil(ComponentTag.class))
- {
- ComponentTag tag = stream.getTag();
- if (tag.isOpen() || tag.isOpenClose())
- {
- if (tag instanceof WicketTag)
- {
- WicketTag wtag = (WicketTag)tag;
- if (wtag.isPanelTag())
- {
- return stream.getMarkupFragment();
- }
- }
- if (tag.isOpen() && !tag.hasNoCloseTag() && !(tag instanceof WicketTag))
- {
- stream.skipToMatchingCloseTag(tag);
- }
- }
-
- stream.next();
- }
-
- return null;
+ return PanelMarkupHelper.getMarkup(this, child);
}
}
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/panel/Panel.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/panel/Panel.java?rev=1023452&r1=1023451&r2=1023452&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/panel/Panel.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/panel/Panel.java Sun Oct 17 10:51:06 2010
@@ -17,6 +17,7 @@
package org.apache.wicket.markup.html.panel;
import org.apache.wicket.Component;
+import org.apache.wicket.MarkupContainer;
import org.apache.wicket.markup.ComponentTag;
import org.apache.wicket.markup.IMarkupFragment;
import org.apache.wicket.markup.MarkupException;
@@ -138,68 +139,87 @@ public abstract class Panel extends WebM
@Override
public IMarkupFragment getMarkup(final Component child)
{
- IMarkupFragment markup = getAssociatedMarkup();
- if (markup == null)
+ IMarkupFragment markup = PanelMarkupHelper.getMarkup(this, child);
+ if ((child == null) || (markup != null))
{
- throw new MarkupNotFoundException(
- "Failed to find markup file associated with panel. Panel: " + this.toString());
+ return markup;
}
- // Find <wicket:panel>
- IMarkupFragment panelMarkup = findPanelTag(markup);
- if (panelMarkup == null)
- {
- throw new MarkupNotFoundException(
- "Expected to find <wicket:panel> in associated markup file. Markup: " +
- markup.toString());
- }
-
- // If child == null, than return the markup fragment starting with <wicket:panel>
- if (child == null)
- {
- return panelMarkup;
- }
-
- // Find the markup for the child component
- IMarkupFragment childMarkup = panelMarkup.find(child.getId());
- if (childMarkup != null)
- {
- return childMarkup;
- }
-
- return findMarkupInAssociatedFileHeader(markup, child);
+ return findMarkupInAssociatedFileHeader(child);
}
/**
- * Search for <wicket:panel ...> on the same level.
+ * Re-useable helper
*
- * @param markup
- * @param name
- * @return null, if not found
*/
- private final IMarkupFragment findPanelTag(final IMarkupFragment markup)
+ public static class PanelMarkupHelper
{
- MarkupStream stream = new MarkupStream(markup);
+ /**
+ * @see org.apache.wicket.MarkupContainer#getMarkup(org.apache.wicket.Component)
+ *
+ * @param parent
+ * @param child
+ * @return The markup associated with the child
+ */
+ public static IMarkupFragment getMarkup(final MarkupContainer parent, final Component child)
+ {
+ IMarkupFragment markup = parent.getAssociatedMarkup();
+ if (markup == null)
+ {
+ throw new MarkupNotFoundException("Failed to find markup file associated. " +
+ parent.getClass().getSimpleName() + ": " + parent.toString());
+ }
- while (stream.skipUntil(ComponentTag.class))
+ // Find <wicket:panel>
+ IMarkupFragment panelMarkup = findPanelTag(markup);
+ if (panelMarkup == null)
+ {
+ throw new MarkupNotFoundException(
+ "Expected to find <wicket:panel> in associated markup file. Markup: " +
+ markup.toString());
+ }
+
+ // If child == null, than return the markup fragment starting with <wicket:panel>
+ if (child == null)
+ {
+ return panelMarkup;
+ }
+
+ // Find the markup for the child component
+ return panelMarkup.find(child.getId());
+ }
+
+ /**
+ * Search for <wicket:panel ...> on the same level.
+ *
+ * @param markup
+ * @param name
+ * @return null, if not found
+ */
+ private final static IMarkupFragment findPanelTag(final IMarkupFragment markup)
{
- ComponentTag tag = stream.getTag();
- if (tag.isOpen() || tag.isOpenClose())
+ MarkupStream stream = new MarkupStream(markup);
+
+ while (stream.skipUntil(ComponentTag.class))
{
- if (tag instanceof WicketTag)
+ ComponentTag tag = stream.getTag();
+ if (tag.isOpen() || tag.isOpenClose())
{
- WicketTag wtag = (WicketTag)tag;
- if (wtag.isPanelTag())
+ if (tag instanceof WicketTag)
{
- return stream.getMarkupFragment();
+ WicketTag wtag = (WicketTag)tag;
+ if (wtag.isPanelTag())
+ {
+ return stream.getMarkupFragment();
+ }
}
+ stream.skipToMatchingCloseTag(tag);
}
- stream.skipToMatchingCloseTag(tag);
+
+ stream.next();
}
- stream.next();
+ return null;
}
-
- return null;
}
}