Package org.apache.wicket.ajax.form
Class AjaxFormComponentUpdatingBehavior
- java.lang.Object
-
- org.apache.wicket.behavior.Behavior
-
- org.apache.wicket.behavior.AbstractAjaxBehavior
-
- org.apache.wicket.ajax.AbstractDefaultAjaxBehavior
-
- org.apache.wicket.ajax.AjaxEventBehavior
-
- org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior
-
- All Implemented Interfaces:
Serializable
,IComponentAwareEventSink
,IRequestListener
,IComponentAwareHeaderContributor
,IClusterable
- Direct Known Subclasses:
AjaxFormChoiceComponentUpdatingBehavior
,OnChangeAjaxBehavior
public abstract class AjaxFormComponentUpdatingBehavior extends AjaxEventBehavior
A behavior that updates the hosting FormComponent via ajax when an event it is attached to is triggered. This behavior encapsulates the entire form-processing workflow as relevant only to this component so if validation is successful the component's model will be updated according to the submitted value.NOTE: This behavior does not validate any
IFormValidator
s attached to this form even though they may reference the component being updated.NOTE: This behavior does not work on Choices or Groups use the
AjaxFormChoiceComponentUpdatingBehavior
for that.- Since:
- 1.2
- Author:
- Igor Vaynberg (ivaynberg)
- See Also:
onUpdate(org.apache.wicket.ajax.AjaxRequestTarget)
,onError(org.apache.wicket.ajax.AjaxRequestTarget, RuntimeException)
, Serialized Form
-
-
Field Summary
-
Fields inherited from class org.apache.wicket.ajax.AbstractDefaultAjaxBehavior
INDICATOR
-
-
Constructor Summary
Constructors Constructor Description AjaxFormComponentUpdatingBehavior(String event)
Construct.
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected void
checkComponent(FormComponent<?> component)
Check the component this behavior is bound to.protected boolean
disableFocusOnBlur()
Determines whether the focus will not be restored when the event is blur.protected FormComponent<?>
getFormComponent()
protected boolean
getUpdateModel()
Gives the control to the application to decide whether the form component model should be updated automatically or not.protected void
onBind()
Subclasses should call super.onBind()protected void
onError(AjaxRequestTarget target, RuntimeException e)
Called to handle any error resulting from updating form component.protected void
onEvent(AjaxRequestTarget target)
Listener method for the ajax eventstatic AjaxFormComponentUpdatingBehavior
onUpdate(String eventName, org.danekja.java.util.function.serializable.SerializableConsumer<AjaxRequestTarget> onUpdate)
Creates anAjaxFormComponentUpdatingBehavior
based on lambda expressionsprotected abstract void
onUpdate(AjaxRequestTarget target)
Listener invoked on the ajax request.protected void
updateAjaxAttributes(AjaxRequestAttributes attributes)
Gives a chance to the specializations to modify the attributes.-
Methods inherited from class org.apache.wicket.ajax.AjaxEventBehavior
getEvent, onEvent, renderHead, respond
-
Methods inherited from class org.apache.wicket.ajax.AbstractDefaultAjaxBehavior
findIndicatorId, getAttributes, getCallbackFunction, getCallbackFunctionBody, getCallbackScript, getCallbackScript, onMethodMismatch, onRequest, postprocessConfiguration, renderAjaxAttributes, renderAjaxAttributes
-
Methods inherited from class org.apache.wicket.behavior.AbstractAjaxBehavior
afterRender, bind, getCallbackUrl, getComponent, onComponentRendered, onComponentTag, onComponentTag, onUnbind, unbind
-
Methods inherited from class org.apache.wicket.behavior.Behavior
beforeRender, canCallListener, detach, getStatelessHint, isEnabled, isTemporary, onAttribute, onConfigure, onEvent, onException, onRemove, onTag
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.apache.wicket.IRequestListener
rendersPage
-
-
-
-
Constructor Detail
-
AjaxFormComponentUpdatingBehavior
public AjaxFormComponentUpdatingBehavior(String event)
Construct.- Parameters:
event
- event to trigger this behavior
-
-
Method Detail
-
onBind
protected void onBind()
Description copied from class:AbstractDefaultAjaxBehavior
Subclasses should call super.onBind()- Overrides:
onBind
in classAbstractDefaultAjaxBehavior
- See Also:
AbstractAjaxBehavior.onBind()
-
checkComponent
protected void checkComponent(FormComponent<?> component)
Check the component this behavior is bound to.Logs a warning in development mode when an
AjaxFormChoiceComponentUpdatingBehavior
should be used.- Parameters:
component
- bound component
-
getFormComponent
protected final FormComponent<?> getFormComponent()
- Returns:
- FormComponent
-
updateAjaxAttributes
protected void updateAjaxAttributes(AjaxRequestAttributes attributes)
Description copied from class:AbstractDefaultAjaxBehavior
Gives a chance to the specializations to modify the attributes.- Overrides:
updateAjaxAttributes
in classAjaxEventBehavior
-
onEvent
protected final void onEvent(AjaxRequestTarget target)
Description copied from class:AjaxEventBehavior
Listener method for the ajax event- Specified by:
onEvent
in classAjaxEventBehavior
- Parameters:
target
- the current request handler
-
getUpdateModel
protected boolean getUpdateModel()
Gives the control to the application to decide whether the form component model should be updated automatically or not. Make sure to callFormComponent.valid()
additionally in case the application want to update the model manually.- Returns:
- true if the model of form component should be updated, false otherwise
-
disableFocusOnBlur
protected boolean disableFocusOnBlur()
Determines whether the focus will not be restored when the event is blur. By default this is true, as we don't want to re-focus component on blur event.- Returns:
true
if refocusing should be disabled,false
otherwise
-
onUpdate
protected abstract void onUpdate(AjaxRequestTarget target)
Listener invoked on the ajax request. This listener is invoked after the component's model has been updated.Note:
onError(AjaxRequestTarget, RuntimeException)
is called instead when processing of theFormComponent
failed with conversion or validation errors!- Parameters:
target
- the current request handler
-
onError
protected void onError(AjaxRequestTarget target, RuntimeException e)
Called to handle any error resulting from updating form component. Errors thrown fromonUpdate(org.apache.wicket.ajax.AjaxRequestTarget)
will not be caught here. The RuntimeException will be null if it was just a validation or conversion error of the FormComponent- Parameters:
target
- the current request handlere
- the error that occurred during the update of the component
-
onUpdate
public static AjaxFormComponentUpdatingBehavior onUpdate(String eventName, org.danekja.java.util.function.serializable.SerializableConsumer<AjaxRequestTarget> onUpdate)
Creates anAjaxFormComponentUpdatingBehavior
based on lambda expressions- Parameters:
eventName
- the event nameonUpdate
- theSerializableConsumer
which accepts theAjaxRequestTarget
- Returns:
- the
AjaxFormComponentUpdatingBehavior
-
-