mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-09 23:16:00 -06:00
#837 Formation Names: Show layer names in property filter (Eclipse)
This commit is contained in:
parent
cdfec7a04f
commit
384a8cc8e7
@ -112,3 +112,25 @@ caf::PdmFieldHandle* RimCellFilter::objectToggleField()
|
||||
{
|
||||
return &isActive;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimCellFilter::setCategoryValues(const std::vector<int>& categoryValues)
|
||||
{
|
||||
m_categoryValues = categoryValues;
|
||||
m_categoryNames.clear();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimCellFilter::setCategoryNames(const std::vector<QString>& categoryNames)
|
||||
{
|
||||
m_categoryNames = categoryNames;
|
||||
|
||||
for (size_t i = 0; i < m_categoryNames.size(); i++)
|
||||
{
|
||||
m_categoryValues.push_back(static_cast<int>(i));
|
||||
}
|
||||
}
|
||||
|
@ -50,4 +50,11 @@ public:
|
||||
protected:
|
||||
virtual caf::PdmFieldHandle* userDescriptionField();
|
||||
virtual caf::PdmFieldHandle* objectToggleField();
|
||||
|
||||
void setCategoryValues(const std::vector<int>& categoryValues);
|
||||
void setCategoryNames(const std::vector<QString>& categoryNames);
|
||||
|
||||
protected:
|
||||
std::vector<int> m_categoryValues;
|
||||
std::vector<QString> m_categoryNames;
|
||||
};
|
||||
|
@ -21,7 +21,10 @@
|
||||
#include "RimEclipsePropertyFilter.h"
|
||||
|
||||
#include "RigCaseCellResultsData.h"
|
||||
#include "RigCaseData.h"
|
||||
#include "RigFormationNames.h"
|
||||
|
||||
#include "RimEclipseCase.h"
|
||||
#include "RimEclipsePropertyFilterCollection.h"
|
||||
#include "RimEclipseResultDefinition.h"
|
||||
#include "RimEclipseView.h"
|
||||
@ -170,7 +173,7 @@ void RimEclipsePropertyFilter::setToDefaultValues()
|
||||
m_lowerBound = m_minimumResultValue;
|
||||
m_upperBound = m_maximumResultValue;
|
||||
|
||||
m_selectedValues = m_uniqueCellValues;
|
||||
m_selectedValues = m_categoryValues;
|
||||
m_valueSelection = true;
|
||||
|
||||
updateFieldVisibility();
|
||||
@ -226,10 +229,23 @@ QList<caf::PdmOptionItemInfo> RimEclipsePropertyFilter::calculateValueOptions(co
|
||||
{
|
||||
if (useOptionsOnly) *useOptionsOnly = true;
|
||||
|
||||
for (auto it : m_uniqueCellValues)
|
||||
if (m_categoryValues.size() == m_categoryNames.size())
|
||||
{
|
||||
QString str = QString::number(it);
|
||||
optionList.push_back(caf::PdmOptionItemInfo(str, it));
|
||||
for (size_t i = 0; i < m_categoryValues.size(); i++)
|
||||
{
|
||||
int categoryValue = m_categoryValues[i];
|
||||
QString categoryName = m_categoryNames[i];
|
||||
|
||||
optionList.push_back(caf::PdmOptionItemInfo(categoryName, categoryValue));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for (auto it : m_categoryValues)
|
||||
{
|
||||
QString str = QString::number(it);
|
||||
optionList.push_back(caf::PdmOptionItemInfo(str, it));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -349,7 +365,8 @@ void RimEclipsePropertyFilter::computeResultValueRange()
|
||||
double min = 0.0;
|
||||
double max = 0.0;
|
||||
|
||||
m_uniqueCellValues.clear();
|
||||
m_categoryValues.clear();
|
||||
m_categoryNames.clear();
|
||||
|
||||
size_t scalarIndex = resultDefinition->scalarResultIndex();
|
||||
if (scalarIndex != cvf::UNDEFINED_SIZE_T)
|
||||
@ -361,7 +378,18 @@ void RimEclipsePropertyFilter::computeResultValueRange()
|
||||
|
||||
if (resultDefinition->hasCategoryResult())
|
||||
{
|
||||
m_uniqueCellValues = results->cellResults()->uniqueCellScalarValues(scalarIndex);
|
||||
if (resultDefinition->resultType() != RimDefines::FORMATION_NAMES)
|
||||
{
|
||||
setCategoryValues(results->cellResults()->uniqueCellScalarValues(scalarIndex));
|
||||
}
|
||||
else
|
||||
{
|
||||
CVF_ASSERT(parentContainer()->reservoirView()->eclipseCase()->reservoirData());
|
||||
CVF_ASSERT(parentContainer()->reservoirView()->eclipseCase()->reservoirData()->activeFormationNames());
|
||||
|
||||
const std::vector<QString>& fnVector = parentContainer()->reservoirView()->eclipseCase()->reservoirData()->activeFormationNames()->formationNames();
|
||||
setCategoryNames(fnVector);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -382,22 +410,29 @@ void RimEclipsePropertyFilter::updateFilterName()
|
||||
|
||||
if (isValueSelectionActive())
|
||||
{
|
||||
if (m_selectedValues().size() == m_uniqueCellValues.size())
|
||||
if (m_categoryNames.size() > 0)
|
||||
{
|
||||
newFiltername += QString::number(m_selectedValues()[0]);
|
||||
newFiltername += "..";
|
||||
newFiltername += QString::number(m_selectedValues()[m_selectedValues().size() - 1]);
|
||||
newFiltername += "...";
|
||||
}
|
||||
else
|
||||
{
|
||||
for (size_t i = 0; i < m_selectedValues().size(); i++)
|
||||
if (m_selectedValues().size() == m_categoryValues.size())
|
||||
{
|
||||
int val = m_selectedValues()[i];
|
||||
newFiltername += QString::number(val);
|
||||
|
||||
if (i < m_selectedValues().size() - 1)
|
||||
newFiltername += QString::number(m_selectedValues()[0]);
|
||||
newFiltername += "..";
|
||||
newFiltername += QString::number(m_selectedValues()[m_selectedValues().size() - 1]);
|
||||
}
|
||||
else
|
||||
{
|
||||
for (size_t i = 0; i < m_selectedValues().size(); i++)
|
||||
{
|
||||
newFiltername += ", ";
|
||||
int val = m_selectedValues()[i];
|
||||
newFiltername += QString::number(val);
|
||||
|
||||
if (i < m_selectedValues().size() - 1)
|
||||
{
|
||||
newFiltername += ", ";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -93,6 +93,5 @@ public:
|
||||
};
|
||||
private:
|
||||
caf::PdmField< caf::AppEnum< EvaluationRegionType > > obsoleteField_evaluationRegion;
|
||||
std::vector<int> m_uniqueCellValues;
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user