QIGUISession.hh

00001 #ifndef _QIGUI_SESSION__H_
00002 #define _QIGUI_SESSION__H_
00003 
00004 #include <QDockWidget>
00005 #include <QMainWindow>
00006 #include <QIGUICoSessionHandler.hh>
00007 #include <QIGUIChannelSet.hh>
00008 
00009 
00010 #include "ui_DockSession.h"
00011 class QChain;
00012 class QTree;
00013 class QIGUIFileHandler;
00014 class QIGUIDianaSessionHandler;
00015 class QIGUIPulseWindow;
00016 class QIGUIPlotData;
00017 class QIGUIMainWindow;
00018 class QProgressBar;
00019 class QComboBox;
00020 class QIGUIDetectorMapViewer;
00021 
00022 class QIGUISession: public QDockWidget,  public Ui::DockSession
00023 {
00024   Q_OBJECT
00025 
00026   private:
00027 
00028     QIGUIMainWindow * fMainWindow;
00029     QIGUIFileHandler * fFileHandler;
00030     std::list<QIGUIPulseWindow *> fPulseWindows;
00031 
00032     // Diana
00033     QIGUIDianaSessionHandler * fDianaSessionHandler;
00034     bool fDianaSessionRunning;
00035     std::string fDianaStatus;
00036 
00037     // Coincidence Analysis
00038     std::map<QString, QIGUICoSessionHandler *> fCoSessionHandlers;
00039 
00040     // DetectorMap Viewer
00041     QIGUIDetectorMapViewer * fDetectorMapViewer;
00042     bool fDetectorMapViewerActive;
00043 
00044     // Channels sets
00045     std::map<int, QIGUIChannelSet> fChannelSets;
00046 
00047 
00048   public:
00049 
00050     // Ctr, Dtr, initialization
00051     QIGUISession (QWidget * parent=0);
00052     QIGUISession (QString& name, QWidget * parent=0);
00053     virtual ~QIGUISession();
00054     void Init();
00055     void InitDianaConfiguration();
00056     void CreateSignals();
00057     void DestroySignals();
00058 
00059     // SIGNALS
00060 
00061   signals:
00062     void RequestFocusToMainWindow(QString name);
00063     void DisplayParametersSignal();
00064 
00065     // SLOTS
00066   public slots:
00067     void CheckRequestFocus(bool vis);
00068     void NotifyChangeParameter(QTreeWidgetItem * , int );
00069     void DisplayParameters();
00070     void RerunDiana();
00071     void RefreshModulesParameters();
00072     void ChangeDianaConfiguration(QTreeWidgetItem * item, int column);
00073     // CoAnalisys
00074     void AddCoAnalysis();
00075     void RemoveCoAnalysis();
00076     void BuildCoincidences(QString name = "");
00077     void RefreshCurrentCoData();
00078     void NotifyChangeCoData(QTreeWidgetItem * , int );
00079     void CoAnalysisEnd(QString, int);
00080     void SetCoSessionHandlersStatus (QIGUICoSessionHandler::Status status);
00081     void SetCoSessionHandlerStatus (QString name, QIGUICoSessionHandler::Status status);
00082     // Detector map
00083     void ChangeDetectorMap();
00084     void NotifyChangeDetectorMap();
00085     void ShowDetectorMapViewer(int);
00086     QIGUIDetectorMapViewer * GetDetectorMapViewer() {return fDetectorMapViewer;}
00087     bool IsDetectorMapViewerActive () {return fDetectorMapViewerActive;}
00088   
00089 
00090 
00091   public:
00092     // Getters and Setters
00093     //
00094     // File
00095     QIGUIFileHandler * GetFileHandler() {return fFileHandler;}
00096     std::list<QIGUIPulseWindow*> GetPulseWindows() {return fPulseWindows;}
00097 
00098 
00099     // METHODS
00100     void UpdateOpenFilesList();
00101     void FillVariablesComboCut();
00102     void FillVariablesComboCut(QComboBox * );
00103     void EmitDisplayParametersSignal();
00104 
00105     // Diana
00106     QIGUIDianaSessionHandler * GetDianaSessionHandler() {return fDianaSessionHandler;}
00107     bool CheckAutorunDiana();
00108     bool IsDianaRunning() {return fDianaSessionRunning;}
00109     void SetDianaStatus(std::string status);
00110     std::string GetDianaStatus() {return fDianaStatus;}
00111     std::string GetDianaPath();
00112     std::string GetDianaConfigFile();
00113     std::string GetDianaOptions();
00114     std::string GetDianaLogFile();
00115     int GetDianaPort();
00116     void SetDianaPort(int port);
00117     void AddPulseWindow(QIGUIPulseWindow*);
00118     void RemovePulseWindow(QIGUIPulseWindow*);
00119     void LaunchDianaPulsesViewer(QIGUIPlotData *plotData=0, QIGUICoSessionHandler * coSession=0);
00120     void RunDiana();
00121 
00122     // Coincidence analysis
00123     QIGUICoSessionHandler * GetCoSessionHandler(QString name="");
00124     void DeleteCoSessionHandler(QString name);
00125     std::string GetDetectorMap();
00126     void NotifyCutChangeToCoSessionHandlers(QString name);
00127     void NotifyCoCutChangeToCoSessionHandlers(QString name);
00128 
00129     // Channel sets
00130     bool IsChannelSet(int ch);
00131     QIGUIChannelSet & GetChannelSet(int ch);
00132 
00133 
00134     // Auxiliar
00135     void NotifyChangeFile();
00136     void SetCoAnalysisToBeDone(bool flag, QTreeWidgetItem * item=0);
00137 
00138     void AddFriend();
00139     void AddDeltaTimeFriend();
00140 
00141     friend class QIGUIDianaSessionHandler;
00142     friend class QIGUICoSessionHandler;
00143 
00144 
00145 
00146 };
00147 
00148 #endif

Generated on Fri Mar 6 13:40:40 2009 for CUORE Software by  doxygen 1.5.1