Class Task.InputBlocker

java.lang.Object
org.jdesktop.application.AbstractBean
org.jdesktop.application.Task.InputBlocker
Enclosing class:
Task<T,V>

public abstract static class Task.InputBlocker extends AbstractBean
Specifies to what extent input to the Application's GUI should be blocked while this Task is being executed and provides a pair of methods, block and unblock that do the work of blocking the GUI. For the sake of input blocking, a Task begins executing when it's submitted to a TaskService, and it finishes executing after the Task's completion methods have been called.

The InputBlocker's BlockingScope and the blocking target object define what part of the GUI's input will be blocked:

Task.BlockingScope.NONE
Don't block input. The blocking target is ignored in this case.

Task.BlockingScope.ACTION
Disable the target Action while the Task is executing.

Task.BlockingScope.COMPONENT
Disable the target Component Component while the Task is executing.

Task.BlockingScope.WINDOW
Block the Window ancestor of the target Component while the Task is executing.

Task.BlockingScope.Application
Block the entire Application while the Task is executing. The blocking target is ignored in this case.

Input blocking begins when the block method is called and ends when unblock is called. Each method is only called once, typically by the TaskService.

See Also:
  • Constructor Details

    • InputBlocker

      public InputBlocker(Task task, Task.BlockingScope scope, Object target, ApplicationAction action)
      Construct an InputBlocker with four immutable properties. If the Task is null or if the Task has already been executed by a TaskService, then an exception is thrown. If scope is BlockingScope.ACTION then target must be a Action. If scope is BlockingScope.WINDOW or BlockingScope.COMPONENT then target must be a Component.
      Parameters:
      task - block input while this Task is executing
      scope - how much of the GUI will be blocked
      target - the GUI element that will be blocked
      action - the @Action that triggered running the task, or null
      See Also:
    • InputBlocker

      public InputBlocker(Task task, Task.BlockingScope scope, Object target)
      Construct an InputBlocker. If target is an ApplicationAction, it becomes the InputBlocker's action. If the Task is null or if the Task has already been executed by a TaskService, then an exception is thrown.
      Parameters:
      task - block input while this Task is executing
      scope - how much of the GUI will be blocked
      target - the GUI element that will be blocked
      See Also:
  • Method Details

    • getTask

      public final Task getTask()
      The block method will block input while this Task is being executed by a TaskService.
      Returns:
      the value of the read-only Task property
      See Also:
    • getScope

      public final Task.BlockingScope getScope()
      Defines the extent to which the GUI is blocked while the task is being executed.
      Returns:
      the value of the read-only blockingScope property
      See Also:
    • getTarget

      public final Object getTarget()
      Specifies the GUI element that will be blocked while the task is being executed.

      This property may be null.

      Returns:
      the value of the read-only target property
      See Also:
    • getAction

      public final ApplicationAction getAction()
      The ApplicationAction (@Action) that caused the task to be executed. The DefaultInputBlocker uses the action's name and resourceMap to configure its blocking dialog if scope is BlockingScope.WINDOW.

      This property may be null.

      Returns:
      the value of the read-only action property
      See Also:
    • block

      protected abstract void block()
      Block input to the GUI per the scope and target properties. This method will only be called once.
      See Also:
    • unblock

      protected abstract void unblock()
      Unblock input to the GUI by undoing whatever the block method did. This method will only be called once.
      See Also: