#2140 Fracture colors. Set default result to Conductivity when selecting template

This commit is contained in:
Bjørn Erik Jensen
2017-12-20 13:14:43 +01:00
parent a2a2427062
commit 12e95c37a6
5 changed files with 126 additions and 14 deletions

View File

@@ -18,6 +18,8 @@
#include "RimStimPlanColors.h"
#include "RiaApplication.h"
#include "RimEclipseView.h"
#include "RimFractureTemplateCollection.h"
#include "RimLegendConfig.h"
@@ -28,6 +30,7 @@
#include "cafPdmUiDoubleSliderEditor.h"
#include "cafPdmUiItem.h"
#include "cafPdmUiTreeOrdering.h"
#include "cafSelectionManagerTools.h"
#include "cvfqtUtils.h"
@@ -37,6 +40,12 @@
CAF_PDM_SOURCE_INIT(RimStimPlanColors, "RimStimPlanColors");
//--------------------------------------------------------------------------------------------------
/// Internal methods
//--------------------------------------------------------------------------------------------------
static void setDefaultResultIfStimPlan(caf::PdmField<QString> &field);
static QString toString(const std::pair<QString, QString>& resultNameAndUnit);
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
@@ -84,7 +93,7 @@ void RimStimPlanColors::loadDataAndUpdate()
bool found = false;
for (auto resultNameAndUnit : resultNameAndUnits)
{
if (RimStimPlanColors::toString(resultNameAndUnit) == legendVariableName)
if (toString(resultNameAndUnit) == legendVariableName)
{
found = true;
}
@@ -107,7 +116,7 @@ void RimStimPlanColors::loadDataAndUpdate()
// Create legend for result if not already present
for (auto resultNameAndUnit : resultNameAndUnits)
{
QString resultNameUnitString = RimStimPlanColors::toString(resultNameAndUnit);
QString resultNameUnitString = toString(resultNameAndUnit);
bool foundResult = false;
for (RimLegendConfig* legend : m_legendConfigurations)
@@ -148,7 +157,7 @@ QList<caf::PdmOptionItemInfo> RimStimPlanColors::calculateValueOptions(const caf
for (auto resultNameAndUnit : fractureTemplates->stimPlanResultNamesAndUnits())
{
QString resultNameAndUnitString = RimStimPlanColors::toString(resultNameAndUnit);
QString resultNameAndUnitString = toString(resultNameAndUnit);
options.push_back(caf::PdmOptionItemInfo(resultNameAndUnitString, resultNameAndUnitString));
}
}
@@ -213,6 +222,14 @@ QString RimStimPlanColors::resultName() const
return RimStimPlanColors::toResultName(m_resultNameAndUnit());
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimStimPlanColors::setDefaultResultNameForStimPlan()
{
setDefaultResultIfStimPlan(m_resultNameAndUnit);
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
@@ -275,14 +292,6 @@ RimFractureTemplateCollection* RimStimPlanColors::fractureTemplateCollection() c
return proj->activeOilField()->fractureDefinitionCollection();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
QString RimStimPlanColors::toString(const std::pair<QString, QString>& resultNameAndUnit)
{
return QString("%1 [%2]").arg(resultNameAndUnit.first).arg(resultNameAndUnit.second);
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
@@ -356,3 +365,40 @@ void RimStimPlanColors::defineEditorAttribute(const caf::PdmFieldHandle* field,
}
}
//--------------------------------------------------------------------------------------------------
/// Internal methods
//--------------------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
QString toString(const std::pair<QString, QString>& resultNameAndUnit)
{
return QString("%1 [%2]").arg(resultNameAndUnit.first).arg(resultNameAndUnit.second);
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void setDefaultResultIfStimPlan(caf::PdmField<QString> &field)
{
RimProject* proj = RiaApplication::instance()->project();
std::vector<RimFractureTemplate*> stimPlanFracTemplates = proj->allFractureTemplates();
if (!stimPlanFracTemplates.empty() && field() == "None")
{
RimFractureTemplateCollection* templColl = proj->allFractureTemplateCollections().front();
for (auto resultNameAndUnit : templColl->stimPlanResultNamesAndUnits())
{
if (resultNameAndUnit.first == "CONDUCTIVITY")
{
field = toString(resultNameAndUnit);
break;
}
}
}
}