149 lines
4.9 KiB
C++
149 lines
4.9 KiB
C++
#include "MeasureAnalysisView.h"
|
|
#include <QMap>
|
|
#include "MeasureAnalysisDataTableView.h"
|
|
|
|
QMap<QString, MeasureAnalysisViewType> 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;
|
|
}
|
|
|