diff --git a/ApplicationCode/ProjectDataModel/RimMultiSnapshotDefinition.cpp b/ApplicationCode/ProjectDataModel/RimMultiSnapshotDefinition.cpp index 697040c251..5bcc108e65 100644 --- a/ApplicationCode/ProjectDataModel/RimMultiSnapshotDefinition.cpp +++ b/ApplicationCode/ProjectDataModel/RimMultiSnapshotDefinition.cpp @@ -57,24 +57,23 @@ RimMultiSnapshotDefinition::RimMultiSnapshotDefinition() //CAF_PDM_InitObject("MultiSnapshotDefinition", ":/Well.png", "", ""); CAF_PDM_InitObject("MultiSnapshotDefinition", "", "", ""); - CAF_PDM_InitField(&isActive, "IsActive", true, "Active", "", "", ""); + CAF_PDM_InitField(&isActive, "IsActive", true, "Active", "", "", ""); - CAF_PDM_InitFieldNoDefault(&view, "View", "View", "", "", ""); + CAF_PDM_InitFieldNoDefault(&view, "View", "View", "", "", ""); CAF_PDM_InitFieldNoDefault(&eclipseResultType, "EclipseResultType", "Result Type", "", "", ""); CAF_PDM_InitFieldNoDefault(&selectedEclipseResults, "SelectedEclipseResults", "Result Name", "", "", ""); - CAF_PDM_InitField(&timeStepStart, "TimeStepStart", 0, "Timestep Start", "", "", ""); - CAF_PDM_InitField(&timeStepEnd, "TimeStepEnd", 0, "Timestep End", "", "", ""); + CAF_PDM_InitField(&timeStepStart, "TimeStepStart", 0, "Timestep Start", "", "", ""); + CAF_PDM_InitField(&timeStepEnd, "TimeStepEnd", 0, "Timestep End", "", "", ""); - CAF_PDM_InitField(&sliceDirection, "SnapShotDirection", caf::AppEnum(NO_RANGEFILTER), "Range Filter direction", "", "", ""); - CAF_PDM_InitField(&startSliceIndex, "RangeFilterStart", 1, "RangeFilter Start", "", "", ""); - CAF_PDM_InitField(&endSliceIndex, "RangeFilterEnd", 1, "RangeFilter End", "", "", ""); + CAF_PDM_InitField(&sliceDirection, "SnapShotDirection", caf::AppEnum(NO_RANGEFILTER), "Range Filter direction", "", "", ""); + CAF_PDM_InitField(&startSliceIndex, "RangeFilterStart", 1, "RangeFilter Start", "", "", ""); + CAF_PDM_InitField(&endSliceIndex, "RangeFilterEnd", 1, "RangeFilter End", "", "", ""); - CAF_PDM_InitFieldNoDefault(&additionalCases, "AdditionalCases", "Case List", "", "", ""); + CAF_PDM_InitFieldNoDefault(&additionalCases, "AdditionalCases", "Case List", "", "", ""); } - //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- @@ -241,3 +240,57 @@ QList RimMultiSnapshotDefinition::toOptionList(const QSt } return optionList; } + +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +void RimMultiSnapshotDefinition::defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering) +{ + if (!isActive()) + { + view.uiCapability()->setUiReadOnly(true); + eclipseResultType.uiCapability()->setUiReadOnly(true); + selectedEclipseResults.uiCapability()->setUiReadOnly(true); + timeStepStart.uiCapability()->setUiReadOnly(true); + timeStepEnd.uiCapability()->setUiReadOnly(true); + sliceDirection.uiCapability()->setUiReadOnly(true); + startSliceIndex.uiCapability()->setUiReadOnly(true); + endSliceIndex.uiCapability()->setUiReadOnly(true); + additionalCases.uiCapability()->setUiReadOnly(true); + } + else + { + view.uiCapability()->setUiReadOnly(false); + + if (!view()) + { + eclipseResultType.uiCapability()->setUiReadOnly(true); + selectedEclipseResults.uiCapability()->setUiReadOnly(true); + timeStepStart.uiCapability()->setUiReadOnly(true); + timeStepEnd.uiCapability()->setUiReadOnly(true); + sliceDirection.uiCapability()->setUiReadOnly(true); + startSliceIndex.uiCapability()->setUiReadOnly(true); + endSliceIndex.uiCapability()->setUiReadOnly(true); + additionalCases.uiCapability()->setUiReadOnly(true); + } + else + { + eclipseResultType.uiCapability()->setUiReadOnly(false); + selectedEclipseResults.uiCapability()->setUiReadOnly(false); + timeStepStart.uiCapability()->setUiReadOnly(false); + timeStepEnd.uiCapability()->setUiReadOnly(false); + sliceDirection.uiCapability()->setUiReadOnly(false); + + additionalCases.uiCapability()->setUiReadOnly(false); + + bool rangeReadOnly = false; + if (sliceDirection() == NO_RANGEFILTER) + { + rangeReadOnly = true; + } + + startSliceIndex.uiCapability()->setUiReadOnly(rangeReadOnly); + endSliceIndex.uiCapability()->setUiReadOnly(rangeReadOnly); + } + } +} diff --git a/ApplicationCode/ProjectDataModel/RimMultiSnapshotDefinition.h b/ApplicationCode/ProjectDataModel/RimMultiSnapshotDefinition.h index c9a4496438..93177ab6d6 100644 --- a/ApplicationCode/ProjectDataModel/RimMultiSnapshotDefinition.h +++ b/ApplicationCode/ProjectDataModel/RimMultiSnapshotDefinition.h @@ -40,13 +40,13 @@ public: RimMultiSnapshotDefinition(); virtual ~RimMultiSnapshotDefinition(); + caf::PdmField isActive; + caf::PdmPtrField view; caf::PdmField< caf::AppEnum< RimDefines::ResultCatType > > eclipseResultType; caf::PdmField< std::vector > selectedEclipseResults; - caf::PdmField isActive; - caf::PdmField timeStepStart; caf::PdmField timeStepEnd; @@ -64,6 +64,9 @@ public: caf::PdmPtrArrayField additionalCases; +protected: + virtual void defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering) override; + private: virtual QList calculateValueOptions(const caf::PdmFieldHandle* fieldNeedingOptions, bool * useOptionsOnly) override;