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 "RicExportCarfin.h"
|
||||||
|
|
||||||
|
#include "RiaApplication.h"
|
||||||
#include "RiaLogging.h"
|
#include "RiaLogging.h"
|
||||||
|
|
||||||
#include "RicCellRangeUi.h"
|
#include "RicCellRangeUi.h"
|
||||||
@@ -26,7 +27,9 @@
|
|||||||
|
|
||||||
#include "RifEclipseDataTableFormatter.h"
|
#include "RifEclipseDataTableFormatter.h"
|
||||||
|
|
||||||
|
#include "RimDialogData.h"
|
||||||
#include "RimEclipseCase.h"
|
#include "RimEclipseCase.h"
|
||||||
|
#include "RimProject.h"
|
||||||
|
|
||||||
#include "cafPdmUiPropertyViewDialog.h"
|
#include "cafPdmUiPropertyViewDialog.h"
|
||||||
#include "cafSelectionManager.h"
|
#include "cafSelectionManager.h"
|
||||||
@@ -34,6 +37,7 @@
|
|||||||
#include <QAction>
|
#include <QAction>
|
||||||
#include <QFile>
|
#include <QFile>
|
||||||
|
|
||||||
|
|
||||||
CAF_CMD_SOURCE_INIT(RicExportCarfin, "RicExportCarfin");
|
CAF_CMD_SOURCE_INIT(RicExportCarfin, "RicExportCarfin");
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
@@ -57,15 +61,18 @@ void RicExportCarfin::onActionTriggered(bool isChecked)
|
|||||||
RimEclipseCase* rimCase = RicExportCarfin::selectedCase();
|
RimEclipseCase* rimCase = RicExportCarfin::selectedCase();
|
||||||
CVF_ASSERT(rimCase);
|
CVF_ASSERT(rimCase);
|
||||||
|
|
||||||
RicExportCarfinUi carfinUi;
|
QString exportCarfinDataAsString = RiaApplication::instance()->project()->dialogData()->exportCarfinDataAsString();
|
||||||
carfinUi.setCase(rimCase);
|
|
||||||
|
|
||||||
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);
|
RicExportFeatureImpl::configureForExport(&propertyDialog);
|
||||||
|
|
||||||
if (propertyDialog.exec() == QDialog::Accepted)
|
if (propertyDialog.exec() == QDialog::Accepted)
|
||||||
{
|
{
|
||||||
QString filePath = carfinUi.exportFileName();
|
QString filePath = exportCarfinObject->exportFileName();
|
||||||
QFile exportFile(filePath);
|
QFile exportFile(filePath);
|
||||||
if (!exportFile.open(QIODevice::WriteOnly))
|
if (!exportFile.open(QIODevice::WriteOnly))
|
||||||
{
|
{
|
||||||
@@ -93,28 +100,33 @@ void RicExportCarfin::onActionTriggered(bool isChecked)
|
|||||||
formatter.keyword("CARFIN");
|
formatter.keyword("CARFIN");
|
||||||
formatter.header(header);
|
formatter.header(header);
|
||||||
|
|
||||||
formatter.add(carfinUi.cellRange()->start().i());
|
formatter.add(exportCarfinObject->cellRange()->start().i());
|
||||||
formatter.add(carfinUi.cellRange()->start().i() + carfinUi.cellRange()->count().i());
|
formatter.add(exportCarfinObject->cellRange()->start().i() + exportCarfinObject->cellRange()->count().i());
|
||||||
|
|
||||||
formatter.add(carfinUi.cellRange()->start().j());
|
formatter.add(exportCarfinObject->cellRange()->start().j());
|
||||||
formatter.add(carfinUi.cellRange()->start().j() + carfinUi.cellRange()->count().j());
|
formatter.add(exportCarfinObject->cellRange()->start().j() + exportCarfinObject->cellRange()->count().j());
|
||||||
|
|
||||||
formatter.add(carfinUi.cellRange()->start().k());
|
formatter.add(exportCarfinObject->cellRange()->start().k());
|
||||||
formatter.add(carfinUi.cellRange()->start().k() + carfinUi.cellRange()->count().k());
|
formatter.add(exportCarfinObject->cellRange()->start().k() + exportCarfinObject->cellRange()->count().k());
|
||||||
|
|
||||||
formatter.add(carfinUi.lgrCellCount().i());
|
formatter.add(exportCarfinObject->lgrCellCount().i());
|
||||||
formatter.add(carfinUi.lgrCellCount().j());
|
formatter.add(exportCarfinObject->lgrCellCount().j());
|
||||||
formatter.add(carfinUi.lgrCellCount().k());
|
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.rowCompleted();
|
||||||
formatter.tableCompleted();
|
formatter.tableCompleted();
|
||||||
|
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
RiaApplication::instance()->project()->dialogData()->setExportCarfinDataFromString(exportCarfinDataAsString);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -56,13 +56,13 @@ RicExportCarfinUi::RicExportCarfinUi()
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
void RicExportCarfinUi::setCase(RimEclipseCase* rimCase)
|
void RicExportCarfinUi::setCase(RimEclipseCase* rimCase)
|
||||||
{
|
{
|
||||||
m_caseToApply = rimCase;
|
bool isDifferent = (rimCase != m_caseToApply);
|
||||||
m_cellRange->setCase(rimCase);
|
|
||||||
|
|
||||||
if (rimCase)
|
setCasePointers(rimCase);
|
||||||
|
|
||||||
|
if (isDifferent)
|
||||||
{
|
{
|
||||||
QString caseFolder = rimCase->locationOnDisc();
|
setDefaultValuesFromCase();
|
||||||
m_exportFileName = caseFolder + "/carfin.data";
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -114,6 +114,32 @@ QString RicExportCarfinUi::gridName() const
|
|||||||
return m_cellRange->gridName();
|
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)
|
if (changedField == &m_caseToApply)
|
||||||
{
|
{
|
||||||
setCase(m_caseToApply);
|
setCasePointers(m_caseToApply);
|
||||||
|
setDefaultValuesFromCase();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -50,11 +50,15 @@ public:
|
|||||||
QString gridName() const;
|
QString gridName() const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
void setCasePointers(RimEclipseCase* rimCase);
|
||||||
|
void setDefaultValuesFromCase();
|
||||||
|
|
||||||
virtual QList<caf::PdmOptionItemInfo> calculateValueOptions(const caf::PdmFieldHandle* fieldNeedingOptions, bool* useOptionsOnly) override;
|
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 fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue) override;
|
||||||
virtual void defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering) override;
|
virtual void defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering) override;
|
||||||
virtual void defineEditorAttribute(const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute) override;
|
virtual void defineEditorAttribute(const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute) override;
|
||||||
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
caf::PdmField<QString> m_exportFileName;
|
caf::PdmField<QString> m_exportFileName;
|
||||||
caf::PdmPtrField<RimEclipseCase*> m_caseToApply;
|
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}RimGridTimeHistoryCurve.h
|
||||||
${CEE_CURRENT_LIST_DIR}RimGeometrySelectionItem.h
|
${CEE_CURRENT_LIST_DIR}RimGeometrySelectionItem.h
|
||||||
${CEE_CURRENT_LIST_DIR}RimEclipseGeometrySelectionItem.h
|
${CEE_CURRENT_LIST_DIR}RimEclipseGeometrySelectionItem.h
|
||||||
|
${CEE_CURRENT_LIST_DIR}RimDialogData.h
|
||||||
)
|
)
|
||||||
|
|
||||||
set (SOURCE_GROUP_SOURCE_FILES
|
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}RimGridTimeHistoryCurve.cpp
|
||||||
${CEE_CURRENT_LIST_DIR}RimGeometrySelectionItem.cpp
|
${CEE_CURRENT_LIST_DIR}RimGeometrySelectionItem.cpp
|
||||||
${CEE_CURRENT_LIST_DIR}RimEclipseGeometrySelectionItem.cpp
|
${CEE_CURRENT_LIST_DIR}RimEclipseGeometrySelectionItem.cpp
|
||||||
|
${CEE_CURRENT_LIST_DIR}RimDialogData.cpp
|
||||||
)
|
)
|
||||||
|
|
||||||
list(APPEND CODE_HEADER_FILES
|
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 "RimCaseCollection.h"
|
||||||
#include "RimCommandObject.h"
|
#include "RimCommandObject.h"
|
||||||
#include "RimContextCommandBuilder.h"
|
#include "RimContextCommandBuilder.h"
|
||||||
|
#include "RimDialogData.h"
|
||||||
#include "RimEclipseCase.h"
|
#include "RimEclipseCase.h"
|
||||||
#include "RimEclipseCaseCollection.h"
|
#include "RimEclipseCaseCollection.h"
|
||||||
#include "RimFlowPlotCollection.h"
|
#include "RimFlowPlotCollection.h"
|
||||||
@@ -121,6 +122,11 @@ RimProject::RimProject(void)
|
|||||||
CAF_PDM_InitField(&m_showPlotWindow, "showPlotWindow", false, "Show Plot Window", "", "", "");
|
CAF_PDM_InitField(&m_showPlotWindow, "showPlotWindow", false, "Show Plot Window", "", "", "");
|
||||||
m_showPlotWindow.uiCapability()->setUiHidden(true);
|
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
|
// Obsolete fields. The content is moved to OilFields and friends
|
||||||
CAF_PDM_InitFieldNoDefault(&casesObsolete, "Reservoirs", "", "", "", "");
|
CAF_PDM_InitFieldNoDefault(&casesObsolete, "Reservoirs", "", "", "", "");
|
||||||
casesObsolete.uiCapability()->setUiHidden(true);
|
casesObsolete.uiCapability()->setUiHidden(true);
|
||||||
@@ -771,6 +777,14 @@ void RimProject::reloadCompletionTypeResultsInAllViews()
|
|||||||
removeEclipseResultAndRedrawAllViews(RiaDefines::DYNAMIC_NATIVE, RiaDefines::completionTypeResultName());
|
removeEclipseResultAndRedrawAllViews(RiaDefines::DYNAMIC_NATIVE, RiaDefines::completionTypeResultName());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
RimDialogData* RimProject::dialogData() const
|
||||||
|
{
|
||||||
|
return m_dialogData;
|
||||||
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
|||||||
@@ -34,6 +34,7 @@ class RigMainGrid;
|
|||||||
|
|
||||||
class RimCase;
|
class RimCase;
|
||||||
class RimCommandObject;
|
class RimCommandObject;
|
||||||
|
class RimDialogData;
|
||||||
class RimEclipseCase;
|
class RimEclipseCase;
|
||||||
class RimIdenticalGridCaseGroup;
|
class RimIdenticalGridCaseGroup;
|
||||||
class RimMainPlotCollection;
|
class RimMainPlotCollection;
|
||||||
@@ -110,6 +111,7 @@ public:
|
|||||||
|
|
||||||
void reloadCompletionTypeResultsInAllViews();
|
void reloadCompletionTypeResultsInAllViews();
|
||||||
|
|
||||||
|
RimDialogData* dialogData() const;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
// Overridden methods
|
// Overridden methods
|
||||||
@@ -126,6 +128,9 @@ private:
|
|||||||
private:
|
private:
|
||||||
caf::PdmField<QString> m_projectFileVersionString;
|
caf::PdmField<QString> m_projectFileVersionString;
|
||||||
|
|
||||||
|
caf::PdmChildField<RimDialogData*> m_dialogData;
|
||||||
|
|
||||||
|
|
||||||
caf::PdmField<bool> m_show3DWindow;
|
caf::PdmField<bool> m_show3DWindow;
|
||||||
caf::PdmField<bool> m_showPlotWindow;
|
caf::PdmField<bool> m_showPlotWindow;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user