00001 #ifndef TASKREMOVER_H 00002 #define TASKREMOVER_H 00003 00004 #include "controllerinterface.h" 00005 00006 namespace domain 00007 { 00008 class Task; 00009 } 00010 00011 namespace control 00012 { 00013 00014 class FocusInterface; 00015 00016 class TaskWorker : public ControllerInterface 00017 { 00018 Q_OBJECT 00019 Q_INTERFACES(control::ControllerInterface) 00020 00021 public: 00022 00023 ActionType actionType() const; 00024 DataType dataType() const; 00025 QString description() const; 00026 QString name() const; 00027 void init(domain::TaskManagerData* data, ui::UiInterface* ui, 00028 ControllerFactory* factory); 00029 00030 private: 00031 00032 void execute(); 00033 void execute(const domain::StorableData* data); 00034 bool userIsValid() const; 00035 00036 void showTaskList(); 00037 00038 QList<FocusInterface*> focusStrategies; 00039 ControllerInterface* taskModifier; 00040 ControllerInterface* taskUpdater; 00041 00042 QList<domain::Task*> currentTasks; 00043 }; 00044 00045 } 00046 00047 #endif