Moved duplicate code into RicRangeFilterHelper

This commit is contained in:
Magne Sjaastad 2015-08-10 11:13:27 +02:00
parent 8fe6831355
commit e889fc6308
8 changed files with 140 additions and 110 deletions

View File

@ -24,6 +24,7 @@ ${CEE_CURRENT_LIST_DIR}RicEclipseViewPaste.h
${CEE_CURRENT_LIST_DIR}RicRangeFilterDelete.h
${CEE_CURRENT_LIST_DIR}RicRangeFilterInsert.h
${CEE_CURRENT_LIST_DIR}RicRangeFilterNew.h
${CEE_CURRENT_LIST_DIR}RicRangeFilterHelper.h
${CEE_CURRENT_LIST_DIR}RicRangeFilterNewExec.h
${CEE_CURRENT_LIST_DIR}RicRangeFilterNewSliceI.h
${CEE_CURRENT_LIST_DIR}RicRangeFilterNewSliceJ.h
@ -50,6 +51,7 @@ ${CEE_CURRENT_LIST_DIR}RicEclipseViewPaste.cpp
${CEE_CURRENT_LIST_DIR}RicRangeFilterDelete.cpp
${CEE_CURRENT_LIST_DIR}RicRangeFilterInsert.cpp
${CEE_CURRENT_LIST_DIR}RicRangeFilterNew.cpp
${CEE_CURRENT_LIST_DIR}RicRangeFilterHelper.cpp
${CEE_CURRENT_LIST_DIR}RicRangeFilterNewExec.cpp
${CEE_CURRENT_LIST_DIR}RicRangeFilterNewSliceI.cpp
${CEE_CURRENT_LIST_DIR}RicRangeFilterNewSliceJ.cpp

View File

@ -0,0 +1,74 @@
/////////////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 2014 Ceetron Solutions AS, USFOS AS, AMOS - NTNU
//
// RPM is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// RPM is distributed in the hope that it will be useful, but WITHOUT ANY
// WARRANTY; without even the implied warranty of MERCHANTABILITY or
// FITNESS FOR A PARTICULAR PURPOSE.
//
// See the GNU General Public License at <http://www.gnu.org/licenses/gpl.html>
// for more details.
//
/////////////////////////////////////////////////////////////////////////////////
#include "RicRangeFilterHelper.h"
#include "RicRangeFilterNewExec.h"
#include "RimCellRangeFilter.h"
#include "RimCellRangeFilterCollection.h"
#include "cafSelectionManager.h"
#include <vector>
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool RicRangeFilterHelper::isRangeFilterCommandAvailable()
{
return findRangeFilterCollection() != NULL;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RicRangeFilterNewExec* RicRangeFilterHelper::createRangeFilterExecCommand()
{
RimCellRangeFilterCollection* rangeFilterCollection = findRangeFilterCollection();
RicRangeFilterNewExec* filterExec = new RicRangeFilterNewExec(rangeFilterCollection);
assert(rangeFilterCollection);
return filterExec;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RimCellRangeFilterCollection* RicRangeFilterHelper::findRangeFilterCollection()
{
RimCellRangeFilterCollection* rangeFilterCollection = NULL;
std::vector<RimCellRangeFilter*> selectedRangeFilter;
caf::SelectionManager::instance()->objectsByType(&selectedRangeFilter);
std::vector<RimCellRangeFilterCollection*> selectedRangeFilterCollection;
caf::SelectionManager::instance()->objectsByType(&selectedRangeFilterCollection);
if (selectedRangeFilterCollection.size() == 1)
{
rangeFilterCollection = selectedRangeFilterCollection[0];
}
else if (selectedRangeFilter.size() > 0)
{
rangeFilterCollection = dynamic_cast<RimCellRangeFilterCollection*>(selectedRangeFilter[0]->owner());
}
// TODO : When a menu is created in the 3D view, add code to find collection based on a RimView
return rangeFilterCollection;
}

View File

@ -0,0 +1,37 @@
/////////////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 2015 Ceetron Solutions AS, USFOS AS, AMOS - NTNU
//
// RPM is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// RPM is distributed in the hope that it will be useful, but WITHOUT ANY
// WARRANTY; without even the implied warranty of MERCHANTABILITY or
// FITNESS FOR A PARTICULAR PURPOSE.
//
// See the GNU General Public License at <http://www.gnu.org/licenses/gpl.html>
// for more details.
//
/////////////////////////////////////////////////////////////////////////////////
#pragma once
class RicRangeFilterNewExec;
class RimCellRangeFilterCollection;
//==================================================================================================
///
//==================================================================================================
class RicRangeFilterHelper
{
public:
static bool isRangeFilterCommandAvailable();
static RicRangeFilterNewExec* createRangeFilterExecCommand();
private:
static RimCellRangeFilterCollection* findRangeFilterCollection();
};

View File

@ -17,18 +17,19 @@
/////////////////////////////////////////////////////////////////////////////////
#include "RicRangeFilterNew.h"
#include "RicRangeFilterHelper.h"
#include "RicRangeFilterNewExec.h"
#include "RimCellRangeFilter.h"
#include "RimCellRangeFilterCollection.h"
#include "cafSelectionManager.h"
#include "cafCmdFeatureManager.h"
#include "cafCmdExecCommandManager.h"
#include <QAction>
CAF_CMD_SOURCE_INIT(RicRangeFilterNew, "RicRangeFilterNew");
//--------------------------------------------------------------------------------------------------
@ -36,20 +37,7 @@ CAF_CMD_SOURCE_INIT(RicRangeFilterNew, "RicRangeFilterNew");
//--------------------------------------------------------------------------------------------------
bool RicRangeFilterNew::isCommandEnabled()
{
std::vector<RimCellRangeFilter*> selectedRangeFilter;
caf::SelectionManager::instance()->objectsByType(&selectedRangeFilter);
std::vector<RimCellRangeFilterCollection*> selectedRangeFilterCollection;
caf::SelectionManager::instance()->objectsByType(&selectedRangeFilterCollection);
if (selectedRangeFilter.size() > 0 || selectedRangeFilterCollection.size() > 0)
{
return true;
}
else
{
return false;
}
return RicRangeFilterHelper::isRangeFilterCommandAvailable();
}
//--------------------------------------------------------------------------------------------------
@ -57,17 +45,9 @@ bool RicRangeFilterNew::isCommandEnabled()
//--------------------------------------------------------------------------------------------------
void RicRangeFilterNew::onActionTriggered(bool isChecked)
{
std::vector<RimCellRangeFilterCollection*> selectedRangeFilterCollection;
caf::SelectionManager::instance()->objectsByType(&selectedRangeFilterCollection);
RicRangeFilterNewExec* filterExec = RicRangeFilterHelper::createRangeFilterExecCommand();
if (selectedRangeFilterCollection.size() == 1)
{
RimCellRangeFilterCollection* rangeFilterCollection = selectedRangeFilterCollection[0];
RicRangeFilterNewExec* filterExec = new RicRangeFilterNewExec(rangeFilterCollection);
caf::CmdExecCommandManager::instance()->processExecuteCommand(filterExec);
}
caf::CmdExecCommandManager::instance()->processExecuteCommand(filterExec);
}
//--------------------------------------------------------------------------------------------------

View File

@ -104,6 +104,7 @@ void RicRangeFilterNewExec::redo()
cellRangeFilterCollection->reservoirView()->scheduleGeometryRegen(RANGE_FILTERED_INACTIVE);
caf::PdmUiFieldHandle::updateConnectedUiEditors(cellRangeFilterCollection->parentField());
caf::PdmUiFieldHandle::updateConnectedUiEditors(&cellRangeFilterCollection->rangeFilters);
}
//--------------------------------------------------------------------------------------------------

View File

@ -18,17 +18,17 @@
/////////////////////////////////////////////////////////////////////////////////
#include "RicRangeFilterNewSliceI.h"
#include "RicRangeFilterNewExec.h"
#include "RicRangeFilterHelper.h"
#include "RimCellRangeFilter.h"
#include "RimCellRangeFilterCollection.h"
#include "cafCmdExecCommandManager.h"
#include "cafSelectionManager.h"
#include <QAction>
#include <vector>
CAF_CMD_SOURCE_INIT(RicRangeFilterNewSliceI, "RicRangeFilterNewSliceI");
@ -37,20 +37,7 @@ CAF_CMD_SOURCE_INIT(RicRangeFilterNewSliceI, "RicRangeFilterNewSliceI");
//--------------------------------------------------------------------------------------------------
bool RicRangeFilterNewSliceI::isCommandEnabled()
{
std::vector<RimCellRangeFilter*> selectedRangeFilter;
caf::SelectionManager::instance()->objectsByType(&selectedRangeFilter);
std::vector<RimCellRangeFilterCollection*> selectedRangeFilterCollection;
caf::SelectionManager::instance()->objectsByType(&selectedRangeFilterCollection);
if (selectedRangeFilter.size() > 0 || selectedRangeFilterCollection.size() > 0)
{
return true;
}
else
{
return false;
}
return RicRangeFilterHelper::isRangeFilterCommandAvailable();
}
//--------------------------------------------------------------------------------------------------
@ -58,18 +45,10 @@ bool RicRangeFilterNewSliceI::isCommandEnabled()
//--------------------------------------------------------------------------------------------------
void RicRangeFilterNewSliceI::onActionTriggered(bool isChecked)
{
std::vector<RimCellRangeFilterCollection*> selectedRangeFilterCollection;
caf::SelectionManager::instance()->objectsByType(&selectedRangeFilterCollection);
RicRangeFilterNewExec* filterExec = RicRangeFilterHelper::createRangeFilterExecCommand();
filterExec->m_iSlice = true;
if (selectedRangeFilterCollection.size() == 1)
{
RimCellRangeFilterCollection* rangeFilterCollection = selectedRangeFilterCollection[0];
RicRangeFilterNewExec* filterExec = new RicRangeFilterNewExec(rangeFilterCollection);
filterExec->m_iSlice = true;
caf::CmdExecCommandManager::instance()->processExecuteCommand(filterExec);
}
caf::CmdExecCommandManager::instance()->processExecuteCommand(filterExec);
}
//--------------------------------------------------------------------------------------------------

View File

@ -18,18 +18,17 @@
/////////////////////////////////////////////////////////////////////////////////
#include "RicRangeFilterNewSliceJ.h"
#include "RicRangeFilterNewExec.h"
#include "RicRangeFilterHelper.h"
#include "RimCellRangeFilter.h"
#include "RimCellRangeFilterCollection.h"
#include "cafCmdExecCommandManager.h"
#include "cafSelectionManager.h"
#include <QAction>
#include <vector>
CAF_CMD_SOURCE_INIT(RicRangeFilterNewSliceJ, "RicRangeFilterNewSliceJ");
//--------------------------------------------------------------------------------------------------
@ -37,20 +36,7 @@ CAF_CMD_SOURCE_INIT(RicRangeFilterNewSliceJ, "RicRangeFilterNewSliceJ");
//--------------------------------------------------------------------------------------------------
bool RicRangeFilterNewSliceJ::isCommandEnabled()
{
std::vector<RimCellRangeFilter*> selectedRangeFilter;
caf::SelectionManager::instance()->objectsByType(&selectedRangeFilter);
std::vector<RimCellRangeFilterCollection*> selectedRangeFilterCollection;
caf::SelectionManager::instance()->objectsByType(&selectedRangeFilterCollection);
if (selectedRangeFilter.size() > 0 || selectedRangeFilterCollection.size() > 0)
{
return true;
}
else
{
return false;
}
return RicRangeFilterHelper::isRangeFilterCommandAvailable();
}
//--------------------------------------------------------------------------------------------------
@ -58,18 +44,10 @@ bool RicRangeFilterNewSliceJ::isCommandEnabled()
//--------------------------------------------------------------------------------------------------
void RicRangeFilterNewSliceJ::onActionTriggered(bool isChecked)
{
std::vector<RimCellRangeFilterCollection*> selectedRangeFilterCollection;
caf::SelectionManager::instance()->objectsByType(&selectedRangeFilterCollection);
RicRangeFilterNewExec* filterExec = RicRangeFilterHelper::createRangeFilterExecCommand();
filterExec->m_jSlice = true;
if (selectedRangeFilterCollection.size() == 1)
{
RimCellRangeFilterCollection* rangeFilterCollection = selectedRangeFilterCollection[0];
RicRangeFilterNewExec* filterExec = new RicRangeFilterNewExec(rangeFilterCollection);
filterExec->m_jSlice = true;
caf::CmdExecCommandManager::instance()->processExecuteCommand(filterExec);
}
caf::CmdExecCommandManager::instance()->processExecuteCommand(filterExec);
}
//--------------------------------------------------------------------------------------------------

View File

@ -19,17 +19,17 @@
#include "RicRangeFilterNewSliceK.h"
#include "RicRangeFilterHelper.h"
#include "RicRangeFilterNewExec.h"
#include "RimCellRangeFilter.h"
#include "RimCellRangeFilterCollection.h"
#include "cafCmdExecCommandManager.h"
#include "cafSelectionManager.h"
#include <QAction>
#include <vector>
#include "RicRangeFilterNewExec.h"
#include "cafCmdExecCommandManager.h"
CAF_CMD_SOURCE_INIT(RicRangeFilterNewSliceK, "RicRangeFilterNewSliceK");
//--------------------------------------------------------------------------------------------------
@ -37,20 +37,7 @@ CAF_CMD_SOURCE_INIT(RicRangeFilterNewSliceK, "RicRangeFilterNewSliceK");
//--------------------------------------------------------------------------------------------------
bool RicRangeFilterNewSliceK::isCommandEnabled()
{
std::vector<RimCellRangeFilter*> selectedRangeFilter;
caf::SelectionManager::instance()->objectsByType(&selectedRangeFilter);
std::vector<RimCellRangeFilterCollection*> selectedRangeFilterCollection;
caf::SelectionManager::instance()->objectsByType(&selectedRangeFilterCollection);
if (selectedRangeFilter.size() > 0 || selectedRangeFilterCollection.size() > 0)
{
return true;
}
else
{
return false;
}
return RicRangeFilterHelper::isRangeFilterCommandAvailable();
}
//--------------------------------------------------------------------------------------------------
@ -58,18 +45,10 @@ bool RicRangeFilterNewSliceK::isCommandEnabled()
//--------------------------------------------------------------------------------------------------
void RicRangeFilterNewSliceK::onActionTriggered(bool isChecked)
{
std::vector<RimCellRangeFilterCollection*> selectedRangeFilterCollection;
caf::SelectionManager::instance()->objectsByType(&selectedRangeFilterCollection);
RicRangeFilterNewExec* filterExec = RicRangeFilterHelper::createRangeFilterExecCommand();
filterExec->m_kSlice = true;
if (selectedRangeFilterCollection.size() == 1)
{
RimCellRangeFilterCollection* rangeFilterCollection = selectedRangeFilterCollection[0];
RicRangeFilterNewExec* filterExec = new RicRangeFilterNewExec(rangeFilterCollection);
filterExec->m_kSlice = true;
caf::CmdExecCommandManager::instance()->processExecuteCommand(filterExec);
}
caf::CmdExecCommandManager::instance()->processExecuteCommand(filterExec);
}
//--------------------------------------------------------------------------------------------------