20 QAbstractTableModel(parent)
35 emit beginResetModel();
51 emit beginResetModel();
66 return plot.second->GetValues().size();
75 for (
auto aCurve : collection.second.second->CastToSTLContainer())
77 if (curve == aCurve.second.GetPointer())
79 return std::make_pair(
true, collection);
83 return std::make_pair(
false, mitk::ModelFitPlotData::PositionalCollectionMap::value_type());
109 size += coll.second.second->size();
122 for (
const auto& iter : *(collection))
126 if (actualCount == index)
128 finding = std::make_pair(iter.first, iter.second.GetPointer());
137 std::pair<std::string, const mitk::PlotDataCurve*>
150 std::pair<std::string, const mitk::PlotDataCurve*> finding;
151 std::size_t actualCount;
174 data(
const QModelIndex& index,
int role)
const 176 if (!index.isValid())
183 if (index.column() == 0)
185 if (role == Qt::DisplayRole || role == Qt::EditRole)
187 result = QVariant(QString::number(index.row()));
189 else if (role == Qt::ToolTipRole)
191 result = QVariant(
"Index in plot.");
194 else if (index.column() == 1)
197 if (role == Qt::DisplayRole || role == Qt::EditRole)
199 if (finding.second && index.row() <
static_cast<int>(finding.second->GetValues().size()))
201 result = QVariant(QString::number(finding.second->GetValues()[index.row()].first));
204 else if (role == Qt::ToolTipRole)
206 result = QVariant(
"x value in plot.");
212 if (role == Qt::DisplayRole || role == Qt::EditRole)
214 if (finding.second && index.row() <
static_cast<int>(finding.second->GetValues().size()))
216 result = QVariant(QString::number(finding.second->GetValues()[index.row()].second));
219 else if (role == Qt::ToolTipRole)
221 result = QVariant(
"This is a value of the respective curve.");
230 flags(
const QModelIndex& index)
const 232 Qt::ItemFlags
flags = QAbstractItemModel::flags(index);
239 headerData(
int section, Qt::Orientation orientation,
int role)
const 241 if ((Qt::DisplayRole == role) &&
242 (Qt::Horizontal == orientation))
246 return QVariant(
"#");
248 else if (section == 1)
250 return QVariant(QString::fromStdString(m_XName));
258 std::ostringstream nameStrm;
259 nameStrm.imbue(std::locale(
"C"));
260 nameStrm << finding.first;
262 if (pointFinding.first)
267 return QVariant(QString::fromStdString(nameStrm.str()));
277 setData(
const QModelIndex&,
const QVariant&,
int)
QmitkFitPlotDataModel(QObject *parent=nullptr)
int rowCount(const QModelIndex &parent=QModelIndex()) const override
std::pair< std::string, const mitk::PlotDataCurve * > GetCurveByColumn(int col) const
QVariant headerData(int section, Qt::Orientation orientation, int role) const override
bool setData(const QModelIndex &index, const QVariant &value, int role=Qt::EditRole) override
const mitk::ModelFitPlotData * GetPlotData() const
int columnCount(const QModelIndex &parent=QModelIndex()) const override
static std::string GetPositionalCollectionName(const PositionalCollectionMap::value_type &mapValue)
const std::string & GetXName() const
void SetPlotData(const mitk::ModelFitPlotData *data)
MITKMODELFIT_EXPORT const std::string MODEL_FIT_PLOT_INTERPOLATED_SIGNAL_NAME()
QVariant data(const QModelIndex &index, int role) const override
std::pair< bool, mitk::ModelFitPlotData::PositionalCollectionMap::value_type > GetPositionalCurvePoint(const mitk::PlotDataCurve *) const
bool GetCurveFromCollection(const mitk::PlotDataCurveCollection *collection, std::vcl_size_t index, std::pair< std::string, const mitk::PlotDataCurve *> &finding, std::vcl_size_t &actualCount)
itk::MapContainer< std::string, PlotDataCurve::Pointer > PlotDataCurveCollection
PositionalCollectionMap positionalPlots
void SetXName(const std::string &xName)
Qt::ItemFlags flags(const QModelIndex &index) const override
static const PlotDataCurve * GetInterpolatedSignalPlot(const PlotDataCurveCollection *coll)
PlotDataCurveCollection::Pointer currentPositionPlots
PlotDataCurveCollection::Pointer staticPlots