VR-Forces 4.0.4 Class Documentation
include/vrfGuiCoreQt/DtVrfTaskSetDialogManager.h
Go to the documentation of this file.
00001 /******************************************************************************
00002 ** Copyright (c) 2008 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 ******************************************************************************/
00005 /******************************************************************************
00006 ** $RCSfile: DtVrfTaskSetDialogManager.h,v $ $Revision: 1.2 $ $State: Exp $
00007 ******************************************************************************/
00008 
00011 
00013 
00014 #pragma once
00015 
00016 #include <vrfGuiCoreQt/vrfGuiCoreQt.h>
00017 #include <vrvUtil/DtVirtualBaseClass.h>
00018 
00019 #include <vrvUtil/signalslib.h>
00020 
00021 #include <QtCore/QObject>
00022 
00023 namespace makVrv
00024 {
00025    class DtDe;
00026    class DtSimEntry;
00027 }
00028 
00029 class QWidget;
00030 class DtSimStatement;
00031 
00032 namespace makVrf
00033 {
00034    class DtTaskSetDialogInterface;
00035    class DtVrfTaskSetDialogCreator;
00036    class DtVrfTaskSetDialogManager;
00037    class DtVrfTaskSetAction;
00038    class DtCommandAssignmentWidgetInterface;
00039    class DtCommandAssignmentWidget;
00040    class DtCommandDialogExtensionInterface;
00041 
00042    class DT_DLL_VRFGUICOREQT DtVrfTaskSetDialogSignalHandler : public QObject
00043    {
00044       Q_OBJECT
00045 
00046    public:
00047       DtVrfTaskSetDialogSignalHandler(makVrv::DtDe&);
00048       virtual ~DtVrfTaskSetDialogSignalHandler();
00049 
00050       virtual void connectSignals(DtTaskSetDialogInterface*);
00051       virtual void disconnectSignals(DtTaskSetDialogInterface*);
00052 
00053       virtual void connectSignals(DtCommandAssignmentWidgetInterface*);
00054       virtual void disconnectSignals(DtCommandAssignmentWidget*);
00055 
00056    public:
00058       boost::signal<void (DtTaskSetDialogInterface*)> signal_dialogDestroyed;
00059 
00061       boost::signal<void (DtCommandAssignmentWidget*)> signal_commandDialogDestroyed;
00062 
00063    protected slots:
00064       virtual void onDialogDestroyed();
00065       virtual void onCommandDialogDestroyed();
00066 
00067    protected:
00068       bool myFirstCreate;
00069       makVrv::DtDe&               myDe;
00070    };
00071 
00073    class DT_DLL_VRFGUICOREQT DtVrfTaskSetDialogManager : public makVrv::DtVirtualBaseClass
00074    {
00075       typedef std::map<int, DtVrfTaskSetDialogCreator*> DtVrfTaskSetDialogCreatorMap;
00076 
00077    public:
00079       DtVrfTaskSetDialogManager(makVrv::DtDe&);
00080 
00082       virtual ~DtVrfTaskSetDialogManager();
00083 
00085       static DtVrfTaskSetDialogManager& instance(makVrv::DtDe& de);
00086 
00087    public:
00091       virtual bool processDialogFor(int menuItemType, QWidget* parent, DtVrfTaskSetAction* forAction,
00092          const std::vector<makVrv::DtSimEntry*>& data, bool partOfPlan = false);
00093 
00096       virtual DtCommandAssignmentWidgetInterface* processCommandActionDialog(int menuItemType, QWidget* parent,
00097          DtVrfTaskSetAction* forAction, const std::vector<makVrv::DtSimEntry*>& data, bool partOfPlan = false);
00098 
00099       bool dialogInProgress() const
00100       {
00101          return myDialogInProgress;
00102       }
00103 
00106       virtual int nextAvailableId() const;
00107 
00108    public:
00111       virtual void addDialogCreator(int menuItemType, DtVrfTaskSetDialogCreator*);
00112       
00114       virtual bool removeDialogCreator(int menuItemType);
00115 
00117       virtual bool hasDialogCreator(int menuItemType);
00118 
00120       virtual void removeAllDialogCreators();
00121 
00123       virtual bool statementIsEditable(const DtSimStatement*) const;
00124 
00127       virtual DtTaskSetDialogInterface* createDialogFor(int type, const DtSimStatement* stmt, QWidget* parent,
00128          bool registerDialog = true);
00129       virtual DtTaskSetDialogInterface* createDialogFor(const DtSimStatement* stmt, QWidget* parent, bool registerDialog = true);
00130 
00132       virtual DtCommandAssignmentWidgetInterface* createCommandDialogFor(const DtSimStatement* stmt, QWidget* parent);
00133       virtual DtCommandAssignmentWidgetInterface* createCommandDialogFor(int menuItemType, QWidget* parent);
00134 
00136       virtual int typeFromStatement(const DtSimStatement* stmt) const;
00137 
00139       virtual DtCommandAssignmentWidgetInterface* createCommandActionDialog(QWidget*, DtCommandDialogExtensionInterface*);
00140 
00141    protected:
00142       virtual void slot_onDialogDestroyed(DtTaskSetDialogInterface*);
00143       virtual void slot_onCommandDialogDestroyed(DtCommandAssignmentWidget*);
00144 
00145    protected:
00148       virtual void prepDialog(DtTaskSetDialogInterface*, DtVrfTaskSetAction* forAction, bool partOfPlan);
00149       virtual void prepDialog(DtCommandAssignmentWidgetInterface*, DtVrfTaskSetAction* forAction, bool partOfPlan);
00150 
00151    public:
00153       boost::signal<void (DtTaskSetDialogInterface*)> signal_dialogCreated;
00154 
00156       boost::signal<void (DtCommandAssignmentWidgetInterface*)> signal_commandDialogCreated;
00157 
00159       boost::signal<void (DtCommandAssignmentWidget*)> signal_commandDialogDestroyed;
00160 
00162       boost::signal<void (DtTaskSetDialogInterface*)> signal_dialogDestroyed;
00163 
00164    protected:
00165       makVrv::DtDe&                     myDe;
00166       DtVrfTaskSetDialogCreatorMap     myDialogCreatorMap;
00167       DtVrfTaskSetDialogSignalHandler  myTaskSetDialogSignalHandler;
00168       bool                             myDialogInProgress;
00169    };
00170 }

Document ID: Generated on Fri Jun 29 16:33:32 EDT 2012 from SVN revision 116588
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)