Package org.apache.wicket.behavior
Class AttributeAppender
- java.lang.Object
-
- org.apache.wicket.behavior.Behavior
-
- org.apache.wicket.AttributeModifier
-
- org.apache.wicket.behavior.AttributeAppender
-
- All Implemented Interfaces:
Serializable
,IComponentAwareEventSink
,IComponentAwareHeaderContributor
,IClusterable
- Direct Known Subclasses:
ClassAttributeModifier
,StyleAttributeModifier
public class AttributeAppender extends AttributeModifier
AttributeModifier that appends the given value, rather than replace it. This is especially useful for adding CSS classes to markup elements, or adding JavaScript snippets to existing element handlers.<a href="#" wicket:id="foo" class="link" onmouseover="doSomething()">
can be modified with these AttributeAppenders:link.add(new AttributeAppender("class", Model.of("hot"))); link.add(new AttributeAppender("onmouseover", Model.of("foo();return false;")).setSeparator(";"));
this will result in the following markup:<a href="#" wicket:id="foo" class="link hot" onmouseover="doSomething();foo();return false;">
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.apache.wicket.AttributeModifier
AttributeModifier.MarkerValue
-
-
Field Summary
-
Fields inherited from class org.apache.wicket.AttributeModifier
VALUELESS_ATTRIBUTE_ADD, VALUELESS_ATTRIBUTE_REMOVE
-
-
Constructor Summary
Constructors Constructor Description AttributeAppender(String attribute, Serializable value)
Creates an attribute modifier that appends thevalue
to the attribute's current value, optionally separated by theseparator
.AttributeAppender(String attribute, Serializable value, String separator)
Creates an AttributeModifier that appends the value to the current value of the attribute, and will add the attribute when it is not there already.AttributeAppender(String attribute, IModel<?> replaceModel)
Creates an attribute modifier that concatenates thereplaceModel
to the attribute's current value, optionally separated by theseparator
.AttributeAppender(String attribute, IModel<?> appendModel, String separator)
Creates an AttributeModifier that appends the appendModel's value to the current value of the attribute, and will add the attribute when it is not there already.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description String
getSeparator()
Gets the separator used by attribute appenders and prependers.protected Serializable
newValue(String currentValue, String appendValue)
Gets the value that should replace the current attribute value.AttributeAppender
setSeparator(String separator)
Sets the separator used by attribute appenders and prependers.String
toString()
-
Methods inherited from class org.apache.wicket.AttributeModifier
append, append, detach, getAttribute, getReplaceModel, onComponentTag, prepend, prepend, remove, replace, replace, replaceAttributeValue
-
Methods inherited from class org.apache.wicket.behavior.Behavior
afterRender, beforeRender, bind, canCallListener, getStatelessHint, isEnabled, isTemporary, onAttribute, onConfigure, onEvent, onException, onRemove, onTag, renderHead, unbind
-
-
-
-
Constructor Detail
-
AttributeAppender
public AttributeAppender(String attribute, IModel<?> replaceModel)
Creates an attribute modifier that concatenates thereplaceModel
to the attribute's current value, optionally separated by theseparator
.- Parameters:
attribute
-replaceModel
-
-
AttributeAppender
public AttributeAppender(String attribute, Serializable value)
Creates an attribute modifier that appends thevalue
to the attribute's current value, optionally separated by theseparator
.- Parameters:
attribute
-value
-
-
AttributeAppender
public AttributeAppender(String attribute, Serializable value, String separator)
Creates an AttributeModifier that appends the value to the current value of the attribute, and will add the attribute when it is not there already.- Parameters:
attribute
- the attribute to append the appendModels value tovalue
- the value to appendseparator
- the separator string, comes between the original value and the append value
-
AttributeAppender
public AttributeAppender(String attribute, IModel<?> appendModel, String separator)
Creates an AttributeModifier that appends the appendModel's value to the current value of the attribute, and will add the attribute when it is not there already.- Parameters:
attribute
- the attribute to append the appendModels value toappendModel
- the model supplying the value to appendseparator
- the separator string, comes between the original value and the append value
-
-
Method Detail
-
getSeparator
public String getSeparator()
Gets the separator used by attribute appenders and prependers.- Returns:
- the separator used by attribute appenders and prependers.
-
setSeparator
public AttributeAppender setSeparator(String separator)
Sets the separator used by attribute appenders and prependers.- Parameters:
separator
- a space, semicolon or other character used to separate the current value and the appended/prepended value.- Returns:
- this
-
newValue
protected Serializable newValue(String currentValue, String appendValue)
Description copied from class:AttributeModifier
Gets the value that should replace the current attribute value. This gives users the ultimate means to customize what will be used as the attribute value. For instance, you might decide to append the replacement value to the current instead of just replacing it as is Wicket's default.- Overrides:
newValue
in classAttributeModifier
- Parameters:
currentValue
- The current attribute value. This value might be null!appendValue
- The replacement value. This value might be null!- Returns:
- The value that should replace the current attribute value
-
toString
public String toString()
- Overrides:
toString
in classAttributeModifier
-
-