mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
LGR Export. Add time step to LGR dialog
This commit is contained in:
@@ -62,7 +62,7 @@ CAF_CMD_SOURCE_INIT(RicExportLgrFeature, "RicExportLgrFeature");
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RicExportLgrUi* RicExportLgrFeature::openDialog()
|
||||
RicExportLgrUi* RicExportLgrFeature::openDialog(RimEclipseCase* defaultCase, int defaultTimeStep)
|
||||
{
|
||||
RiaApplication* app = RiaApplication::instance();
|
||||
RimProject* proj = app->project();
|
||||
@@ -80,7 +80,7 @@ RicExportLgrUi* RicExportLgrFeature::openDialog()
|
||||
featureUi->setExportFolder(startPath);
|
||||
}
|
||||
|
||||
if (!featureUi->caseToApply())
|
||||
if (!featureUi->caseToApply() && !defaultCase)
|
||||
{
|
||||
std::vector<RimCase*> cases;
|
||||
app->project()->allCases(cases);
|
||||
@@ -94,9 +94,11 @@ RicExportLgrUi* RicExportLgrFeature::openDialog()
|
||||
}
|
||||
}
|
||||
}
|
||||
if (defaultCase) featureUi->setCase(defaultCase);
|
||||
featureUi->setTimeStep(defaultTimeStep);
|
||||
|
||||
caf::PdmUiPropertyViewDialog propertyDialog(nullptr, featureUi, "LGR Export", "", QDialogButtonBox::Ok | QDialogButtonBox::Cancel);
|
||||
propertyDialog.resize(QSize(600, 250));
|
||||
propertyDialog.resize(QSize(600, 255));
|
||||
|
||||
if (propertyDialog.exec() == QDialog::Accepted && !featureUi->exportFolder().isEmpty())
|
||||
{
|
||||
@@ -342,15 +344,17 @@ void RicExportLgrFeature::onActionTriggered(bool isChecked)
|
||||
std::vector<RimSimWellInView*> simWells;
|
||||
QString dialogTitle = "LGR Export";
|
||||
|
||||
auto dialogData = openDialog();
|
||||
int defaultTimeStep = 0;
|
||||
auto activeView = dynamic_cast<RimEclipseView*>(RiaApplication::instance()->activeGridView());
|
||||
if (activeView) defaultTimeStep = activeView->currentTimeStep();
|
||||
|
||||
auto dialogData = openDialog(nullptr, defaultTimeStep);
|
||||
if (dialogData)
|
||||
{
|
||||
auto activeView = dynamic_cast<RimEclipseView*>(RiaApplication::instance()->activeGridView());
|
||||
if (!activeView) return;
|
||||
|
||||
auto eclipseCase = dialogData->caseToApply();
|
||||
auto lgrCellCounts = dialogData->lgrCellCount();
|
||||
size_t timeStep = activeView->currentTimeStep();
|
||||
size_t timeStep = dialogData->timeStep();
|
||||
|
||||
bool lgrIntersected = false;
|
||||
for (const auto& wellPath : wellPaths)
|
||||
|
||||
@@ -64,7 +64,7 @@ class RicExportLgrFeature : public caf::CmdFeature
|
||||
typedef std::pair<size_t, size_t> Range;
|
||||
static Range initRange() { return std::make_pair(std::numeric_limits<size_t>::max(), 0); }
|
||||
|
||||
static RicExportLgrUi* openDialog();
|
||||
static RicExportLgrUi* openDialog(RimEclipseCase* defaultCase = nullptr, int defaultTimeStep = 0);
|
||||
static bool openFileForExport(const QString& folderName, const QString& fileName, QFile* exportFile);
|
||||
static void exportLgrs(QTextStream& stream, const std::vector<LgrInfo>& lgrInfos);
|
||||
|
||||
|
||||
@@ -55,6 +55,7 @@ RicExportLgrUi::RicExportLgrUi()
|
||||
m_exportFolder.uiCapability()->setUiEditorTypeName(caf::PdmUiFilePathEditor::uiEditorTypeName());
|
||||
|
||||
CAF_PDM_InitFieldNoDefault(&m_caseToApply, "CaseToApply", "Source Case", "", "", "");
|
||||
CAF_PDM_InitFieldNoDefault(&m_timeStep, "TimeStepIndex", "Time Step", "", "", "");
|
||||
|
||||
CAF_PDM_InitField(&m_cellCountI, "CellCountI", 2, "Cell Count I", "", "", "");
|
||||
CAF_PDM_InitField(&m_cellCountJ, "CellCountJ", 2, "Cell Count J", "", "", "");
|
||||
@@ -77,6 +78,20 @@ void RicExportLgrUi::setCase(RimEclipseCase* rimCase)
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RicExportLgrUi::setTimeStep(int timeStep)
|
||||
{
|
||||
bool isDifferent = timeStep != m_timeStep;
|
||||
|
||||
if (isDifferent)
|
||||
{
|
||||
m_timeStep = timeStep;
|
||||
setDefaultValuesFromCase();
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -101,6 +116,14 @@ RimEclipseCase* RicExportLgrUi::caseToApply() const
|
||||
return m_caseToApply();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
int RicExportLgrUi::timeStep() const
|
||||
{
|
||||
return m_timeStep;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -144,6 +167,19 @@ QList<caf::PdmOptionItemInfo> RicExportLgrUi::calculateValueOptions(const caf::P
|
||||
{
|
||||
RimTools::caseOptionItems(&options);
|
||||
}
|
||||
else if (fieldNeedingOptions == &m_timeStep)
|
||||
{
|
||||
QStringList timeStepNames;
|
||||
|
||||
if (m_caseToApply)
|
||||
{
|
||||
timeStepNames = m_caseToApply->timeStepStrings();
|
||||
}
|
||||
for (int i = 0; i < timeStepNames.size(); i++)
|
||||
{
|
||||
options.push_back(caf::PdmOptionItemInfo(timeStepNames[i], i));
|
||||
}
|
||||
}
|
||||
|
||||
return options;
|
||||
}
|
||||
@@ -165,12 +201,15 @@ void RicExportLgrUi::fieldChangedByUi(const caf::PdmFieldHandle* changedField, c
|
||||
void RicExportLgrUi::defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering)
|
||||
{
|
||||
uiOrdering.add(&m_caseToApply);
|
||||
uiOrdering.add(&m_timeStep);
|
||||
uiOrdering.add(&m_exportFolder);
|
||||
|
||||
caf::PdmUiGroup* gridRefinement = uiOrdering.addNewGroup("Grid Refinement");
|
||||
gridRefinement->add(&m_cellCountI);
|
||||
gridRefinement->add(&m_cellCountJ);
|
||||
gridRefinement->add(&m_cellCountK);
|
||||
|
||||
uiOrdering.skipRemainingFields(true);
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
||||
@@ -44,10 +44,12 @@ public:
|
||||
RicExportLgrUi();
|
||||
|
||||
void setCase(RimEclipseCase* rimCase);
|
||||
void setTimeStep(int timeStep);
|
||||
|
||||
caf::VecIjk lgrCellCount() const;
|
||||
QString exportFolder() const;
|
||||
RimEclipseCase* caseToApply() const;
|
||||
int timeStep() const;
|
||||
bool singleLgrSplit() const;
|
||||
|
||||
void setExportFolder(const QString& folder);
|
||||
@@ -64,6 +66,7 @@ private:
|
||||
private:
|
||||
caf::PdmField<QString> m_exportFolder;
|
||||
caf::PdmPtrField<RimEclipseCase*> m_caseToApply;
|
||||
caf::PdmField<int> m_timeStep;
|
||||
|
||||
caf::PdmField<int> m_cellCountI;
|
||||
caf::PdmField<int> m_cellCountJ;
|
||||
|
||||
Reference in New Issue
Block a user