javax.faces.component.behavior

## Interface ClientBehavior

- All Superinterfaces:
    Behavior
  All Known Implementing Classes:
    AjaxBehavior, ClientBehaviorBase

      public interface ClientBehavior
      extends Behavior

  ClientBehavior is the base contract for `Behavior`s that attach script content to client-side events exposed by `ClientBehaviorHolder` components. Instances of `ClientBehavior` may be attached to components that implement the `ClientBehaviorHolder` contract by calling `ClientBehaviorHolder.addClientBehavior(java.lang.String, javax.faces.component.behavior.ClientBehavior)`. Once a `ClientBehavior` has been attached to a `ClientBehaviorHolder` component, the component calls `getScript(javax.faces.component.behavior.ClientBehaviorContext)` to obtain the behavior's script and the component wires this up to the appropriate client-side event handler. Note that the script content returned by this method is always in-line script content. If the implementing class wants to invoke functions defined in other script resources, the implementing class must use the `ResourceDependency` or `ResourceDependencies` annotation.

  Since:
    2.0

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `decode(FacesContext context, UIComponent component)` Decode any new state of this `ClientBehavior` from the request contained in the specified `FacesContext`.
    `Set<ClientBehaviorHint>` | `getHints()` Returns hints that describe the behavior of the ClientBehavior implementation.
    `String` | `getScript(ClientBehaviorContext behaviorContext)` Return the script that implements this ClientBehavior's client-side logic.

    - ### Methods inherited from interface javax.faces.component.behavior.Behavior

      `broadcast`

- - ### Method Detail

    - #### getScript

          String getScript(ClientBehaviorContext behaviorContext)

      Return the script that implements this ClientBehavior's client-side logic.

      ClientBehavior.getScript() implementations are allowed to return null to indicate that no script is required for this particular getScript() call. For example, a ClientBehavior implementation may return null if the Behavior is disabled.

      Parameters:
        `behaviorContext` - the `ClientBehaviorContext` that provides properties that might influence this getScript() call. Note that ClientBehaviorContext instances are short-lived objects that are only valid for the duration of the call to getScript(). ClientBehavior implementations must not hold onto references to ClientBehaviorContexts.
      Returns:
        script that provides the client-side behavior, or null if no script is required.
      Throws:
        `NullPointerException` - if `behaviorContext` is `null`
      Since:
        2.0

    - #### decode

          void decode(FacesContext context,
                    UIComponent component)

      Decode any new state of this `ClientBehavior` from the request contained in the specified `FacesContext`.

      During decoding, events may be enqueued for later processing (by event listeners who have registered an interest), by calling `queueEvent()`. Default implementation delegates decoding to `ClientBehaviorRenderer.decode(FacesContext, UIComponent, ClientBehavior)`

      Parameters:
        `context` - `FacesContext` for the request we are processing
        `component` - `UIComponent` the component associated with this `Behavior`
      Throws:
        `NullPointerException` - if `context` or `component`is `null`.``
      Since:
        2.0

    - #### getHints

          Set<ClientBehaviorHint> getHints()

      Returns hints that describe the behavior of the ClientBehavior implementation. The hints may impact how Renderers behave in the presence of Behaviors. For example, when a Behavior that specifies `ClientBehaviorHint.SUBMITTING` is present, the Renderer may choose to alternate the scripts that it generates itself.

      Returns:
        a non-null, unmodifiable collection of ClientBehaviorHints.
      Since:
        2.0

Copyright © 1996-2013, Oracle and/or its affiliates. All Rights Reserved. Use is subject to license terms.