mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#2818 Summary. Add new-plot-commands to context menus
This commit is contained in:
@@ -20,6 +20,7 @@
|
||||
|
||||
#include "RiaApplication.h"
|
||||
#include "RiaPreferences.h"
|
||||
#include "RiaSummaryTools.h"
|
||||
|
||||
#include "RicEditSummaryPlotFeature.h"
|
||||
#include "RicSummaryCurveCreator.h"
|
||||
@@ -30,9 +31,13 @@
|
||||
#include "RimSummaryCrossPlotCollection.h"
|
||||
#include "RimSummaryCurveFilter.h"
|
||||
#include "RimSummaryPlot.h"
|
||||
#include "RimSummaryCase.h"
|
||||
#include "RimSummaryCaseCollection.h"
|
||||
|
||||
#include "RiuPlotMainWindowTools.h"
|
||||
|
||||
#include "cafSelectionManagerTools.h"
|
||||
|
||||
#include "cvfAssert.h"
|
||||
|
||||
#include <QAction>
|
||||
@@ -45,6 +50,24 @@ CAF_CMD_SOURCE_INIT(RicNewSummaryCrossPlotFeature, "RicNewSummaryCrossPlotFeatur
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
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;
|
||||
}
|
||||
|
||||
|
@@ -29,11 +29,14 @@
|
||||
#include "RimSummaryCurveFilter.h"
|
||||
#include "RimSummaryPlot.h"
|
||||
#include "RimSummaryPlotCollection.h"
|
||||
#include "RimSummaryCase.h"
|
||||
#include "RimSummaryCaseCollection.h"
|
||||
|
||||
#include "RiuPlotMainWindow.h"
|
||||
|
||||
#include "cvfAssert.h"
|
||||
#include "cafSelectionManager.h"
|
||||
#include "cafSelectionManagerTools.h"
|
||||
//#include "cafPdmUiItem.h"
|
||||
|
||||
#include <QAction>
|
||||
|
||||
@@ -55,7 +58,15 @@ bool RicNewSummaryPlotFeature::isCommandEnabled()
|
||||
|
||||
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();
|
||||
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();
|
||||
|
||||
if (!dialog->isVisible())
|
||||
@@ -77,7 +98,7 @@ void RicNewSummaryPlotFeature::onActionTriggered(bool isChecked)
|
||||
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)
|
||||
{
|
||||
@@ -145,7 +145,7 @@ void RicSummaryCurveCreator::updateFromSummaryPlot(RimSummaryPlot* targetPlot)
|
||||
}
|
||||
else
|
||||
{
|
||||
setDefaultCurveSelection();
|
||||
setDefaultCurveSelection(defaultCases);
|
||||
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();
|
||||
|
||||
RimSummaryPlot* previewPlot() const;
|
||||
void updateFromSummaryPlot(RimSummaryPlot* targetPlot);
|
||||
void updateFromSummaryPlot(RimSummaryPlot* targetPlot,
|
||||
const std::vector<RimSummaryCase*>& defaultCases = std::vector<RimSummaryCase*>());
|
||||
|
||||
QWidget* addressSelectionWidget(QWidget* parent);
|
||||
|
||||
@@ -87,7 +88,7 @@ private:
|
||||
void updateTargetPlot();
|
||||
static void copyCurveAndAddToPlot(const RimSummaryCurve *curve, RimSummaryPlot *plot, 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 initCurveAppearanceCalculator(RimSummaryCurveAppearanceCalculator& curveAppearanceCalc);
|
||||
|
@@ -65,6 +65,15 @@ void RicSummaryCurveCreatorDialog::updateFromSummaryPlot(RimSummaryPlot* summary
|
||||
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 RimSummaryPlot;
|
||||
class RimSummaryCase;
|
||||
|
||||
//==================================================================================================
|
||||
///
|
||||
@@ -35,6 +36,7 @@ public:
|
||||
~RicSummaryCurveCreatorDialog();
|
||||
|
||||
void updateFromSummaryPlot(RimSummaryPlot* summaryPlot);
|
||||
void updateFromDefaultCases(const std::vector<RimSummaryCase*> defaultCases);
|
||||
|
||||
private slots:
|
||||
void slotDialogFinished();
|
||||
|
@@ -66,6 +66,14 @@ void RicSummaryCurveCreatorSplitterUi::updateFromSummaryPlot(RimSummaryPlot* sum
|
||||
m_summaryCurveCreator->updateFromSummaryPlot(summaryPlot);
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RicSummaryCurveCreatorSplitterUi::updateFromDefaultCases(const std::vector<RimSummaryCase*> defaultCases)
|
||||
{
|
||||
m_summaryCurveCreator->updateFromSummaryPlot(nullptr, defaultCases);
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
@@ -24,6 +24,7 @@
|
||||
#include <memory>
|
||||
|
||||
class RimSummaryPlot;
|
||||
class RimSummaryCase;
|
||||
class RicSummaryCurveCreator;
|
||||
|
||||
class QMinimizePanel;
|
||||
@@ -52,6 +53,7 @@ public:
|
||||
~RicSummaryCurveCreatorSplitterUi();
|
||||
|
||||
void updateFromSummaryPlot(RimSummaryPlot* summaryPlot);
|
||||
void updateFromDefaultCases(const std::vector<RimSummaryCase*> defaultCases);
|
||||
|
||||
private:
|
||||
virtual void recursivelyConfigureAndUpdateTopLevelUiItems(const std::vector<caf::PdmUiItem *>& topLevelUiItems,
|
||||
|
@@ -485,17 +485,23 @@ caf::CmdFeatureMenuBuilder RimContextCommandBuilder::commandsFromSelection()
|
||||
menuBuilder << "RicImportSummaryCaseFeature";
|
||||
menuBuilder << "RicImportSummaryCasesFeature";
|
||||
menuBuilder << "RicImportEnsembleFeature";
|
||||
menuBuilder << "RicNewSummaryPlotFeature";
|
||||
menuBuilder << "RicNewSummaryCrossPlotFeature";
|
||||
menuBuilder.addSeparator();
|
||||
}
|
||||
else if (dynamic_cast<RimSummaryCase*>(uiItem))
|
||||
{
|
||||
menuBuilder << "RicImportSummaryCaseFeature";
|
||||
menuBuilder << "RicImportSummaryCasesFeature";
|
||||
menuBuilder << "RicImportEnsembleFeature";
|
||||
menuBuilder << "RicNewSummaryPlotFeature";
|
||||
menuBuilder << "RicNewSummaryCrossPlotFeature";
|
||||
menuBuilder.addSeparator();
|
||||
|
||||
if (!dynamic_cast<RimObservedData*>(uiItem))
|
||||
{
|
||||
menuBuilder << "RicShowSummaryCurveCalculatorFeature";
|
||||
menuBuilder << "RicNewSummaryPlotFeature";
|
||||
//menuBuilder << "RicNewSummaryPlotFeature";
|
||||
}
|
||||
}
|
||||
else if (dynamic_cast<RimWellLogFileChannel*>(uiItem))
|
||||
@@ -652,8 +658,11 @@ caf::CmdFeatureMenuBuilder RimContextCommandBuilder::commandsFromSelection()
|
||||
menuBuilder << "RicShowPlotDataFeature";
|
||||
menuBuilder << "RicShowTotalAllocationDataFeature";
|
||||
|
||||
menuBuilder << "RicNewSummaryPlotFeature";
|
||||
menuBuilder << "RicNewSummaryCrossPlotFeature";
|
||||
menuBuilder << "RicSummaryCurveSwitchAxisFeature";
|
||||
|
||||
menuBuilder.addSeparator();
|
||||
|
||||
if (!menuBuilder.isCmdFeatureAdded("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();
|
||||
auto allSumCases = proj->allSummaryCases();
|
||||
@@ -304,17 +304,15 @@ void RiuSummaryCurveDefSelection::setDefaultSelection()
|
||||
{
|
||||
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;
|
||||
curveDefs.push_back(curveDef);
|
||||
|
||||
// DEBUG
|
||||
//{
|
||||
// RifEclipseSummaryAddress defaultAddress = RifEclipseSummaryAddress::fieldVarAddress("FOPTH");
|
||||
|
||||
// RiaSummaryCurveDefinition curveDef(allSumCases[0], defaultAddress);
|
||||
// curveDefs.push_back(curveDef);
|
||||
//}
|
||||
for(RimSummaryCase* c : selectTheseCases)
|
||||
{
|
||||
RiaSummaryCurveDefinition curveDef(c, defaultAddress);
|
||||
curveDefs.push_back(curveDef);
|
||||
}
|
||||
|
||||
setSelectedCurveDefinitions(curveDefs);
|
||||
}
|
||||
|
@@ -55,7 +55,7 @@ public:
|
||||
void setMultiSelectionMode(bool multiSelectionMode);
|
||||
void setFieldChangedHandler(const std::function<void()>& handlerFunc);
|
||||
|
||||
void setDefaultSelection();
|
||||
void setDefaultSelection(const std::vector<RimSummaryCase*>& defaultCases);
|
||||
|
||||
private:
|
||||
virtual void fieldChangedByUi(const caf::PdmFieldHandle* changedField,
|
||||
|
Reference in New Issue
Block a user