#include "MeasureAnalysisView.h" #include #include "MeasureAnalysisDataTableView.h" QMap MeasureAnalysisView::_s_analyze_view_type_list { { QStringLiteral(u"数据表视图"), MeasureAnalysisView::ViewType::DataTable }, { QStringLiteral(u"计数谱视图"), MeasureAnalysisView::ViewType::CountSpectrum }, { QStringLiteral(u"符合能谱谱三维分析视图"), MeasureAnalysisView::ViewType::CoincidenceEnergySpectrum3D }, { QStringLiteral(u"计数率分析视图"), MeasureAnalysisView::ViewType::CountingRate }, { QStringLiteral(u"峰拟合分析视图"), MeasureAnalysisView::ViewType::EnergyPeakFit }, { QStringLiteral(u"核素分析视图"), MeasureAnalysisView::ViewType::NuclideAnalysis }, { QStringLiteral(u"粒子入射时间分析视图"), MeasureAnalysisView::ViewType::ParticleInTime }, { QStringLiteral(u"粒子时间差分析视图"), MeasureAnalysisView::ViewType::ParticleTimeDiff }, { QStringLiteral(u"符合事件时间分析视图"), MeasureAnalysisView::ViewType::CoincidenceEventTime }, { QStringLiteral(u"符合能谱分析视图"), MeasureAnalysisView::ViewType::CoincidenceEnergySpectrum }, { QStringLiteral(u"反符合能谱分析视图"), MeasureAnalysisView::ViewType::AntiCoincidenceSpectrum } }; std::shared_ptr MeasureAnalysisView::NewAnalyzeView(const QString& view_type_text) { std::shared_ptr new_view; if (_s_analyze_view_type_list.contains(view_type_text)) { ViewType view_type = _s_analyze_view_type_list[view_type_text]; switch (view_type) { case ViewType::DataTable: { new_view = std::shared_ptr(new MeasureAnalysisDataTableView); } break; case ViewType::CountSpectrum: { new_view = std::shared_ptr(new MeasureAnalysisDataTableView); } break; case ViewType::CoincidenceEnergySpectrum3D: { new_view = std::shared_ptr(new MeasureAnalysisDataTableView); } break; case ViewType::CountingRate: { new_view = std::shared_ptr(new MeasureAnalysisDataTableView); } break; case ViewType::EnergyPeakFit: { new_view = std::shared_ptr(new MeasureAnalysisDataTableView); } break; case ViewType::NuclideAnalysis: { new_view = std::shared_ptr(new MeasureAnalysisDataTableView); } break; case ViewType::ParticleInTime: { new_view = std::shared_ptr(new MeasureAnalysisDataTableView); } break; case ViewType::ParticleTimeDiff: { new_view = std::shared_ptr(new MeasureAnalysisDataTableView); } break; case ViewType::CoincidenceEventTime: { new_view = std::shared_ptr(new MeasureAnalysisDataTableView); } break; case ViewType::CoincidenceEnergySpectrum: { new_view = std::shared_ptr(new MeasureAnalysisDataTableView); } break; case ViewType::AntiCoincidenceSpectrum: { new_view = std::shared_ptr(new MeasureAnalysisDataTableView); } break; default: break; } } return new_view; } const QString &MeasureAnalysisView::GetAnalyzeViewTypeText(ViewType type) { QString view_type_text; auto it_type = MeasureAnalysisView::_s_analyze_view_type_list.constBegin(); auto it_type_end = MeasureAnalysisView::_s_analyze_view_type_list.constEnd(); for (; it_type != it_type_end; ++it_type) { if (type == it_type.value()) { view_type_text = it_type.key(); break; } } return view_type_text; } MeasureAnalysisView::MeasureAnalysisView(QWidget* parent) : QWidget { parent } { _view_type = ViewType::None; } MeasureAnalysisView::ViewType MeasureAnalysisView::GetAnalyzeViewType() { return _view_type; } const QString &MeasureAnalysisView::GetAnalyzeViewTypeText() const { QString view_type_text; auto it_type = MeasureAnalysisView::_s_analyze_view_type_list.constBegin(); auto it_type_end = MeasureAnalysisView::_s_analyze_view_type_list.constEnd(); for (; it_type != it_type_end; ++it_type) { if (_view_type == it_type.value()) { view_type_text = it_type.key(); } } return view_type_text; } void MeasureAnalysisView::SetViewName(const QString &name) { this->_name = name; } void MeasureAnalysisView::SetViewDescription(const QString &description) { this->_description = description; } const QString &MeasureAnalysisView::GetViewName() const { return this->_name; } const QString &MeasureAnalysisView::GetViewDescription() const { return this->_description; } void MeasureAnalysisView::setAnalyzeViewType(ViewType type) { _view_type = type; } QDataStream& operator<<(QDataStream& out, const MeasureAnalysisView& view) { return out; } QDataStream& operator>>(QDataStream& in, MeasureAnalysisView& view) { return in; }