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 2007/06/03 21:56:58 UTC
svn commit: r543973 - in /incubator/wicket/trunk/jdk-1.4/wicket/src:
main/java/org/apache/wicket/markup/parser/filter/
test/java/org/apache/wicket/markup/html/basic/
Author: jdonnerstag
Date: Sun Jun 3 12:56:57 2007
New Revision: 543973
URL: http://svn.apache.org/viewvc?view=rev&rev=543973
Log:
wicket-590: RelativePathPrefixHandler and WicketMessageTagHandler conflict
problem fixed. SimplePageTest enabled.
Modified:
incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/parser/filter/RelativePathPrefixHandler.java
incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/parser/filter/WicketMessageTagHandler.java
incubator/wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/markup/html/basic/SimplePageTest.java
Modified: incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/parser/filter/RelativePathPrefixHandler.java
URL: http://svn.apache.org/viewvc/incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/parser/filter/RelativePathPrefixHandler.java?view=diff&rev=543973&r1=543972&r2=543973
==============================================================================
--- incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/parser/filter/RelativePathPrefixHandler.java (original)
+++ incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/parser/filter/RelativePathPrefixHandler.java Sun Jun 3 12:56:57 2007
@@ -58,44 +58,53 @@
{
private static final long serialVersionUID = 1L;
+ /** Logging */
+ private static final Logger log = LoggerFactory.getLogger(RelativePathPrefixHandler.class);
+
/**
* The id automatically assigned to tags without an id which we need to
* prepend a relative path to.
*/
- public final static String WICKET_RELATIVE_PATH_PREFIX_CONTAINER_ID = "-relative_path_prefix";
+ public static final String WICKET_RELATIVE_PATH_PREFIX_CONTAINER_ID = "-relative_path_prefix";
/** List of attribute names considered */
private static final String attributeNames[] = new String[] { "href", "src", "background" };
- /** Logging */
- private static final Logger log = LoggerFactory.getLogger(RelativePathPrefixHandler.class);
-
- /** Behavior that adds a prefix to src, href and background attributes to make them context-relative */
+ /**
+ * Behavior that adds a prefix to src, href and background attributes to
+ * make them context-relative
+ */
public static final IBehavior RELATIVE_PATH_BEHAVIOR = new AbstractBehavior()
{
private static final long serialVersionUID = 1L;
public void onComponentTag(Component component, ComponentTag tag)
{
+ String prefix = null;
+
// Modify all relevant attributes
for (int i = 0; i < attributeNames.length; i++)
{
String attrName = attributeNames[i];
String attrValue = tag.getAttributes().getString(attrName);
- if ((attrValue != null) && (attrValue.startsWith("/") == false)
- && (attrValue.indexOf(":") < 0) && !(attrValue.startsWith("#")))
+ if ((attrValue != null) && (attrValue.startsWith("/") == false) &&
+ (attrValue.indexOf(":") < 0) && !(attrValue.startsWith("#")))
{
- String prefix = RequestCycle.get().getRequest().getRelativePathPrefixToContextRoot();
- // getRelativePathPrefix only gives us relative to the Wicket Servlet/Filter.
- // To be relative to the actual context path, we may need an extra ../ to take off the servletPath
+ if (prefix == null)
+ {
+ prefix = RequestCycle.get().getRequest().getRelativePathPrefixToContextRoot();
+ }
+
+ // getRelativePathPrefix only gives us relative to the
+ // Wicket Servlet/Filter. To be relative to the actual
+ // context path, we may need an extra ../ to take off the
+ // servletPath
attrValue = prefix + attrValue;
tag.getAttributes().put(attrName, attrValue);
}
}
-
}
-
};
/**
@@ -116,59 +125,53 @@
return tag;
}
- // Don't touch any wicket:id component
- if (tag.getId() != null)
+ // Don't touch any wicket:id component and any auto-components
+ if ((tag.getId() != null) && (tag.getId().startsWith("-") == false))
{
return tag;
}
// Work out whether we have any attributes that require us to add a
- // behaviour that prepends the relative path.
- boolean addBehaviour = false;
-
+ // behavior that prepends the relative path.
for (int i = 0; i < attributeNames.length; i++)
{
String attrName = attributeNames[i];
String attrValue = tag.getAttributes().getString(attrName);
- if ((attrValue != null) && (attrValue.startsWith("/") == false)
- && (attrValue.indexOf(":") < 0) && !(attrValue.startsWith("#")))
+ if ((attrValue != null) && (attrValue.startsWith("/") == false) &&
+ (attrValue.indexOf(":") < 0) && !(attrValue.startsWith("#")))
{
- addBehaviour = true;
+ tag.setId(WICKET_RELATIVE_PATH_PREFIX_CONTAINER_ID);
+ tag.addBehavior(RELATIVE_PATH_BEHAVIOR);
+ tag.setModified(true);
break;
}
}
- if (addBehaviour)
- {
- tag.setId(WICKET_RELATIVE_PATH_PREFIX_CONTAINER_ID);
- tag.setModified(true);
- }
-
-
return tag;
}
+ /**
+ *
+ * @see org.apache.wicket.markup.resolver.IComponentResolver#resolve(org.apache.wicket.MarkupContainer, org.apache.wicket.markup.MarkupStream, org.apache.wicket.markup.ComponentTag)
+ */
public boolean resolve(MarkupContainer container, MarkupStream markupStream, ComponentTag tag)
{
if (WICKET_RELATIVE_PATH_PREFIX_CONTAINER_ID.equals(tag.getId()))
{
- Component wc = null;
+ final Component wc;
+ String id = WICKET_RELATIVE_PATH_PREFIX_CONTAINER_ID +
+ container.getPage().getAutoIndex();
if (tag.isOpenClose())
{
- wc = new WebComponent(WICKET_RELATIVE_PATH_PREFIX_CONTAINER_ID
- + container.getPage().getAutoIndex());
+ wc = new WebComponent(id);
}
else
{
- wc = new WebMarkupContainer(WICKET_RELATIVE_PATH_PREFIX_CONTAINER_ID
- + container.getPage().getAutoIndex());
+ wc = new WebMarkupContainer(id);
}
- wc.add(RELATIVE_PATH_BEHAVIOR);
container.autoAdd(wc);
return true;
}
return false;
}
-
-
}
Modified: incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/parser/filter/WicketMessageTagHandler.java
URL: http://svn.apache.org/viewvc/incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/parser/filter/WicketMessageTagHandler.java?view=diff&rev=543973&r1=543972&r2=543973
==============================================================================
--- incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/parser/filter/WicketMessageTagHandler.java (original)
+++ incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/parser/filter/WicketMessageTagHandler.java Sun Jun 3 12:56:57 2007
@@ -90,6 +90,7 @@
final String wicketMessageAttribute = tag.getAttributes().getString(
WICKET_MESSAGE_ATTRIBUTE_NAME);
+
if ((wicketMessageAttribute != null) && (wicketMessageAttribute.trim().length() > 0))
{
// check if this tag is raw markup
@@ -99,20 +100,8 @@
// that wicket will not merge this as raw markup and instead
// pass it on to a resolver
tag.setId(WICKET_MESSAGE_CONTAINER_ID);
-
- // There is no point attaching the attributelocalizer to this
- // tag because it will be represented by an auto component and
- // they do not inherit the behaviors from their component tag
- // unlike regular components, instead the attributelocalizer
- // will be added by the code that creates the auto component
- }
- else
- {
- // if this is a component tag we attach a behavior to it that
- // will in turn be attached to the component that is attached to
- // this tag
- tag.addBehavior(ATTRIBUTE_LOCALIZER);
}
+ tag.addBehavior(new AttributeLocalizer());
}
return tag;
@@ -156,9 +145,9 @@
String attr = attrAndKey.substring(0, colon);
String key = attrAndKey.substring(colon + 1);
- String value;
// we need to call the proper getString() method based on
// whether or not we have a default value
+ final String value;
if (tag.getAttributes().containsKey(attr))
{
value = component.getString(key, null, tag.getAttributes().getString(attr));
@@ -173,6 +162,10 @@
}
}
+ /**
+ *
+ * @see org.apache.wicket.markup.resolver.IComponentResolver#resolve(org.apache.wicket.MarkupContainer, org.apache.wicket.markup.MarkupStream, org.apache.wicket.markup.ComponentTag)
+ */
public boolean resolve(MarkupContainer container, MarkupStream markupStream, ComponentTag tag)
{
// localize any raw markup that has wicket:message attrs
@@ -190,7 +183,7 @@
wc = new WebMarkupContainer(WICKET_MESSAGE_CONTAINER_ID
+ container.getPage().getAutoIndex());
}
- wc.add(new AttributeLocalizer());
+
container.autoAdd(wc);
return true;
}
Modified: incubator/wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/markup/html/basic/SimplePageTest.java
URL: http://svn.apache.org/viewvc/incubator/wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/markup/html/basic/SimplePageTest.java?view=diff&rev=543973&r1=543972&r2=543973
==============================================================================
--- incubator/wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/markup/html/basic/SimplePageTest.java (original)
+++ incubator/wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/markup/html/basic/SimplePageTest.java Sun Jun 3 12:56:57 2007
@@ -330,7 +330,7 @@
public void testRenderHomePage_7() throws Exception
{
// TODO this is for issue https://issues.apache.org/jira/browse/WICKET-590
- // executeTest(SimplePage_7.class, "SimplePageExpectedResult_7.html");
+ executeTest(SimplePage_7.class, "SimplePageExpectedResult_7.html");
}
/**