mirror of
https://github.com/OPM/ResInsight.git
synced 2026-09-03 20:53:13 -05:00
#2818 Summary. Add new-plot-commands to context menus
This commit is contained in:
@@ -20,6 +20,7 @@
|
|||||||
|
|
||||||
#include "RiaApplication.h"
|
#include "RiaApplication.h"
|
||||||
#include "RiaPreferences.h"
|
#include "RiaPreferences.h"
|
||||||
|
#include "RiaSummaryTools.h"
|
||||||
|
|
||||||
#include "RicEditSummaryPlotFeature.h"
|
#include "RicEditSummaryPlotFeature.h"
|
||||||
#include "RicSummaryCurveCreator.h"
|
#include "RicSummaryCurveCreator.h"
|
||||||
@@ -30,9 +31,13 @@
|
|||||||
#include "RimSummaryCrossPlotCollection.h"
|
#include "RimSummaryCrossPlotCollection.h"
|
||||||
#include "RimSummaryCurveFilter.h"
|
#include "RimSummaryCurveFilter.h"
|
||||||
#include "RimSummaryPlot.h"
|
#include "RimSummaryPlot.h"
|
||||||
|
#include "RimSummaryCase.h"
|
||||||
|
#include "RimSummaryCaseCollection.h"
|
||||||
|
|
||||||
#include "RiuPlotMainWindowTools.h"
|
#include "RiuPlotMainWindowTools.h"
|
||||||
|
|
||||||
|
#include "cafSelectionManagerTools.h"
|
||||||
|
|
||||||
#include "cvfAssert.h"
|
#include "cvfAssert.h"
|
||||||
|
|
||||||
#include <QAction>
|
#include <QAction>
|
||||||
@@ -45,6 +50,24 @@ CAF_CMD_SOURCE_INIT(RicNewSummaryCrossPlotFeature, "RicNewSummaryCrossPlotFeatur
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
bool RicNewSummaryCrossPlotFeature::isCommandEnabled()
|
bool RicNewSummaryCrossPlotFeature::isCommandEnabled()
|
||||||
{
|
{
|
||||||
|
RimSummaryCrossPlotCollection* sumPlotColl = nullptr;
|
||||||
|
|
||||||
|
caf::PdmObject* selObj = dynamic_cast<caf::PdmObject*>(caf::SelectionManager::instance()->selectedItem());
|
||||||
|
if (selObj)
|
||||||
|
{
|
||||||
|
sumPlotColl = RiaSummaryTools::parentCrossPlotCollection(selObj);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (sumPlotColl) return true;
|
||||||
|
|
||||||
|
// Multiple case selections
|
||||||
|
std::vector<caf::PdmUiItem*> selectedItems = caf::selectedObjectsByTypeStrict<caf::PdmUiItem*>();
|
||||||
|
|
||||||
|
for (auto item : selectedItems)
|
||||||
|
{
|
||||||
|
if (!dynamic_cast<RimSummaryCase*>(item) && !dynamic_cast<RimSummaryCaseCollection*>(item))
|
||||||
|
return false;
|
||||||
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -29,11 +29,14 @@
|
|||||||
#include "RimSummaryCurveFilter.h"
|
#include "RimSummaryCurveFilter.h"
|
||||||
#include "RimSummaryPlot.h"
|
#include "RimSummaryPlot.h"
|
||||||
#include "RimSummaryPlotCollection.h"
|
#include "RimSummaryPlotCollection.h"
|
||||||
|
#include "RimSummaryCase.h"
|
||||||
|
#include "RimSummaryCaseCollection.h"
|
||||||
|
|
||||||
#include "RiuPlotMainWindow.h"
|
#include "RiuPlotMainWindow.h"
|
||||||
|
|
||||||
#include "cvfAssert.h"
|
#include "cvfAssert.h"
|
||||||
#include "cafSelectionManager.h"
|
#include "cafSelectionManagerTools.h"
|
||||||
|
//#include "cafPdmUiItem.h"
|
||||||
|
|
||||||
#include <QAction>
|
#include <QAction>
|
||||||
|
|
||||||
@@ -55,7 +58,15 @@ bool RicNewSummaryPlotFeature::isCommandEnabled()
|
|||||||
|
|
||||||
if (sumPlotColl) return true;
|
if (sumPlotColl) return true;
|
||||||
|
|
||||||
return false;
|
// Multiple case selections
|
||||||
|
std::vector<caf::PdmUiItem*> selectedItems = caf::selectedObjectsByTypeStrict<caf::PdmUiItem*>();
|
||||||
|
|
||||||
|
for (auto item : selectedItems)
|
||||||
|
{
|
||||||
|
if (!dynamic_cast<RimSummaryCase*>(item) && !dynamic_cast<RimSummaryCaseCollection*>(item))
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
@@ -66,6 +77,16 @@ void RicNewSummaryPlotFeature::onActionTriggered(bool isChecked)
|
|||||||
RimProject* project = RiaApplication::instance()->project();
|
RimProject* project = RiaApplication::instance()->project();
|
||||||
CVF_ASSERT(project);
|
CVF_ASSERT(project);
|
||||||
|
|
||||||
|
std::vector<RimSummaryCase*> selectedCases = caf::selectedObjectsByType<RimSummaryCase*>();
|
||||||
|
std::vector<RimSummaryCaseCollection*> selectedGroups = caf::selectedObjectsByType<RimSummaryCaseCollection*>();
|
||||||
|
|
||||||
|
// Append grouped cases
|
||||||
|
for (auto group : selectedGroups)
|
||||||
|
{
|
||||||
|
auto groupCases = group->allSummaryCases();
|
||||||
|
selectedCases.insert(selectedCases.end(), groupCases.begin(), groupCases.end());
|
||||||
|
}
|
||||||
|
|
||||||
auto dialog = RicEditSummaryPlotFeature::curveCreatorDialog();
|
auto dialog = RicEditSummaryPlotFeature::curveCreatorDialog();
|
||||||
|
|
||||||
if (!dialog->isVisible())
|
if (!dialog->isVisible())
|
||||||
@@ -77,7 +98,7 @@ void RicNewSummaryPlotFeature::onActionTriggered(bool isChecked)
|
|||||||
dialog->raise();
|
dialog->raise();
|
||||||
}
|
}
|
||||||
|
|
||||||
dialog->updateFromSummaryPlot(nullptr);
|
dialog->updateFromDefaultCases(selectedCases);
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
|||||||
@@ -129,7 +129,7 @@ RimSummaryPlot* RicSummaryCurveCreator::previewPlot() const
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
void RicSummaryCurveCreator::updateFromSummaryPlot(RimSummaryPlot* targetPlot)
|
void RicSummaryCurveCreator::updateFromSummaryPlot(RimSummaryPlot* targetPlot, const std::vector<RimSummaryCase*>& defaultCases)
|
||||||
{
|
{
|
||||||
if (targetPlot == nullptr || m_targetPlot != targetPlot)
|
if (targetPlot == nullptr || m_targetPlot != targetPlot)
|
||||||
{
|
{
|
||||||
@@ -145,7 +145,7 @@ void RicSummaryCurveCreator::updateFromSummaryPlot(RimSummaryPlot* targetPlot)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
setDefaultCurveSelection();
|
setDefaultCurveSelection(defaultCases);
|
||||||
m_previewPlot->enableAutoPlotTitle(true);
|
m_previewPlot->enableAutoPlotTitle(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -616,9 +616,9 @@ void RicSummaryCurveCreator::copyEnsembleCurveAndAddToPlot(const RimSummaryCurve
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
void RicSummaryCurveCreator::setDefaultCurveSelection()
|
void RicSummaryCurveCreator::setDefaultCurveSelection(const std::vector<RimSummaryCase*>& defaultCases)
|
||||||
{
|
{
|
||||||
m_summaryCurveSelectionEditor->summaryAddressSelection()->setDefaultSelection();
|
m_summaryCurveSelectionEditor->summaryAddressSelection()->setDefaultSelection(defaultCases);
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
|||||||
@@ -59,7 +59,8 @@ public:
|
|||||||
virtual ~RicSummaryCurveCreator();
|
virtual ~RicSummaryCurveCreator();
|
||||||
|
|
||||||
RimSummaryPlot* previewPlot() const;
|
RimSummaryPlot* previewPlot() const;
|
||||||
void updateFromSummaryPlot(RimSummaryPlot* targetPlot);
|
void updateFromSummaryPlot(RimSummaryPlot* targetPlot,
|
||||||
|
const std::vector<RimSummaryCase*>& defaultCases = std::vector<RimSummaryCase*>());
|
||||||
|
|
||||||
QWidget* addressSelectionWidget(QWidget* parent);
|
QWidget* addressSelectionWidget(QWidget* parent);
|
||||||
|
|
||||||
@@ -87,7 +88,7 @@ private:
|
|||||||
void updateTargetPlot();
|
void updateTargetPlot();
|
||||||
static void copyCurveAndAddToPlot(const RimSummaryCurve *curve, RimSummaryPlot *plot, bool forceVisible = false);
|
static void copyCurveAndAddToPlot(const RimSummaryCurve *curve, RimSummaryPlot *plot, bool forceVisible = false);
|
||||||
static void copyEnsembleCurveAndAddToPlot(const RimSummaryCurve *curve, RimEnsembleCurveSet* curveSet, bool forceVisible = false);
|
static void copyEnsembleCurveAndAddToPlot(const RimSummaryCurve *curve, RimEnsembleCurveSet* curveSet, bool forceVisible = false);
|
||||||
void setDefaultCurveSelection();
|
void setDefaultCurveSelection(const std::vector<RimSummaryCase*>& defaultCases);
|
||||||
|
|
||||||
void resetAllFields();
|
void resetAllFields();
|
||||||
void initCurveAppearanceCalculator(RimSummaryCurveAppearanceCalculator& curveAppearanceCalc);
|
void initCurveAppearanceCalculator(RimSummaryCurveAppearanceCalculator& curveAppearanceCalc);
|
||||||
|
|||||||
@@ -65,6 +65,15 @@ void RicSummaryCurveCreatorDialog::updateFromSummaryPlot(RimSummaryPlot* summary
|
|||||||
m_curveCreatorSplitterUi->updateUi();
|
m_curveCreatorSplitterUi->updateUi();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
void RicSummaryCurveCreatorDialog::updateFromDefaultCases(const std::vector<RimSummaryCase*> defaultCases)
|
||||||
|
{
|
||||||
|
m_curveCreatorSplitterUi->updateFromDefaultCases(defaultCases);
|
||||||
|
m_curveCreatorSplitterUi->updateUi();
|
||||||
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
|||||||
@@ -22,6 +22,7 @@
|
|||||||
|
|
||||||
class RicSummaryCurveCreatorSplitterUi;
|
class RicSummaryCurveCreatorSplitterUi;
|
||||||
class RimSummaryPlot;
|
class RimSummaryPlot;
|
||||||
|
class RimSummaryCase;
|
||||||
|
|
||||||
//==================================================================================================
|
//==================================================================================================
|
||||||
///
|
///
|
||||||
@@ -35,6 +36,7 @@ public:
|
|||||||
~RicSummaryCurveCreatorDialog();
|
~RicSummaryCurveCreatorDialog();
|
||||||
|
|
||||||
void updateFromSummaryPlot(RimSummaryPlot* summaryPlot);
|
void updateFromSummaryPlot(RimSummaryPlot* summaryPlot);
|
||||||
|
void updateFromDefaultCases(const std::vector<RimSummaryCase*> defaultCases);
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void slotDialogFinished();
|
void slotDialogFinished();
|
||||||
|
|||||||
@@ -66,6 +66,14 @@ void RicSummaryCurveCreatorSplitterUi::updateFromSummaryPlot(RimSummaryPlot* sum
|
|||||||
m_summaryCurveCreator->updateFromSummaryPlot(summaryPlot);
|
m_summaryCurveCreator->updateFromSummaryPlot(summaryPlot);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
void RicSummaryCurveCreatorSplitterUi::updateFromDefaultCases(const std::vector<RimSummaryCase*> defaultCases)
|
||||||
|
{
|
||||||
|
m_summaryCurveCreator->updateFromSummaryPlot(nullptr, defaultCases);
|
||||||
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
|||||||
@@ -24,6 +24,7 @@
|
|||||||
#include <memory>
|
#include <memory>
|
||||||
|
|
||||||
class RimSummaryPlot;
|
class RimSummaryPlot;
|
||||||
|
class RimSummaryCase;
|
||||||
class RicSummaryCurveCreator;
|
class RicSummaryCurveCreator;
|
||||||
|
|
||||||
class QMinimizePanel;
|
class QMinimizePanel;
|
||||||
@@ -52,6 +53,7 @@ public:
|
|||||||
~RicSummaryCurveCreatorSplitterUi();
|
~RicSummaryCurveCreatorSplitterUi();
|
||||||
|
|
||||||
void updateFromSummaryPlot(RimSummaryPlot* summaryPlot);
|
void updateFromSummaryPlot(RimSummaryPlot* summaryPlot);
|
||||||
|
void updateFromDefaultCases(const std::vector<RimSummaryCase*> defaultCases);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
virtual void recursivelyConfigureAndUpdateTopLevelUiItems(const std::vector<caf::PdmUiItem *>& topLevelUiItems,
|
virtual void recursivelyConfigureAndUpdateTopLevelUiItems(const std::vector<caf::PdmUiItem *>& topLevelUiItems,
|
||||||
|
|||||||
@@ -485,17 +485,23 @@ caf::CmdFeatureMenuBuilder RimContextCommandBuilder::commandsFromSelection()
|
|||||||
menuBuilder << "RicImportSummaryCaseFeature";
|
menuBuilder << "RicImportSummaryCaseFeature";
|
||||||
menuBuilder << "RicImportSummaryCasesFeature";
|
menuBuilder << "RicImportSummaryCasesFeature";
|
||||||
menuBuilder << "RicImportEnsembleFeature";
|
menuBuilder << "RicImportEnsembleFeature";
|
||||||
|
menuBuilder << "RicNewSummaryPlotFeature";
|
||||||
|
menuBuilder << "RicNewSummaryCrossPlotFeature";
|
||||||
|
menuBuilder.addSeparator();
|
||||||
}
|
}
|
||||||
else if (dynamic_cast<RimSummaryCase*>(uiItem))
|
else if (dynamic_cast<RimSummaryCase*>(uiItem))
|
||||||
{
|
{
|
||||||
menuBuilder << "RicImportSummaryCaseFeature";
|
menuBuilder << "RicImportSummaryCaseFeature";
|
||||||
menuBuilder << "RicImportSummaryCasesFeature";
|
menuBuilder << "RicImportSummaryCasesFeature";
|
||||||
menuBuilder << "RicImportEnsembleFeature";
|
menuBuilder << "RicImportEnsembleFeature";
|
||||||
|
menuBuilder << "RicNewSummaryPlotFeature";
|
||||||
|
menuBuilder << "RicNewSummaryCrossPlotFeature";
|
||||||
|
menuBuilder.addSeparator();
|
||||||
|
|
||||||
if (!dynamic_cast<RimObservedData*>(uiItem))
|
if (!dynamic_cast<RimObservedData*>(uiItem))
|
||||||
{
|
{
|
||||||
menuBuilder << "RicShowSummaryCurveCalculatorFeature";
|
menuBuilder << "RicShowSummaryCurveCalculatorFeature";
|
||||||
menuBuilder << "RicNewSummaryPlotFeature";
|
//menuBuilder << "RicNewSummaryPlotFeature";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (dynamic_cast<RimWellLogFileChannel*>(uiItem))
|
else if (dynamic_cast<RimWellLogFileChannel*>(uiItem))
|
||||||
@@ -652,8 +658,11 @@ caf::CmdFeatureMenuBuilder RimContextCommandBuilder::commandsFromSelection()
|
|||||||
menuBuilder << "RicShowPlotDataFeature";
|
menuBuilder << "RicShowPlotDataFeature";
|
||||||
menuBuilder << "RicShowTotalAllocationDataFeature";
|
menuBuilder << "RicShowTotalAllocationDataFeature";
|
||||||
|
|
||||||
|
menuBuilder << "RicNewSummaryPlotFeature";
|
||||||
|
menuBuilder << "RicNewSummaryCrossPlotFeature";
|
||||||
menuBuilder << "RicSummaryCurveSwitchAxisFeature";
|
menuBuilder << "RicSummaryCurveSwitchAxisFeature";
|
||||||
|
menuBuilder.addSeparator();
|
||||||
|
|
||||||
if (!menuBuilder.isCmdFeatureAdded("RicNewFishbonesSubsFeature"))
|
if (!menuBuilder.isCmdFeatureAdded("RicNewFishbonesSubsFeature"))
|
||||||
{
|
{
|
||||||
menuBuilder << "RicNewFishbonesSubsFeature";
|
menuBuilder << "RicNewFishbonesSubsFeature";
|
||||||
|
|||||||
@@ -296,7 +296,7 @@ void RiuSummaryCurveDefSelection::setFieldChangedHandler(const std::function<voi
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
void RiuSummaryCurveDefSelection::setDefaultSelection()
|
void RiuSummaryCurveDefSelection::setDefaultSelection(const std::vector<RimSummaryCase*>& defaultCases)
|
||||||
{
|
{
|
||||||
RimProject* proj = RiaApplication::instance()->project();
|
RimProject* proj = RiaApplication::instance()->project();
|
||||||
auto allSumCases = proj->allSummaryCases();
|
auto allSumCases = proj->allSummaryCases();
|
||||||
@@ -304,17 +304,15 @@ void RiuSummaryCurveDefSelection::setDefaultSelection()
|
|||||||
{
|
{
|
||||||
RifEclipseSummaryAddress defaultAddress = RifEclipseSummaryAddress::fieldVarAddress("FOPT");
|
RifEclipseSummaryAddress defaultAddress = RifEclipseSummaryAddress::fieldVarAddress("FOPT");
|
||||||
|
|
||||||
RiaSummaryCurveDefinition curveDef(allSumCases[0], defaultAddress);
|
std::vector<RimSummaryCase*> selectTheseCases = defaultCases;
|
||||||
|
if (selectTheseCases.empty()) selectTheseCases.push_back(allSumCases[0]);
|
||||||
|
|
||||||
std::vector<RiaSummaryCurveDefinition> curveDefs;
|
std::vector<RiaSummaryCurveDefinition> curveDefs;
|
||||||
curveDefs.push_back(curveDef);
|
for(RimSummaryCase* c : selectTheseCases)
|
||||||
|
{
|
||||||
// DEBUG
|
RiaSummaryCurveDefinition curveDef(c, defaultAddress);
|
||||||
//{
|
curveDefs.push_back(curveDef);
|
||||||
// RifEclipseSummaryAddress defaultAddress = RifEclipseSummaryAddress::fieldVarAddress("FOPTH");
|
}
|
||||||
|
|
||||||
// RiaSummaryCurveDefinition curveDef(allSumCases[0], defaultAddress);
|
|
||||||
// curveDefs.push_back(curveDef);
|
|
||||||
//}
|
|
||||||
|
|
||||||
setSelectedCurveDefinitions(curveDefs);
|
setSelectedCurveDefinitions(curveDefs);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -55,7 +55,7 @@ public:
|
|||||||
void setMultiSelectionMode(bool multiSelectionMode);
|
void setMultiSelectionMode(bool multiSelectionMode);
|
||||||
void setFieldChangedHandler(const std::function<void()>& handlerFunc);
|
void setFieldChangedHandler(const std::function<void()>& handlerFunc);
|
||||||
|
|
||||||
void setDefaultSelection();
|
void setDefaultSelection(const std::vector<RimSummaryCase*>& defaultCases);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
virtual void fieldChangedByUi(const caf::PdmFieldHandle* changedField,
|
virtual void fieldChangedByUi(const caf::PdmFieldHandle* changedField,
|
||||||
|
|||||||
Reference in New Issue
Block a user