mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
(#395) Moved managed views from RimView to RimProject
This commit is contained in:
parent
52281633d6
commit
7969e22364
@ -21,7 +21,7 @@
|
|||||||
|
|
||||||
#include "RiaApplication.h"
|
#include "RiaApplication.h"
|
||||||
|
|
||||||
#include "RimManagedViewCollection.h"
|
#include "RimLinkedViews.h"
|
||||||
#include "RimManagedViewConfig.h"
|
#include "RimManagedViewConfig.h"
|
||||||
#include "RimProject.h"
|
#include "RimProject.h"
|
||||||
#include "RimView.h"
|
#include "RimView.h"
|
||||||
@ -57,28 +57,32 @@ void RicLinkVisibleViewsFeature::onActionTriggered(bool isChecked)
|
|||||||
RimProject* proj = RiaApplication::instance()->project();
|
RimProject* proj = RiaApplication::instance()->project();
|
||||||
std::vector<RimView*> views;
|
std::vector<RimView*> views;
|
||||||
proj->allVisibleViews(views);
|
proj->allVisibleViews(views);
|
||||||
|
|
||||||
CVF_ASSERT(views.size() > 1);
|
CVF_ASSERT(views.size() > 1);
|
||||||
|
|
||||||
RimView* masterView = views[0];
|
RimView* masterView = views[0];
|
||||||
|
|
||||||
RimManagedViewCollection* managedViewCollection = masterView->managedViewCollection();
|
RimLinkedViews* linkedViews = new RimLinkedViews;
|
||||||
|
linkedViews->mainView = masterView;
|
||||||
|
|
||||||
for (size_t i = 1; i < views.size(); i++)
|
for (size_t i = 1; i < views.size(); i++)
|
||||||
{
|
{
|
||||||
RimView* rimView = views[i];
|
RimView* rimView = views[i];
|
||||||
RimManagedViewConfig* viewConfig = new RimManagedViewConfig;
|
RimManagedViewConfig* viewConfig = new RimManagedViewConfig;
|
||||||
viewConfig->managedView = rimView;
|
viewConfig->managedView = rimView;
|
||||||
managedViewCollection->viewConfigs.push_back(viewConfig);
|
linkedViews->viewConfigs.push_back(viewConfig);
|
||||||
|
|
||||||
viewConfig->initAfterReadRecursively();
|
viewConfig->initAfterReadRecursively();
|
||||||
}
|
}
|
||||||
|
|
||||||
managedViewCollection->applyAllOperations();
|
proj->linkedViews.push_back(linkedViews);
|
||||||
managedViewCollection->updateConnectedEditors();
|
proj->linkedViews.uiCapability()->updateConnectedEditors();
|
||||||
|
|
||||||
|
linkedViews->applyAllOperations();
|
||||||
|
linkedViews->updateConnectedEditors();
|
||||||
|
|
||||||
// Set managed view collection to selected and expanded in project tree
|
// Set managed view collection to selected and expanded in project tree
|
||||||
caf::PdmUiTreeView* projTreeView = RiuMainWindow::instance()->projectTreeView();
|
caf::PdmUiTreeView* projTreeView = RiuMainWindow::instance()->projectTreeView();
|
||||||
QModelIndex modIndex = projTreeView->findModelIndex(managedViewCollection);
|
QModelIndex modIndex = projTreeView->findModelIndex(linkedViews);
|
||||||
projTreeView->treeView()->setCurrentIndex(modIndex);
|
projTreeView->treeView()->setCurrentIndex(modIndex);
|
||||||
|
|
||||||
projTreeView->treeView()->setExpanded(modIndex, true);
|
projTreeView->treeView()->setExpanded(modIndex, true);
|
||||||
|
@ -60,12 +60,12 @@ ${CEE_CURRENT_LIST_DIR}RimView.h
|
|||||||
${CEE_CURRENT_LIST_DIR}RimCase.h
|
${CEE_CURRENT_LIST_DIR}RimCase.h
|
||||||
${CEE_CURRENT_LIST_DIR}RimTreeViewStateSerializer.h
|
${CEE_CURRENT_LIST_DIR}RimTreeViewStateSerializer.h
|
||||||
${CEE_CURRENT_LIST_DIR}RimManagedViewConfig.h
|
${CEE_CURRENT_LIST_DIR}RimManagedViewConfig.h
|
||||||
${CEE_CURRENT_LIST_DIR}RimManagedViewCollection.h
|
|
||||||
${CEE_CURRENT_LIST_DIR}RimMainPlotCollection.h
|
${CEE_CURRENT_LIST_DIR}RimMainPlotCollection.h
|
||||||
${CEE_CURRENT_LIST_DIR}RimWellLogPlotCollection.h
|
${CEE_CURRENT_LIST_DIR}RimWellLogPlotCollection.h
|
||||||
${CEE_CURRENT_LIST_DIR}RimWellLogPlot.h
|
${CEE_CURRENT_LIST_DIR}RimWellLogPlot.h
|
||||||
${CEE_CURRENT_LIST_DIR}RimWellLogPlotTrace.h
|
${CEE_CURRENT_LIST_DIR}RimWellLogPlotTrace.h
|
||||||
${CEE_CURRENT_LIST_DIR}RimWellLogPlotCurve.h
|
${CEE_CURRENT_LIST_DIR}RimWellLogPlotCurve.h
|
||||||
|
${CEE_CURRENT_LIST_DIR}RimLinkedViews.h
|
||||||
)
|
)
|
||||||
|
|
||||||
set (SOURCE_GROUP_SOURCE_FILES
|
set (SOURCE_GROUP_SOURCE_FILES
|
||||||
@ -124,12 +124,12 @@ ${CEE_CURRENT_LIST_DIR}RimView.cpp
|
|||||||
${CEE_CURRENT_LIST_DIR}RimCase.cpp
|
${CEE_CURRENT_LIST_DIR}RimCase.cpp
|
||||||
${CEE_CURRENT_LIST_DIR}RimTreeViewStateSerializer.cpp
|
${CEE_CURRENT_LIST_DIR}RimTreeViewStateSerializer.cpp
|
||||||
${CEE_CURRENT_LIST_DIR}RimManagedViewConfig.cpp
|
${CEE_CURRENT_LIST_DIR}RimManagedViewConfig.cpp
|
||||||
${CEE_CURRENT_LIST_DIR}RimManagedViewCollection.cpp
|
|
||||||
${CEE_CURRENT_LIST_DIR}RimMainPlotCollection.cpp
|
${CEE_CURRENT_LIST_DIR}RimMainPlotCollection.cpp
|
||||||
${CEE_CURRENT_LIST_DIR}RimWellLogPlotCollection.cpp
|
${CEE_CURRENT_LIST_DIR}RimWellLogPlotCollection.cpp
|
||||||
${CEE_CURRENT_LIST_DIR}RimWellLogPlot.cpp
|
${CEE_CURRENT_LIST_DIR}RimWellLogPlot.cpp
|
||||||
${CEE_CURRENT_LIST_DIR}RimWellLogPlotTrace.cpp
|
${CEE_CURRENT_LIST_DIR}RimWellLogPlotTrace.cpp
|
||||||
${CEE_CURRENT_LIST_DIR}RimWellLogPlotCurve.cpp
|
${CEE_CURRENT_LIST_DIR}RimWellLogPlotCurve.cpp
|
||||||
|
${CEE_CURRENT_LIST_DIR}RimLinkedViews.cpp
|
||||||
)
|
)
|
||||||
|
|
||||||
list(APPEND CODE_HEADER_FILES
|
list(APPEND CODE_HEADER_FILES
|
||||||
|
@ -31,7 +31,8 @@
|
|||||||
#include "RimEclipseView.h"
|
#include "RimEclipseView.h"
|
||||||
#include "RimGeoMechCase.h"
|
#include "RimGeoMechCase.h"
|
||||||
#include "RimGeoMechView.h"
|
#include "RimGeoMechView.h"
|
||||||
#include "RimManagedViewCollection.h"
|
#include "RimLinkedViews.h"
|
||||||
|
#include "RimProject.h"
|
||||||
|
|
||||||
#include "cafPdmUiEditorHandle.h"
|
#include "cafPdmUiEditorHandle.h"
|
||||||
|
|
||||||
@ -147,16 +148,22 @@ void RimCellRangeFilterCollection::fieldChangedByUi(const caf::PdmFieldHandle* c
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
void RimCellRangeFilterCollection::updateDisplayModeNotifyManagedViews()
|
void RimCellRangeFilterCollection::updateDisplayModeNotifyManagedViews()
|
||||||
{
|
{
|
||||||
RimView* rimView = NULL;
|
RimView* view = NULL;
|
||||||
firstAnchestorOrThisOfType(rimView);
|
firstAnchestorOrThisOfType(view);
|
||||||
|
|
||||||
rimView->scheduleGeometryRegen(RANGE_FILTERED);
|
view->scheduleGeometryRegen(RANGE_FILTERED);
|
||||||
rimView->scheduleGeometryRegen(RANGE_FILTERED_INACTIVE);
|
view->scheduleGeometryRegen(RANGE_FILTERED_INACTIVE);
|
||||||
|
|
||||||
rimView->scheduleCreateDisplayModelAndRedraw();
|
view->scheduleCreateDisplayModelAndRedraw();
|
||||||
|
|
||||||
// Notify managed views of range filter change in master view
|
RimProject* proj = NULL;
|
||||||
rimView->managedViewCollection()->updateRangeFilters();
|
view->firstAnchestorOrThisOfType(proj);
|
||||||
|
|
||||||
|
RimLinkedViews* linkedViews = proj->findLinkedViewsGroupForView(view);
|
||||||
|
if (linkedViews)
|
||||||
|
{
|
||||||
|
linkedViews->updateRangeFilters();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
@ -23,7 +23,8 @@
|
|||||||
#include "RimEclipseCellColors.h"
|
#include "RimEclipseCellColors.h"
|
||||||
#include "RimEclipseResultDefinition.h"
|
#include "RimEclipseResultDefinition.h"
|
||||||
#include "RimEclipseView.h"
|
#include "RimEclipseView.h"
|
||||||
#include "RimManagedViewCollection.h"
|
#include "RimLinkedViews.h"
|
||||||
|
#include "RimProject.h"
|
||||||
|
|
||||||
#include "cafPdmUiEditorHandle.h"
|
#include "cafPdmUiEditorHandle.h"
|
||||||
|
|
||||||
@ -145,6 +146,12 @@ void RimEclipsePropertyFilterCollection::updateDisplayModelNotifyManagedViews()
|
|||||||
view->scheduleGeometryRegen(PROPERTY_FILTERED);
|
view->scheduleGeometryRegen(PROPERTY_FILTERED);
|
||||||
view->scheduleCreateDisplayModelAndRedraw();
|
view->scheduleCreateDisplayModelAndRedraw();
|
||||||
|
|
||||||
// Notify managed views of range filter change in master view
|
RimProject* proj = NULL;
|
||||||
view->managedViewCollection()->updatePropertyFilters();
|
view->firstAnchestorOrThisOfType(proj);
|
||||||
|
|
||||||
|
RimLinkedViews* linkedViews = proj->findLinkedViewsGroupForView(view);
|
||||||
|
if (linkedViews)
|
||||||
|
{
|
||||||
|
linkedViews->updatePropertyFilters();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -28,11 +28,12 @@
|
|||||||
#include "RimEclipseFaultColors.h"
|
#include "RimEclipseFaultColors.h"
|
||||||
#include "RimEclipsePropertyFilter.h"
|
#include "RimEclipsePropertyFilter.h"
|
||||||
#include "RimEclipseView.h"
|
#include "RimEclipseView.h"
|
||||||
#include "RimManagedViewCollection.h"
|
|
||||||
#include "RimReservoirCellResultsStorage.h"
|
#include "RimReservoirCellResultsStorage.h"
|
||||||
#include "RimView.h"
|
#include "RimView.h"
|
||||||
|
|
||||||
#include "cafPdmUiListEditor.h"
|
#include "cafPdmUiListEditor.h"
|
||||||
|
#include "RimProject.h"
|
||||||
|
#include "RimLinkedViews.h"
|
||||||
|
|
||||||
CAF_PDM_SOURCE_INIT(RimEclipseResultDefinition, "ResultDefinition");
|
CAF_PDM_SOURCE_INIT(RimEclipseResultDefinition, "ResultDefinition");
|
||||||
|
|
||||||
@ -153,10 +154,16 @@ void RimEclipseResultDefinition::fieldChangedByUi(const caf::PdmFieldHandle* cha
|
|||||||
this->firstAnchestorOrThisOfType(view);
|
this->firstAnchestorOrThisOfType(view);
|
||||||
if (view)
|
if (view)
|
||||||
{
|
{
|
||||||
view->managedViewCollection->updateCellResult();
|
RimProject* proj = NULL;
|
||||||
|
view->firstAnchestorOrThisOfType(proj);
|
||||||
|
|
||||||
|
RimLinkedViews* linkedViews = proj->findLinkedViewsGroupForView(view);
|
||||||
|
if (linkedViews)
|
||||||
|
{
|
||||||
|
linkedViews->updateCellResult();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
RimEclipsePropertyFilter* propFilter = dynamic_cast<RimEclipsePropertyFilter*>(this->parentField()->ownerObject());
|
RimEclipsePropertyFilter* propFilter = dynamic_cast<RimEclipsePropertyFilter*>(this->parentField()->ownerObject());
|
||||||
|
@ -22,9 +22,10 @@
|
|||||||
#include "RimGeoMechCellColors.h"
|
#include "RimGeoMechCellColors.h"
|
||||||
#include "RimGeoMechPropertyFilter.h"
|
#include "RimGeoMechPropertyFilter.h"
|
||||||
#include "RimGeoMechView.h"
|
#include "RimGeoMechView.h"
|
||||||
#include "RimManagedViewCollection.h"
|
#include "RimProject.h"
|
||||||
|
|
||||||
#include "cvfAssert.h"
|
#include "cvfAssert.h"
|
||||||
|
#include "RimLinkedViews.h"
|
||||||
|
|
||||||
|
|
||||||
CAF_PDM_SOURCE_INIT(RimGeoMechPropertyFilterCollection, "GeoMechPropertyFilters");
|
CAF_PDM_SOURCE_INIT(RimGeoMechPropertyFilterCollection, "GeoMechPropertyFilters");
|
||||||
@ -147,6 +148,12 @@ void RimGeoMechPropertyFilterCollection::updateDisplayModelNotifyManagedViews()
|
|||||||
view->scheduleGeometryRegen(PROPERTY_FILTERED);
|
view->scheduleGeometryRegen(PROPERTY_FILTERED);
|
||||||
view->scheduleCreateDisplayModelAndRedraw();
|
view->scheduleCreateDisplayModelAndRedraw();
|
||||||
|
|
||||||
// Notify managed views of range filter change in master view
|
RimProject* proj = NULL;
|
||||||
view->managedViewCollection()->updatePropertyFilters();
|
view->firstAnchestorOrThisOfType(proj);
|
||||||
|
|
||||||
|
RimLinkedViews* linkedViews = proj->findLinkedViewsGroupForView(view);
|
||||||
|
if (linkedViews)
|
||||||
|
{
|
||||||
|
linkedViews->updatePropertyFilters();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -30,11 +30,12 @@
|
|||||||
#include "RimGeoMechCellColors.h"
|
#include "RimGeoMechCellColors.h"
|
||||||
#include "RimGeoMechPropertyFilter.h"
|
#include "RimGeoMechPropertyFilter.h"
|
||||||
#include "RimGeoMechView.h"
|
#include "RimGeoMechView.h"
|
||||||
#include "RimManagedViewCollection.h"
|
|
||||||
|
|
||||||
#include "RiuMainWindow.h"
|
#include "RiuMainWindow.h"
|
||||||
|
|
||||||
#include "cafPdmUiListEditor.h"
|
#include "cafPdmUiListEditor.h"
|
||||||
|
#include "RimProject.h"
|
||||||
|
#include "RimLinkedViews.h"
|
||||||
|
|
||||||
namespace caf {
|
namespace caf {
|
||||||
|
|
||||||
@ -188,7 +189,19 @@ void RimGeoMechResultDefinition::fieldChangedByUi(const caf::PdmFieldHandle* cha
|
|||||||
|
|
||||||
if (dynamic_cast<RimGeoMechCellColors*>(this))
|
if (dynamic_cast<RimGeoMechCellColors*>(this))
|
||||||
{
|
{
|
||||||
if (view) view->managedViewCollection->updateCellResult();
|
RimView* view = NULL;
|
||||||
|
this->firstAnchestorOrThisOfType(view);
|
||||||
|
if (view)
|
||||||
|
{
|
||||||
|
RimProject* proj = NULL;
|
||||||
|
view->firstAnchestorOrThisOfType(proj);
|
||||||
|
|
||||||
|
RimLinkedViews* linkedViews = proj->findLinkedViewsGroupForView(view);
|
||||||
|
if (linkedViews)
|
||||||
|
{
|
||||||
|
linkedViews->updateCellResult();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -17,31 +17,41 @@
|
|||||||
//
|
//
|
||||||
/////////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
#include "RimManagedViewCollection.h"
|
#include "RimLinkedViews.h"
|
||||||
|
|
||||||
|
#include "RiaApplication.h"
|
||||||
|
|
||||||
|
#include "RimCase.h"
|
||||||
#include "RimEclipseCellColors.h"
|
#include "RimEclipseCellColors.h"
|
||||||
#include "RimEclipseResultDefinition.h"
|
#include "RimEclipseResultDefinition.h"
|
||||||
#include "RimEclipseView.h"
|
#include "RimEclipseView.h"
|
||||||
|
#include "RimGeoMechCellColors.h"
|
||||||
|
#include "RimGeoMechResultDefinition.h"
|
||||||
|
#include "RimGeoMechView.h"
|
||||||
#include "RimManagedViewConfig.h"
|
#include "RimManagedViewConfig.h"
|
||||||
|
#include "RimProject.h"
|
||||||
#include "RimView.h"
|
#include "RimView.h"
|
||||||
|
|
||||||
#include "RiuViewer.h"
|
#include "RiuViewer.h"
|
||||||
|
|
||||||
#include "cvfCamera.h"
|
#include "cvfCamera.h"
|
||||||
#include "cvfMatrix4.h"
|
#include "cvfMatrix4.h"
|
||||||
#include "RimGeoMechView.h"
|
#include "cafPdmUiTreeOrdering.h"
|
||||||
#include "RimGeoMechResultDefinition.h"
|
|
||||||
#include "RimGeoMechCellColors.h"
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CAF_PDM_SOURCE_INIT(RimManagedViewCollection, "RimManagedViewCollection");
|
CAF_PDM_SOURCE_INIT(RimLinkedViews, "RimLinkedViews");
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
RimManagedViewCollection::RimManagedViewCollection(void)
|
RimLinkedViews::RimLinkedViews(void)
|
||||||
{
|
{
|
||||||
CAF_PDM_InitObject("Managed Views", ":/chain.png", "", "");
|
CAF_PDM_InitObject("Linked Views", ":/chain.png", "", "");
|
||||||
|
|
||||||
|
CAF_PDM_InitField(&name, "Name", QString("View Group Name"), "View Group Name", "", "", "");
|
||||||
|
|
||||||
|
CAF_PDM_InitFieldNoDefault(&mainView, "MainView", "Main View", "", "", "");
|
||||||
|
mainView.uiCapability()->setUiChildrenHidden(true);
|
||||||
|
|
||||||
CAF_PDM_InitFieldNoDefault(&viewConfigs, "ManagedViews", "Managed Views", "", "", "");
|
CAF_PDM_InitFieldNoDefault(&viewConfigs, "ManagedViews", "Managed Views", "", "", "");
|
||||||
viewConfigs.uiCapability()->setUiHidden(true);
|
viewConfigs.uiCapability()->setUiHidden(true);
|
||||||
@ -50,23 +60,38 @@ RimManagedViewCollection::RimManagedViewCollection(void)
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
RimManagedViewCollection::~RimManagedViewCollection(void)
|
RimLinkedViews::~RimLinkedViews(void)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
void RimManagedViewCollection::updateTimeStep(int timeStep)
|
void RimLinkedViews::updateTimeStep(RimView* sourceView, int timeStep)
|
||||||
{
|
{
|
||||||
|
RimManagedViewConfig* sourceViewConfig = viewConfigForView(sourceView);
|
||||||
|
if (sourceViewConfig && !sourceViewConfig->syncTimeStep())
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (sourceView && sourceView != mainView)
|
||||||
|
{
|
||||||
|
mainView->viewer()->setCurrentFrame(timeStep);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
mainView->viewer()->setCurrentFrame(timeStep);
|
||||||
|
}
|
||||||
|
|
||||||
for (size_t i = 0; i < viewConfigs.size(); i++)
|
for (size_t i = 0; i < viewConfigs.size(); i++)
|
||||||
{
|
{
|
||||||
RimManagedViewConfig* managedViewConfig = viewConfigs[i];
|
RimManagedViewConfig* managedViewConfig = viewConfigs[i];
|
||||||
if (managedViewConfig->managedView())
|
if (managedViewConfig->managedView() && managedViewConfig->managedView() != sourceView)
|
||||||
{
|
{
|
||||||
if (managedViewConfig->syncTimeStep() && managedViewConfig->managedView()->viewer())
|
if (managedViewConfig->syncTimeStep() && managedViewConfig->managedView()->viewer())
|
||||||
{
|
{
|
||||||
managedViewConfig->managedView()->viewer()->slotSetCurrentFrame(timeStep);
|
managedViewConfig->managedView()->viewer()->setCurrentFrame(timeStep);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -75,12 +100,10 @@ void RimManagedViewCollection::updateTimeStep(int timeStep)
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
void RimManagedViewCollection::updateCellResult()
|
void RimLinkedViews::updateCellResult()
|
||||||
{
|
{
|
||||||
RimView* masterView = NULL;
|
RimView* rimView = mainView;
|
||||||
firstAnchestorOrThisOfType(masterView);
|
RimEclipseView* masterEclipseView = dynamic_cast<RimEclipseView*>(rimView);
|
||||||
|
|
||||||
RimEclipseView* masterEclipseView = dynamic_cast<RimEclipseView*>(masterView);
|
|
||||||
if (masterEclipseView && masterEclipseView->cellResult())
|
if (masterEclipseView && masterEclipseView->cellResult())
|
||||||
{
|
{
|
||||||
RimEclipseResultDefinition* eclipseCellResultDefinition = masterEclipseView->cellResult();
|
RimEclipseResultDefinition* eclipseCellResultDefinition = masterEclipseView->cellResult();
|
||||||
@ -101,14 +124,11 @@ void RimManagedViewCollection::updateCellResult()
|
|||||||
eclipeView->cellResult()->setResultVariable(eclipseCellResultDefinition->resultVariable());
|
eclipeView->cellResult()->setResultVariable(eclipseCellResultDefinition->resultVariable());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Notify recursively
|
|
||||||
managedViewConfig->managedView()->managedViewCollection()->updateCellResult();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
RimGeoMechView* masterGeoView = dynamic_cast<RimGeoMechView*>(masterView);
|
RimGeoMechView* masterGeoView = dynamic_cast<RimGeoMechView*>(rimView);
|
||||||
if (masterGeoView && masterGeoView->cellResult())
|
if (masterGeoView && masterGeoView->cellResult())
|
||||||
{
|
{
|
||||||
RimGeoMechResultDefinition* geoMechResultDefinition = masterGeoView->cellResult();
|
RimGeoMechResultDefinition* geoMechResultDefinition = masterGeoView->cellResult();
|
||||||
@ -128,9 +148,6 @@ void RimManagedViewCollection::updateCellResult()
|
|||||||
geoView->scheduleCreateDisplayModelAndRedraw();
|
geoView->scheduleCreateDisplayModelAndRedraw();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Notify recursively
|
|
||||||
managedViewConfig->managedView()->managedViewCollection()->updateCellResult();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -139,7 +156,7 @@ void RimManagedViewCollection::updateCellResult()
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
void RimManagedViewCollection::updateRangeFilters()
|
void RimLinkedViews::updateRangeFilters()
|
||||||
{
|
{
|
||||||
for (size_t i = 0; i < viewConfigs.size(); i++)
|
for (size_t i = 0; i < viewConfigs.size(); i++)
|
||||||
{
|
{
|
||||||
@ -167,9 +184,6 @@ void RimManagedViewCollection::updateRangeFilters()
|
|||||||
geoView->scheduleCreateDisplayModelAndRedraw();
|
geoView->scheduleCreateDisplayModelAndRedraw();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Notify recursively
|
|
||||||
managedViewConfig->managedView()->managedViewCollection()->updateRangeFilters();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -177,7 +191,7 @@ void RimManagedViewCollection::updateRangeFilters()
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
void RimManagedViewCollection::updatePropertyFilters()
|
void RimLinkedViews::updatePropertyFilters()
|
||||||
{
|
{
|
||||||
for (size_t i = 0; i < viewConfigs.size(); i++)
|
for (size_t i = 0; i < viewConfigs.size(); i++)
|
||||||
{
|
{
|
||||||
@ -190,8 +204,7 @@ void RimManagedViewCollection::updatePropertyFilters()
|
|||||||
RimEclipseView* eclipeView = dynamic_cast<RimEclipseView*>(rimView);
|
RimEclipseView* eclipeView = dynamic_cast<RimEclipseView*>(rimView);
|
||||||
if (eclipeView)
|
if (eclipeView)
|
||||||
{
|
{
|
||||||
eclipeView->scheduleGeometryRegen(RANGE_FILTERED);
|
eclipeView->scheduleGeometryRegen(PROPERTY_FILTERED);
|
||||||
eclipeView->scheduleGeometryRegen(RANGE_FILTERED_INACTIVE);
|
|
||||||
|
|
||||||
eclipeView->scheduleCreateDisplayModelAndRedraw();
|
eclipeView->scheduleCreateDisplayModelAndRedraw();
|
||||||
}
|
}
|
||||||
@ -204,9 +217,6 @@ void RimManagedViewCollection::updatePropertyFilters()
|
|||||||
geoView->scheduleCreateDisplayModelAndRedraw();
|
geoView->scheduleCreateDisplayModelAndRedraw();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Notify recursively
|
|
||||||
managedViewConfig->managedView()->managedViewCollection()->updatePropertyFilters();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -214,7 +224,7 @@ void RimManagedViewCollection::updatePropertyFilters()
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
void RimManagedViewCollection::configureOverrides()
|
void RimLinkedViews::configureOverrides()
|
||||||
{
|
{
|
||||||
for (size_t i = 0; i < viewConfigs.size(); i++)
|
for (size_t i = 0; i < viewConfigs.size(); i++)
|
||||||
{
|
{
|
||||||
@ -226,15 +236,15 @@ void RimManagedViewCollection::configureOverrides()
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
void RimManagedViewCollection::allViewsForCameraSync(std::vector<RimView*>& views)
|
void RimLinkedViews::allViewsForCameraSync(std::vector<RimView*>& views)
|
||||||
{
|
{
|
||||||
|
views.push_back(mainView());
|
||||||
|
|
||||||
for (size_t i = 0; i < viewConfigs.size(); i++)
|
for (size_t i = 0; i < viewConfigs.size(); i++)
|
||||||
{
|
{
|
||||||
if (viewConfigs[i]->syncCamera && viewConfigs[i]->managedView())
|
if (viewConfigs[i]->syncCamera && viewConfigs[i]->managedView())
|
||||||
{
|
{
|
||||||
views.push_back(viewConfigs[i]->managedView());
|
views.push_back(viewConfigs[i]->managedView());
|
||||||
|
|
||||||
viewConfigs[i]->managedView()->managedViewCollection()->allViewsForCameraSync(views);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -242,15 +252,82 @@ void RimManagedViewCollection::allViewsForCameraSync(std::vector<RimView*>& view
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
void RimManagedViewCollection::applyAllOperations()
|
void RimLinkedViews::applyAllOperations()
|
||||||
{
|
{
|
||||||
RimView* masterView = NULL;
|
|
||||||
firstAnchestorOrThisOfType(masterView);
|
|
||||||
|
|
||||||
configureOverrides();
|
configureOverrides();
|
||||||
|
|
||||||
updateCellResult();
|
updateCellResult();
|
||||||
updateTimeStep(masterView->currentTimeStep());
|
updateTimeStep(NULL, mainView->currentTimeStep());
|
||||||
updateRangeFilters();
|
updateRangeFilters();
|
||||||
updatePropertyFilters();
|
updatePropertyFilters();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
QList<caf::PdmOptionItemInfo> RimLinkedViews::calculateValueOptions(const caf::PdmFieldHandle* fieldNeedingOptions, bool * useOptionsOnly)
|
||||||
|
{
|
||||||
|
QList<caf::PdmOptionItemInfo> optionList;
|
||||||
|
|
||||||
|
if (fieldNeedingOptions == &mainView)
|
||||||
|
{
|
||||||
|
RimProject* proj = RiaApplication::instance()->project();
|
||||||
|
std::vector<RimView*> views;
|
||||||
|
proj->allVisibleViews(views);
|
||||||
|
|
||||||
|
for (size_t i = 0; i < views.size(); i++)
|
||||||
|
{
|
||||||
|
optionList.push_back(caf::PdmOptionItemInfo(displayNameForView(views[i]), QVariant::fromValue(caf::PdmPointer<caf::PdmObjectHandle>(views[i]))));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (optionList.size() > 0)
|
||||||
|
{
|
||||||
|
optionList.push_front(caf::PdmOptionItemInfo("None", QVariant::fromValue(caf::PdmPointer<caf::PdmObjectHandle>(NULL))));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return optionList;
|
||||||
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
QString RimLinkedViews::displayNameForView(RimView* view)
|
||||||
|
{
|
||||||
|
RimCase* rimCase = NULL;
|
||||||
|
view->firstAnchestorOrThisOfType(rimCase);
|
||||||
|
|
||||||
|
QString displayName = rimCase->caseUserDescription() + " : " + view->name;
|
||||||
|
|
||||||
|
return displayName;
|
||||||
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
void RimLinkedViews::defineUiTreeOrdering(caf::PdmUiTreeOrdering& uiTreeOrdering, QString uiConfigName /*= ""*/)
|
||||||
|
{
|
||||||
|
for (size_t cIdx = 0; cIdx < viewConfigs.size(); ++cIdx)
|
||||||
|
{
|
||||||
|
PdmObjectHandle* childObject = viewConfigs[cIdx];
|
||||||
|
if (childObject)
|
||||||
|
{
|
||||||
|
uiTreeOrdering.add(childObject);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
uiTreeOrdering.setForgetRemainingFields(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
RimManagedViewConfig* RimLinkedViews::viewConfigForView(RimView* view)
|
||||||
|
{
|
||||||
|
for (size_t i = 0; i < viewConfigs.size(); i++)
|
||||||
|
{
|
||||||
|
if (viewConfigs[i]->managedView() == view) return viewConfigs[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
return NULL;
|
||||||
|
}
|
@ -24,6 +24,7 @@
|
|||||||
#include "cafPdmChildArrayField.h"
|
#include "cafPdmChildArrayField.h"
|
||||||
#include "cafPdmField.h"
|
#include "cafPdmField.h"
|
||||||
#include "cafPdmObject.h"
|
#include "cafPdmObject.h"
|
||||||
|
#include "cafPdmPtrField.h"
|
||||||
|
|
||||||
class RimManagedViewConfig;
|
class RimManagedViewConfig;
|
||||||
class RiuViewer;
|
class RiuViewer;
|
||||||
@ -33,19 +34,22 @@ class RimView;
|
|||||||
///
|
///
|
||||||
///
|
///
|
||||||
//==================================================================================================
|
//==================================================================================================
|
||||||
class RimManagedViewCollection : public caf::PdmObject
|
class RimLinkedViews : public caf::PdmObject
|
||||||
{
|
{
|
||||||
CAF_PDM_HEADER_INIT;
|
CAF_PDM_HEADER_INIT;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
RimManagedViewCollection(void);
|
RimLinkedViews(void);
|
||||||
virtual ~RimManagedViewCollection(void);
|
virtual ~RimLinkedViews(void);
|
||||||
|
|
||||||
|
caf::PdmPtrField<RimView*> mainView;
|
||||||
|
caf::PdmField<QString> name;
|
||||||
|
|
||||||
caf::PdmChildArrayField<RimManagedViewConfig*> viewConfigs;
|
caf::PdmChildArrayField<RimManagedViewConfig*> viewConfigs;
|
||||||
|
|
||||||
void applyAllOperations();
|
void applyAllOperations();
|
||||||
|
|
||||||
void updateTimeStep(int timeStep);
|
void updateTimeStep(RimView* sourceView, int timeStep);
|
||||||
void updateCellResult();
|
void updateCellResult();
|
||||||
|
|
||||||
void updateRangeFilters();
|
void updateRangeFilters();
|
||||||
@ -54,4 +58,13 @@ public:
|
|||||||
void configureOverrides();
|
void configureOverrides();
|
||||||
|
|
||||||
void allViewsForCameraSync(std::vector<RimView*>& views);
|
void allViewsForCameraSync(std::vector<RimView*>& views);
|
||||||
|
|
||||||
|
public:
|
||||||
|
static QString displayNameForView(RimView* view);
|
||||||
|
RimManagedViewConfig* viewConfigForView(RimView* view);
|
||||||
|
|
||||||
|
protected:
|
||||||
|
virtual QList<caf::PdmOptionItemInfo> calculateValueOptions(const caf::PdmFieldHandle* fieldNeedingOptions, bool * useOptionsOnly);
|
||||||
|
virtual caf::PdmFieldHandle* userDescriptionField() { return &name; }
|
||||||
|
virtual void defineUiTreeOrdering(caf::PdmUiTreeOrdering& uiTreeOrdering, QString uiConfigName = "");
|
||||||
};
|
};
|
@ -27,7 +27,7 @@
|
|||||||
#include "RimEclipseView.h"
|
#include "RimEclipseView.h"
|
||||||
#include "RimGeoMechPropertyFilterCollection.h"
|
#include "RimGeoMechPropertyFilterCollection.h"
|
||||||
#include "RimGeoMechView.h"
|
#include "RimGeoMechView.h"
|
||||||
#include "RimManagedViewCollection.h"
|
#include "RimLinkedViews.h"
|
||||||
#include "RimProject.h"
|
#include "RimProject.h"
|
||||||
#include "RimView.h"
|
#include "RimView.h"
|
||||||
|
|
||||||
@ -46,6 +46,7 @@ RimManagedViewConfig::RimManagedViewConfig(void)
|
|||||||
|
|
||||||
QString defaultName = "View Config : Empty view";
|
QString defaultName = "View Config : Empty view";
|
||||||
CAF_PDM_InitField(&name, "Name", defaultName, "Managed View Name", "", "", "");
|
CAF_PDM_InitField(&name, "Name", defaultName, "Managed View Name", "", "", "");
|
||||||
|
name.uiCapability()->setUiHidden(true);
|
||||||
|
|
||||||
CAF_PDM_InitFieldNoDefault(&managedView, "ManagedView", "Managed View", "", "", "");
|
CAF_PDM_InitFieldNoDefault(&managedView, "ManagedView", "Managed View", "", "", "");
|
||||||
managedView.uiCapability()->setUiChildrenHidden(true);
|
managedView.uiCapability()->setUiChildrenHidden(true);
|
||||||
@ -110,26 +111,25 @@ void RimManagedViewConfig::defineUiTreeOrdering(caf::PdmUiTreeOrdering& uiTreeOr
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
void RimManagedViewConfig::fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue)
|
void RimManagedViewConfig::fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue)
|
||||||
{
|
{
|
||||||
if (changedField == &syncCamera || changedField == &syncTimeStep)
|
if (changedField == &syncCamera && syncCamera())
|
||||||
{
|
{
|
||||||
RimView* masterView = NULL;
|
if (managedView && managedView->viewer()) managedView->viewer()->update();
|
||||||
firstAnchestorOrThisOfType(masterView);
|
|
||||||
|
|
||||||
masterView->viewer()->update();
|
|
||||||
}
|
}
|
||||||
else if (changedField == &syncCellResult)
|
else if (changedField == &syncTimeStep && syncTimeStep())
|
||||||
{
|
{
|
||||||
// When cell result is activated, update cell result in managed views
|
if (managedView)
|
||||||
// Original result Will not be restored when cell result is disabled
|
|
||||||
|
|
||||||
if (syncCellResult())
|
|
||||||
{
|
{
|
||||||
RimView* masterView = NULL;
|
RimLinkedViews* linkedViews = NULL;
|
||||||
firstAnchestorOrThisOfType(masterView);
|
this->firstAnchestorOrThisOfType(linkedViews);
|
||||||
|
linkedViews->updateTimeStep(managedView, managedView->currentTimeStep());
|
||||||
masterView->managedViewCollection()->updateCellResult();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else if (changedField == &syncCellResult && syncCellResult())
|
||||||
|
{
|
||||||
|
RimLinkedViews* linkedViews = NULL;
|
||||||
|
this->firstAnchestorOrThisOfType(linkedViews);
|
||||||
|
linkedViews->updateCellResult();
|
||||||
|
}
|
||||||
else if (changedField == &syncRangeFilters)
|
else if (changedField == &syncRangeFilters)
|
||||||
{
|
{
|
||||||
configureOverridesUpdateDisplayModel();
|
configureOverridesUpdateDisplayModel();
|
||||||
@ -146,10 +146,9 @@ void RimManagedViewConfig::fieldChangedByUi(const caf::PdmFieldHandle* changedFi
|
|||||||
{
|
{
|
||||||
if (syncCellResult())
|
if (syncCellResult())
|
||||||
{
|
{
|
||||||
RimView* masterView = NULL;
|
RimLinkedViews* linkedViews = NULL;
|
||||||
firstAnchestorOrThisOfType(masterView);
|
this->firstAnchestorOrThisOfType(linkedViews);
|
||||||
|
linkedViews->updateCellResult();
|
||||||
masterView->managedViewCollection()->updateCellResult();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
name = displayNameForView(managedView);
|
name = displayNameForView(managedView);
|
||||||
@ -174,7 +173,9 @@ void RimManagedViewConfig::fieldChangedByUi(const caf::PdmFieldHandle* changedFi
|
|||||||
geoView->setOverridePropertyFilterCollection(NULL);
|
geoView->setOverridePropertyFilterCollection(NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
rimView->managedViewCollection()->configureOverrides();
|
RimLinkedViews* linkedViews = NULL;
|
||||||
|
this->firstAnchestorOrThisOfType(linkedViews);
|
||||||
|
linkedViews->configureOverrides();
|
||||||
}
|
}
|
||||||
|
|
||||||
updateDisplayName();
|
updateDisplayName();
|
||||||
@ -241,8 +242,10 @@ void RimManagedViewConfig::configureOverridesUpdateDisplayModel()
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
void RimManagedViewConfig::configureOverrides()
|
void RimManagedViewConfig::configureOverrides()
|
||||||
{
|
{
|
||||||
RimView* masterView = NULL;
|
RimLinkedViews* linkedViews = NULL;
|
||||||
firstAnchestorOrThisOfType(masterView);
|
this->firstAnchestorOrThisOfType(linkedViews);
|
||||||
|
|
||||||
|
RimView* masterView = linkedViews->mainView();
|
||||||
|
|
||||||
if (managedView)
|
if (managedView)
|
||||||
{
|
{
|
||||||
@ -288,9 +291,6 @@ void RimManagedViewConfig::configureOverrides()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Propagate overrides in current view to managed views
|
|
||||||
managedView->managedViewCollection()->configureOverrides();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -299,6 +299,8 @@ void RimManagedViewConfig::configureOverrides()
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
QString RimManagedViewConfig::displayNameForView(RimView* view)
|
QString RimManagedViewConfig::displayNameForView(RimView* view)
|
||||||
{
|
{
|
||||||
|
return RimLinkedViews::displayNameForView(view);
|
||||||
|
/*
|
||||||
CVF_ASSERT(view);
|
CVF_ASSERT(view);
|
||||||
|
|
||||||
RimCase* rimCase = NULL;
|
RimCase* rimCase = NULL;
|
||||||
@ -307,6 +309,7 @@ QString RimManagedViewConfig::displayNameForView(RimView* view)
|
|||||||
QString displayName = rimCase->caseUserDescription() + " : " + view->name;
|
QString displayName = rimCase->caseUserDescription() + " : " + view->name;
|
||||||
|
|
||||||
return displayName;
|
return displayName;
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
@ -40,7 +40,6 @@
|
|||||||
#include "RimGeoMechCase.h"
|
#include "RimGeoMechCase.h"
|
||||||
#include "RimGeoMechModels.h"
|
#include "RimGeoMechModels.h"
|
||||||
#include "RimIdenticalGridCaseGroup.h"
|
#include "RimIdenticalGridCaseGroup.h"
|
||||||
#include "RimManagedViewCollection.h"
|
|
||||||
#include "RimManagedViewConfig.h"
|
#include "RimManagedViewConfig.h"
|
||||||
#include "RimOilField.h"
|
#include "RimOilField.h"
|
||||||
#include "RimScriptCollection.h"
|
#include "RimScriptCollection.h"
|
||||||
@ -50,6 +49,7 @@
|
|||||||
#include "RimMainPlotCollection.h"
|
#include "RimMainPlotCollection.h"
|
||||||
#include "RimWellLogPlotCollection.h"
|
#include "RimWellLogPlotCollection.h"
|
||||||
#include "RimWellLogPlot.h"
|
#include "RimWellLogPlot.h"
|
||||||
|
#include "RimLinkedViews.h"
|
||||||
|
|
||||||
#include "RiuMainWindow.h"
|
#include "RiuMainWindow.h"
|
||||||
|
|
||||||
@ -92,6 +92,9 @@ RimProject::RimProject(void)
|
|||||||
CAF_PDM_InitFieldNoDefault(&mainPlotCollection, "MainPlotCollection", "Plots", ":/Default.png", "", "");
|
CAF_PDM_InitFieldNoDefault(&mainPlotCollection, "MainPlotCollection", "Plots", ":/Default.png", "", "");
|
||||||
mainPlotCollection.uiCapability()->setUiHidden(true);
|
mainPlotCollection.uiCapability()->setUiHidden(true);
|
||||||
|
|
||||||
|
CAF_PDM_InitFieldNoDefault(&linkedViews, "LinkedViews", "Linked Views", ":/chain.png", "", "");
|
||||||
|
linkedViews.uiCapability()->setUiHidden(true);
|
||||||
|
|
||||||
CAF_PDM_InitFieldNoDefault(&commandObjects, "CommandObjects", "CommandObjects", "", "", "");
|
CAF_PDM_InitFieldNoDefault(&commandObjects, "CommandObjects", "CommandObjects", "", "", "");
|
||||||
//wellPathImport.uiCapability()->setUiHidden(true);
|
//wellPathImport.uiCapability()->setUiHidden(true);
|
||||||
|
|
||||||
@ -751,6 +754,10 @@ void RimProject::actionsBasedOnSelection(QMenu& contextMenu)
|
|||||||
{
|
{
|
||||||
commandIds << "RicDeleteItemFeature";
|
commandIds << "RicDeleteItemFeature";
|
||||||
}
|
}
|
||||||
|
else if (dynamic_cast<RimLinkedViews*>(uiItem))
|
||||||
|
{
|
||||||
|
commandIds << "RicDeleteItemFeature";
|
||||||
|
}
|
||||||
else if (dynamic_cast<RimWellLogPlotCollection*>(uiItem))
|
else if (dynamic_cast<RimWellLogPlotCollection*>(uiItem))
|
||||||
{
|
{
|
||||||
commandIds << "RicNewWellLogPlotFeature";
|
commandIds << "RicNewWellLogPlotFeature";
|
||||||
@ -769,18 +776,6 @@ void RimProject::actionsBasedOnSelection(QMenu& contextMenu)
|
|||||||
{
|
{
|
||||||
commandIds << "RicDeleteItemFeature";
|
commandIds << "RicDeleteItemFeature";
|
||||||
}
|
}
|
||||||
|
|
||||||
if (dynamic_cast<RimManagedViewCollection*>(uiItem))
|
|
||||||
{
|
|
||||||
RimManagedViewCollection* viewCollection = dynamic_cast<RimManagedViewCollection*>(uiItem);
|
|
||||||
caf::SelectionManager::instance()->setActiveChildArrayFieldHandle(&viewCollection->viewConfigs);
|
|
||||||
|
|
||||||
commandIds << "PdmListField_AddItem";
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
caf::SelectionManager::instance()->setActiveChildArrayFieldHandle(NULL);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (RicToggleItemsFeatureImpl::isToggleCommandsAvailable())
|
if (RicToggleItemsFeatureImpl::isToggleCommandsAvailable())
|
||||||
@ -911,6 +906,28 @@ void RimProject::defineUiTreeOrdering(caf::PdmUiTreeOrdering& uiTreeOrdering, QS
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
uiTreeOrdering.add(&linkedViews);
|
||||||
|
|
||||||
uiTreeOrdering.setForgetRemainingFields(true);
|
uiTreeOrdering.setForgetRemainingFields(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
RimLinkedViews* RimProject::findLinkedViewsGroupForView(RimView* view)
|
||||||
|
{
|
||||||
|
for (size_t i = 0; i < linkedViews.size(); i++)
|
||||||
|
{
|
||||||
|
RimLinkedViews* group = linkedViews[i];
|
||||||
|
if (view == group->mainView()) return group;
|
||||||
|
|
||||||
|
for (size_t j = 0; j < group->viewConfigs.size(); j++)
|
||||||
|
{
|
||||||
|
RimManagedViewConfig* viewConfig = group->viewConfigs[j];
|
||||||
|
if (viewConfig->managedView() == view) return group;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
@ -33,11 +33,12 @@ class RimCase;
|
|||||||
class RimCommandObject;
|
class RimCommandObject;
|
||||||
class RimEclipseCase;
|
class RimEclipseCase;
|
||||||
class RimIdenticalGridCaseGroup;
|
class RimIdenticalGridCaseGroup;
|
||||||
|
class RimLinkedViews;
|
||||||
|
class RimMainPlotCollection;
|
||||||
class RimOilField;
|
class RimOilField;
|
||||||
class RimScriptCollection;
|
class RimScriptCollection;
|
||||||
class RimWellPathImport;
|
|
||||||
class RimMainPlotCollection;
|
|
||||||
class RimView;
|
class RimView;
|
||||||
|
class RimWellPathImport;
|
||||||
|
|
||||||
namespace caf
|
namespace caf
|
||||||
{
|
{
|
||||||
@ -64,6 +65,7 @@ public:
|
|||||||
caf::PdmChildField<RimScriptCollection*> scriptCollection;
|
caf::PdmChildField<RimScriptCollection*> scriptCollection;
|
||||||
caf::PdmChildField<RimWellPathImport*> wellPathImport;
|
caf::PdmChildField<RimWellPathImport*> wellPathImport;
|
||||||
caf::PdmChildField<RimMainPlotCollection*> mainPlotCollection;
|
caf::PdmChildField<RimMainPlotCollection*> mainPlotCollection;
|
||||||
|
caf::PdmChildArrayField<RimLinkedViews*> linkedViews;
|
||||||
caf::PdmChildArrayField<RimCommandObject*> commandObjects;
|
caf::PdmChildArrayField<RimCommandObject*> commandObjects;
|
||||||
caf::PdmField<QString> treeViewState;
|
caf::PdmField<QString> treeViewState;
|
||||||
caf::PdmField<QString> currentModelIndexPath;
|
caf::PdmField<QString> currentModelIndexPath;
|
||||||
@ -89,6 +91,8 @@ public:
|
|||||||
|
|
||||||
void actionsBasedOnSelection(QMenu& contextMenu);
|
void actionsBasedOnSelection(QMenu& contextMenu);
|
||||||
|
|
||||||
|
RimLinkedViews* findLinkedViewsGroupForView(RimView* view);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
// Overridden methods
|
// Overridden methods
|
||||||
void initScriptDirectories();
|
void initScriptDirectories();
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
#include "Rim3dOverlayInfoConfig.h"
|
#include "Rim3dOverlayInfoConfig.h"
|
||||||
#include "RimCellRangeFilterCollection.h"
|
#include "RimCellRangeFilterCollection.h"
|
||||||
#include "RimManagedViewCollection.h"
|
#include "RimLinkedViews.h"
|
||||||
#include "RimOilField.h"
|
#include "RimOilField.h"
|
||||||
#include "RimProject.h"
|
#include "RimProject.h"
|
||||||
#include "RimWellPathCollection.h"
|
#include "RimWellPathCollection.h"
|
||||||
@ -86,10 +86,6 @@ RimView::RimView(void)
|
|||||||
CAF_PDM_InitField(&m_currentTimeStep, "CurrentTimeStep", 0, "Current Time Step", "", "", "");
|
CAF_PDM_InitField(&m_currentTimeStep, "CurrentTimeStep", 0, "Current Time Step", "", "", "");
|
||||||
m_currentTimeStep.uiCapability()->setUiHidden(true);
|
m_currentTimeStep.uiCapability()->setUiHidden(true);
|
||||||
|
|
||||||
CAF_PDM_InitFieldNoDefault(&managedViewCollection, "ManagedViewCollection", "Managed View Collection", "", "", "");
|
|
||||||
managedViewCollection = new RimManagedViewCollection;
|
|
||||||
managedViewCollection.uiCapability()->setUiHidden(true);
|
|
||||||
|
|
||||||
CAF_PDM_InitFieldNoDefault(&m_overlayInfoConfig, "OverlayInfoConfig", "Info Box", "", "", "");
|
CAF_PDM_InitFieldNoDefault(&m_overlayInfoConfig, "OverlayInfoConfig", "Info Box", "", "", "");
|
||||||
m_overlayInfoConfig = new Rim3dOverlayInfoConfig();
|
m_overlayInfoConfig = new Rim3dOverlayInfoConfig();
|
||||||
m_overlayInfoConfig->setReservoirView(this);
|
m_overlayInfoConfig->setReservoirView(this);
|
||||||
@ -456,7 +452,13 @@ void RimView::fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QV
|
|||||||
{
|
{
|
||||||
m_viewer->issueBaseClassUpdate();
|
m_viewer->issueBaseClassUpdate();
|
||||||
|
|
||||||
managedViewCollection->updateTimeStep(m_currentTimeStep);
|
RimProject* proj = NULL;
|
||||||
|
this->firstAnchestorOrThisOfType(proj);
|
||||||
|
RimLinkedViews* linkedViews = proj->findLinkedViewsGroupForView(this);
|
||||||
|
if (linkedViews)
|
||||||
|
{
|
||||||
|
linkedViews->updateTimeStep(this, m_currentTimeStep);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (changedField == &backgroundColor)
|
else if (changedField == &backgroundColor)
|
||||||
|
@ -34,7 +34,6 @@
|
|||||||
class Rim3dOverlayInfoConfig;
|
class Rim3dOverlayInfoConfig;
|
||||||
class RimCase;
|
class RimCase;
|
||||||
class RimCellRangeFilterCollection;
|
class RimCellRangeFilterCollection;
|
||||||
class RimManagedViewCollection;
|
|
||||||
class RiuViewer;
|
class RiuViewer;
|
||||||
|
|
||||||
namespace cvf
|
namespace cvf
|
||||||
@ -69,8 +68,6 @@ public:
|
|||||||
caf::PdmField<int> maximumFrameRate;
|
caf::PdmField<int> maximumFrameRate;
|
||||||
caf::PdmField<bool> hasUserRequestedAnimation;
|
caf::PdmField<bool> hasUserRequestedAnimation;
|
||||||
|
|
||||||
caf::PdmChildField<RimManagedViewCollection*> managedViewCollection;
|
|
||||||
|
|
||||||
RimCellRangeFilterCollection* rangeFilterCollection();
|
RimCellRangeFilterCollection* rangeFilterCollection();
|
||||||
const RimCellRangeFilterCollection* rangeFilterCollection() const;
|
const RimCellRangeFilterCollection* rangeFilterCollection() const;
|
||||||
void setOverrideRangeFilterCollection(RimCellRangeFilterCollection* rfc);
|
void setOverrideRangeFilterCollection(RimCellRangeFilterCollection* rfc);
|
||||||
|
@ -42,7 +42,6 @@
|
|||||||
#include "RimFaultCollection.h"
|
#include "RimFaultCollection.h"
|
||||||
#include "RimGeoMechCase.h"
|
#include "RimGeoMechCase.h"
|
||||||
#include "RimGeoMechView.h"
|
#include "RimGeoMechView.h"
|
||||||
#include "RimManagedViewCollection.h"
|
|
||||||
#include "RimManagedViewConfig.h"
|
#include "RimManagedViewConfig.h"
|
||||||
#include "RimProject.h"
|
#include "RimProject.h"
|
||||||
#include "RimReservoirCellResultsStorage.h"
|
#include "RimReservoirCellResultsStorage.h"
|
||||||
@ -64,6 +63,7 @@
|
|||||||
#include "cafNavigationPolicy.h"
|
#include "cafNavigationPolicy.h"
|
||||||
#include "cafPdmFieldCvfColor.h"
|
#include "cafPdmFieldCvfColor.h"
|
||||||
#include "cafPdmFieldCvfMat4d.h"
|
#include "cafPdmFieldCvfMat4d.h"
|
||||||
|
#include "RimLinkedViews.h"
|
||||||
|
|
||||||
using cvf::ManipulatorTrackball;
|
using cvf::ManipulatorTrackball;
|
||||||
|
|
||||||
@ -271,18 +271,18 @@ void RiuViewer::slotEndAnimation()
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
void RiuViewer::slotSetCurrentFrame(int frameIndex)
|
void RiuViewer::slotSetCurrentFrame(int frameIndex)
|
||||||
{
|
{
|
||||||
cvf::Rendering* firstRendering = m_renderingSequence->firstRendering();
|
setCurrentFrame(frameIndex);
|
||||||
CVF_ASSERT(firstRendering);
|
|
||||||
|
|
||||||
if (m_reservoirView) m_reservoirView->setCurrentTimeStep(frameIndex);
|
|
||||||
|
|
||||||
caf::Viewer::slotSetCurrentFrame(frameIndex);
|
|
||||||
|
|
||||||
if (m_reservoirView)
|
if (m_reservoirView)
|
||||||
{
|
{
|
||||||
m_reservoirView->managedViewCollection()->updateTimeStep(frameIndex);
|
RimProject* proj = NULL;
|
||||||
|
m_reservoirView->firstAnchestorOrThisOfType(proj);
|
||||||
|
RimLinkedViews* linkedViews = proj->findLinkedViewsGroupForView(m_reservoirView);
|
||||||
|
if (linkedViews)
|
||||||
|
{
|
||||||
|
linkedViews->updateTimeStep(m_reservoirView, frameIndex);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
@ -509,29 +509,28 @@ void RiuViewer::update()
|
|||||||
{
|
{
|
||||||
viewsToUpdate.push_back(m_reservoirView);
|
viewsToUpdate.push_back(m_reservoirView);
|
||||||
|
|
||||||
RimView* rimView = m_reservoirView;
|
RimProject* proj = NULL;
|
||||||
|
m_reservoirView->firstAnchestorOrThisOfType(proj);
|
||||||
std::vector<caf::PdmObjectHandle*> objects;
|
RimLinkedViews* linkedViews = proj->findLinkedViewsGroupForView(m_reservoirView);
|
||||||
rimView->objectsWithReferringPtrFields(objects);
|
if (linkedViews)
|
||||||
|
|
||||||
while (objects.size() > 0)
|
|
||||||
{
|
{
|
||||||
RimManagedViewConfig* viewConfig = dynamic_cast<RimManagedViewConfig*>(objects[0]);
|
RimManagedViewConfig* viewConf = linkedViews->viewConfigForView(m_reservoirView);
|
||||||
objects.clear();
|
|
||||||
|
// There is no view config for a master view, but all views for sync must be updated
|
||||||
if (viewConfig->syncCamera())
|
if (!viewConf || viewConf->syncCamera())
|
||||||
{
|
{
|
||||||
viewConfig->firstAnchestorOrThisOfType(rimView);
|
std::vector<RimView*> allViews;
|
||||||
rimView->objectsWithReferringPtrFields(objects);
|
linkedViews->allViewsForCameraSync(allViews);
|
||||||
|
|
||||||
|
for (size_t i = 0; i < allViews.size(); i++)
|
||||||
|
{
|
||||||
|
if (allViews[i] != m_reservoirView)
|
||||||
|
{
|
||||||
|
viewsToUpdate.push_back(allViews[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (rimView != m_reservoirView)
|
|
||||||
{
|
|
||||||
viewsToUpdate.push_back(rimView);
|
|
||||||
}
|
|
||||||
|
|
||||||
rimView->managedViewCollection()->allViewsForCameraSync(viewsToUpdate);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Propagate view matrix to all relevant views
|
// Propagate view matrix to all relevant views
|
||||||
@ -560,3 +559,16 @@ void RiuViewer::issueBaseClassUpdate()
|
|||||||
|
|
||||||
caf::OpenGLWidget::update();
|
caf::OpenGLWidget::update();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
void RiuViewer::setCurrentFrame(int frameIndex)
|
||||||
|
{
|
||||||
|
cvf::Rendering* firstRendering = m_renderingSequence->firstRendering();
|
||||||
|
CVF_ASSERT(firstRendering);
|
||||||
|
|
||||||
|
if (m_reservoirView) m_reservoirView->setCurrentTimeStep(frameIndex);
|
||||||
|
|
||||||
|
caf::Viewer::slotSetCurrentFrame(frameIndex);
|
||||||
|
}
|
||||||
|
@ -77,6 +77,8 @@ public:
|
|||||||
virtual void update(); // Override of caf::Viewer::update()
|
virtual void update(); // Override of caf::Viewer::update()
|
||||||
void issueBaseClassUpdate();
|
void issueBaseClassUpdate();
|
||||||
|
|
||||||
|
void setCurrentFrame(int frameIndex);
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
virtual void slotSetCurrentFrame(int frameIndex);
|
virtual void slotSetCurrentFrame(int frameIndex);
|
||||||
virtual void slotEndAnimation();
|
virtual void slotEndAnimation();
|
||||||
|
Loading…
Reference in New Issue
Block a user