Behaviors are kind of plug-ins for Components. They allow to be added to a component and get essential events forwarded by the component. they can be bound to a concrete component (using the bind method is called when the behavior is attached), but they don't need to. They can modify the components markup by changing the rendered ComponentTag. Behaviors can have their own models as well, and they are notified when these are to be detached by the component.
It is recommended that you extend from {@link org.apache.wicket.behavior.AbstractBehavior}instead of directly implementing this interface.
@see org.apache.wicket.behavior.IBehaviorListener
@see org.apache.wicket.markup.html.IHeaderContributor
@see org.apache.wicket.behavior.AbstractAjaxBehavior
@see org.apache.wicket.AttributeModifier
@author Ralf Ebert
@author Eelco Hillenius
@author Igor Vaynberg (ivaynberg)