Class AbstractDefaultAjaxBehavior

All Implemented Interfaces:
Serializable, IComponentAwareEventSink, IRequestListener, IComponentAwareHeaderContributor, IClusterable
Direct Known Subclasses:
AbstractAjaxTimerBehavior, AbstractAutoCompleteBehavior, AjaxDownloadBehavior, AjaxEditableLabel.EditorAjaxBehavior, AjaxEventBehavior, AjaxNewWindowNotifyingBehavior, AjaxOnDomReadyClientInfoBehavior

The base class for Wicket's default AJAX implementation.
Since:
1.2
Author:
Igor Vaynberg (ivaynberg)
See Also:
  • Field Details

  • Constructor Details

  • Method Details

    • onBind

      protected void onBind()
      Subclasses should call super.onBind()
      Overrides:
      onBind in class AbstractAjaxBehavior
      See Also:
    • renderHead

      public void renderHead(Component component, IHeaderResponse response)
      Description copied from class: Behavior
      Render to the web response whatever the component wants to contribute to the head section.
      Specified by:
      renderHead in interface IComponentAwareHeaderContributor
      Overrides:
      renderHead in class Behavior
      Parameters:
      component - component which is contributing to the response. This parameter is here to give the component as the context for component-awares implementing this interface
      response - Response object
      See Also:
    • getAttributes

      Returns:
      the Ajax settings for this behavior
      Since:
      6.0
    • onMethodMismatch

      This method decides whether to continue processing or to abort the Ajax request when the method is different than the AjaxRequestAttributes.getMethod()'s method.
      Returns:
      response that can either abort or continue the processing of the Ajax request
    • updateAjaxAttributes

      protected void updateAjaxAttributes(AjaxRequestAttributes attributes)
      Gives a chance to the specializations to modify the attributes.
      Parameters:
      attributes -
      Since:
      6.0
    • renderAjaxAttributes

      protected final CharSequence renderAjaxAttributes(Component component)
                                      {
                                              u: 'editable-label?6-1.IBehaviorListener.0-text1-label',  // url
                                              m: 'POST',          // method name. Default: 'GET'
                                              c: 'label7',        // component id (String) or window for page
                                              e: 'click',         // event name
                                              sh: [],             // list of success handlers
                                              fh: [],             // list of failure handlers
                                              pre: [],            // list of preconditions. If empty set default : Wicket.$(settings{c}) !== null
                                              ep: {},             // extra parameters
                                              async: true|false,  // asynchronous XHR or not
                                              ch: 'someName|d',   // AjaxChannel
                                              i: 'indicatorId',   // indicator component id
                                              ad: true,           // allow default
                                      }
       
      Parameters:
      component - the component with that behavior
      Returns:
      the attributes as string in JSON format
    • renderAjaxAttributes

      protected final CharSequence renderAjaxAttributes(Component component, AjaxRequestAttributes attributes)
      Parameters:
      component -
      attributes -
      Returns:
      the attributes as string in JSON format
    • postprocessConfiguration

      protected void postprocessConfiguration(com.github.openjson.JSONObject attributesJson, Component component) throws com.github.openjson.JSONException
      Gives a chance to modify the JSON attributesJson that is going to be used as attributes for the Ajax call.
      Parameters:
      attributesJson - the JSON object created by #renderAjaxAttributes()
      component - the component with the attached Ajax behavior
      Throws:
      com.github.openjson.JSONException - thrown if an error occurs while modifying attributesJson argument
    • getCallbackScript

      Returns:
      javascript that will generate an ajax GET request to this behavior with its assigned component
    • getCallbackScript

      protected CharSequence getCallbackScript(Component component)
      Parameters:
      component - the component to use when generating the attributes
      Returns:
      script that can be used to execute this Ajax behavior.
    • getCallbackFunction

      public CharSequence getCallbackFunction(CallbackParameter... extraParameters)
      Generates a javascript function that can take parameters and performs an AJAX call which includes these parameters. The generated code looks like this:
       function(param1, param2) {
          var attrs = attrsJson;
          var params = {'param1': param1, 'param2': param2};
          attrs.ep = jQuery.extend(attrs.ep, params);
          Wicket.Ajax.ajax(attrs);
       }
       
      Parameters:
      extraParameters -
      Returns:
      A function that can be used as a callback function in javascript
    • getCallbackFunctionBody

      Generates the body the callback function. To embed this code directly into a piece of javascript, make sure any context parameters are available as local variables, global variables or within the closure.
      Parameters:
      extraParameters -
      Returns:
      The body of the callback function.
    • findIndicatorId

      protected String findIndicatorId()
      Finds the markup id of the indicator. The default search order is: component, behavior, component's parent hierarchy.
      Returns:
      markup id or null if no indicator found
    • onRequest

      public final void onRequest()
      Description copied from interface: IRequestListener
      Called when a request is received.
    • respond

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