mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
@@ -107,7 +107,7 @@ bool RicImportObservedDataFeature::createAndAddObservedDataFromFile(const QStrin
|
||||
RimObservedDataCollection* observedDataCollection = proj->activeOilField() ? proj->activeOilField()->observedDataCollection() : nullptr;
|
||||
if (!observedDataCollection) return false;
|
||||
|
||||
RimSummaryObservedDataFile* newObservedData = observedDataCollection->createAndAddObservedDataFromFileName(fileName);
|
||||
RimObservedData* newObservedData = observedDataCollection->createAndAddObservedDataFromFileName(fileName);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@@ -29,6 +29,7 @@ ${CEE_CURRENT_LIST_DIR}RifEclipseSummaryAddress.h
|
||||
${CEE_CURRENT_LIST_DIR}RifEclipseSummaryAddressQMetaType.h
|
||||
${CEE_CURRENT_LIST_DIR}RifWellPathImporter.h
|
||||
${CEE_CURRENT_LIST_DIR}RifHdf5ReaderInterface.h
|
||||
${CEE_CURRENT_LIST_DIR}RifReaderRmspecColumnBasedData.h
|
||||
|
||||
# HDF5 file reader is directly included in ResInsight main CmakeList.txt
|
||||
#${CEE_CURRENT_LIST_DIR}RifHdf5Reader.h
|
||||
@@ -64,6 +65,7 @@ ${CEE_CURRENT_LIST_DIR}RifReaderSettings.cpp
|
||||
${CEE_CURRENT_LIST_DIR}RifEclipseSummaryAddress.cpp
|
||||
${CEE_CURRENT_LIST_DIR}RifWellPathImporter.cpp
|
||||
${CEE_CURRENT_LIST_DIR}RifHdf5ReaderInterface.cpp
|
||||
${CEE_CURRENT_LIST_DIR}RifReaderRmspecColumnBasedData.cpp
|
||||
|
||||
# HDF5 file reader is directly included in ResInsight main CmakeList.txt
|
||||
#${CEE_CURRENT_LIST_DIR}RifHdf5Reader.cpp
|
||||
|
199
ApplicationCode/FileInterface/RifReaderRmspecColumnBasedData.cpp
Normal file
199
ApplicationCode/FileInterface/RifReaderRmspecColumnBasedData.cpp
Normal file
@@ -0,0 +1,199 @@
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Copyright (C) 2017- Statoil ASA
|
||||
//
|
||||
// ResInsight is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation, either version 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// ResInsight is distributed in the hope that it will be useful, but WITHOUT ANY
|
||||
// WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
// FITNESS FOR A PARTICULAR PURPOSE.
|
||||
//
|
||||
// See the GNU General Public License at <http://www.gnu.org/licenses/gpl.html>
|
||||
// for more details.
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "RifReaderRmspecColumnBasedData.h"
|
||||
|
||||
#include "RiaLogging.h"
|
||||
|
||||
#include "RifColumnBasedRsmspecParser.h"
|
||||
#include "RifRsmspecParserTools.h"
|
||||
|
||||
#include "cafUtils.h"
|
||||
|
||||
#include <QDateTime>
|
||||
#include <QFile>
|
||||
#include <QTextStream>
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RifReaderRmspecColumnBasedData::RifReaderRmspecColumnBasedData()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RifReaderRmspecColumnBasedData::~RifReaderRmspecColumnBasedData()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
bool RifReaderRmspecColumnBasedData::open(const QString& headerFileName)
|
||||
{
|
||||
if (!caf::Utils::fileExists(headerFileName)) return false;
|
||||
|
||||
QFile file(headerFileName);
|
||||
if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
|
||||
{
|
||||
RiaLogging::error(QString("Failed to open %1").arg(headerFileName));
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
QTextStream in(&file);
|
||||
QString fileContents = in.readAll();
|
||||
|
||||
m_parser = std::unique_ptr<RifColumnBasedRsmspecParser>(new RifColumnBasedRsmspecParser(fileContents));
|
||||
if (!m_parser)
|
||||
{
|
||||
RiaLogging::error(QString("Failed to parse file %1").arg(headerFileName));
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
m_allResultAddresses.clear();
|
||||
|
||||
for (size_t tableIndex = 0; tableIndex < m_parser->tables().size(); tableIndex++)
|
||||
{
|
||||
size_t timeColumnIndex = m_parser->tables()[tableIndex].size();
|
||||
|
||||
// Find time index
|
||||
for (size_t columIndex = 0; columIndex < m_parser->tables()[tableIndex].size(); columIndex++)
|
||||
{
|
||||
const ColumnInfo& ci = m_parser->tables()[tableIndex][columIndex];
|
||||
if (!ci.isAVector)
|
||||
{
|
||||
timeColumnIndex = columIndex;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (timeColumnIndex == m_parser->tables()[tableIndex].size())
|
||||
{
|
||||
RiaLogging::warning(QString("Failed to find time data for table %1 in file %2").arg(tableIndex).arg(headerFileName));
|
||||
RiaLogging::warning(QString("No data for this table is imported"));
|
||||
}
|
||||
else
|
||||
{
|
||||
const ColumnInfo& ci = m_parser->tables()[tableIndex][timeColumnIndex];
|
||||
|
||||
m_timeSteps.resize(m_timeSteps.size() + 1);
|
||||
|
||||
std::vector<time_t>& timeSteps = m_timeSteps.back();
|
||||
{
|
||||
for (auto v : ci.values)
|
||||
{
|
||||
timeSteps.push_back(v);
|
||||
}
|
||||
}
|
||||
|
||||
for (size_t columIndex = 0; columIndex < m_parser->tables()[tableIndex].size(); columIndex++)
|
||||
{
|
||||
const ColumnInfo& ci = m_parser->tables()[tableIndex][columIndex];
|
||||
if (ci.isAVector)
|
||||
{
|
||||
RifEclipseSummaryAddress sumAddress = address(ci);
|
||||
m_allResultAddresses.push_back(sumAddress);
|
||||
|
||||
m_mapFromAddressToTimeStepIndex[sumAddress] = m_timeSteps.size() - 1;
|
||||
m_mapFromAddressToResultIndex[sumAddress] = std::make_pair(tableIndex, columIndex);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
bool RifReaderRmspecColumnBasedData::values(const RifEclipseSummaryAddress& resultAddress, std::vector<double>* values) const
|
||||
{
|
||||
auto search = m_mapFromAddressToResultIndex.find(resultAddress);
|
||||
if (search != m_mapFromAddressToResultIndex.end())
|
||||
{
|
||||
std::pair<size_t, size_t> tableColIndices = search->second;
|
||||
|
||||
const ColumnInfo& ci = m_parser->tables()[tableColIndices.first][tableColIndices.second];
|
||||
for (const auto& v : ci.values)
|
||||
{
|
||||
values->push_back(v);
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
const std::vector<time_t>& RifReaderRmspecColumnBasedData::timeSteps(const RifEclipseSummaryAddress& resultAddress) const
|
||||
{
|
||||
auto search = m_mapFromAddressToTimeStepIndex.find(resultAddress);
|
||||
if (search != m_mapFromAddressToTimeStepIndex.end())
|
||||
{
|
||||
return m_timeSteps[search->second];
|
||||
}
|
||||
|
||||
static std::vector<time_t> emptyVector;
|
||||
|
||||
return emptyVector;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RifEclipseSummaryAddress RifReaderRmspecColumnBasedData::address(const ColumnInfo& columnInfo)
|
||||
{
|
||||
return RifEclipseSummaryAddress(columnInfo.category,
|
||||
columnInfo.quantityName,
|
||||
columnInfo.regionNumber,
|
||||
columnInfo.regionNumber2,
|
||||
columnInfo.wellGroupName,
|
||||
columnInfo.wellName,
|
||||
columnInfo.wellSegmentNumber,
|
||||
columnInfo.lgrName,
|
||||
columnInfo.cellI,
|
||||
columnInfo.cellJ,
|
||||
columnInfo.cellK);
|
||||
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
std::string RifReaderRmspecColumnBasedData::unitName(const RifEclipseSummaryAddress& resultAddress) const
|
||||
{
|
||||
auto search = m_mapFromAddressToResultIndex.find(resultAddress);
|
||||
if (search != m_mapFromAddressToResultIndex.end())
|
||||
{
|
||||
std::pair<size_t, size_t> tableColIndices = search->second;
|
||||
|
||||
const ColumnInfo& ci = m_parser->tables()[tableColIndices.first][tableColIndices.second];
|
||||
|
||||
return ci.unitName;
|
||||
}
|
||||
|
||||
return "";
|
||||
}
|
@@ -0,0 +1,67 @@
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Copyright (C) 2017- Statoil ASA
|
||||
//
|
||||
// ResInsight is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation, either version 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// ResInsight is distributed in the hope that it will be useful, but WITHOUT ANY
|
||||
// WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
// FITNESS FOR A PARTICULAR PURPOSE.
|
||||
//
|
||||
// See the GNU General Public License at <http://www.gnu.org/licenses/gpl.html>
|
||||
// for more details.
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "RifSummaryReaderInterface.h"
|
||||
|
||||
#include <map>
|
||||
#include <memory>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
class QDateTime;
|
||||
class QString;
|
||||
|
||||
class RifColumnBasedRsmspecParser;
|
||||
class RifEclipseSummaryAddress;
|
||||
|
||||
struct ColumnInfo;
|
||||
|
||||
|
||||
|
||||
//==================================================================================================
|
||||
//
|
||||
//
|
||||
//==================================================================================================
|
||||
class RifReaderRmspecColumnBasedData : public RifSummaryReaderInterface
|
||||
{
|
||||
public:
|
||||
RifReaderRmspecColumnBasedData();
|
||||
~RifReaderRmspecColumnBasedData();
|
||||
|
||||
bool open(const QString& headerFileName);
|
||||
|
||||
virtual const std::vector<time_t>& timeSteps(const RifEclipseSummaryAddress& resultAddress) const override;
|
||||
|
||||
virtual bool values(const RifEclipseSummaryAddress& resultAddress,
|
||||
std::vector<double>* values) const override;
|
||||
|
||||
std::string unitName(const RifEclipseSummaryAddress& resultAddress) const override;
|
||||
|
||||
private:
|
||||
static RifEclipseSummaryAddress address(const ColumnInfo& columnInfo);
|
||||
|
||||
private:
|
||||
std::unique_ptr<RifColumnBasedRsmspecParser> m_parser;
|
||||
std::vector< std::vector<time_t> > m_timeSteps;
|
||||
|
||||
std::map<RifEclipseSummaryAddress, size_t > m_mapFromAddressToTimeStepIndex;
|
||||
std::map<RifEclipseSummaryAddress, std::pair<size_t, size_t> > m_mapFromAddressToResultIndex;
|
||||
};
|
@@ -49,17 +49,6 @@ RimFileSummaryCase::~RimFileSummaryCase()
|
||||
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimFileSummaryCase::setSummaryHeaderFilename(const QString& fileName)
|
||||
{
|
||||
m_summaryHeaderFilename = fileName;
|
||||
|
||||
this->updateAutoShortName();
|
||||
this->updateTreeItemName();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
@@ -36,7 +36,6 @@ public:
|
||||
RimFileSummaryCase();
|
||||
virtual ~RimFileSummaryCase();
|
||||
|
||||
void setSummaryHeaderFilename(const QString& fileName);
|
||||
virtual QString summaryHeaderFilename() const override;
|
||||
virtual QString caseName() override;
|
||||
virtual void updateFilePathsFromProjectPath(const QString& newProjectPath, const QString& oldProjectPath) override;
|
||||
|
@@ -35,14 +35,6 @@ RimObservedData::RimObservedData()
|
||||
CAF_PDM_InitFieldNoDefault(&m_identifierName, "IdentifierName", "Identifier Name", "", "", "");
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
QString RimObservedData::summaryHeaderFilename() const
|
||||
{
|
||||
return m_summaryHeaderFilename();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
@@ -36,7 +36,6 @@ class RimObservedData : public RimSummaryCase
|
||||
public:
|
||||
RimObservedData();
|
||||
|
||||
virtual QString summaryHeaderFilename() const override;
|
||||
virtual QString caseName() override;
|
||||
virtual void updateFilePathsFromProjectPath(const QString& newProjectPath, const QString& oldProjectPath) override;
|
||||
|
||||
|
@@ -18,7 +18,9 @@
|
||||
|
||||
|
||||
#include "RimObservedDataCollection.h"
|
||||
|
||||
#include "RimObservedData.h"
|
||||
#include "RimObservedRsmspecColumnBasedData.h"
|
||||
#include "RimSummaryObservedDataFile.h"
|
||||
|
||||
CAF_PDM_SOURCE_INIT(RimObservedDataCollection, "ObservedDataCollection");
|
||||
@@ -62,18 +64,34 @@ void RimObservedDataCollection::addObservedData(RimObservedData* observedData)
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RimSummaryObservedDataFile* RimObservedDataCollection::createAndAddObservedDataFromFileName(const QString& fileName)
|
||||
RimObservedData* RimObservedDataCollection::createAndAddObservedDataFromFileName(const QString& fileName)
|
||||
{
|
||||
RimSummaryObservedDataFile* newObservedData = new RimSummaryObservedDataFile();
|
||||
RimObservedData* observedData = nullptr;
|
||||
|
||||
this->m_observedDataArray.push_back(newObservedData);
|
||||
newObservedData->setSummaryHeaderFilename(fileName);
|
||||
newObservedData->createSummaryReaderInterface();
|
||||
newObservedData->updateOptionSensitivity();
|
||||
if (fileName.endsWith(".rsm", Qt::CaseInsensitive))
|
||||
{
|
||||
RimObservedRsmspecColumnBasedData* rsmspecColumnBasedData = new RimObservedRsmspecColumnBasedData();
|
||||
|
||||
this->updateConnectedEditors();
|
||||
observedData = rsmspecColumnBasedData;
|
||||
}
|
||||
else
|
||||
{
|
||||
RimSummaryObservedDataFile* newObservedData = new RimSummaryObservedDataFile();
|
||||
|
||||
return newObservedData;
|
||||
observedData = newObservedData;
|
||||
}
|
||||
|
||||
if (observedData)
|
||||
{
|
||||
this->m_observedDataArray.push_back(observedData);
|
||||
observedData->setSummaryHeaderFileName(fileName);
|
||||
observedData->createSummaryReaderInterface();
|
||||
observedData->updateOptionSensitivity();
|
||||
|
||||
this->updateConnectedEditors();
|
||||
}
|
||||
|
||||
return observedData;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
@@ -23,7 +23,6 @@
|
||||
|
||||
class RimSummaryCase;
|
||||
class RimObservedData;
|
||||
class RimSummaryObservedDataFile;
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
@@ -38,8 +37,8 @@ public:
|
||||
|
||||
void removeObservedData(RimObservedData* observedData);
|
||||
void addObservedData(RimObservedData* observedData);
|
||||
RimSummaryObservedDataFile* createAndAddObservedDataFromFileName(const QString& fileName);
|
||||
std::vector<RimSummaryCase*> allObservedData();
|
||||
RimObservedData* createAndAddObservedDataFromFileName(const QString& fileName);
|
||||
std::vector<RimSummaryCase*> allObservedData();
|
||||
|
||||
private:
|
||||
caf::PdmChildArrayField<RimObservedData*> m_observedDataArray;
|
||||
|
@@ -17,103 +17,16 @@
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "RimObservedRsmspecColumnBasedData.h"
|
||||
|
||||
#include "RifColumnBasedRsmspecParser.h"
|
||||
#include "RifReaderRmspecColumnBasedData.h"
|
||||
#include "RifSummaryReaderInterface.h"
|
||||
|
||||
#include "cafUtils.h"
|
||||
|
||||
CAF_PDM_SOURCE_INIT(RimObservedRsmspecColumnBasedData, "RimObservedRsmspecColumnBasedData");
|
||||
|
||||
|
||||
class MyTestInterface : public RifSummaryReaderInterface
|
||||
{
|
||||
|
||||
public:
|
||||
MyTestInterface()
|
||||
{
|
||||
m_timeSteps.push_back(1000);
|
||||
m_timeSteps.push_back(1010);
|
||||
m_timeSteps.push_back(1020);
|
||||
m_timeSteps.push_back(1030);
|
||||
m_timeSteps.push_back(1040);
|
||||
|
||||
m_headers.push_back("sdflkj");
|
||||
m_headers.push_back("sdf");
|
||||
m_headers.push_back("sdfffff");
|
||||
m_headers.push_back("qwqwqw");
|
||||
m_headers.push_back("aaaaa");
|
||||
m_headers.push_back("absc");
|
||||
|
||||
}
|
||||
// caf::PdmField<caf::AppEnum<RifEclipseSummaryAddress::SummaryVarCategory> > m_summaryCategory;
|
||||
// caf::PdmField<QString> m_identifierName;
|
||||
|
||||
void setMetaData(RifEclipseSummaryAddress::SummaryVarCategory summaryCategory, const QString& identifierName)
|
||||
{
|
||||
m_category = summaryCategory;
|
||||
m_identifierName = identifierName;
|
||||
|
||||
buildMetaData();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
virtual const std::vector<time_t>& timeSteps(const RifEclipseSummaryAddress& resultAddress) const override
|
||||
{
|
||||
return m_timeSteps;
|
||||
}
|
||||
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
virtual bool values(const RifEclipseSummaryAddress& resultAddress, std::vector<double>* values) const override
|
||||
{
|
||||
values->push_back(20);
|
||||
values->push_back(40);
|
||||
values->push_back(50);
|
||||
values->push_back(40);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
virtual std::string unitName(const RifEclipseSummaryAddress& resultAddress) const override
|
||||
{
|
||||
return "Unknown unit";
|
||||
}
|
||||
|
||||
private:
|
||||
void buildMetaData()
|
||||
{
|
||||
m_allResultAddresses.clear();
|
||||
|
||||
for (size_t i = 0; i < m_headers.size(); i++)
|
||||
{
|
||||
RifEclipseSummaryAddress addr(m_category,
|
||||
m_headers[i].toStdString(),
|
||||
-1,
|
||||
-1,
|
||||
"",
|
||||
"",
|
||||
-1,
|
||||
"",
|
||||
-1,
|
||||
-1,
|
||||
-1);
|
||||
|
||||
m_allResultAddresses.push_back(addr);
|
||||
}
|
||||
}
|
||||
|
||||
private:
|
||||
std::vector<time_t> m_timeSteps;
|
||||
std::vector<QString> m_headers;
|
||||
|
||||
RifEclipseSummaryAddress::SummaryVarCategory m_category;
|
||||
QString m_identifierName;
|
||||
};
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
@@ -132,23 +45,23 @@ RimObservedRsmspecColumnBasedData::~RimObservedRsmspecColumnBasedData()
|
||||
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimObservedRsmspecColumnBasedData::setSummaryHeaderFilename(const QString& fileName)
|
||||
{
|
||||
m_summaryHeaderFilename = fileName;
|
||||
|
||||
this->updateAutoShortName();
|
||||
this->updateTreeItemName();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimObservedRsmspecColumnBasedData::createSummaryReaderInterface()
|
||||
{
|
||||
m_summeryReader = new MyTestInterface;
|
||||
if (caf::Utils::fileExists(this->summaryHeaderFilename()))
|
||||
{
|
||||
m_summeryReader = new RifReaderRmspecColumnBasedData();
|
||||
if (!m_summeryReader->open(this->summaryHeaderFilename()))
|
||||
{
|
||||
m_summeryReader = nullptr;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
m_summeryReader = nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
@@ -24,7 +24,7 @@
|
||||
#include "cafPdmField.h"
|
||||
#include "cvfObject.h"
|
||||
|
||||
class MyTestInterface;
|
||||
class RifReaderRmspecColumnBasedData;
|
||||
|
||||
//==================================================================================================
|
||||
//
|
||||
@@ -36,13 +36,10 @@ public:
|
||||
RimObservedRsmspecColumnBasedData();
|
||||
virtual ~RimObservedRsmspecColumnBasedData();
|
||||
|
||||
void setSummaryHeaderFilename(const QString& fileName);
|
||||
|
||||
virtual void createSummaryReaderInterface() override;
|
||||
|
||||
|
||||
virtual RifSummaryReaderInterface* summaryReader() override;
|
||||
|
||||
private:
|
||||
cvf::ref<MyTestInterface> m_summeryReader;
|
||||
cvf::ref<RifReaderRmspecColumnBasedData> m_summeryReader;
|
||||
};
|
||||
|
@@ -54,6 +54,25 @@ RimSummaryCase::~RimSummaryCase()
|
||||
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
QString RimSummaryCase::summaryHeaderFilename() const
|
||||
{
|
||||
return m_summaryHeaderFilename();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimSummaryCase::setSummaryHeaderFileName(const QString& fileName)
|
||||
{
|
||||
m_summaryHeaderFilename = fileName;
|
||||
|
||||
this->updateAutoShortName();
|
||||
this->updateTreeItemName();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
@@ -35,7 +35,7 @@ public:
|
||||
RimSummaryCase();
|
||||
virtual ~RimSummaryCase();
|
||||
|
||||
virtual QString summaryHeaderFilename() const = 0;
|
||||
virtual QString summaryHeaderFilename() const;
|
||||
virtual QString caseName() = 0;
|
||||
QString shortName() const;
|
||||
|
||||
@@ -47,6 +47,8 @@ public:
|
||||
|
||||
virtual void updateFilePathsFromProjectPath(const QString& newProjectPath, const QString& oldProjectPath) = 0;
|
||||
|
||||
void setSummaryHeaderFileName(const QString& fileName);
|
||||
|
||||
bool isObservedData();
|
||||
|
||||
protected:
|
||||
|
@@ -288,7 +288,7 @@ RimSummaryCase* RimSummaryCaseMainCollection::createAndAddSummaryCaseFromFileNam
|
||||
RimFileSummaryCase* newSumCase = new RimFileSummaryCase();
|
||||
|
||||
this->m_cases.push_back(newSumCase);
|
||||
newSumCase->setSummaryHeaderFilename(fileName);
|
||||
newSumCase->setSummaryHeaderFileName(fileName);
|
||||
newSumCase->createSummaryReaderInterface();
|
||||
newSumCase->updateOptionSensitivity();
|
||||
|
||||
|
Reference in New Issue
Block a user