From 81c243297a20546018d3ca5eca8a55c7c1eafe43 Mon Sep 17 00:00:00 2001 From: astridkbjorke Date: Tue, 7 Mar 2017 10:09:19 +0100 Subject: [PATCH] #1302 - pre-proto - Setting fracture unit system based on case when sim-well fracture is created. Unit-system for field is now read-only for simwell fractures. --- .../Commands/RicNewSimWellFractureAtPosFeature.cpp | 8 ++++++++ ApplicationCode/Commands/RicNewSimWellFractureFeature.cpp | 8 ++++++++ ApplicationCode/ProjectDataModel/RimSimWellFracture.cpp | 2 ++ 3 files changed, 18 insertions(+) diff --git a/ApplicationCode/Commands/RicNewSimWellFractureAtPosFeature.cpp b/ApplicationCode/Commands/RicNewSimWellFractureAtPosFeature.cpp index a546ae5b3d..ab438d57a2 100644 --- a/ApplicationCode/Commands/RicNewSimWellFractureAtPosFeature.cpp +++ b/ApplicationCode/Commands/RicNewSimWellFractureAtPosFeature.cpp @@ -19,8 +19,10 @@ #include "RicNewSimWellFractureAtPosFeature.h" #include "RiaApplication.h" +#include "RigEclipseCaseData.h" #include "RimCase.h" +#include "RimEclipseResultCase.h" #include "RimEclipseWell.h" #include "RimEllipseFractureTemplate.h" #include "RimFractureTemplateCollection.h" @@ -86,6 +88,12 @@ void RicNewSimWellFractureAtPosFeature::onActionTriggered(bool isChecked) fracture->setName(QString("Fracture_") + fracNum); + RimEclipseResultCase* eclipseCase = nullptr; + objHandle->firstAncestorOrThisOfType(eclipseCase); + RigEclipseCaseData::UnitsType caseUnit = eclipseCase->reservoirData()->unitsType(); + if (caseUnit == RigEclipseCaseData::UNITS_METRIC) fracture->fractureUnit = RimDefines::UNITS_METRIC; + else if (caseUnit == RigEclipseCaseData::UNITS_FIELD) fracture->fractureUnit = RimDefines::UNITS_FIELD; + if (oilfield->fractureDefinitionCollection->fractureDefinitions.size() > 0) { RimFractureTemplate* fracDef = oilfield->fractureDefinitionCollection->fractureDefinitions[0]; diff --git a/ApplicationCode/Commands/RicNewSimWellFractureFeature.cpp b/ApplicationCode/Commands/RicNewSimWellFractureFeature.cpp index 0b73caf97b..d598bafbed 100644 --- a/ApplicationCode/Commands/RicNewSimWellFractureFeature.cpp +++ b/ApplicationCode/Commands/RicNewSimWellFractureFeature.cpp @@ -19,8 +19,10 @@ #include "RicNewSimWellFractureFeature.h" #include "RiaApplication.h" +#include "RigEclipseCaseData.h" #include "RimCase.h" +#include "RimEclipseResultCase.h" #include "RimEclipseView.h" #include "RimEclipseWell.h" #include "RimEllipseFractureTemplate.h" @@ -67,6 +69,12 @@ void RicNewSimWellFractureFeature::onActionTriggered(bool isChecked) fracture->setName(QString("Fracture_") + fracNum); + RimEclipseResultCase* eclipseCase = nullptr; + objHandle->firstAncestorOrThisOfType(eclipseCase); + RigEclipseCaseData::UnitsType caseUnit = eclipseCase->reservoirData()->unitsType(); + if (caseUnit == RigEclipseCaseData::UNITS_METRIC) fracture->fractureUnit = RimDefines::UNITS_METRIC; + else if (caseUnit == RigEclipseCaseData::UNITS_FIELD) fracture->fractureUnit = RimDefines::UNITS_FIELD; + if (oilfield->fractureDefinitionCollection->fractureDefinitions.size() > 0) { RimFractureTemplate* fracDef = oilfield->fractureDefinitionCollection->fractureDefinitions[0]; diff --git a/ApplicationCode/ProjectDataModel/RimSimWellFracture.cpp b/ApplicationCode/ProjectDataModel/RimSimWellFracture.cpp index 3c6c144950..d0c5d0c57f 100644 --- a/ApplicationCode/ProjectDataModel/RimSimWellFracture.cpp +++ b/ApplicationCode/ProjectDataModel/RimSimWellFracture.cpp @@ -163,6 +163,7 @@ void RimSimWellFracture::updateFracturePositionFromLocation() void RimSimWellFracture::defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering) { RimFracture::defineUiOrdering(uiConfigName, uiOrdering); + fractureUnit.uiCapability()->setUiReadOnly(true); uiOrdering.add(&m_name); uiOrdering.add(&showPolygonFractureOutline); @@ -174,6 +175,7 @@ void RimSimWellFracture::defineUiOrdering(QString uiConfigName, caf::PdmUiOrderi locationGroup->add(&dip); caf::PdmUiGroup* propertyGroup = uiOrdering.addNewGroup("Properties"); + propertyGroup->add(&fractureUnit); propertyGroup->add(&m_fractureTemplate); propertyGroup->add(&stimPlanTimeIndexToPlot); propertyGroup->add(&perforationLength);