java.lang.Object
com.vaadin.flow.component.trigger.internal.Action
All Implemented Interfaces:
Serializable
Direct Known Subclasses:
CallbackAction, PromiseAction, SetPropertyAction

public abstract class Action extends Object implements Serializable
Something that runs on the client when a Trigger fires.

Actions are the unit of behaviour you attach to a trigger: copy text to the clipboard, download a file, scroll an element into view, and so on. Pair an Action with a Trigger (typically via trigger.triggers(action)) and the framework wires the action to run whenever the trigger fires.

An Action usually consumes one or more inputs that supply its values — a literal, the current value of a DOM property, an event-scoped expression — so the data the action acts on is read on the client at fire time rather than captured on the server.

For Action implementors: override toJs(Trigger) to produce the JavaScript that the trigger handler invokes; reference inputs through Action.Input.toJs(Trigger) so the same value-supplier abstractions work with every action.

For internal use only. May be renamed or removed in a future release.

See Also:
  • Constructor Details

    • Action

      public Action()
  • Method Details

    • toJs

      protected abstract JsFunction toJs(Trigger trigger)
      Builds the JsFunction that runs this action when the surrounding trigger fires. The returned function takes one runtime argument named event (declared by the framework when it composes the trigger handler); subclasses do not declare argument names themselves.

      The body is one statement. To embed a value produced on the client, capture an Action.Input's JsFunction as a capture and invoke it inside the body as $N(event).

      Parameters:
      trigger - the surrounding trigger this render is for, not null
      Returns:
      the action's JS function, not null