Snapshot : Set fields read only based on state of other fields

This commit is contained in:
Magne Sjaastad 2017-01-17 12:59:13 +01:00
parent d8114decec
commit 07865268b1
2 changed files with 67 additions and 11 deletions

View File

@ -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<SnapShotDirectionEnum>(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<SnapShotDirectionEnum>(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<caf::PdmOptionItemInfo> 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);
}
}
}

View File

@ -40,13 +40,13 @@ public:
RimMultiSnapshotDefinition();
virtual ~RimMultiSnapshotDefinition();
caf::PdmField<bool> isActive;
caf::PdmPtrField<RimView*> view;
caf::PdmField< caf::AppEnum< RimDefines::ResultCatType > > eclipseResultType;
caf::PdmField< std::vector<QString> > selectedEclipseResults;
caf::PdmField<bool> isActive;
caf::PdmField<int> timeStepStart;
caf::PdmField<int> timeStepEnd;
@ -64,6 +64,9 @@ public:
caf::PdmPtrArrayField<RimCase*> additionalCases;
protected:
virtual void defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering) override;
private:
virtual QList<caf::PdmOptionItemInfo> calculateValueOptions(const caf::PdmFieldHandle* fieldNeedingOptions, bool * useOptionsOnly) override;