#ifndef MEASUREANALYSISVIEW_H #define MEASUREANALYSISVIEW_H #include #include #include #include #include class MeasureAnalysisView : public QWidget { Q_OBJECT public: enum class ViewType { None, DataTable, CountSpectrum, CoincidenceEnergySpectrum3D, CountingRate, EnergyPeakFit, NuclideAnalysis, ParticleInTime, ParticleTimeDiff, CoincidenceEventTime, CoincidenceEnergySpectrum, AntiCoincidenceSpectrum }; static MeasureAnalysisView* NewAnalyzeView(const QString& view_type_text); static const QString& GetAnalyzeViewTypeText(ViewType type); private: static QMap _s_analyze_view_type_list; public: explicit MeasureAnalysisView(QWidget* parent = nullptr); ViewType 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(ViewType type); private: ViewType _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