Overview | Package | Class | Use | Deprecated | Help
| GWT 2.7.0
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## com.google.gwt.user.client
Class CommandExecutor

    java.lang.Object
      com.google.gwt.user.client.CommandExecutor

     class CommandExecutor

extends java.lang.Object

Class which executes `Command`s and `IncrementalCommand`s after all currently pending event handlers have completed. This class attempts to protect against slow script warnings by running commands in small time increments.

It is still possible that a poorly written command could cause a slow script warning which a user may choose to cancel. In that event, a `CommandCanceledException` or an `IncrementalCommandCanceledException` is reported through `GWT#reportUncaughtException` depending on the type of command which caused the warning. All other commands will continue to be executed.

TODO(mmendez): Can an SSW be detected without using a timer? Currently, if a `Command` or an `IncrementalCommand` calls either `Window.alert(String)` or the JavaScript `alert(String)` methods directly or indirectly then the cancellation timer can fire, resulting in a false SSW cancellation detection.

Constructor Summary
`CommandExecutor()`

Method Summary
`protected void` | `doCommandCanceled()` Removes the command from the queue and throws either a `CommandCanceledException` or an `IncrementalCommandCanceledException` depending on type of the command.
`protected void` | `doExecuteCommands(double startTimeMillis)` This method will dispatch commands from the command queue.
`(package private) java.util.List<java.lang.Object>` | `getPendingCommands()` This method is for testing only.
`protected void` | `maybeStartExecutionTimer()` Starts the dispatch timer if there are commands to dispatch and we are not waiting for a dispatch timer and we are not actively dispatching.
`(package private) void` | `setExecuting(boolean executing)` This method is for testing only.
`(package private) void` | `setLast(int last)` This method is for testing only.
`void` | `submit(Command command)` Submits a `Command` for execution.
`void` | `submit(IncrementalCommand command)` Submits an `IncrementalCommand` for execution.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### CommandExecutor

    CommandExecutor()

Method Detail

### submit

    public void submit(Command command)

  Submits a `Command` for execution.

  Parameters:
    `command` - command to submit

### submit

    public void submit(IncrementalCommand command)

  Submits an `IncrementalCommand` for execution.

  Parameters:
    `command` - command to submit

### doCommandCanceled

    protected void doCommandCanceled()

  Removes the command from the queue and throws either a `CommandCanceledException` or an `IncrementalCommandCanceledException` depending on type of the command.

### doExecuteCommands

    protected void doExecuteCommands(double startTimeMillis)

  This method will dispatch commands from the command queue. It will dispatch commands until one of the following conditions is `true`:
  - It consumed its dispatching time slice
  - It encounters a `null` in the command queue
  - All commands which were present at the start of the dispatching have been removed from the command queue
  - The command that it was processing was canceled due to a false cancellation -- in this case we exit without updating any state

  Parameters:
    `startTimeMillis` - the time when this method started

### maybeStartExecutionTimer

    protected void maybeStartExecutionTimer()

  Starts the dispatch timer if there are commands to dispatch and we are not waiting for a dispatch timer and we are not actively dispatching.

### getPendingCommands

    java.util.List<java.lang.Object> getPendingCommands()

  This method is for testing only.

### setExecuting

    void setExecuting(boolean executing)

  This method is for testing only.

### setLast

    void setLast(int last)

  This method is for testing only.

Overview | Package | Class | Use | Deprecated | Help
| GWT 2.7.0
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD