Exemplo n.º 1
0
  /**
   * Runs new task.
   *
   * @param task Task to run.
   */
  public boolean runTask(SolaTask task) {
    if (task == null || isTaskRunning(task.getId())) {
      return false;
    }

    if (getNumberOfActiveTasks() > 0) {
      MessageUtility.displayMessage(
          ClientMessage.GENERAL_ACTIVE_TASKS_EXIST, new Object[] {getNumberOfActiveTasks()});
      return false;
    }

    task.addPropertyChangeListener(
        new PropertyChangeListener() {

          @Override
          public void propertyChange(PropertyChangeEvent evt) {
            handleTaskEvents(evt);
          }
        });
    tasks.put(task.getId(), task);
    task.execute();
    return true;
  }