#include "MeasureAnalysisView.h" #include #include "MeasureAnalysisDataTableView.h" QMap MeasureAnalysisView::_s_analyze_view_type_list { { QStringLiteral(u"数据表视图"), MeasureAnalysisViewType::DataTable }, { QStringLiteral(u"计数谱视图"), MeasureAnalysisViewType::CountSpectrum }, { QStringLiteral(u"符合能谱谱三维分析视图"), MeasureAnalysisViewType::CoincidenceEnergySpectrum3D }, { QStringLiteral(u"计数率分析视图"), MeasureAnalysisViewType::CountingRate }, { QStringLiteral(u"峰拟合分析视图"), MeasureAnalysisViewType::EnergyPeakFit }, { QStringLiteral(u"核素分析视图"), MeasureAnalysisViewType::NuclideAnalysis }, { QStringLiteral(u"粒子入射时间分析视图"), MeasureAnalysisViewType::ParticleInTime }, { QStringLiteral(u"粒子时间差分析视图"), MeasureAnalysisViewType::ParticleTimeDiff }, { QStringLiteral(u"符合事件时间分析视图"), MeasureAnalysisViewType::CoincidenceEventTime }, { QStringLiteral(u"符合能谱分析视图"), MeasureAnalysisViewType::CoincidenceEnergySpectrum }, { QStringLiteral(u"反符合能谱分析视图"), MeasureAnalysisViewType::AntiCoincidenceSpectrum } }; MeasureAnalysisView *MeasureAnalysisView::NewAnalyzeView(const QString& view_type_text) { MeasureAnalysisView* new_view = nullptr; if (_s_analyze_view_type_list.contains(view_type_text)) { MeasureAnalysisViewType view_type = _s_analyze_view_type_list[view_type_text]; switch (view_type) { case MeasureAnalysisViewType::DataTable: { new_view = new MeasureAnalysisDataTableView; } break; case MeasureAnalysisViewType::CountSpectrum: { new_view = new MeasureAnalysisDataTableView; } break; case MeasureAnalysisViewType::CoincidenceEnergySpectrum3D: { new_view = new MeasureAnalysisDataTableView; } break; case MeasureAnalysisViewType::CountingRate: { new_view = new MeasureAnalysisDataTableView; } break; case MeasureAnalysisViewType::EnergyPeakFit: { new_view = new MeasureAnalysisDataTableView; } break; case MeasureAnalysisViewType::NuclideAnalysis: { new_view = new MeasureAnalysisDataTableView; } break; case MeasureAnalysisViewType::ParticleInTime: { new_view = new MeasureAnalysisDataTableView; } break; case MeasureAnalysisViewType::ParticleTimeDiff: { new_view = new MeasureAnalysisDataTableView; } break; case MeasureAnalysisViewType::CoincidenceEventTime: { new_view = new MeasureAnalysisDataTableView; } break; case MeasureAnalysisViewType::CoincidenceEnergySpectrum: { new_view = new MeasureAnalysisDataTableView; } break; case MeasureAnalysisViewType::AntiCoincidenceSpectrum: { new_view = new MeasureAnalysisDataTableView; } break; default: break; } } return new_view; } const QString &MeasureAnalysisView::GetAnalyzeViewTypeText(MeasureAnalysisViewType 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 = MeasureAnalysisViewType::None; } MeasureAnalysisViewType 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(MeasureAnalysisViewType type) { _view_type = type; } QDataStream& operator<<(QDataStream& out, const MeasureAnalysisView& view) { return out; } QDataStream& operator>>(QDataStream& in, MeasureAnalysisView& view) { return in; }