Merge branch 'dev' into dev-deeper

This commit is contained in:
Bjørn Erik Jensen 2018-11-23 08:45:28 +01:00
commit 39a838b406
6 changed files with 64 additions and 29 deletions

View File

@ -50,7 +50,6 @@ RicfExportProperty::RicfExportProperty()
RICF_InitField(&m_caseId, "caseId", -1, "Case ID", "", "", ""); RICF_InitField(&m_caseId, "caseId", -1, "Case ID", "", "", "");
RICF_InitField(&m_timeStepIndex, "timeStep", -1, "Time Step Index", "", "", ""); RICF_InitField(&m_timeStepIndex, "timeStep", -1, "Time Step Index", "", "", "");
RICF_InitField(&m_propertyName, "property", QString(), "Property Name", "", "", ""); RICF_InitField(&m_propertyName, "property", QString(), "Property Name", "", "", "");
RICF_InitField(&m_type, "type", caf::AppEnum<RiaDefines::ResultCatType>(RiaDefines::DYNAMIC_NATIVE), "Property type", "", "", "");
RICF_InitField(&m_eclipseKeyword, "eclipseKeyword", QString(), "Eclipse Keyword", "", "", ""); RICF_InitField(&m_eclipseKeyword, "eclipseKeyword", QString(), "Eclipse Keyword", "", "", "");
RICF_InitField(&m_undefinedValue, "undefinedValue", 0.0, "Undefined Value", "", "", ""); RICF_InitField(&m_undefinedValue, "undefinedValue", 0.0, "Undefined Value", "", "", "");
RICF_InitField(&m_exportFileName, "exportFile", QString(), "Export FileName", "", "", ""); RICF_InitField(&m_exportFileName, "exportFile", QString(), "Export FileName", "", "", "");

View File

@ -20,8 +20,8 @@
#include "RiaApplication.h" #include "RiaApplication.h"
#include "RiaColorTables.h" #include "RiaColorTables.h"
#include "RiaSummaryCurveDefinition.h"
#include "RiaCurveSetDefinition.h" #include "RiaCurveSetDefinition.h"
#include "RiaSummaryCurveDefinition.h"
#include "RicSelectSummaryPlotUI.h" #include "RicSelectSummaryPlotUI.h"
#include "RiuSummaryCurveDefinitionKeywords.h" #include "RiuSummaryCurveDefinitionKeywords.h"
@ -47,6 +47,7 @@
#include "RimSummaryPlot.h" #include "RimSummaryPlot.h"
#include "RimSummaryPlotCollection.h" #include "RimSummaryPlotCollection.h"
#include "RiuPlotMainWindow.h"
#include "RiuPlotMainWindowTools.h" #include "RiuPlotMainWindowTools.h"
#include "RiuSummaryCurveDefSelection.h" #include "RiuSummaryCurveDefSelection.h"
#include "RiuSummaryQwtPlot.h" #include "RiuSummaryQwtPlot.h"
@ -76,8 +77,9 @@ const QString RicSummaryCurveCreator::CONFIGURATION_NAME = "CurveCreatorCfg";
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// Internal functions /// Internal functions
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
int ensembleCurveCount(const std::set<RiaSummaryCurveDefinition>& allCurveDefs); int ensembleCurveCount(const std::set<RiaSummaryCurveDefinition>& allCurveDefs);
template <typename T> std::vector<T> toVector(const std::set<T>& set); template<typename T>
std::vector<T> toVector(const std::set<T>& set);
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
@ -346,7 +348,8 @@ void RicSummaryCurveCreator::syncPreviewCurvesFromUiSelection()
for (const auto& curve : currentCurvesInPreviewPlot) for (const auto& curve : currentCurvesInPreviewPlot)
{ {
RimSummaryCase* sumCase = curve->summaryCaseY(); RimSummaryCase* sumCase = curve->summaryCaseY();
currentCurveDefs.insert(RiaSummaryCurveDefinition(sumCase, curve->summaryAddressY(), sumCase ? sumCase->ensemble() : nullptr)); currentCurveDefs.insert(
RiaSummaryCurveDefinition(sumCase, curve->summaryAddressY(), sumCase ? sumCase->ensemble() : nullptr));
} }
{ {
@ -380,10 +383,12 @@ void RicSummaryCurveCreator::syncPreviewCurvesFromUiSelection()
// Curve sets to delete // Curve sets to delete
std::set<RimEnsembleCurveSet*> curveSetsToDelete; std::set<RimEnsembleCurveSet*> curveSetsToDelete;
{ {
std::vector<RiaCurveSetDefinition> allCurveSetDefinitionsVector = m_summaryCurveSelectionEditor->summaryAddressSelection()->allCurveSetDefinitionsFromSelections(); std::vector<RiaCurveSetDefinition> allCurveSetDefinitionsVector =
std::set<RiaCurveSetDefinition> allCurveSetDefinitions = std::set<RiaCurveSetDefinition>(allCurveSetDefinitionsVector.begin(), allCurveSetDefinitionsVector.end()); m_summaryCurveSelectionEditor->summaryAddressSelection()->allCurveSetDefinitionsFromSelections();
std::set<RiaCurveSetDefinition> allCurveSetDefinitions =
std::set<RiaCurveSetDefinition>(allCurveSetDefinitionsVector.begin(), allCurveSetDefinitionsVector.end());
std::vector<RimEnsembleCurveSet*> currentCurveSetsInPreviewPlot = m_previewPlot->curveSets(); std::vector<RimEnsembleCurveSet*> currentCurveSetsInPreviewPlot = m_previewPlot->curveSets();
std::set<RiaCurveSetDefinition> currentCurveSetDefs; std::set<RiaCurveSetDefinition> currentCurveSetDefs;
for (const auto& curveSet : currentCurveSetsInPreviewPlot) for (const auto& curveSet : currentCurveSetsInPreviewPlot)
{ {
@ -403,8 +408,8 @@ void RicSummaryCurveCreator::syncPreviewCurvesFromUiSelection()
for (const auto& curveSet : currentCurveSetsInPreviewPlot) for (const auto& curveSet : currentCurveSetsInPreviewPlot)
{ {
RimSummaryCaseCollection* ensemble = curveSet->summaryCaseCollection(); RimSummaryCaseCollection* ensemble = curveSet->summaryCaseCollection();
RiaCurveSetDefinition curveSetDef = RiaCurveSetDefinition(ensemble, curveSet->summaryAddress()); RiaCurveSetDefinition curveSetDef = RiaCurveSetDefinition(ensemble, curveSet->summaryAddress());
if (deleteCurveSetDefs.count(curveSetDef) > 0) curveSetsToDelete.insert(curveSet); if (deleteCurveSetDefs.count(curveSetDef) > 0) curveSetsToDelete.insert(curveSet);
} }
} }
@ -421,9 +426,9 @@ void RicSummaryCurveCreator::updatePreviewCurvesFromCurveDefinitions(
const std::set<RiaSummaryCurveDefinition>& allCurveDefsToDisplay, const std::set<RiaSummaryCurveDefinition>& allCurveDefsToDisplay,
const std::set<RiaSummaryCurveDefinition>& curveDefsToAdd, const std::set<RiaSummaryCurveDefinition>& curveDefsToAdd,
const std::set<RimSummaryCurve*>& curvesToDelete, const std::set<RimSummaryCurve*>& curvesToDelete,
const std::set<RimEnsembleCurveSet*>& curveSetsToDelete) const std::set<RimEnsembleCurveSet*>& curveSetsToDelete)
{ {
static bool warningDisplayed = false; static bool warningDisplayed = false;
std::set<RiaSummaryCurveDefinition> summaryCurveDefsToDisplay; std::set<RiaSummaryCurveDefinition> summaryCurveDefsToDisplay;
@ -438,11 +443,11 @@ void RicSummaryCurveCreator::updatePreviewCurvesFromCurveDefinitions(
initCurveAppearanceCalculator(curveLookCalc); initCurveAppearanceCalculator(curveLookCalc);
// Delete curves // Delete curves
if(!curveSetsToDelete.empty()) if (!curveSetsToDelete.empty())
{ {
m_previewPlot->ensembleCurveSetCollection()->deleteCurveSets(toVector(curveSetsToDelete)); m_previewPlot->ensembleCurveSetCollection()->deleteCurveSets(toVector(curveSetsToDelete));
} }
if(!curvesToDelete.empty()) if (!curvesToDelete.empty())
{ {
m_previewPlot->deleteCurves(toVector(curvesToDelete)); m_previewPlot->deleteCurves(toVector(curvesToDelete));
} }
@ -457,7 +462,7 @@ void RicSummaryCurveCreator::updatePreviewCurvesFromCurveDefinitions(
curve->setSummaryCaseY(currentCase); curve->setSummaryCaseY(currentCase);
curve->setSummaryAddressY(curveDef.summaryAddress()); curve->setSummaryAddressY(curveDef.summaryAddress());
curve->applyCurveAutoNameSettings(*m_curveNameConfig()); curve->applyCurveAutoNameSettings(*m_curveNameConfig());
if(currentCase->isObservedData()) curve->setSymbolSkipDistance(0); if (currentCase->isObservedData()) curve->setSymbolSkipDistance(0);
if (curveDef.isEnsembleCurve()) if (curveDef.isEnsembleCurve())
{ {
@ -479,9 +484,8 @@ void RicSummaryCurveCreator::updatePreviewCurvesFromCurveDefinitions(
curveSet->setSummaryAddress(curveDef.summaryAddress()); curveSet->setSummaryAddress(curveDef.summaryAddress());
// Set single curve set color // Set single curve set color
auto allCurveSets = m_previewPlot->ensembleCurveSetCollection()->curveSets(); auto allCurveSets = m_previewPlot->ensembleCurveSetCollection()->curveSets();
size_t colorIndex = std::count_if(allCurveSets.begin(), allCurveSets.end(), [](RimEnsembleCurveSet* curveSet) size_t colorIndex = std::count_if(allCurveSets.begin(), allCurveSets.end(), [](RimEnsembleCurveSet* curveSet) {
{
return curveSet->colorMode() == RimEnsembleCurveSet::SINGLE_COLOR; return curveSet->colorMode() == RimEnsembleCurveSet::SINGLE_COLOR;
}); });
curveSet->setColor(RiaColorTables::summaryCurveDefaultPaletteColors().cycledColor3f(colorIndex)); curveSet->setColor(RiaColorTables::summaryCurveDefaultPaletteColors().cycledColor3f(colorIndex));
@ -489,7 +493,8 @@ void RicSummaryCurveCreator::updatePreviewCurvesFromCurveDefinitions(
// Add curve to plot // Add curve to plot
m_previewPlot->ensembleCurveSetCollection()->addCurveSet(curveSet); m_previewPlot->ensembleCurveSetCollection()->addCurveSet(curveSet);
if (m_previewPlot->ensembleCurveSetCollection()->curveSets().size() > 1 && ensembleCurveCnt > ENSEMBLE_CURVE_COUNT_THRESHOLD) if (m_previewPlot->ensembleCurveSetCollection()->curveSets().size() > 1 &&
ensembleCurveCnt > ENSEMBLE_CURVE_COUNT_THRESHOLD)
{ {
// Toggle off new curve set and display warning // Toggle off new curve set and display warning
curveSet->showCurves(false); curveSet->showCurves(false);
@ -558,7 +563,7 @@ std::set<std::string> RicSummaryCurveCreator::getAllSummaryWellNames()
{ {
const std::set<RifEclipseSummaryAddress> allAddresses = reader->allResultAddresses(); const std::set<RifEclipseSummaryAddress> allAddresses = reader->allResultAddresses();
for(auto& address : allAddresses) for (auto& address : allAddresses)
{ {
if (address.category() == RifEclipseSummaryAddress::SUMMARY_WELL) if (address.category() == RifEclipseSummaryAddress::SUMMARY_WELL)
{ {
@ -903,6 +908,9 @@ void RicSummaryCurveCreator::createNewPlot()
m_targetPlot = newSummaryPlot; m_targetPlot = newSummaryPlot;
updateTargetPlot(); updateTargetPlot();
RiuPlotMainWindow* mainPlotWindow = RiaApplication::instance()->mainPlotWindow();
mainPlotWindow->updateSummaryPlotToolBar();
} }
} }
} }
@ -1015,7 +1023,8 @@ int ensembleCurveCount(const std::set<RiaSummaryCurveDefinition>& allCurveDefs)
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
template <typename T> std::vector<T> toVector(const std::set<T>& set) template<typename T>
std::vector<T> toVector(const std::set<T>& set)
{ {
return std::vector<T>(set.begin(), set.end()); return std::vector<T>(set.begin(), set.end());
} }

View File

@ -520,6 +520,26 @@ RifEclipseSummaryAddress RifEclipseSummaryAddress::ensembleStatisticsAddress(con
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
bool RifEclipseSummaryAddress::isDependentOnWellName(const RifEclipseSummaryAddress& address)
{
// clang-format off
if (address.category() == SUMMARY_WELL ||
address.category() == SUMMARY_WELL_COMPLETION ||
address.category() == SUMMARY_WELL_COMPLETION_LGR ||
address.category() == SUMMARY_WELL_LGR ||
address.category() == SUMMARY_WELL_SEGMENT)
{
return true;
}
// clang-format on
return false;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
const std::string RifEclipseSummaryAddress::ensembleStatisticsQuantityName() const const std::string RifEclipseSummaryAddress::ensembleStatisticsQuantityName() const
{ {
QString qName = QString::fromStdString(m_quantityName); QString qName = QString::fromStdString(m_quantityName);

View File

@ -144,6 +144,8 @@ public:
static RifEclipseSummaryAddress importedAddress(const std::string& quantityName); static RifEclipseSummaryAddress importedAddress(const std::string& quantityName);
static RifEclipseSummaryAddress ensembleStatisticsAddress(const std::string& quantityName, const std::string& dataQuantityName); static RifEclipseSummaryAddress ensembleStatisticsAddress(const std::string& quantityName, const std::string& dataQuantityName);
static bool isDependentOnWellName(const RifEclipseSummaryAddress& address);
// Access methods // Access methods
SummaryVarCategory category() const { return m_variableCategory; } SummaryVarCategory category() const { return m_variableCategory; }

View File

@ -33,6 +33,8 @@
#include "cafPdmPtrField.h" #include "cafPdmPtrField.h"
#include "cafPdmUiItem.h" #include "cafPdmUiItem.h"
#include <limits>
class RigCaseCellResultsData; class RigCaseCellResultsData;
class RimEclipseCase; class RimEclipseCase;
class RimEclipseView; class RimEclipseView;

View File

@ -44,7 +44,8 @@ CAF_PDM_SOURCE_INIT(RimSummaryPlotSourceStepping, "RimSummaryCurveCollectionModi
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
RimSummaryPlotSourceStepping::RimSummaryPlotSourceStepping() : m_sourceSteppingType(Y_AXIS) RimSummaryPlotSourceStepping::RimSummaryPlotSourceStepping()
: m_sourceSteppingType(Y_AXIS)
{ {
// clang-format off // clang-format off
CAF_PDM_InitObject("Summary Curves Modifier", "", "", ""); CAF_PDM_InitObject("Summary Curves Modifier", "", "", "");
@ -244,8 +245,9 @@ QList<caf::PdmOptionItemInfo> RimSummaryPlotSourceStepping::calculateValueOption
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
void RimSummaryPlotSourceStepping::fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, void RimSummaryPlotSourceStepping::fieldChangedByUi(const caf::PdmFieldHandle* changedField,
const QVariant& newValue) const QVariant& oldValue,
const QVariant& newValue)
{ {
RimSummaryCurveCollection* curveCollection = nullptr; RimSummaryCurveCollection* curveCollection = nullptr;
this->firstAncestorOrThisOfTypeAsserted(curveCollection); this->firstAncestorOrThisOfTypeAsserted(curveCollection);
@ -286,7 +288,7 @@ void RimSummaryPlotSourceStepping::fieldChangedByUi(const caf::PdmFieldHandle* c
if (isYAxisStepping()) if (isYAxisStepping())
{ {
RifEclipseSummaryAddress adr = curve->summaryAddressY(); RifEclipseSummaryAddress adr = curve->summaryAddressY();
if (adr.category() == RifEclipseSummaryAddress::SUMMARY_WELL) if (RifEclipseSummaryAddress::isDependentOnWellName(adr))
{ {
adr.setWellName(m_wellName().toStdString()); adr.setWellName(m_wellName().toStdString());
@ -297,7 +299,7 @@ void RimSummaryPlotSourceStepping::fieldChangedByUi(const caf::PdmFieldHandle* c
if (isXAxisStepping()) if (isXAxisStepping())
{ {
RifEclipseSummaryAddress adr = curve->summaryAddressX(); RifEclipseSummaryAddress adr = curve->summaryAddressX();
if (adr.category() == RifEclipseSummaryAddress::SUMMARY_WELL) if (RifEclipseSummaryAddress::isDependentOnWellName(adr))
{ {
adr.setWellName(m_wellName().toStdString()); adr.setWellName(m_wellName().toStdString());
@ -417,7 +419,7 @@ void RimSummaryPlotSourceStepping::fieldChangedByUi(const caf::PdmFieldHandle* c
std::vector<RifSummaryReaderInterface*> RimSummaryPlotSourceStepping::summaryReadersForCurves() const std::vector<RifSummaryReaderInterface*> RimSummaryPlotSourceStepping::summaryReadersForCurves() const
{ {
std::vector<RifSummaryReaderInterface*> readers; std::vector<RifSummaryReaderInterface*> readers;
RimSummaryCurveCollection* curveCollection = nullptr; RimSummaryCurveCollection* curveCollection = nullptr;
this->firstAncestorOrThisOfTypeAsserted(curveCollection); this->firstAncestorOrThisOfTypeAsserted(curveCollection);
for (auto curve : curveCollection->curves()) for (auto curve : curveCollection->curves())
@ -646,7 +648,7 @@ RiaSummaryCurveAnalyzer* RimSummaryPlotSourceStepping::analyzerForReader(RifSumm
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
void RimSummaryPlotSourceStepping::modifyCurrentIndex(caf::PdmValueField* valueField, int indexOffset) void RimSummaryPlotSourceStepping::modifyCurrentIndex(caf::PdmValueField* valueField, int indexOffset)
{ {
bool useOptionsOnly; bool useOptionsOnly;
QList<caf::PdmOptionItemInfo> options = calculateValueOptions(valueField, &useOptionsOnly); QList<caf::PdmOptionItemInfo> options = calculateValueOptions(valueField, &useOptionsOnly);
RimDataSourceSteppingTools::modifyCurrentIndex(valueField, options, indexOffset); RimDataSourceSteppingTools::modifyCurrentIndex(valueField, options, indexOffset);
} }
@ -654,7 +656,8 @@ void RimSummaryPlotSourceStepping::modifyCurrentIndex(caf::PdmValueField* valueF
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
void RimSummaryPlotSourceStepping::defineEditorAttribute(const caf::PdmFieldHandle* field, QString uiConfigName, void RimSummaryPlotSourceStepping::defineEditorAttribute(const caf::PdmFieldHandle* field,
QString uiConfigName,
caf::PdmUiEditorAttribute* attribute) caf::PdmUiEditorAttribute* attribute)
{ {
caf::PdmUiComboBoxEditorAttribute* myAttr = dynamic_cast<caf::PdmUiComboBoxEditorAttribute*>(attribute); caf::PdmUiComboBoxEditorAttribute* myAttr = dynamic_cast<caf::PdmUiComboBoxEditorAttribute*>(attribute);