Author: mgrigorov
Date: Fri May 6 10:20:37 2011
New Revision: 1100160
URL: http://svn.apache.org/viewvc?rev=1100160&view=rev
Log:
WICKET-3608 input button escapes escaped value
Move the check for setting manually the attribute 'id' in ComponentTag.
This way it is related to user-space code (onComponentTag(tag) {tag.put("id",
"value")}).
reviewed-by: jdo
Modified:
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/Component.java
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/ComponentTag.java
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/TagAttributes.java
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/XmlPullParser.java
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/HeadForceTagIdHandler.java
Modified:
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/Component.java
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/Component.java?rev=1100160&r1=1100159&r2=1100160&view=diff
==============================================================================
--- wicket/trunk/wicket-core/src/main/java/org/apache/wicket/Component.java
(original)
+++ wicket/trunk/wicket-core/src/main/java/org/apache/wicket/Component.java Fri
May 6 10:20:37 2011
@@ -2289,8 +2289,8 @@ public abstract class Component
* removed cannot be referenced from the markup still.
* <p>
* You must not use this method in your callback to any of the
- * {@link MarkupContainer#visitChildren(IVisitor)} methods. See
- * <a
href="https://issues.apache.org/jira/browse/WICKET-3229">WICKET-3329</a>.
+ * {@link MarkupContainer#visitChildren(IVisitor)} methods. See <a
+ *
href="https://issues.apache.org/jira/browse/WICKET-3229">WICKET-3329</a>.
*/
public final void remove()
{
@@ -2674,7 +2674,7 @@ public abstract class Component
* Make sure that all attached behaviors are asked as well.
* <p>
* NOT intended for overriding by framework clients. Rather, use
- * {@link
Component#renderHead(org.apache.wicket.markup.html.IHeaderResponse)}}
+ * {@link
Component#renderHead(org.apache.wicket.markup.html.IHeaderResponse)}
* </p>
*
* @param container
@@ -3832,7 +3832,7 @@ public abstract class Component
// component <-> markup relation)
if (getFlag(FLAG_OUTPUT_MARKUP_ID))
{
- tag.put(MARKUP_ID_ATTR_NAME, getMarkupId());
+ tag.putInternal(MARKUP_ID_ATTR_NAME, getMarkupId());
}
if (getApplication().getDebugSettings().isOutputComponentPath())
@@ -4381,10 +4381,10 @@ public abstract class Component
}
/**
- * CAUTION: this method is not meant to be overridden like it was in
wicket 1.4 when implementing
- * {@link IHeaderContributor}. overload
- * {@link
Component#renderHead(org.apache.wicket.markup.html.IHeaderResponse)}
- * instead to contribute to the response header.
+ * CAUTION: this method is not meant to be overridden like it was in
wicket 1.4 when
+ * implementing {@link IHeaderContributor}. overload
+ * {@link
Component#renderHead(org.apache.wicket.markup.html.IHeaderResponse)} instead to
+ * contribute to the response header.
*
* @param component
* @param response
Modified:
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/ComponentTag.java
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/ComponentTag.java?rev=1100160&r1=1100159&r2=1100160&view=diff
==============================================================================
---
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/ComponentTag.java
(original)
+++
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/ComponentTag.java
Fri May 6 10:20:37 2011
@@ -35,6 +35,8 @@ import org.apache.wicket.util.string.App
import org.apache.wicket.util.string.StringValue;
import org.apache.wicket.util.string.Strings;
import org.apache.wicket.util.value.IValueMap;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
@@ -47,6 +49,9 @@ import org.apache.wicket.util.value.IVal
*/
public class ComponentTag extends MarkupElement
{
+ /** Log. */
+ private static final Logger log =
LoggerFactory.getLogger(ComponentTag.class);
+
/** True if a href attribute is available and autolinking is on */
private final static int AUTOLINK = 0x0001;
@@ -478,11 +483,37 @@ public class ComponentTag extends Markup
*/
public final void put(String key, CharSequence value)
{
+ checkIdAttribute(key);
+ putInternal(key, value);
+ }
+
+ /**
+ * THIS METHOD IS NOT PART OF THE PUBLIC API, DO NOT CALL IT
+ *
+ * @see org.apache.wicket.markup.parser.XmlTag#put(String, CharSequence)
+ * @param key
+ * The key
+ * @param value
+ * The value
+ */
+ public final void putInternal(String key, CharSequence value)
+ {
xmlTag.put(key, value);
setModified(true);
}
/**
+ * @param key
+ */
+ private void checkIdAttribute(String key)
+ {
+ if ((key != null) && (key.equalsIgnoreCase("id")))
+ {
+ log.warn("Please use component.setMarkupId(String) to
change the tag's 'id' attribute.");
+ }
+ }
+
+ /**
* Appends specified {@code value} to the attribute
*
* @param key
Modified:
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/TagAttributes.java
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/TagAttributes.java?rev=1100160&r1=1100159&r2=1100160&view=diff
==============================================================================
---
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/TagAttributes.java
(original)
+++
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/TagAttributes.java
Fri May 6 10:20:37 2011
@@ -21,16 +21,12 @@ import java.util.Map;
import org.apache.wicket.util.string.Strings;
import org.apache.wicket.util.value.IValueMap;
import org.apache.wicket.util.value.ValueMap;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
/**
*
*/
public class TagAttributes extends ValueMap
{
- /** Log. */
- private static final Logger log =
LoggerFactory.getLogger(TagAttributes.class);
private static final long serialVersionUID = 1L;
@@ -57,31 +53,7 @@ public class TagAttributes extends Value
@Override
public final Object put(String key, Object value)
{
- checkIdAttribute(key);
- return putInternal(key, value);
- }
- /**
- * @param key
- */
- private void checkIdAttribute(String key)
- {
- if ((key != null) && (key.equalsIgnoreCase("id")))
- {
- log.warn("WARNING: Please use
component.setMarkupId(String) to change the tag's 'id' attribute.");
- }
- }
-
- /**
- * Modifying the 'id' attribute should be made via
Component.setMarkupId(). But the markup
- * parser must still be able to add the 'id' attribute without warning.
- *
- * @param key
- * @param value
- * @return The old value
- */
- public final Object putInternal(String key, Object value)
- {
return super.put(key, unescapeHtml(value));
}
@@ -91,7 +63,6 @@ public class TagAttributes extends Value
for (Object o : map.keySet())
{
String key = (String)o;
- checkIdAttribute(key);
}
super.putAll(map);
Modified:
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/XmlPullParser.java
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/XmlPullParser.java?rev=1100160&r1=1100159&r2=1100160&view=diff
==============================================================================
---
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/XmlPullParser.java
(original)
+++
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/XmlPullParser.java
Fri May 6 10:20:37 2011
@@ -656,7 +656,7 @@ public final class XmlPullParser impleme
final String key = attributeParser.getKey();
// Put the attribute in the attributes hash
- if (null !=
((TagAttributes)tag.getAttributes()).putInternal(key, value))
+ if (null != tag.getAttributes().put(key, value))
{
throw new ParseException("Same
attribute found twice: " + key +
getLineAndColumnText(),
input.getPosition());
Modified:
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/HeadForceTagIdHandler.java
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/HeadForceTagIdHandler.java?rev=1100160&r1=1100159&r2=1100160&view=diff
==============================================================================
---
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/HeadForceTagIdHandler.java
(original)
+++
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/HeadForceTagIdHandler.java
Fri May 6 10:20:37 2011
@@ -22,7 +22,6 @@ import org.apache.wicket.markup.Componen
import org.apache.wicket.markup.MarkupElement;
import org.apache.wicket.markup.WicketTag;
import org.apache.wicket.markup.parser.AbstractMarkupFilter;
-import org.apache.wicket.markup.parser.TagAttributes;
import org.apache.wicket.util.string.AppendingStringBuffer;
@@ -88,8 +87,7 @@ public class HeadForceTagIdHandler exten
{
if (tag.getAttributes().get("id") == null)
{
-
((TagAttributes)tag.getAttributes()).putInternal("id", headElementIdPrefix +
- nextValue());
+ tag.getAttributes().put("id",
headElementIdPrefix + nextValue());
tag.setModified(true);
}
}