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>