#4371 Store Sector Model settings in Project Dialog Data

This commit is contained in:
Gaute Lindkvist 2019-04-26 10:35:21 +02:00
parent 8ce9f63487
commit f567be6d96
5 changed files with 91 additions and 35 deletions

View File

@ -28,11 +28,13 @@
#include "RifReaderEclipseOutput.h"
#include "Rim3dView.h"
#include "RimDialogData.h"
#include "RimEclipseCase.h"
#include "RimEclipseCellColors.h"
#include "RimEclipseView.h"
#include "RimFaultInView.h"
#include "RimFaultInViewCollection.h"
#include "RimProject.h"
#include "RigEclipseCaseData.h"
#include "RigMainGrid.h"
@ -66,22 +68,20 @@ void RicExportEclipseSectorModelFeature::openDialogAndExecuteCommand(RimEclipseV
cvf::Vec3i min, max;
std::tie(min, max) = getVisibleCellRange(view, cellVisibility);
RicExportEclipseSectorModelUi exportSettings(caseData, min, max);
RicExportEclipseSectorModelUi* exportSettings = RiaApplication::instance()->project()->dialogData()->exportSectorModelUi();
exportSettings->setCaseData(caseData, min, max);
caf::PdmSettings::readFieldsFromApplicationStore(&exportSettings);
exportSettings.applyBoundaryDefaults();
exportSettings.removeInvalidKeywords();
exportSettings->applyBoundaryDefaults();
exportSettings->removeInvalidKeywords();
RiuPropertyViewTabWidget propertyDialog(Riu3DMainWindowTools::mainWindowWidget(), &exportSettings, "Export Eclipse Sector Model", exportSettings.tabNames());
RiuPropertyViewTabWidget propertyDialog(Riu3DMainWindowTools::mainWindowWidget(), exportSettings, "Export Eclipse Sector Model", exportSettings->tabNames());
RicExportFeatureImpl::configureForExport(propertyDialog.dialogButtonBox());
if (propertyDialog.exec() == QDialog::Accepted)
{
executeCommand(view, exportSettings, "ExportInputGrid");
executeCommand(view, *exportSettings, "ExportInputGrid");
}
caf::PdmSettings::writeFieldsToApplicationStore(&exportSettings);
}
//--------------------------------------------------------------------------------------------------

View File

@ -69,12 +69,7 @@ void RicExportEclipseSectorModelUi::GridBoxSelectionEnum::setUp()
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RicExportEclipseSectorModelUi::RicExportEclipseSectorModelUi(RigEclipseCaseData* caseData /*= nullptr*/,
const cvf::Vec3i& visibleMin /*= cvf::Vec3i::ZERO*/,
const cvf::Vec3i& visibleMax /*= cvf::Vec3i::ZERO*/)
: m_caseData(caseData)
, m_visibleMin(visibleMin)
, m_visibleMax(visibleMax)
RicExportEclipseSectorModelUi::RicExportEclipseSectorModelUi()
{
CAF_PDM_InitObject("Export Visible Cells as Eclipse Input Grid", "", "", "");
@ -87,16 +82,16 @@ RicExportEclipseSectorModelUi::RicExportEclipseSectorModelUi(RigEclipseCaseData*
CAF_PDM_InitFieldNoDefault(&exportGridBox, "GridBoxSelection", "Cells to Export", "", "", "");
QString minIJKLabel = "Min I, J, K";
CAF_PDM_InitField(&minI, "MinI", m_visibleMin.x() + 1, minIJKLabel, "", "", "");
CAF_PDM_InitField(&minJ, "MinJ", m_visibleMin.y() + 1, "", "", "", "");
CAF_PDM_InitField(&minI, "MinI", std::numeric_limits<int>::max(), minIJKLabel, "", "", "");
CAF_PDM_InitField(&minJ, "MinJ", std::numeric_limits<int>::max(), "", "", "", "");
minJ.uiCapability()->setUiLabelPosition(caf::PdmUiItemInfo::HIDDEN);
CAF_PDM_InitField(&minK, "MinK", m_visibleMin.z() + 1, "", "", "", "");
CAF_PDM_InitField(&minK, "MinK", std::numeric_limits<int>::max(), "", "", "", "");
minK.uiCapability()->setUiLabelPosition(caf::PdmUiItemInfo::HIDDEN);
QString maxIJKLabel = "Max I, J, K";
CAF_PDM_InitField(&maxI, "MaxI", m_visibleMax.x() + 1, maxIJKLabel, "", "", "");
CAF_PDM_InitField(&maxJ, "MaxJ", m_visibleMax.y() + 1, "", "", "", "");
CAF_PDM_InitField(&maxI, "MaxI", -std::numeric_limits<int>::max(), maxIJKLabel, "", "", "");
CAF_PDM_InitField(&maxJ, "MaxJ", -std::numeric_limits<int>::max(), "", "", "", "");
maxJ.uiCapability()->setUiLabelPosition(caf::PdmUiItemInfo::HIDDEN);
CAF_PDM_InitField(&maxK, "MaxK", m_visibleMax.z() + 1, "", "", "", "");
CAF_PDM_InitField(&maxK, "MaxK", -std::numeric_limits<int>::max(), "", "", "", "");
maxK.uiCapability()->setUiLabelPosition(caf::PdmUiItemInfo::HIDDEN);
CAF_PDM_InitFieldNoDefault(&exportFaults, "ExportFaults", "Export Fault Data", "", "", "");
@ -120,13 +115,6 @@ RicExportEclipseSectorModelUi::RicExportEclipseSectorModelUi(RigEclipseCaseData*
exportParametersFilename = defaultResultsFileName();
exportFaultsFilename = defaultFaultsFileName();
for (QString keyword : mainKeywords())
{
if (caseData && caseData->results(RiaDefines::MATRIX_MODEL)->hasResultEntry(RigEclipseResultAddress(RiaDefines::STATIC_NATIVE, keyword)))
{
selectedKeywords.v().push_back(keyword);
}
}
m_tabNames << "Grid Data";
m_tabNames << "Parameters";
}
@ -146,6 +134,57 @@ const QStringList& RicExportEclipseSectorModelUi::tabNames() const
return m_tabNames;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RicExportEclipseSectorModelUi::setCaseData(RigEclipseCaseData* caseData /*= nullptr*/,
const cvf::Vec3i& visibleMin /*= cvf::Vec3i::ZERO*/,
const cvf::Vec3i& visibleMax /*= cvf::Vec3i::ZERO*/)
{
m_caseData = caseData;
m_visibleMin = visibleMin;
m_visibleMax = visibleMax;
if (minI == std::numeric_limits<int>::max())
minI = m_visibleMin.x() + 1;
if (minJ == std::numeric_limits<int>::max())
minJ = m_visibleMin.y() + 1;
if (minK == std::numeric_limits<int>::max())
minK = m_visibleMin.z() + 1;
if (maxI == -std::numeric_limits<int>::max())
maxI = m_visibleMax.x() + 1;
if (maxJ == std::numeric_limits<int>::max())
maxJ = m_visibleMax.y() + 1;
if (maxK == std::numeric_limits<int>::max())
maxK = m_visibleMax.z() + 1;
if (selectedKeywords.v().empty())
{
for (QString keyword : mainKeywords())
{
if (caseData && caseData->results(RiaDefines::MATRIX_MODEL)
->hasResultEntry(RigEclipseResultAddress(RiaDefines::STATIC_NATIVE, keyword)))
{
selectedKeywords.v().push_back(keyword);
}
}
}
else
{
std::vector<QString> validSelectedKeywords;
for (QString keyword : selectedKeywords())
{
if (caseData && caseData->results(RiaDefines::MATRIX_MODEL)
->hasResultEntry(RigEclipseResultAddress(RiaDefines::STATIC_NATIVE, keyword)))
{
validSelectedKeywords.push_back(keyword);
}
}
selectedKeywords.v() = validSelectedKeywords;
}
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------

View File

@ -60,12 +60,14 @@ class RicExportEclipseSectorModelUi : public caf::PdmObject
typedef caf::AppEnum<GridBoxSelection> GridBoxSelectionEnum;
public:
RicExportEclipseSectorModelUi(RigEclipseCaseData* caseData = nullptr,
const cvf::Vec3i& visibleMin = cvf::Vec3i::ZERO,
const cvf::Vec3i& visibleMax = cvf::Vec3i::ZERO);
RicExportEclipseSectorModelUi();
~RicExportEclipseSectorModelUi() override;
const QStringList& tabNames() const;
void setCaseData(RigEclipseCaseData* caseData = nullptr,
const cvf::Vec3i& visibleMin = cvf::Vec3i::ZERO,
const cvf::Vec3i& visibleMax = cvf::Vec3i::ZERO);
cvf::Vec3i min() const;
cvf::Vec3i max() const;
void setMin(const cvf::Vec3i& min);

View File

@ -21,6 +21,7 @@
#include "RimMockModelSettings.h"
#include "ExportCommands/RicExportCarfinUi.h"
#include "ExportCommands/RicExportEclipseSectorModelUi.h"
#include "CompletionExportCommands/RicExportCompletionDataSettingsUi.h"
#include "FractureCommands/RicCreateMultipleFracturesUi.h"
#include "HoloLensCommands/RicHoloLensExportToFolderUi.h"
@ -54,6 +55,9 @@ RimDialogData::RimDialogData()
CAF_PDM_InitFieldNoDefault(&m_exportLgrData, "ExportLgr", "LGR Export", "", "", "");
m_exportLgrData = new RicExportLgrUi();
CAF_PDM_InitFieldNoDefault(&m_exportSectorModelData, "ExportSectorModel", "Export Sector Model", "", "", "");
m_exportSectorModelData = new RicExportEclipseSectorModelUi();
CAF_PDM_InitFieldNoDefault(&m_mockModelSettings, "MockModelSettings", "Mock Model Settings", "", "", "");
m_mockModelSettings = new RimMockModelSettings();
}
@ -131,6 +135,14 @@ RicExportLgrUi* RimDialogData::exportLgrData() const
return m_exportLgrData;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RicExportEclipseSectorModelUi* RimDialogData::exportSectorModelUi() const
{
return m_exportSectorModelData;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------

View File

@ -23,6 +23,7 @@
class RicExportCarfinUi;
class RicExportCompletionDataSettingsUi;
class RicExportEclipseSectorModelUi;
class RiuCreateMultipleFractionsUi;
class RicHoloLensExportToFolderUi;
class RicExportWellPathsUi;
@ -54,11 +55,12 @@ public:
RicExportCompletionDataSettingsUi* exportCompletionData() const;
RiuCreateMultipleFractionsUi* multipleFractionsData() const;
RicHoloLensExportToFolderUi* holoLensExportToFolderData() const;
RicExportWellPathsUi* wellPathsExportData() const;
RicExportLgrUi* exportLgrData() const;
RimMockModelSettings* mockModelSettings() const;
RiuCreateMultipleFractionsUi* multipleFractionsData() const;
RicHoloLensExportToFolderUi* holoLensExportToFolderData() const;
RicExportWellPathsUi* wellPathsExportData() const;
RicExportLgrUi* exportLgrData() const;
RicExportEclipseSectorModelUi* exportSectorModelUi() const;
RimMockModelSettings* mockModelSettings() const;
private:
caf::PdmChildField<RicExportCarfinUi*> m_exportCarfin;
@ -67,5 +69,6 @@ private:
caf::PdmChildField<RicHoloLensExportToFolderUi*> m_holoLenseExportToFolderData;
caf::PdmChildField<RicExportWellPathsUi*> m_exportWellPathsData;
caf::PdmChildField<RicExportLgrUi*> m_exportLgrData;
caf::PdmChildField<RicExportEclipseSectorModelUi*> m_exportSectorModelData;
caf::PdmChildField<RimMockModelSettings*> m_mockModelSettings;
};