VR-Forces 4.0.4 Class Documentation
include/vrfGuiCoreQt/DtVrfConditionalDialogManager.h
Go to the documentation of this file.
00001 /******************************************************************************
00002 ** Copyright (c) 2008 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 ******************************************************************************/
00005 /******************************************************************************
00006 ** $RCSfile: DtVrfConditionalDialogManager.h,v $ $Revision: 1.1 $ $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 DtSimCondExpr;
00031 
00032 namespace makVrf
00033 {
00034    class DtConditionalDialogInterface;
00035    class DtVrfConditionalDialogCreator;
00036    class DtVrfConditionalExpressionCreator;
00037    class DtVrfConditionalDialogManager;
00038    class DtVrfConditionalAction;
00039    class DtConditionalExpressionInterface;
00040 
00041    class DT_DLL_VRFGUICOREQT DtVrfConditionalDialogSignalHandler : public QObject
00042    {
00043       Q_OBJECT
00044 
00045    public:
00046       DtVrfConditionalDialogSignalHandler(makVrv::DtDe&);
00047       virtual ~DtVrfConditionalDialogSignalHandler();
00048 
00049       virtual void connectDialogSignals(DtConditionalDialogInterface*);
00050       virtual void disconnectDialogSignals(QObject*);
00051 
00052       virtual void connectExpressionSignals(DtConditionalExpressionInterface*);
00053       virtual void disconnectExpressionSignals(QObject*);
00054 
00055    public:
00057       boost::signal<void (DtConditionalDialogInterface*)> signal_dialogDestroyed;
00058 
00059    public:
00061       boost::signal<void (DtConditionalExpressionInterface*)> signal_expressionDestroyed;
00062 
00063    protected slots:
00064       virtual void onDialogDestroyed();
00065       virtual void onExpressionDestroyed();
00066 
00067    protected:
00068       makVrv::DtDe&               myDe;
00069    };
00070 
00072    class DT_DLL_VRFGUICOREQT DtVrfConditionalDialogManager : public makVrv::DtVirtualBaseClass
00073    {
00074       typedef std::map<std::string, DtVrfConditionalDialogCreator*> DtVrfConditionalDialogCreatorMap;
00075       typedef std::map<std::string, DtVrfConditionalExpressionCreator*> DtVrfConditionalExpressionCreatorMap;
00076 
00077    public:
00078       typedef std::pair<std::string, std::string> DtConditionalExpressionItem;
00079       typedef std::vector<DtConditionalExpressionItem> DtConditionalExpressionsList;
00080 
00081    public:
00083       DtVrfConditionalDialogManager(makVrv::DtDe&);
00084 
00086       virtual ~DtVrfConditionalDialogManager();
00087 
00089       static DtVrfConditionalDialogManager& instance(makVrv::DtDe& de);
00090 
00091    public:
00095       virtual bool processDialogFor(const std::string& menuItemType, QWidget* parent,
00096          const std::vector<makVrv::DtSimEntry*>& data, DtVrfConditionalAction* forAction);
00097 
00098       bool dialogInProgress() const
00099       {
00100          return myDialogInProgress;
00101       }
00102 
00103    public:
00106       virtual void addDialogCreator(const std::string& menuItemType, DtVrfConditionalDialogCreator*);
00107       
00109       virtual bool removeDialogCreator(const std::string& menuItemType);
00110 
00112       virtual bool hasDialogCreator(const std::string& menuItemType) const;
00113 
00115       virtual void removeAllDialogCreators();
00116 
00117    public:
00121       virtual void addConditionalExpression(const std::string& menuItemType, DtVrfConditionalExpressionCreator*);
00122       virtual void addConditionalExpressionAfter(const std::string& p, const std::string& after, DtVrfConditionalExpressionCreator* i);
00123       virtual void addConditionalExpressionBefore(const std::string& p, const std::string& before, DtVrfConditionalExpressionCreator* i);
00124       
00126       virtual bool removeConditionalExpression(const std::string& menuItemType);
00127 
00129       virtual bool hasConditionalExpression(const std::string& menuItemType) const;
00130 
00132       virtual bool hasConditionalExpression(int type) const;
00133 
00135       virtual void removeAllConditionalExpressions();
00136 
00138       virtual int expressionDisplayOrder(const std::string&) const;
00139 
00142       virtual void setExpressionDisplayOrder(const std::string&, int);
00143 
00145       virtual DtConditionalExpressionsList getConditionalExpressionsList() const;
00146 
00148       virtual DtConditionalExpressionInterface* createExpression(const std::string& s, QWidget* parent);
00149 
00151       virtual DtConditionalExpressionInterface* createExpression(int type, QWidget* parent);
00152 
00154       virtual DtVrfConditionalExpressionCreator* expressionCreatorFor(const std::string& s) const;
00155 
00157       virtual DtVrfConditionalExpressionCreator* expressionCreatorFor(int type) const;
00158 
00160       virtual bool canEditType(int iType) const;
00161 
00163       virtual DtConditionalDialogInterface* createDialog(int iType, QWidget* parent);
00164 
00165    protected:
00166       virtual void slot_onDialogDestroyed(DtConditionalDialogInterface*);
00167       virtual void slot_onExpressionDestroyed(DtConditionalExpressionInterface*);
00168 
00169    protected:
00172       virtual void prepDialog(DtConditionalDialogInterface*, const std::vector<makVrv::DtSimEntry*>& data,
00173          DtVrfConditionalAction* forAction);
00174 
00175       virtual void addConditional(const std::string&, const std::string&, DtVrfConditionalExpressionCreator*, bool after = true);
00176 
00177    public:
00179       boost::signal<void (DtConditionalDialogInterface*)> signal_dialogCreated;
00180 
00182       boost::signal<void (DtConditionalDialogInterface*)> signal_dialogDestroyed;
00183 
00184    public:
00186       boost::signal<void (DtConditionalExpressionInterface*)> signal_expressionCreated;
00187 
00189       boost::signal<void (DtConditionalExpressionInterface*)> signal_expressionDestroyed;
00190 
00191    protected:
00192       makVrv::DtDe&                        myDe;
00193       DtVrfConditionalDialogCreatorMap    myDialogCreatorMap;
00194       DtVrfConditionalExpressionCreatorMap    myExpressionCreatorMap;
00195       std::vector<std::string>            myExpressionOrder;
00196       DtVrfConditionalDialogSignalHandler myConditionalDialogSignalHandler;
00197       bool                                myDialogInProgress;
00198    };
00199 }

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)