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/07/03 02:05:38 UTC

wicket git commit: further improvments to remove side effects on tag id inside implementations of IComponentResolver#resolve

Repository: wicket
Updated Branches:
  refs/heads/master a8191cce6 -> baa73939a


further improvments to remove side effects on tag id inside implementations of IComponentResolver#resolve


Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/baa73939
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/baa73939
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/baa73939

Branch: refs/heads/master
Commit: baa73939a48e3cadf16260cb820f7b4917f7dac3
Parents: a8191cc
Author: Andrea Del Bene <ad...@apache.org>
Authored: Fri Jul 3 02:05:15 2015 +0200
Committer: Andrea Del Bene <ad...@apache.org>
Committed: Fri Jul 3 02:05:15 2015 +0200

----------------------------------------------------------------------
 .../wicket/markup/html/form/AutoLabelResolver.java   |  9 ++++++---
 .../wicket/markup/html/form/AutoLabelTagHandler.java |  2 +-
 .../markup/html/form/AutoLabelTextResolver.java      |  2 +-
 .../markup/parser/filter/WicketLinkTagHandler.java   |  4 ++--
 .../parser/filter/WicketMessageTagHandler.java       |  5 ++---
 .../wicket/markup/resolver/AutoLinkResolver.java     | 15 +++++----------
 .../markup/resolver/WicketMessageResolver.java       |  2 +-
 ...sureWithWicketMessagePage_invisible_expected.html |  2 +-
 ...losureWithWicketMessagePage_visible_expected.html |  2 +-
 9 files changed, 20 insertions(+), 23 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/baa73939/wicket-core/src/main/java/org/apache/wicket/markup/html/form/AutoLabelResolver.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/AutoLabelResolver.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/AutoLabelResolver.java
index 57df641..e3e400e 100644
--- a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/AutoLabelResolver.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/AutoLabelResolver.java
@@ -72,20 +72,23 @@ public class AutoLabelResolver implements IComponentResolver
 	private static final Logger logger = LoggerFactory.getLogger(AutoLabelResolver.class);
 
 	static final String WICKET_FOR = ":for";
-
+	
+	public static final String LABEL_ATTR = "label_attr";
+	
 	public static final String CSS_REQUIRED_KEY = CssUtils.key(AutoLabel.class, "required");
 	public static final String CSS_DISABLED_KEY = CssUtils.key(AutoLabel.class, "disabled");
 	public static final String CSS_ERROR_KEY = CssUtils.key(AutoLabel.class, "error");
 	private static final String CSS_DISABLED_DEFAULT = "disabled";
 	private static final String CSS_REQUIRED_DEFAULT = "required";
 	private static final String CSS_ERROR_DEFAULT = "error";
+	
 
 
 	@Override
 	public Component resolve(final MarkupContainer container, final MarkupStream markupStream,
 		final ComponentTag tag)
 	{
-		if (!AutoLabelTagHandler.class.getName().equals(tag.getId()))
+		if (!tag.getId().startsWith(LABEL_ATTR))
 		{
 			return null;
 		}
@@ -121,7 +124,7 @@ public class AutoLabelResolver implements IComponentResolver
 			component.setMetaData(MARKER_KEY, new AutoLabelMarker((FormComponent<?>)component));
 		}
 
-		return new AutoLabel("label" + container.getPage().getAutoIndex(), component);
+		return new AutoLabel(tag.getId(), component);
 	}
 
 	private String getWicketNamespace(MarkupStream markupStream)

http://git-wip-us.apache.org/repos/asf/wicket/blob/baa73939/wicket-core/src/main/java/org/apache/wicket/markup/html/form/AutoLabelTagHandler.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/AutoLabelTagHandler.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/AutoLabelTagHandler.java
index 9387ff1..08c25e3 100644
--- a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/AutoLabelTagHandler.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/AutoLabelTagHandler.java
@@ -70,7 +70,7 @@ public class AutoLabelTagHandler extends AbstractMarkupFilter
 				"Attribute wicket:for cannot be used in conjunction with wicket:id", tag.getPos());
 		}
 
-		tag.setId(getClass().getName());
+		tag.setId(AutoLabelResolver.LABEL_ATTR + getRequestUniqueId());
 		tag.setModified(true);
 		tag.setAutoComponentTag(true);
 		return tag;

http://git-wip-us.apache.org/repos/asf/wicket/blob/baa73939/wicket-core/src/main/java/org/apache/wicket/markup/html/form/AutoLabelTextResolver.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/AutoLabelTextResolver.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/AutoLabelTextResolver.java
index eba42ce..bf48aaa 100644
--- a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/AutoLabelTextResolver.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/AutoLabelTextResolver.java
@@ -262,7 +262,7 @@ public class AutoLabelTextResolver implements IComponentResolver
 			else
 			{
 				// ...found the form component, so we can return our label.
-				return new TextLabel("label" + container.getPage().getAutoIndex(), related);
+				return new TextLabel(tag.getId(), related);
 			}
 		}
 		return null;

http://git-wip-us.apache.org/repos/asf/wicket/blob/baa73939/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/WicketLinkTagHandler.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/WicketLinkTagHandler.java b/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/WicketLinkTagHandler.java
index e89ac92..9797dac 100644
--- a/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/WicketLinkTagHandler.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/WicketLinkTagHandler.java
@@ -107,7 +107,7 @@ public class WicketLinkTagHandler extends AbstractMarkupFilter implements ICompo
 			tag.enableAutolink(true);
 
 			// Just a dummy name. The ComponentTag will not be forwarded.
-			tag.setId(AUTOLINK_ID);
+			tag.setId(AUTOLINK_ID + getRequestUniqueId());
 			tag.setAutoComponentTag(true);
 			tag.setModified(true);
 			return tag;
@@ -209,7 +209,7 @@ public class WicketLinkTagHandler extends AbstractMarkupFilter implements ICompo
 			WicketTag wtag = (WicketTag)tag;
 			if (wtag.isLinkTag() && (wtag.getNamespace() != null))
 			{
-				String id = tag.getId() + "-" + container.getPage().getAutoIndex();
+				String id = tag.getId();
 
 				return new TransparentWebMarkupContainer(id);
 			}

http://git-wip-us.apache.org/repos/asf/wicket/blob/baa73939/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/WicketMessageTagHandler.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/WicketMessageTagHandler.java b/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/WicketMessageTagHandler.java
index 85db394..611b32f 100644
--- a/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/WicketMessageTagHandler.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/WicketMessageTagHandler.java
@@ -91,7 +91,7 @@ public final class WicketMessageTagHandler extends AbstractMarkupFilter
 				// if this is a raw tag we need to set the id to something so
 				// that wicket will not merge this as raw markup and instead
 				// pass it on to a resolver
-				tag.setId(getWicketMessageIdPrefix(null));
+				tag.setId(getWicketMessageIdPrefix(null) + getRequestUniqueId());
 				tag.setAutoComponentTag(true);
 				tag.setModified(true);
 			}
@@ -166,8 +166,7 @@ public final class WicketMessageTagHandler extends AbstractMarkupFilter
 		if ((tag != null) && (tag.getId().startsWith(getWicketMessageIdPrefix(markupStream))))
 		{
 			Component wc;
-			int autoIndex = container.getPage().getAutoIndex();
-			String id = getWicketMessageIdPrefix(markupStream) + autoIndex;
+			String id = tag.getId();
 
 			if (tag.isOpenClose())
 			{

http://git-wip-us.apache.org/repos/asf/wicket/blob/baa73939/wicket-core/src/main/java/org/apache/wicket/markup/resolver/AutoLinkResolver.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/resolver/AutoLinkResolver.java b/wicket-core/src/main/java/org/apache/wicket/markup/resolver/AutoLinkResolver.java
index f472827..cbd2f1f 100644
--- a/wicket-core/src/main/java/org/apache/wicket/markup/resolver/AutoLinkResolver.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/resolver/AutoLinkResolver.java
@@ -31,7 +31,6 @@ import org.apache.wicket.markup.MarkupStream;
 import org.apache.wicket.markup.html.WebMarkupContainer;
 import org.apache.wicket.markup.html.link.BookmarkablePageLink;
 import org.apache.wicket.markup.html.link.ExternalLink;
-import org.apache.wicket.markup.parser.filter.WicketLinkTagHandler;
 import org.apache.wicket.protocol.http.RequestUtils;
 import org.apache.wicket.request.handler.resource.ResourceReferenceRequestHandler;
 import org.apache.wicket.request.mapper.parameter.PageParameters;
@@ -845,7 +844,7 @@ public final class AutoLinkResolver implements IComponentResolver
 			// Try to find the Page matching the href
 			// Note: to not use tag.getId() because it will be modified while
 			// resolving the link and hence the 2nd render will fail.
-			Component link = resolveAutomaticLink(pathInfo, WicketLinkTagHandler.AUTOLINK_ID, tag);
+			Component link = resolveAutomaticLink(pathInfo, tag);
 
 			if (log.isDebugEnabled())
 			{
@@ -875,14 +874,10 @@ public final class AutoLinkResolver implements IComponentResolver
 	 *            the component tag
 	 * @return A BookmarkablePageLink<?> to handle the href
 	 */
-	private Component resolveAutomaticLink(final PathInfo pathInfo, final String id,
-		final ComponentTag tag)
+	private Component resolveAutomaticLink(final PathInfo pathInfo, final ComponentTag tag)
 	{
 		final MarkupContainer container = pathInfo.getContainer();
-		final Page page = container.getPage();
-
-		// Make the id (page-)unique
-		final String autoId = id + Integer.toString(page.getAutoIndex());
+		final String componentId = tag.getId();
 
 		// get the tag name, which is something like 'a' or 'script'
 		final String tagName = tag.getName();
@@ -899,7 +894,7 @@ public final class AutoLinkResolver implements IComponentResolver
 		Component autoComponent = null;
 		if (autolinkResolverDelegate != null)
 		{
-			autoComponent = autolinkResolverDelegate.newAutoComponent(autoId, pathInfo);
+			autoComponent = autolinkResolverDelegate.newAutoComponent(componentId, pathInfo);
 		}
 
 		if (autoComponent == null)
@@ -907,7 +902,7 @@ public final class AutoLinkResolver implements IComponentResolver
 			// resolving didn't have the desired result or there was no delegate
 			// found; fallback on the default resolving which is a simple
 			// component that leaves the tag unchanged
-			autoComponent = new AutolinkExternalLink(autoId, pathInfo.reference);
+			autoComponent = new AutolinkExternalLink(componentId, pathInfo.reference);
 		}
 
 		return autoComponent;

http://git-wip-us.apache.org/repos/asf/wicket/blob/baa73939/wicket-core/src/main/java/org/apache/wicket/markup/resolver/WicketMessageResolver.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/resolver/WicketMessageResolver.java b/wicket-core/src/main/java/org/apache/wicket/markup/resolver/WicketMessageResolver.java
index d2f841f..f2f99f8 100644
--- a/wicket-core/src/main/java/org/apache/wicket/markup/resolver/WicketMessageResolver.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/resolver/WicketMessageResolver.java
@@ -134,7 +134,7 @@ public class WicketMessageResolver implements IComponentResolver
 
 				boolean escape = attributes.getBoolean(ESCAPE_ATTRIBUTE);
 
-				final String id = "_message_" + container.getPage().getAutoIndex();
+				final String id = wtag.getId();
 				MessageContainer label = new MessageContainer(id, messageKey, escape);
 				label.setRenderBodyOnly(container.getApplication()
 					.getMarkupSettings()

http://git-wip-us.apache.org/repos/asf/wicket/blob/baa73939/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/InlineEnclosureWithWicketMessagePage_invisible_expected.html
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/InlineEnclosureWithWicketMessagePage_invisible_expected.html b/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/InlineEnclosureWithWicketMessagePage_invisible_expected.html
index f459aa8..ea1d13e 100644
--- a/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/InlineEnclosureWithWicketMessagePage_invisible_expected.html
+++ b/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/InlineEnclosureWithWicketMessagePage_invisible_expected.html
@@ -21,6 +21,6 @@
 	<title>Wicket 4520</title>
 </head>
 <body>
-	<div id="wicket__message__attr__1" style="display:none"></div>
+	<div id="wicket__message__attr__01" style="display:none"></div>
 </body>
 </html>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/wicket/blob/baa73939/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/InlineEnclosureWithWicketMessagePage_visible_expected.html
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/InlineEnclosureWithWicketMessagePage_visible_expected.html b/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/InlineEnclosureWithWicketMessagePage_visible_expected.html
index ca9f05a..c61bd39 100644
--- a/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/InlineEnclosureWithWicketMessagePage_visible_expected.html
+++ b/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/InlineEnclosureWithWicketMessagePage_visible_expected.html
@@ -21,7 +21,7 @@
 	<title>Wicket 4520</title>
 </head>
 <body>
-	<div id="wicket__message__attr__1" title="Some title">
+	<div id="wicket__message__attr__01" title="Some title">
 		<div>Inner div
 			<span>A Label</span>
 		</div>