/** * 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; }
/** * Cancels the task if it is not yet complete and removes it from the list of running tasks * * @param taskId The task to cancel/remove * @return */ public void removeTask(SolaTask task) { if (task != null && !task.isDone()) { task.cancel(true); } tasks.remove(task.getId()); }