#ifndef MEASUREANALYSISVIEW_H #define MEASUREANALYSISVIEW_H #include #include #include #include #include enum class MeasureAnalysisViewType { None, DataTable, CountSpectrum, CoincidenceEnergySpectrum3D, CountingRate, EnergyPeakFit, NuclideAnalysis, ParticleInTime, ParticleTimeDiff, CoincidenceEventTime, CoincidenceEnergySpectrum, AntiCoincidenceSpectrum }; class MeasureAnalysisView : public QWidget { Q_OBJECT public: static MeasureAnalysisView* NewAnalyzeView(const QString& view_type_text); static const QString& GetAnalyzeViewTypeText(MeasureAnalysisViewType type); private: static QMap _s_analyze_view_type_list; public: explicit MeasureAnalysisView(QWidget* parent = nullptr); MeasureAnalysisViewType GetAnalyzeViewType(); const QString& GetAnalyzeViewTypeText() const; void SetViewName(const QString& name); void SetViewDescription(const QString& description); const QString& GetViewName() const; const QString& GetViewDescription() const; virtual void SetAnalyzeDataFilename(const QMap& data_files_set) = 0; protected: void setAnalyzeViewType(MeasureAnalysisViewType type); private: MeasureAnalysisViewType _view_type; QString _name; QString _description; public: friend QDataStream& operator<<(QDataStream& out, const MeasureAnalysisView& view); friend QDataStream& operator>>(QDataStream& in, MeasureAnalysisView& view); }; #endif // MEASUREANALYSISVIEW_H