#2010 RFT plot. Show relevant curves initially

This commit is contained in:
Bjørn Erik Jensen 2017-10-17 11:01:15 +02:00
parent c52d9522c0
commit 01cadd5a1c
3 changed files with 56 additions and 3 deletions

View File

@ -137,15 +137,16 @@ void RicNewRftPlotFeature::onActionTriggered(bool isChecked)
rftPlotColl->addPlot(rftPlot);
rftPlot->setDescription(plotName);
rftPlot->applyInitialSelections();
rftPlot->loadDataAndUpdate();
rftPlotColl->updateConnectedEditors();
RiuMainPlotWindow* mainPlotWindow = RiaApplication::instance()->getOrCreateAndShowMainPlotWindow();
if (mainPlotWindow)
{
mainPlotWindow->selectAsCurrentItem(rftPlot);
mainPlotWindow->setExpanded(rftPlot, true);
}
rftPlot->loadDataAndUpdate();
rftPlotColl->updateConnectedEditors();
}
}

View File

@ -216,6 +216,56 @@ void RimWellRftPlot::applyCurveAppearance(RimWellLogCurve* newCurve)
newCurve->setLineStyle(currentLineStyle);
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimWellRftPlot::applyInitialSelections()
{
std::vector<std::tuple<RimEclipseResultCase*, bool, bool>> eclCaseTuples = eclipseCasesForWell(m_wellName);
std::vector<RimWellRftAddress> sourcesToSelect;
std::map<QDateTime, std::set<RimWellRftAddress>> rftTimeSteps;
std::map<QDateTime, std::set<RimWellRftAddress>> observedTimeSteps;
std::map<QDateTime, std::set<RimWellRftAddress>> gridTimeSteps;
for(const auto& rftCase : rftCasesFromEclipseCases(eclCaseTuples))
{
sourcesToSelect.push_back(RimWellRftAddress(RftSourceType::RFT, rftCase->caseId()));
addTimeStepsToMap(rftTimeSteps, timeStepsFromRftCase(rftCase));
}
for (const auto& gridCase : gridCasesFromEclipseCases(eclCaseTuples))
{
sourcesToSelect.push_back(RimWellRftAddress(RftSourceType::GRID, gridCase->caseId()));
addTimeStepsToMap(gridTimeSteps, timeStepsFromGridCase(gridCase));
}
std::vector<RimWellPath*> wellPaths = wellPathsContainingPressure(m_wellName);
if(wellPaths.size() > 0)
{
sourcesToSelect.push_back(RimWellRftAddress(RftSourceType::OBSERVED));
addTimeStepsToMap(observedTimeSteps, timeStepsFromWellPaths(wellPaths));
}
m_selectedSources = sourcesToSelect;
std::set<QDateTime> timeStepsToSelect;
for (const auto& dateTimePair : rftTimeSteps)
{
timeStepsToSelect.insert(dateTimePair.first);
}
for (const auto& dateTimePair : observedTimeSteps)
{
timeStepsToSelect.insert(dateTimePair.first);
}
if (gridTimeSteps.size() > 0)
timeStepsToSelect.insert((*gridTimeSteps.begin()).first);
m_selectedTimeSteps = std::vector<QDateTime>(timeStepsToSelect.begin(), timeStepsToSelect.end());
syncCurvesFromUiSelection();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------

View File

@ -84,6 +84,8 @@ public:
static bool hasPressureData(RimEclipseResultCase* gridCase);
static const char* plotNameFormatString();
void applyInitialSelections();
protected:
// Overridden PDM methods
virtual caf::PdmFieldHandle* userDescriptionField() { return &m_userName; }