#2218 observed data. Save ascii parse options to project file and use settings on project load

This commit is contained in:
Bjørn Erik Jensen
2017-12-04 11:48:59 +01:00
parent 8ab70887c3
commit 2a32760132
3 changed files with 19 additions and 12 deletions

View File

@@ -38,6 +38,11 @@ RimCsvUserData::RimCsvUserData()
{ {
CAF_PDM_InitObject("Observed CSV Data File", ":/Default.png", "", ""); CAF_PDM_InitObject("Observed CSV Data File", ":/Default.png", "", "");
m_summaryHeaderFilename.uiCapability()->setUiName("File"); m_summaryHeaderFilename.uiCapability()->setUiName("File");
CAF_PDM_InitFieldNoDefault(&m_parseOptions, "ParseOptions", "", "", "", "");
m_parseOptions = new RicPasteAsciiDataToSummaryPlotFeatureUi();
m_parseOptions->uiCapability()->setUiHidden(true);
m_parseOptions->uiCapability()->setUiTreeHidden(true);
} }
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
@@ -58,7 +63,7 @@ void RimCsvUserData::createSummaryReaderInterface()
if (caf::Utils::fileExists(this->summaryHeaderFilename())) if (caf::Utils::fileExists(this->summaryHeaderFilename()))
{ {
RifCsvUserData* csvUserData = new RifCsvUserData(); RifCsvUserData* csvUserData = new RifCsvUserData();
if (csvUserData->parse(this->summaryHeaderFilename(), m_parseOptions, &m_errorText)) if (csvUserData->parse(this->summaryHeaderFilename(), m_parseOptions->parseOptions() , &m_errorText))
{ {
m_summaryReader = csvUserData; m_summaryReader = csvUserData;
} }
@@ -88,7 +93,7 @@ QString RimCsvUserData::errorMessagesFromReader()
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
void RimCsvUserData::setParseOptions(const AsciiDataParseOptions &parseOptions) RicPasteAsciiDataToSummaryPlotFeatureUi* RimCsvUserData::parseOptions() const
{ {
m_parseOptions = parseOptions; return m_parseOptions();
} }

View File

@@ -24,6 +24,7 @@
#include "cafPdmObject.h" #include "cafPdmObject.h"
#include "cafPdmField.h" #include "cafPdmField.h"
#include "cafPdmChildField.h"
#include "cvfObject.h" #include "cvfObject.h"
class RifSummaryReaderInterface; class RifSummaryReaderInterface;
@@ -44,10 +45,10 @@ public:
virtual QString errorMessagesFromReader() override; virtual QString errorMessagesFromReader() override;
void setParseOptions(const AsciiDataParseOptions &parseOptions); RicPasteAsciiDataToSummaryPlotFeatureUi* parseOptions() const;
private: private:
caf::PdmChildField<RicPasteAsciiDataToSummaryPlotFeatureUi*> m_parseOptions;
cvf::ref<RifSummaryReaderInterface> m_summaryReader; cvf::ref<RifSummaryReaderInterface> m_summaryReader;
QString m_errorText; QString m_errorText;
AsciiDataParseOptions m_parseOptions;
}; };

View File

@@ -150,23 +150,24 @@ RimObservedData* RimObservedDataCollection::createAndAddCvsObservedDataFromFile(
RimObservedData* observedData = nullptr; RimObservedData* observedData = nullptr;
bool parseOk = false; bool parseOk = false;
RicPasteAsciiDataToSummaryPlotFeatureUi parseOptionsUi; RimCsvUserData* userData = new RimCsvUserData();
RicPasteAsciiDataToSummaryPlotFeatureUi* parseOptions = userData->parseOptions();
if (useSavedFieldsValuesInDialog) if (useSavedFieldsValuesInDialog)
{ {
caf::PdmSettings::readFieldsFromApplicationStore(&parseOptionsUi); caf::PdmSettings::readFieldsFromApplicationStore(parseOptions);
} }
parseOptionsUi.setUiModeImport(fileName); parseOptions->setUiModeImport(fileName);
caf::PdmUiPropertyViewDialog propertyDialog(NULL, &parseOptionsUi, "CSV Import Options", ""); caf::PdmUiPropertyViewDialog propertyDialog(NULL, parseOptions, "CSV Import Options", "");
if (propertyDialog.exec() != QDialog::Accepted) if (propertyDialog.exec() != QDialog::Accepted)
{ {
return nullptr; return nullptr;
} }
caf::PdmSettings::writeFieldsToApplicationStore(&parseOptionsUi); caf::PdmSettings::writeFieldsToApplicationStore(parseOptions);
RimCsvUserData* userData = new RimCsvUserData(); //userData->setParseOptions(parseOptionsUi.parseOptions());
userData->setParseOptions(parseOptionsUi.parseOptions());
userData->setSummaryHeaderFileName(fileName); userData->setSummaryHeaderFileName(fileName);
userData->createSummaryReaderInterface(); userData->createSummaryReaderInterface();
userData->updateMetaData(); userData->updateMetaData();