org.apache.wicket.ajax
Class AbstractDefaultAjaxBehavior

java.lang.Object
  extended by org.apache.wicket.behavior.AbstractBehavior
      extended by org.apache.wicket.behavior.AbstractAjaxBehavior
          extended by org.apache.wicket.ajax.AbstractDefaultAjaxBehavior
All Implemented Interfaces:
Serializable, IBehavior, IBehaviorListener, IComponentConfigurationBehavior, IClusterable, IRequestListener, IHeaderContributor
Direct Known Subclasses:
AbstractAjaxTimerBehavior, AbstractAutoCompleteBehavior, AjaxEditableLabel.EditorAjaxBehavior, AjaxEventBehavior, AjaxFormChoiceComponentUpdatingBehavior, ModalWindow.CloseButtonBehavior

public abstract class AbstractDefaultAjaxBehavior
extends AbstractAjaxBehavior

The base class for Wicket's default AJAX implementation.

Since:
1.2
Author:
Igor Vaynberg (ivaynberg)
See Also:
Serialized Form

Field Summary
static ResourceReference INDICATOR
          reference to the default indicator gif file.
 
Fields inherited from interface org.apache.wicket.behavior.IBehaviorListener
INTERFACE
 
Constructor Summary
AbstractDefaultAjaxBehavior()
           
 
Method Summary
protected  String findIndicatorId()
          Finds the markup id of the indicator.
protected  CharSequence generateCallbackScript(CharSequence partialCall)
          Returns javascript that performs an ajax callback to this behavior.
protected  IAjaxCallDecorator getAjaxCallDecorator()
           
protected  CharSequence getCallbackScript()
           
protected  CharSequence getCallbackScript(boolean onlyTargetActivePage)
           
protected  String getChannelName()
           
protected  CharSequence getFailureScript()
           
protected  CharSequence getPreconditionScript()
           
protected  CharSequence getSuccessScript()
           
protected  void onBind()
          Subclasses should call super.onBind()
 void onRequest()
          Called when a request to a behavior is received.
 void renderHead(IHeaderResponse response)
          Render to the web response whatever the component wants to contribute to the head section.
protected abstract  void respond(AjaxRequestTarget target)
           
static CharSequence throttleScript(CharSequence script, String throttleId, Duration throttleDelay)
          Wraps the provided javascript with a throttled block.
 
Methods inherited from class org.apache.wicket.behavior.AbstractAjaxBehavior
bind, getCallbackUrl, getCallbackUrl, getComponent, getImplementationId, getStatelessHint, onComponentRendered, onComponentTag, onComponentTag, onRendered, onRenderHeadContribution, onRenderHeadInitContribution
 
Methods inherited from class org.apache.wicket.behavior.AbstractBehavior
afterRender, beforeRender, cleanup, detach, detachModel, exception, isEnabled, isTemporary, onConfigure, onException, rendered
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

INDICATOR

public static final ResourceReference INDICATOR
reference to the default indicator gif file.

Constructor Detail

AbstractDefaultAjaxBehavior

public AbstractDefaultAjaxBehavior()
Method Detail

onBind

protected void onBind()
Subclasses should call super.onBind()

Overrides:
onBind in class AbstractAjaxBehavior
See Also:
AbstractAjaxBehavior.onBind()

renderHead

public void renderHead(IHeaderResponse response)
Description copied from interface: IHeaderContributor
Render to the web response whatever the component wants to contribute to the head section. TODO: Post 1.3, add component parameter, so that the behaviors dont' have to track component instances

Specified by:
renderHead in interface IHeaderContributor
Overrides:
renderHead in class AbstractAjaxBehavior
Parameters:
response - Response object
See Also:
AbstractAjaxBehavior.renderHead(org.apache.wicket.markup.html.IHeaderResponse)

getAjaxCallDecorator

protected IAjaxCallDecorator getAjaxCallDecorator()
Returns:
ajax call decorator used to decorate the call generated by this behavior or null for none

getCallbackScript

protected CharSequence getCallbackScript()
Returns:
javascript that will generate an ajax GET request to this behavior

getCallbackScript

protected CharSequence getCallbackScript(boolean onlyTargetActivePage)
Parameters:
onlyTargetActivePage - if true the callback to this behavior will be ignore if the page is not the last one the user accessed
Returns:
javascript that will generate an ajax GET request to this behavior *

getPreconditionScript

protected CharSequence getPreconditionScript()
Returns:
an optional javascript expression that determines whether the request will actually execute (in form of return XXX;);

getFailureScript

protected CharSequence getFailureScript()
Returns:
javascript that will run when the ajax call finishes with an error status

getSuccessScript

protected CharSequence getSuccessScript()
Returns:
javascript that will run when the ajax call finishes successfully

generateCallbackScript

protected CharSequence generateCallbackScript(CharSequence partialCall)
Returns javascript that performs an ajax callback to this behavior. The script is decorated by the ajax callback decorator from getAjaxCallDecorator().

Parameters:
partialCall - Javascript of a partial call to the function performing the actual ajax callback. Must be in format function(params, with signature function(params, onSuccessHandler, onFailureHandler. Example: wicketAjaxGet('callbackurl'
Returns:
script that performs ajax callback to this behavior

getChannelName

protected String getChannelName()

findIndicatorId

protected String findIndicatorId()
Finds the markup id of the indicator. The default search order is: component, behavior, component's parent hieararchy.

Returns:
markup id or null if no indicator found

onRequest

public final void onRequest()
Description copied from interface: IBehaviorListener
Called when a request to a behavior is received.

See Also:
IBehaviorListener.onRequest()

respond

protected abstract void respond(AjaxRequestTarget target)
Parameters:
target - The AJAX target

throttleScript

public static final CharSequence throttleScript(CharSequence script,
                                                String throttleId,
                                                Duration throttleDelay)
Wraps the provided javascript with a throttled block. Throttled behaviors only execute once within the given delay even though they are triggered multiple times.

For example, this is useful when attaching an event behavior to the onkeypress event. It is not desirable to have an ajax call made every time the user types so we throttle that call to a desirable delay, such as once per second. This gives us a near real time ability to provide feedback without overloading the server with ajax calls.

Parameters:
script - javascript to be throttled
throttleId - the id of the throttle to be used. Usually this should remain constant for the same javascript block.
throttleDelay - time span within which the javascript block will only execute once
Returns:
wrapped javascript


Copyright © 2004-2011 Apache Software Foundation. All Rights Reserved.