Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,11 @@

#include "Rim3dView.h"
#include "RimCase.h"
#include "RimCellFilter.h"
#include "RimCellFilterCollection.h"
#include "RimCombinedFilter.h"
#include "RimDataFilterCollection.h"
#include "RimEclipseView.h"
#include "RimFilterInViewCollection.h"
#include "RimGridView.h"

Expand All @@ -41,6 +43,26 @@
//==================================================================================================
namespace RicCellFilterFeatureTools
{
//--------------------------------------------------------------------------------------------------
/// After creating a new cell filter: select it in the tree, and refresh the per-view filter facade
/// so the new entry appears immediately. The facade lives on RimEclipseView only, so the refresh
/// is a no-op for filters created outside an eclipse view (e.g. case-level data filter collection).
//--------------------------------------------------------------------------------------------------
inline void selectAndRefreshFilterTree( RimCellFilter* filter )
{
if ( !filter ) return;

if ( auto* eclipseView = filter->firstAncestorOrThisOfType<RimEclipseView>() )
{
if ( auto* facade = eclipseView->filterInViewCollection() )
{
facade->updateConnectedEditors();
}
}

Riu3DMainWindowTools::selectAsCurrentItem( filter );
}

//--------------------------------------------------------------------------------------------------
/// If a RimCombinedFilter is the current selection, create a new T inside it (configured via init)
/// and select the result. Returns true when a combined filter was the selection — the caller should
Expand All @@ -57,7 +79,7 @@ bool addNewFilterIfCombinedSelected( Init&& init )
// need a Rim3dView ancestor here.
RimCombinedFilter* target = combined.front();
T* created = target->addNewFilter<T>( std::forward<Init>( init ) );
if ( created ) Riu3DMainWindowTools::selectAsCurrentItem( created );
selectAndRefreshFilterTree( created );
return true;
}

Expand Down Expand Up @@ -100,7 +122,7 @@ bool addNewFilterToDataCollectionIfSelected( Init&& init )
auto* created = new T();
target->addFilter( created );
std::forward<Init>( init )( created );
Riu3DMainWindowTools::selectAsCurrentItem( created );
selectAndRefreshFilterTree( created );
return true;
}
} // namespace RicCellFilterFeatureTools
Original file line number Diff line number Diff line change
Expand Up @@ -64,10 +64,7 @@ void RicNewCellIndexFilterFeature::onActionTriggered( bool isChecked )
if ( RimCase* sourceCase = filtColl->firstAncestorOrThisOfTypeAsserted<Rim3dView>()->ownerCase() )
{
RimCellIndexFilter* lastCreatedOrUpdated = filtColl->addNewCellIndexFilter( sourceCase );
if ( lastCreatedOrUpdated )
{
Riu3DMainWindowTools::selectAsCurrentItem( lastCreatedOrUpdated );
}
RicCellFilterFeatureTools::selectAndRefreshFilterTree( lastCreatedOrUpdated );
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@

#include "RicNewPolygonFilter3dviewFeature.h"

#include "RicCellFilterFeatureTools.h"

#include "Polygons/RimPolygonInView.h"

#include "RiaApplication.h"
Expand Down Expand Up @@ -49,10 +51,7 @@ void RicNewPolygonFilter3dviewFeature::onActionTriggered( bool isChecked )
RimCase* sourceCase = viewOrComparisonView->ownerCase();

RimPolygonFilter* lastCreatedOrUpdated = filtColl->addNewPolygonFilter( sourceCase, nullptr );
if ( lastCreatedOrUpdated )
{
Riu3DMainWindowTools::selectAsCurrentItem( lastCreatedOrUpdated );
}
RicCellFilterFeatureTools::selectAndRefreshFilterTree( lastCreatedOrUpdated );
}

//--------------------------------------------------------------------------------------------------
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ void RicNewPolygonFilterFeature::onActionTriggered( bool isChecked )
{
lastItem = addOne( polygon );
}
if ( lastItem ) Riu3DMainWindowTools::selectAsCurrentItem( lastItem );
RicCellFilterFeatureTools::selectAndRefreshFilterTree( lastItem );
return;
}

Expand All @@ -117,7 +117,7 @@ void RicNewPolygonFilterFeature::onActionTriggered( bool isChecked )
configurePolygonFilter( f, polygon );
lastItem = f;
}
if ( lastItem ) Riu3DMainWindowTools::selectAsCurrentItem( lastItem );
RicCellFilterFeatureTools::selectAndRefreshFilterTree( lastItem );
return;
}

Expand All @@ -141,10 +141,7 @@ void RicNewPolygonFilterFeature::onActionTriggered( bool isChecked )
}
}

if ( lastItem )
{
Riu3DMainWindowTools::selectAsCurrentItem( lastItem );
}
RicCellFilterFeatureTools::selectAndRefreshFilterTree( lastItem );
}

//--------------------------------------------------------------------------------------------------
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@

#include "RicNewRangeFilterSlice3dviewFeature.h"

#include "RicCellFilterFeatureTools.h"

#include "RiaApplication.h"

#include "RigMainGrid.h"
Expand Down Expand Up @@ -101,7 +103,7 @@ void RicNewRangeFilterSlice3dviewFeature::onActionTriggered( bool isChecked )
RimCellFilter* newFilter = filtColl->addNewCellRangeFilter( sourceCase, gridIndex, direction, sliceStart );
if ( newFilter )
{
Riu3DMainWindowTools::selectAsCurrentItem( newFilter );
RicCellFilterFeatureTools::selectAndRefreshFilterTree( newFilter );
activeView->setSurfaceDrawstyle();
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -73,10 +73,7 @@ void RicNewRangeFilterSliceFeature::onActionTriggered( bool isChecked )
{
int gridIndex = 0;
RimCellFilter* lastCreatedOrUpdated = filterCollection->addNewCellRangeFilter( sourceCase, gridIndex, m_sliceDirection );
if ( lastCreatedOrUpdated )
{
Riu3DMainWindowTools::selectAsCurrentItem( lastCreatedOrUpdated );
}
RicCellFilterFeatureTools::selectAndRefreshFilterTree( lastCreatedOrUpdated );
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,10 +51,7 @@ void RicNewUserDefinedFilterFeature::onActionTriggered( bool isChecked )
if ( sourceCase )
{
RimUserDefinedFilter* lastCreatedOrUpdated = filtColl->addNewUserDefinedFilter( sourceCase );
if ( lastCreatedOrUpdated )
{
Riu3DMainWindowTools::selectAsCurrentItem( lastCreatedOrUpdated );
}
RicCellFilterFeatureTools::selectAndRefreshFilterTree( lastCreatedOrUpdated );
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,10 +53,7 @@ void RicNewUserDefinedIndexFilterFeature::onActionTriggered( bool isChecked )
if ( sourceCase )
{
auto* lastCreatedOrUpdated = filtColl->addNewUserDefinedIndexFilter( sourceCase );
if ( lastCreatedOrUpdated )
{
Riu3DMainWindowTools::selectAsCurrentItem( lastCreatedOrUpdated );
}
RicCellFilterFeatureTools::selectAndRefreshFilterTree( lastCreatedOrUpdated );
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@

#include "RimEclipsePropertyFilter.h"
#include "RimEclipsePropertyFilterCollection.h"
#include "RimEclipseView.h"
#include "RimFilterInViewCollection.h"

#include "Riu3DMainWindowTools.h"

Expand Down Expand Up @@ -51,6 +53,10 @@ void RicAddLinkedEclipsePropertyFilterFeature::onActionTriggered( bool isChecked
{
auto filter = coll->addFilterLinkedToCellResult();
coll->updateAllRequiredEditors();
if ( auto* view = coll->reservoirView() )
{
if ( auto* facade = view->filterInViewCollection() ) facade->updateConnectedEditors();
}

Riu3DMainWindowTools::setExpanded( filter );
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@
#include "RimCombinedFilter.h"
#include "RimDataFilterCollection.h"
#include "RimEclipsePropertyFilterCollection.h"
#include "RimEclipseView.h"
#include "RimFilterInViewCollection.h"

#include "Riu3DMainWindowTools.h"

Expand Down Expand Up @@ -68,6 +70,10 @@ void RicEclipseCombinedPropertyFilterNewFeature::onActionTriggered( bool isCheck
RimCombinedFilter* parent = combined.front();
RimCombinedFilter* created = parent->addNewFilter<RimCombinedFilter>( []( RimCombinedFilter* ) {} );
parent->updateConnectedEditors();
if ( auto* view = parent->firstAncestorOrThisOfType<RimEclipseView>() )
{
if ( auto* facade = view->filterInViewCollection() ) facade->updateConnectedEditors();
}
if ( created ) Riu3DMainWindowTools::selectAsCurrentItem( created );
return;
}
Expand All @@ -86,6 +92,10 @@ void RicEclipseCombinedPropertyFilterNewFeature::onActionTriggered( bool isCheck

RimCombinedFilter* created = target->addNewCombinedFilter();
target->updateConnectedEditors();
if ( auto* view = target->reservoirView() )
{
if ( auto* facade = view->filterInViewCollection() ) facade->updateConnectedEditors();
}
if ( created )
{
Riu3DMainWindowTools::selectAsCurrentItem( created );
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,10 @@ void RicEclipsePropertyFilterFeatureImpl::addPropertyFilter( RimEclipsePropertyF
propertyFilterCollection->reservoirView()->scheduleCreateDisplayModelAndRedraw();

propertyFilterCollection->updateConnectedEditors();
if ( auto* facade = propertyFilterCollection->reservoirView()->filterInViewCollection() )
{
facade->updateConnectedEditors();
}
Riu3DMainWindowTools::selectAsCurrentItem( propertyFilter, false );

propertyFilterCollection->onChildAdded( nullptr );
Expand All @@ -105,6 +109,8 @@ RimEclipsePropertyFilter* RicEclipsePropertyFilterFeatureImpl::addPropertyFilter
{
view->scheduleGeometryRegen( PROPERTY_FILTERED );
view->scheduleCreateDisplayModelAndRedraw();

if ( auto* facade = view->filterInViewCollection() ) facade->updateConnectedEditors();
}

combined->updateConnectedEditors();
Expand Down Expand Up @@ -132,6 +138,10 @@ void RicEclipsePropertyFilterFeatureImpl::insertPropertyFilter( RimEclipseProper
propertyFilterCollection->reservoirView()->scheduleCreateDisplayModelAndRedraw();

propertyFilterCollection->updateConnectedEditors();
if ( auto* facade = propertyFilterCollection->reservoirView()->filterInViewCollection() )
{
facade->updateConnectedEditors();
}
Riu3DMainWindowTools::selectAsCurrentItem( propertyFilter, false );
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@

#include "RimEclipsePropertyFilter.h"
#include "RimEclipsePropertyFilterCollection.h"
#include "RimEclipseView.h"
#include "RimFilterInViewCollection.h"
#include "RimGridView.h"

//--------------------------------------------------------------------------------------------------
Expand Down Expand Up @@ -66,4 +68,8 @@ void RicEclipsePropertyFilterNewExec::undo()
m_propertyFilterCollection->propertyFiltersField().erase( m_propertyFilterCollection->propertyFiltersField().size() - 1 );

m_propertyFilterCollection->updateConnectedEditors();
if ( auto* facade = m_propertyFilterCollection->reservoirView()->filterInViewCollection() )
{
facade->updateConnectedEditors();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
#include "RimEclipseResultCase.h"
#include "RimEclipseView.h"
#include "RimFaultInViewCollection.h"
#include "RimFilterInViewCollection.h"
#include "RimFlowDiagSolution.h"
#include "RimProject.h"
#include "RimSimWellInView.h"
Expand Down Expand Up @@ -155,6 +156,7 @@ void RicShowContributingWellsFeatureImpl::modifyViewToShowContributingWells( Rim
propertyFilter->resultDefinition()->loadDataAndUpdate();

propertyFilterCollection->updateConnectedEditors();
if ( auto* facade = viewToModify->filterInViewCollection() ) facade->updateConnectedEditors();

Riu3DMainWindowTools::setExpanded( propertyFilterCollection );

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@

#include "RicPasteCellFiltersFeature.h"

#include "CellFilterCommands/RicCellFilterFeatureTools.h"
#include "RicPasteFeatureImpl.h"

#include "Rim3dView.h"
Expand Down Expand Up @@ -74,14 +75,18 @@ void RicPasteCellFiltersFeature::onActionTriggered( bool isChecked )
caf::PdmObjectGroup objectGroup;
RicPasteFeatureImpl::findObjectsFromClipboardRefs( &objectGroup );

RimCellFilter* lastPasted = nullptr;
for ( auto obj : objectGroup.objects )
{
auto duplicatedObject = obj->copyObject<RimCellFilter>();
if ( duplicatedObject )
{
cellFilterCollection->addFilterAndNotifyChanges( duplicatedObject, eclipseCase );
lastPasted = duplicatedObject;
}
}

RicCellFilterFeatureTools::selectAndRefreshFilterTree( lastPasted );
}

//--------------------------------------------------------------------------------------------------
Expand Down
8 changes: 8 additions & 0 deletions ApplicationLibCode/ProjectDataModel/RimEclipseView.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2361,6 +2361,14 @@ RimDataFilterInViewCollection* RimEclipseView::dataFiltersInView() const
return m_dataFiltersInView();
}

//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RimFilterInViewCollection* RimEclipseView::filterInViewCollection() const
{
return m_filterInViewCollection();
}

//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
Expand Down
1 change: 1 addition & 0 deletions ApplicationLibCode/ProjectDataModel/RimEclipseView.h
Original file line number Diff line number Diff line change
Expand Up @@ -130,6 +130,7 @@ class RimEclipseView : public RimGridView, public RimFieldQuickAccessInterface
void setOverridePropertyFilterCollection( RimEclipsePropertyFilterCollection* pfc );

RimDataFilterInViewCollection* dataFiltersInView() const;
RimFilterInViewCollection* filterInViewCollection() const;

bool hasActivePropertyOrDataFilters() const;
bool hasActiveDynamicPropertyOrDataFilters() const;
Expand Down
Loading