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/07/04 18:51:00 UTC
svn commit: r960361 - in
/wicket/trunk/wicket/src/main/java/org/apache/wicket: MarkupContainer.java
markup/html/internal/Enclosure.java markup/resolver/ComponentResolvers.java
Author: jdonnerstag
Date: Sun Jul 4 16:51:00 2010
New Revision: 960361
URL: http://svn.apache.org/viewvc?rev=960361&view=rev
Log:
fixed WICKET-2485: issue fixed in 1.5
Issue: WICKET-2485
Modified:
wicket/trunk/wicket/src/main/java/org/apache/wicket/MarkupContainer.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/internal/Enclosure.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/resolver/ComponentResolvers.java
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/MarkupContainer.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/MarkupContainer.java?rev=960361&r1=960360&r2=960361&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/MarkupContainer.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/MarkupContainer.java Sun Jul 4 16:51:00 2010
@@ -1446,7 +1446,7 @@ public abstract class MarkupContainer ex
Component component = get(id);
if (component == null)
{
- component = ComponentResolvers.resolve(this, markupStream, tag);
+ component = ComponentResolvers.resolve(this, markupStream, tag, null);
if ((component != null) && (component.getParent() == null))
{
autoAdd(component, markupStream);
@@ -2003,7 +2003,7 @@ public abstract class MarkupContainer ex
{
if (tag instanceof WicketTag)
{
- Component component = ComponentResolvers.resolve(this, stream, tag);
+ Component component = ComponentResolvers.resolve(this, stream, tag, null);
if ((component != null) && (component.getParent() == null))
{
if (component.getId().equals(tag.getId()) == false)
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/internal/Enclosure.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/internal/Enclosure.java?rev=960361&r1=960360&r2=960361&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/internal/Enclosure.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/internal/Enclosure.java Sun Jul 4 16:51:00 2010
@@ -31,6 +31,7 @@ import org.apache.wicket.markup.html.for
import org.apache.wicket.markup.parser.filter.EnclosureHandler;
import org.apache.wicket.markup.resolver.ComponentResolvers;
import org.apache.wicket.markup.resolver.IComponentResolver;
+import org.apache.wicket.markup.resolver.ComponentResolvers.ResolverFilter;
import org.apache.wicket.request.Response;
import org.apache.wicket.request.cycle.RequestCycle;
import org.apache.wicket.response.NullResponse;
@@ -224,8 +225,15 @@ public class Enclosure extends WebMarkup
{
if (childId.equals(tag.getId()))
{
- controller = ComponentResolvers.resolveByComponentHierarchy(
- container, markupStream, tag);
+ controller = ComponentResolvers.resolve(container, markupStream,
+ tag, new ResolverFilter()
+ {
+ public boolean ignoreResolver(
+ final IComponentResolver resolver)
+ {
+ return resolver instanceof EnclosureHandler;
+ }
+ });
break;
}
}
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/resolver/ComponentResolvers.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/resolver/ComponentResolvers.java?rev=960361&r1=960360&r2=960361&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/resolver/ComponentResolvers.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/resolver/ComponentResolvers.java Sun Jul 4 16:51:00 2010
@@ -44,10 +44,11 @@ public class ComponentResolvers
* @param container
* @param markupStream
* @param tag
+ * @param filter
* @return <code>null</code> if a component was could not be found
*/
public static Component resolve(final MarkupContainer container,
- final MarkupStream markupStream, final ComponentTag tag)
+ final MarkupStream markupStream, final ComponentTag tag, final ResolverFilter filter)
{
// try to resolve using component hierarchy
Component component = resolveByComponentHierarchy(container, markupStream, tag);
@@ -55,7 +56,7 @@ public class ComponentResolvers
if (component == null)
{
// fallback to application-level resolvers
- component = resolveByApplication(container, markupStream, tag);
+ component = resolveByApplication(container, markupStream, tag, filter);
}
return component;
@@ -67,19 +68,23 @@ public class ComponentResolvers
* @param container
* @param markupStream
* @param tag
+ * @param filter
* @return Null, if no component was found
*/
- public static Component resolveByApplication(final MarkupContainer container,
- final MarkupStream markupStream, final ComponentTag tag)
+ private static Component resolveByApplication(final MarkupContainer container,
+ final MarkupStream markupStream, final ComponentTag tag, final ResolverFilter filter)
{
for (final IComponentResolver resolver : Application.get()
.getPageSettings()
.getComponentResolvers())
{
- Component component = resolver.resolve(container, markupStream, tag);
- if (component != null)
+ if ((filter == null) || (filter.ignoreResolver(resolver) == false))
{
- return component;
+ Component component = resolver.resolve(container, markupStream, tag);
+ if (component != null)
+ {
+ return component;
+ }
}
}
@@ -94,7 +99,7 @@ public class ComponentResolvers
* @param tag
* @return Null, if no component was found
*/
- public static Component resolveByComponentHierarchy(final MarkupContainer container,
+ private static Component resolveByComponentHierarchy(final MarkupContainer container,
final MarkupStream markupStream, final ComponentTag tag)
{
Component cursor = container;
@@ -114,4 +119,17 @@ public class ComponentResolvers
return null;
}
+
+ /**
+ *
+ */
+ public interface ResolverFilter
+ {
+ /**
+ *
+ * @param resolver
+ * @return true, if resolvers should be skipped
+ */
+ boolean ignoreResolver(IComponentResolver resolver);
+ }
}