#1080 Snapshot : Show parameter and case as default

This commit is contained in:
Magne Sjaastad 2017-01-17 10:40:38 +01:00
parent 22f870bff0
commit 9c1e9f0970
5 changed files with 43 additions and 48 deletions

View File

@ -114,18 +114,18 @@ void RicExportMultipleSnapshotsFeature::exportMultipleSnapshots(const QString& f
{ {
if (!msd->isActive()) continue; if (!msd->isActive()) continue;
RimView* rimView = msd->viewObject(); RimView* sourceView = msd->view();
if (!rimView) continue; if (!sourceView) continue;
if (!rimView->viewer()) continue; if (!sourceView->viewer()) continue;
int initialFramIndex = rimView->viewer()->currentFrameIndex(); int initialFramIndex = sourceView->viewer()->currentFrameIndex();
exportResultVariations(rimView, msd, folder); //exportViewVariations(sourceView, msd, folder);
for (RimCase* rimCase : msd->additionalCases()) for (RimCase* rimCase : msd->additionalCases())
{ {
RimEclipseCase* eclCase = dynamic_cast<RimEclipseCase*>(rimCase); RimEclipseCase* eclCase = dynamic_cast<RimEclipseCase*>(rimCase);
RimEclipseView* sourceEclipseView = dynamic_cast<RimEclipseView*>(rimView); RimEclipseView* sourceEclipseView = dynamic_cast<RimEclipseView*>(sourceView);
if (eclCase && sourceEclipseView) if (eclCase && sourceEclipseView)
{ {
RimEclipseView* copyOfEclipseView = eclCase->createCopyAndAddView(sourceEclipseView); RimEclipseView* copyOfEclipseView = eclCase->createCopyAndAddView(sourceEclipseView);
@ -133,7 +133,7 @@ void RicExportMultipleSnapshotsFeature::exportMultipleSnapshots(const QString& f
copyOfEclipseView->loadDataAndUpdate(); copyOfEclipseView->loadDataAndUpdate();
exportResultVariations(copyOfEclipseView, msd, folder); exportViewVariations(copyOfEclipseView, msd, folder);
eclCase->reservoirViews().removeChildObject(copyOfEclipseView); eclCase->reservoirViews().removeChildObject(copyOfEclipseView);
@ -141,7 +141,7 @@ void RicExportMultipleSnapshotsFeature::exportMultipleSnapshots(const QString& f
} }
RimGeoMechCase* geomCase = dynamic_cast<RimGeoMechCase*>(rimCase); RimGeoMechCase* geomCase = dynamic_cast<RimGeoMechCase*>(rimCase);
RimGeoMechView* sourceGeoMechView = dynamic_cast<RimGeoMechView*>(rimView); RimGeoMechView* sourceGeoMechView = dynamic_cast<RimGeoMechView*>(sourceView);
if (geomCase && sourceGeoMechView) if (geomCase && sourceGeoMechView)
{ {
RimGeoMechView* copyOfGeoMechView = dynamic_cast<RimGeoMechView*>(sourceGeoMechView->xmlCapability()->copyByXmlSerialization(caf::PdmDefaultObjectFactory::instance())); RimGeoMechView* copyOfGeoMechView = dynamic_cast<RimGeoMechView*>(sourceGeoMechView->xmlCapability()->copyByXmlSerialization(caf::PdmDefaultObjectFactory::instance()));
@ -159,7 +159,7 @@ void RicExportMultipleSnapshotsFeature::exportMultipleSnapshots(const QString& f
copyOfGeoMechView->loadDataAndUpdate(); copyOfGeoMechView->loadDataAndUpdate();
exportResultVariations(copyOfGeoMechView, msd, folder); exportViewVariations(copyOfGeoMechView, msd, folder);
geomCase->geoMechViews().removeChildObject(copyOfGeoMechView); geomCase->geoMechViews().removeChildObject(copyOfGeoMechView);
@ -168,20 +168,18 @@ void RicExportMultipleSnapshotsFeature::exportMultipleSnapshots(const QString& f
} }
// Set view back to initial state // Set view back to initial state
rimView->viewer()->setCurrentFrame(initialFramIndex); sourceView->viewer()->setCurrentFrame(initialFramIndex);
rimView->viewer()->animationControl()->setCurrentFrameOnly(initialFramIndex); sourceView->viewer()->animationControl()->setCurrentFrameOnly(initialFramIndex);
rimView->scheduleCreateDisplayModelAndRedraw(); sourceView->scheduleCreateDisplayModelAndRedraw();
} }
} }
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
void RicExportMultipleSnapshotsFeature::exportResultVariations(RimView* rimView, RimMultiSnapshotDefinition* msd, const QString& folder) void RicExportMultipleSnapshotsFeature::exportViewVariations(RimView* rimView, RimMultiSnapshotDefinition* msd, const QString& folder)
{ {
exportViewVariationsToFolder(rimView, msd, folder);
if (msd->selectedEclipseResults().size() > 0) if (msd->selectedEclipseResults().size() > 0)
{ {
RimEclipseCase* eclCase = dynamic_cast<RimEclipseCase*>(rimView->ownerCase()); RimEclipseCase* eclCase = dynamic_cast<RimEclipseCase*>(rimView->ownerCase());

View File

@ -39,7 +39,7 @@ protected:
public: public:
static void exportMultipleSnapshots(const QString& folder, RimProject* project); static void exportMultipleSnapshots(const QString& folder, RimProject* project);
static void exportResultVariations(RimView* rimView, RimMultiSnapshotDefinition* msd, const QString& folder); static void exportViewVariations(RimView* rimView, RimMultiSnapshotDefinition* msd, const QString& folder);
private: private:
static void exportViewVariationsToFolder(RimView* rimView, RimMultiSnapshotDefinition* msd, const QString& folder); static void exportViewVariationsToFolder(RimView* rimView, RimMultiSnapshotDefinition* msd, const QString& folder);

View File

@ -59,7 +59,7 @@ RimMultiSnapshotDefinition::RimMultiSnapshotDefinition()
CAF_PDM_InitField(&isActive, "IsActive", true, "Active", "", "", ""); CAF_PDM_InitField(&isActive, "IsActive", true, "Active", "", "", "");
CAF_PDM_InitFieldNoDefault(&viewObject, "View", "View", "", "", ""); CAF_PDM_InitFieldNoDefault(&view, "View", "View", "", "", "");
CAF_PDM_InitFieldNoDefault(&eclipseResultType, "EclipseResultType", "Result Type", "", "", ""); CAF_PDM_InitFieldNoDefault(&eclipseResultType, "EclipseResultType", "Result Type", "", "", "");
CAF_PDM_InitFieldNoDefault(&selectedEclipseResults, "SelectedEclipseResults", "Result Name", "", "", ""); CAF_PDM_InitFieldNoDefault(&selectedEclipseResults, "SelectedEclipseResults", "Result Name", "", "", "");
@ -91,7 +91,7 @@ QList<caf::PdmOptionItemInfo> RimMultiSnapshotDefinition::calculateValueOptions(
RimProject* proj = RiaApplication::instance()->project(); RimProject* proj = RiaApplication::instance()->project();
if (fieldNeedingOptions == &viewObject) if (fieldNeedingOptions == &view)
{ {
std::vector<RimView*> views; std::vector<RimView*> views;
@ -120,10 +120,9 @@ QList<caf::PdmOptionItemInfo> RimMultiSnapshotDefinition::calculateValueOptions(
} }
else if (fieldNeedingOptions == &selectedEclipseResults) else if (fieldNeedingOptions == &selectedEclipseResults)
{ {
RimView* rimView = viewObject(); RimEclipseView* rimEclipseView = dynamic_cast<RimEclipseView*>(view().p());
if (dynamic_cast<RimEclipseView*>(rimView)) if (rimEclipseView)
{ {
RimEclipseView* rimEclipseView = dynamic_cast<RimEclipseView*>(rimView);
QStringList varList; QStringList varList;
varList = rimEclipseView->currentGridCellResults()->cellResults()->resultNames(eclipseResultType()); varList = rimEclipseView->currentGridCellResults()->cellResults()->resultNames(eclipseResultType());
@ -153,11 +152,11 @@ QList<caf::PdmOptionItemInfo> RimMultiSnapshotDefinition::calculateValueOptions(
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
void RimMultiSnapshotDefinition::getTimeStepStrings(QList<caf::PdmOptionItemInfo> &options) void RimMultiSnapshotDefinition::getTimeStepStrings(QList<caf::PdmOptionItemInfo> &options)
{ {
if (!viewObject()) return; if (!view()) return;
QStringList timeSteps; QStringList timeSteps;
timeSteps = viewObject->ownerCase()->timeStepStrings(); timeSteps = view->ownerCase()->timeStepStrings();
for (int i = 0; i < timeSteps.size(); i++) for (int i = 0; i < timeSteps.size(); i++)
{ {
@ -179,10 +178,10 @@ void RimMultiSnapshotDefinition::fieldChangedByUi(const caf::PdmFieldHandle* cha
const cvf::StructGridInterface* mainGrid = nullptr; const cvf::StructGridInterface* mainGrid = nullptr;
RigActiveCellInfo* actCellInfo = nullptr; RigActiveCellInfo* actCellInfo = nullptr;
if (viewObject()) if (view())
{ {
mainGrid = viewObject()->rangeFilterCollection()->gridByIndex(0); mainGrid = view()->rangeFilterCollection()->gridByIndex(0);
actCellInfo = viewObject()->rangeFilterCollection()->activeCellInfo(); actCellInfo = view()->rangeFilterCollection()->activeCellInfo();
} }
if (mainGrid && actCellInfo) if (mainGrid && actCellInfo)

View File

@ -40,7 +40,7 @@ public:
RimMultiSnapshotDefinition(); RimMultiSnapshotDefinition();
virtual ~RimMultiSnapshotDefinition(); virtual ~RimMultiSnapshotDefinition();
caf::PdmPtrField<RimView*> viewObject; caf::PdmPtrField<RimView*> view;
caf::PdmField< caf::AppEnum< RimDefines::ResultCatType > > eclipseResultType; caf::PdmField< caf::AppEnum< RimDefines::ResultCatType > > eclipseResultType;
caf::PdmField< std::vector<QString> > selectedEclipseResults; caf::PdmField< std::vector<QString> > selectedEclipseResults;

View File

@ -23,6 +23,8 @@
#include "RicExportMultipleSnapshotsFeature.h" #include "RicExportMultipleSnapshotsFeature.h"
#include "RimCase.h" #include "RimCase.h"
#include "RimEclipseCellColors.h"
#include "RimEclipseView.h"
#include "RimMultiSnapshotDefinition.h" #include "RimMultiSnapshotDefinition.h"
#include "RimProject.h" #include "RimProject.h"
#include "RimView.h" #include "RimView.h"
@ -137,10 +139,25 @@ void RiuExportMultipleSnapshotsWidget::addSnapshotItemFromActiveView()
if (activeView) if (activeView)
{ {
RimMultiSnapshotDefinition* multiSnapshot = new RimMultiSnapshotDefinition(); RimMultiSnapshotDefinition* multiSnapshot = new RimMultiSnapshotDefinition();
multiSnapshot->viewObject = activeView; multiSnapshot->view = activeView;
RimEclipseView* eclipseView = dynamic_cast<RimEclipseView*>(activeView);
if (eclipseView)
{
multiSnapshot->eclipseResultType = eclipseView->cellResult->resultType();
multiSnapshot->selectedEclipseResults.v().push_back(eclipseView->cellResult->resultVariable());
}
multiSnapshot->timeStepStart = activeView->currentTimeStep(); multiSnapshot->timeStepStart = activeView->currentTimeStep();
multiSnapshot->timeStepEnd = activeView->currentTimeStep(); multiSnapshot->timeStepEnd = activeView->currentTimeStep();
RimCase* sourceCase = nullptr;
activeView->firstAncestorOrThisOfType(sourceCase);
if (sourceCase)
{
multiSnapshot->additionalCases().push_back(sourceCase);
}
m_rimProject->multiSnapshotDefinitions.push_back(multiSnapshot); m_rimProject->multiSnapshotDefinitions.push_back(multiSnapshot);
m_rimProject->multiSnapshotDefinitions.uiCapability()->updateConnectedEditors(); m_rimProject->multiSnapshotDefinitions.uiCapability()->updateConnectedEditors();
} }
@ -232,24 +249,5 @@ void RiuExportMultipleSnapshotsWidget::folderSelectionClicked()
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
void RiuExportMultipleSnapshotsWidget::addSnapshotItem() void RiuExportMultipleSnapshotsWidget::addSnapshotItem()
{ {
if (!m_rimProject) return; addSnapshotItemFromActiveView();
if (m_rimProject->multiSnapshotDefinitions.size() == 0)
{
addSnapshotItemFromActiveView();
}
else
{
//Getting default value from last entered line:
RimMultiSnapshotDefinition* other = m_rimProject->multiSnapshotDefinitions[m_rimProject->multiSnapshotDefinitions.size() - 1];
RimMultiSnapshotDefinition* multiSnapshot = new RimMultiSnapshotDefinition();
multiSnapshot->viewObject = other->viewObject();
multiSnapshot->timeStepStart = other->timeStepStart();
multiSnapshot->timeStepEnd = other->timeStepEnd();
m_rimProject->multiSnapshotDefinitions.push_back(multiSnapshot);
m_rimProject->multiSnapshotDefinitions.uiCapability()->updateConnectedEditors();
}
} }