/************************************************************** * * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. * *************************************************************/ package com.sun.star.wizards.ui.event; import java.util.List; import java.util.Vector; /** * @author rpiterman * * To change the template for this generated type comment go to * Window>Preferences>Java>Code Generation>Code and Comments */ public class Task { private int successfull = 0; private int failed = 0; private int max = 0; private String taskName; private List listeners = new Vector(); private String subtaskName; public Task(String taskName_, String subtaskName_, int max_) { taskName = taskName_; subtaskName = subtaskName_; max = max_; } public void start() { fireTaskStarted(); } public void fail() { fireTaskFailed(); } public int getMax() { return max; } public void setMax(int max_) { max = max_; fireTaskStatusChanged(); } public void advance(boolean success_) { if (success_) { successfull++; } else { failed++; } fireTaskStatusChanged(); if (failed + successfull == max) { fireTaskFinished(); } } public void advance(boolean success_, String nextSubtaskName) { advance(success_); setSubtaskName(nextSubtaskName); } public int getStatus() { return successfull + failed; } public void addTaskListener(TaskListener tl) { listeners.add(tl); } public void removeTaskListener(TaskListener tl) { listeners.remove(tl); } protected void fireTaskStatusChanged() { TaskEvent te = new TaskEvent(this, TaskEvent.TASK_STATUS_CHANGED); for (int i = 0; i < listeners.size(); i++) { ((TaskListener) listeners.get(i)).taskStatusChanged(te); } } protected void fireTaskStarted() { TaskEvent te = new TaskEvent(this, TaskEvent.TASK_STARTED); for (int i = 0; i < listeners.size(); i++) { ((TaskListener) listeners.get(i)).taskStarted(te); } } protected void fireTaskFailed() { TaskEvent te = new TaskEvent(this, TaskEvent.TASK_FAILED); for (int i = 0; i < listeners.size(); i++) { ((TaskListener) listeners.get(i)).taskFinished(te); } } protected void fireTaskFinished() { TaskEvent te = new TaskEvent(this, TaskEvent.TASK_FINISHED); for (int i = 0; i < listeners.size(); i++) { ((TaskListener) listeners.get(i)).taskFinished(te); } } protected void fireSubtaskNameChanged() { TaskEvent te = new TaskEvent(this, TaskEvent.SUBTASK_NAME_CHANGED); for (int i = 0; i < listeners.size(); i++) { ((TaskListener) listeners.get(i)).subtaskNameChanged(te); } } /** * @return */ public String getSubtaskName() { return subtaskName; } /** * @return */ public String getTaskName() { return taskName; } /** * @param string */ public void setSubtaskName(String string) { subtaskName = string; fireSubtaskNameChanged(); } /** * @return */ public int getFailed() { return failed; } /** * @return */ public int getSuccessfull() { return successfull; } }