diff options
author | Javier Fernandez <jfernandez@igalia.com> | 2013-03-19 18:06:29 +0000 |
---|---|---|
committer | Michael Meeks <michael.meeks@suse.com> | 2013-03-25 13:23:14 +0000 |
commit | de2cfb15ec84b570dabb36b72cc90ded3811f584 (patch) | |
tree | c0e82fc1dc89bda1fb69e857729182e4b04924c2 /wizards | |
parent | c192de3a8c7ed6ee4ec78f9e938030321b9576ad (diff) |
Init: Added new file Task.py
Change-Id: I968fdf4b906cf6aab0a274fe4d1292cbaf1be51e
Diffstat (limited to 'wizards')
-rw-r--r-- | wizards/com/sun/star/wizards/ui/event/Task.py | 114 |
1 files changed, 114 insertions, 0 deletions
diff --git a/wizards/com/sun/star/wizards/ui/event/Task.py b/wizards/com/sun/star/wizards/ui/event/Task.py new file mode 100644 index 000000000000..133f93b9c349 --- /dev/null +++ b/wizards/com/sun/star/wizards/ui/event/Task.py @@ -0,0 +1,114 @@ +# +# This file is part of the LibreOffice project. +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# This file incorporates work covered by the following license notice: +# +# 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 . +import traceback + +from .TaskEvent import TaskEvent + +class Task: + successfull = 0 + failed = 0 + maximum = 0 + taskName = "" + listeners = [] + subtaskName = "" + + def __init__(self, taskName_, subtaskName_, max_): + self.taskName = taskName_ + self.subtaskName = subtaskName_ + self.maximum = max_ + + def start(self): + self.fireTaskStarted() + + def fail(self): + self.fireTaskFailed() + + def getMax(self): + return self.maximum + + def setMax(self, max_): + self.maximum = max_ + self.fireTaskStatusChanged() + + def advance(self, success_): + if success_: + self.successfull += 1 + print ("Success :", self.successfull) + else: + self.failed += 1 + print ("Failed :", self.failed) + self.fireTaskStatusChanged() + if (self.failed + self.successfull == self.maximum): + self.fireTaskFinished() + + def advance1(self, success_, nextSubtaskName): + self.advance(success_) + self.setSubtaskName(nextSubtaskName) + + def getStatus(self): + return self.successfull + self.failed + + def addTaskListener(self, tl): + self.listeners.append(tl) + + def removeTaskListener(self, tl): + try: + index = self.listeners.index(tl) + self.listeners.pop(index) + except Exception: + traceback.print_exc() + + def fireTaskStatusChanged(self): + te = TaskEvent(self, TaskEvent.TASK_STATUS_CHANGED) + for i in range(len(self.listeners)): + self.listeners[i].taskStatusChanged(te) + + def fireTaskStarted(self): + te = TaskEvent(self, TaskEvent.TASK_STARTED) + for i in range(len(self.listeners)): + self.listeners[i].taskStarted(te) + + def fireTaskFailed(self): + te = TaskEvent(self, TaskEvent.TASK_FAILED) + for i in range(len(self.listeners)): + self.listeners[i].taskFinished(te) + + def fireTaskFinished(self): + te = TaskEvent(self, TaskEvent.TASK_FINISHED) + for i in range(len(self.listeners)): + self.listeners[i].taskFinished(te) + + def fireSubtaskNameChanged(self): + te = TaskEvent(self, TaskEvent.SUBTASK_NAME_CHANGED) + for i in range(len(self.listeners)): + self.listeners[i].subtaskNameChanged(te) + + def getSubtaskName(self): + return self.subtaskName + + def getTaskName(self): + return self.taskName + + def setSubtaskName(self, s): + self.subtaskName = s + self.fireSubtaskNameChanged() + + def getFailed(self): + return self.failed + + def getSuccessfull(self): + return self.successfull |