mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#1677 Store dialog data in project file
This commit is contained in:
@@ -18,6 +18,7 @@
|
||||
|
||||
#include "RicExportCarfin.h"
|
||||
|
||||
#include "RiaApplication.h"
|
||||
#include "RiaLogging.h"
|
||||
|
||||
#include "RicCellRangeUi.h"
|
||||
@@ -26,7 +27,9 @@
|
||||
|
||||
#include "RifEclipseDataTableFormatter.h"
|
||||
|
||||
#include "RimDialogData.h"
|
||||
#include "RimEclipseCase.h"
|
||||
#include "RimProject.h"
|
||||
|
||||
#include "cafPdmUiPropertyViewDialog.h"
|
||||
#include "cafSelectionManager.h"
|
||||
@@ -34,6 +37,7 @@
|
||||
#include <QAction>
|
||||
#include <QFile>
|
||||
|
||||
|
||||
CAF_CMD_SOURCE_INIT(RicExportCarfin, "RicExportCarfin");
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -57,15 +61,18 @@ void RicExportCarfin::onActionTriggered(bool isChecked)
|
||||
RimEclipseCase* rimCase = RicExportCarfin::selectedCase();
|
||||
CVF_ASSERT(rimCase);
|
||||
|
||||
RicExportCarfinUi carfinUi;
|
||||
carfinUi.setCase(rimCase);
|
||||
QString exportCarfinDataAsString = RiaApplication::instance()->project()->dialogData()->exportCarfinDataAsString();
|
||||
|
||||
caf::PdmUiPropertyViewDialog propertyDialog(nullptr, &carfinUi, "Export CARFIN to Eclipse Data", "");
|
||||
RicExportCarfinUi* exportCarfinObject = RiaApplication::instance()->project()->dialogData()->exportCarfin();
|
||||
|
||||
exportCarfinObject->setCase(rimCase);
|
||||
|
||||
caf::PdmUiPropertyViewDialog propertyDialog(nullptr, exportCarfinObject, "Export CARFIN to Eclipse Data", "");
|
||||
RicExportFeatureImpl::configureForExport(&propertyDialog);
|
||||
|
||||
if (propertyDialog.exec() == QDialog::Accepted)
|
||||
{
|
||||
QString filePath = carfinUi.exportFileName();
|
||||
QString filePath = exportCarfinObject->exportFileName();
|
||||
QFile exportFile(filePath);
|
||||
if (!exportFile.open(QIODevice::WriteOnly))
|
||||
{
|
||||
@@ -93,28 +100,33 @@ void RicExportCarfin::onActionTriggered(bool isChecked)
|
||||
formatter.keyword("CARFIN");
|
||||
formatter.header(header);
|
||||
|
||||
formatter.add(carfinUi.cellRange()->start().i());
|
||||
formatter.add(carfinUi.cellRange()->start().i() + carfinUi.cellRange()->count().i());
|
||||
formatter.add(exportCarfinObject->cellRange()->start().i());
|
||||
formatter.add(exportCarfinObject->cellRange()->start().i() + exportCarfinObject->cellRange()->count().i());
|
||||
|
||||
formatter.add(carfinUi.cellRange()->start().j());
|
||||
formatter.add(carfinUi.cellRange()->start().j() + carfinUi.cellRange()->count().j());
|
||||
formatter.add(exportCarfinObject->cellRange()->start().j());
|
||||
formatter.add(exportCarfinObject->cellRange()->start().j() + exportCarfinObject->cellRange()->count().j());
|
||||
|
||||
formatter.add(carfinUi.cellRange()->start().k());
|
||||
formatter.add(carfinUi.cellRange()->start().k() + carfinUi.cellRange()->count().k());
|
||||
formatter.add(exportCarfinObject->cellRange()->start().k());
|
||||
formatter.add(exportCarfinObject->cellRange()->start().k() + exportCarfinObject->cellRange()->count().k());
|
||||
|
||||
formatter.add(carfinUi.lgrCellCount().i());
|
||||
formatter.add(carfinUi.lgrCellCount().j());
|
||||
formatter.add(carfinUi.lgrCellCount().k());
|
||||
formatter.add(exportCarfinObject->lgrCellCount().i());
|
||||
formatter.add(exportCarfinObject->lgrCellCount().j());
|
||||
formatter.add(exportCarfinObject->lgrCellCount().k());
|
||||
|
||||
formatter.add(carfinUi.maxWellCount());
|
||||
formatter.add(exportCarfinObject->maxWellCount());
|
||||
|
||||
if (!carfinUi.gridName().isEmpty())
|
||||
if (!exportCarfinObject->gridName().isEmpty())
|
||||
{
|
||||
formatter.add(carfinUi.gridName());
|
||||
formatter.add(exportCarfinObject->gridName());
|
||||
}
|
||||
|
||||
formatter.rowCompleted();
|
||||
formatter.tableCompleted();
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
RiaApplication::instance()->project()->dialogData()->setExportCarfinDataFromString(exportCarfinDataAsString);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -56,13 +56,13 @@ RicExportCarfinUi::RicExportCarfinUi()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RicExportCarfinUi::setCase(RimEclipseCase* rimCase)
|
||||
{
|
||||
m_caseToApply = rimCase;
|
||||
m_cellRange->setCase(rimCase);
|
||||
bool isDifferent = (rimCase != m_caseToApply);
|
||||
|
||||
if (rimCase)
|
||||
setCasePointers(rimCase);
|
||||
|
||||
if (isDifferent)
|
||||
{
|
||||
QString caseFolder = rimCase->locationOnDisc();
|
||||
m_exportFileName = caseFolder + "/carfin.data";
|
||||
setDefaultValuesFromCase();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -114,6 +114,32 @@ QString RicExportCarfinUi::gridName() const
|
||||
return m_cellRange->gridName();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RicExportCarfinUi::setCasePointers(RimEclipseCase* rimCase)
|
||||
{
|
||||
m_caseToApply = rimCase;
|
||||
m_cellRange->setCase(rimCase);
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RicExportCarfinUi::setDefaultValuesFromCase()
|
||||
{
|
||||
if (m_caseToApply)
|
||||
{
|
||||
QString caseFolder = m_caseToApply->locationOnDisc();
|
||||
m_exportFileName = caseFolder + "/carfin.data";
|
||||
}
|
||||
|
||||
m_cellCountI = 2;
|
||||
m_cellCountJ = 2;
|
||||
m_cellCountK = 2;
|
||||
m_maxWellCount = 8;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -136,7 +162,8 @@ void RicExportCarfinUi::fieldChangedByUi(const caf::PdmFieldHandle* changedField
|
||||
{
|
||||
if (changedField == &m_caseToApply)
|
||||
{
|
||||
setCase(m_caseToApply);
|
||||
setCasePointers(m_caseToApply);
|
||||
setDefaultValuesFromCase();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -50,11 +50,15 @@ public:
|
||||
QString gridName() const;
|
||||
|
||||
private:
|
||||
void setCasePointers(RimEclipseCase* rimCase);
|
||||
void setDefaultValuesFromCase();
|
||||
|
||||
virtual QList<caf::PdmOptionItemInfo> calculateValueOptions(const caf::PdmFieldHandle* fieldNeedingOptions, bool* useOptionsOnly) override;
|
||||
virtual void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue) override;
|
||||
virtual void defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering) override;
|
||||
virtual void defineEditorAttribute(const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute) override;
|
||||
|
||||
|
||||
private:
|
||||
caf::PdmField<QString> m_exportFileName;
|
||||
caf::PdmPtrField<RimEclipseCase*> m_caseToApply;
|
||||
|
||||
@@ -89,6 +89,7 @@ ${CEE_CURRENT_LIST_DIR}RimCheckableNamedObject.h
|
||||
${CEE_CURRENT_LIST_DIR}RimGridTimeHistoryCurve.h
|
||||
${CEE_CURRENT_LIST_DIR}RimGeometrySelectionItem.h
|
||||
${CEE_CURRENT_LIST_DIR}RimEclipseGeometrySelectionItem.h
|
||||
${CEE_CURRENT_LIST_DIR}RimDialogData.h
|
||||
)
|
||||
|
||||
set (SOURCE_GROUP_SOURCE_FILES
|
||||
@@ -176,6 +177,7 @@ ${CEE_CURRENT_LIST_DIR}RimCheckableNamedObject.cpp
|
||||
${CEE_CURRENT_LIST_DIR}RimGridTimeHistoryCurve.cpp
|
||||
${CEE_CURRENT_LIST_DIR}RimGeometrySelectionItem.cpp
|
||||
${CEE_CURRENT_LIST_DIR}RimEclipseGeometrySelectionItem.cpp
|
||||
${CEE_CURRENT_LIST_DIR}RimDialogData.cpp
|
||||
)
|
||||
|
||||
list(APPEND CODE_HEADER_FILES
|
||||
|
||||
60
ApplicationCode/ProjectDataModel/RimDialogData.cpp
Normal file
60
ApplicationCode/ProjectDataModel/RimDialogData.cpp
Normal file
@@ -0,0 +1,60 @@
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// 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 "RimDialogData.h"
|
||||
|
||||
#include "ExportCommands/RicExportCarfinUi.h"
|
||||
|
||||
CAF_PDM_SOURCE_INIT(RimDialogData, "RimDialogData");
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RimDialogData::RimDialogData()
|
||||
{
|
||||
CAF_PDM_InitObject("Dialog Data", "", "", "");
|
||||
|
||||
CAF_PDM_InitFieldNoDefault(&m_exportCarfin, "ExportCarfin", "ExportCarfin", "", "", "");
|
||||
m_exportCarfin = new RicExportCarfinUi;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RicExportCarfinUi* RimDialogData::exportCarfin() const
|
||||
{
|
||||
return m_exportCarfin;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
QString RimDialogData::exportCarfinDataAsString() const
|
||||
{
|
||||
return m_exportCarfin->writeObjectToXmlString();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimDialogData::setExportCarfinDataFromString(const QString& data)
|
||||
{
|
||||
m_exportCarfin->readObjectFromXmlString(data, caf::PdmDefaultObjectFactory::instance());
|
||||
m_exportCarfin->resolveReferencesRecursively();
|
||||
}
|
||||
|
||||
43
ApplicationCode/ProjectDataModel/RimDialogData.h
Normal file
43
ApplicationCode/ProjectDataModel/RimDialogData.h
Normal file
@@ -0,0 +1,43 @@
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// 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 "cafPdmObject.h"
|
||||
#include "cafPdmChildField.h"
|
||||
|
||||
class RicExportCarfinUi;
|
||||
|
||||
//==================================================================================================
|
||||
///
|
||||
///
|
||||
//==================================================================================================
|
||||
class RimDialogData : public caf::PdmObject
|
||||
{
|
||||
CAF_PDM_HEADER_INIT;
|
||||
|
||||
public:
|
||||
RimDialogData();
|
||||
|
||||
RicExportCarfinUi* exportCarfin() const;
|
||||
QString exportCarfinDataAsString() const;
|
||||
void setExportCarfinDataFromString(const QString& data);
|
||||
|
||||
private:
|
||||
caf::PdmChildField<RicExportCarfinUi*> m_exportCarfin;
|
||||
};
|
||||
@@ -31,6 +31,7 @@
|
||||
#include "RimCaseCollection.h"
|
||||
#include "RimCommandObject.h"
|
||||
#include "RimContextCommandBuilder.h"
|
||||
#include "RimDialogData.h"
|
||||
#include "RimEclipseCase.h"
|
||||
#include "RimEclipseCaseCollection.h"
|
||||
#include "RimFlowPlotCollection.h"
|
||||
@@ -121,6 +122,11 @@ RimProject::RimProject(void)
|
||||
CAF_PDM_InitField(&m_showPlotWindow, "showPlotWindow", false, "Show Plot Window", "", "", "");
|
||||
m_showPlotWindow.uiCapability()->setUiHidden(true);
|
||||
|
||||
CAF_PDM_InitFieldNoDefault(&m_dialogData, "DialogData", "DialogData", "", "", "");
|
||||
m_dialogData = new RimDialogData();
|
||||
m_dialogData.uiCapability()->setUiHidden(true);
|
||||
m_dialogData.uiCapability()->setUiTreeChildrenHidden(true);
|
||||
|
||||
// Obsolete fields. The content is moved to OilFields and friends
|
||||
CAF_PDM_InitFieldNoDefault(&casesObsolete, "Reservoirs", "", "", "", "");
|
||||
casesObsolete.uiCapability()->setUiHidden(true);
|
||||
@@ -771,6 +777,14 @@ void RimProject::reloadCompletionTypeResultsInAllViews()
|
||||
removeEclipseResultAndRedrawAllViews(RiaDefines::DYNAMIC_NATIVE, RiaDefines::completionTypeResultName());
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RimDialogData* RimProject::dialogData() const
|
||||
{
|
||||
return m_dialogData;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
||||
@@ -34,6 +34,7 @@ class RigMainGrid;
|
||||
|
||||
class RimCase;
|
||||
class RimCommandObject;
|
||||
class RimDialogData;
|
||||
class RimEclipseCase;
|
||||
class RimIdenticalGridCaseGroup;
|
||||
class RimMainPlotCollection;
|
||||
@@ -110,6 +111,7 @@ public:
|
||||
|
||||
void reloadCompletionTypeResultsInAllViews();
|
||||
|
||||
RimDialogData* dialogData() const;
|
||||
|
||||
protected:
|
||||
// Overridden methods
|
||||
@@ -126,6 +128,9 @@ private:
|
||||
private:
|
||||
caf::PdmField<QString> m_projectFileVersionString;
|
||||
|
||||
caf::PdmChildField<RimDialogData*> m_dialogData;
|
||||
|
||||
|
||||
caf::PdmField<bool> m_show3DWindow;
|
||||
caf::PdmField<bool> m_showPlotWindow;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user