mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#1288 Do not show command if no flow solution is available
This commit is contained in:
parent
a87ad2e56e
commit
1e1c5b0398
@ -20,6 +20,7 @@
|
||||
|
||||
#include "RicShowContributingWellsFeatureImpl.h"
|
||||
|
||||
#include "RimEclipseCellColors.h"
|
||||
#include "RimEclipseResultCase.h"
|
||||
#include "RimEclipseView.h"
|
||||
#include "RimEclipseWell.h"
|
||||
@ -41,8 +42,32 @@ bool RicShowContributingWellsFeature::isCommandEnabled()
|
||||
{
|
||||
std::vector<RimEclipseWell*> collection;
|
||||
caf::SelectionManager::instance()->objectsByType(&collection);
|
||||
if (collection.size() == 1)
|
||||
{
|
||||
RimEclipseWell* well = collection[0];
|
||||
RimEclipseView* eclipseView = nullptr;
|
||||
well->firstAncestorOrThisOfType(eclipseView);
|
||||
|
||||
if (collection.size() == 1) return true;
|
||||
if (eclipseView)
|
||||
{
|
||||
RimFlowDiagSolution* flowDiagSolution = eclipseView->cellResult()->flowDiagSolution();
|
||||
if (!flowDiagSolution)
|
||||
{
|
||||
RimEclipseResultCase* eclipseResultCase = nullptr;
|
||||
well->firstAncestorOrThisOfTypeAsserted(eclipseResultCase);
|
||||
|
||||
if (eclipseResultCase)
|
||||
{
|
||||
flowDiagSolution = eclipseResultCase->defaultFlowDiagSolution();
|
||||
}
|
||||
}
|
||||
|
||||
if (flowDiagSolution)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
@ -39,7 +39,6 @@
|
||||
|
||||
#include "RiuMainWindow.h"
|
||||
|
||||
#include "cafAssert.h"
|
||||
#include "cafCmdFeature.h"
|
||||
#include "cafCmdFeatureManager.h"
|
||||
#include "cafPdmUiPropertyViewDialog.h"
|
||||
@ -47,7 +46,7 @@
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RimEclipseView* RicShowContributingWellsFeatureImpl::showViewSelection(RimEclipseResultCase* wellAllocationResultCase, QString wellName, int timeStep)
|
||||
RimEclipseView* RicShowContributingWellsFeatureImpl::showViewSelection(RimEclipseResultCase* eclipseResultCase, QString wellName, int timeStep)
|
||||
{
|
||||
const QString lastUsedViewKey("lastUsedViewKey");
|
||||
|
||||
@ -60,7 +59,7 @@ RimEclipseView* RicShowContributingWellsFeatureImpl::showViewSelection(RimEclips
|
||||
RimEclipseResultCase* lastUsedViewResultCase = nullptr;
|
||||
lastUsedView->firstAncestorOrThisOfTypeAsserted(lastUsedViewResultCase);
|
||||
|
||||
if (lastUsedViewResultCase == wellAllocationResultCase)
|
||||
if (lastUsedViewResultCase == eclipseResultCase)
|
||||
{
|
||||
defaultSelectedView = lastUsedView;
|
||||
}
|
||||
@ -74,15 +73,15 @@ RimEclipseView* RicShowContributingWellsFeatureImpl::showViewSelection(RimEclips
|
||||
RimEclipseResultCase* activeViewResultCase = nullptr;
|
||||
activeView->firstAncestorOrThisOfTypeAsserted(activeViewResultCase);
|
||||
|
||||
if (activeViewResultCase == wellAllocationResultCase)
|
||||
if (activeViewResultCase == eclipseResultCase)
|
||||
{
|
||||
defaultSelectedView = activeView;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (wellAllocationResultCase->views().size() > 0)
|
||||
if (eclipseResultCase->views().size() > 0)
|
||||
{
|
||||
defaultSelectedView = dynamic_cast<RimEclipseView*>(wellAllocationResultCase->views()[0]);
|
||||
defaultSelectedView = dynamic_cast<RimEclipseView*>(eclipseResultCase->views()[0]);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -96,7 +95,7 @@ RimEclipseView* RicShowContributingWellsFeatureImpl::showViewSelection(RimEclips
|
||||
}
|
||||
else
|
||||
{
|
||||
featureUi.setCase(wellAllocationResultCase);
|
||||
featureUi.setCase(eclipseResultCase);
|
||||
}
|
||||
|
||||
caf::PdmUiPropertyViewDialog propertyDialog(NULL, &featureUi, "Show Contributing Wells in View", "");
|
||||
@ -107,12 +106,12 @@ RimEclipseView* RicShowContributingWellsFeatureImpl::showViewSelection(RimEclips
|
||||
RimEclipseView* viewToManipulate = nullptr;
|
||||
if (featureUi.createNewView())
|
||||
{
|
||||
RimEclipseView* createdView = wellAllocationResultCase->createAndAddReservoirView();
|
||||
RimEclipseView* createdView = eclipseResultCase->createAndAddReservoirView();
|
||||
createdView->name = featureUi.newViewName();
|
||||
|
||||
// Must be run before buildViewItems, as wells are created in this function
|
||||
createdView->loadDataAndUpdate();
|
||||
wellAllocationResultCase->updateConnectedEditors();
|
||||
eclipseResultCase->updateConnectedEditors();
|
||||
|
||||
viewToManipulate = createdView;
|
||||
}
|
||||
@ -121,7 +120,7 @@ RimEclipseView* RicShowContributingWellsFeatureImpl::showViewSelection(RimEclips
|
||||
viewToManipulate = featureUi.selectedView();
|
||||
}
|
||||
|
||||
CAF_ASSERT(viewToManipulate);
|
||||
CVF_ASSERT(viewToManipulate);
|
||||
|
||||
|
||||
RicShowContributingWellsFeatureImpl::modifyViewToShowContributingWells(viewToManipulate, wellName, timeStep);
|
||||
@ -143,7 +142,7 @@ RimEclipseView* RicShowContributingWellsFeatureImpl::showViewSelection(RimEclips
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RicShowContributingWellsFeatureImpl::modifyViewToShowContributingWells(RimEclipseView* viewToModify, const QString& wellName, int timeStep)
|
||||
{
|
||||
CAF_ASSERT(viewToModify);
|
||||
CVF_ASSERT(viewToModify);
|
||||
|
||||
RimEclipseWell* selectedWell = nullptr;
|
||||
|
||||
@ -155,7 +154,7 @@ void RicShowContributingWellsFeatureImpl::modifyViewToShowContributingWells(RimE
|
||||
}
|
||||
}
|
||||
|
||||
CAF_ASSERT(selectedWell);
|
||||
CVF_ASSERT(selectedWell);
|
||||
|
||||
RimEclipseResultCase* eclipseResultCase = nullptr;
|
||||
selectedWell->firstAncestorOrThisOfTypeAsserted(eclipseResultCase);
|
||||
@ -167,7 +166,8 @@ void RicShowContributingWellsFeatureImpl::modifyViewToShowContributingWells(RimE
|
||||
flowDiagSolution = eclipseResultCase->defaultFlowDiagSolution();
|
||||
}
|
||||
|
||||
CAF_ASSERT(flowDiagSolution);
|
||||
//assert(flowDiagSolution);
|
||||
CVF_ASSERT(flowDiagSolution);
|
||||
|
||||
RimFlowDiagSolution::TracerStatusType tracerStatus = flowDiagSolution->tracerStatusInTimeStep(selectedWell->name(), timeStep);
|
||||
if (!(tracerStatus == RimFlowDiagSolution::INJECTOR || tracerStatus == RimFlowDiagSolution::PRODUCER))
|
||||
|
Loading…
Reference in New Issue
Block a user