diff --git a/ApplicationCode/Commands/RicRangeFilterNewExec.cpp b/ApplicationCode/Commands/RicRangeFilterNewExec.cpp index f668218a94..9665885b94 100644 --- a/ApplicationCode/Commands/RicRangeFilterNewExec.cpp +++ b/ApplicationCode/Commands/RicRangeFilterNewExec.cpp @@ -29,9 +29,13 @@ RicRangeFilterNewExec::RicRangeFilterNewExec(caf::NotificationCenter* notificationCenter) : CmdExecuteCommand(notificationCenter) { - m_iSlice = -1; - m_jSlice = -1; - m_kSlice = -1; + m_iSlice = false; + m_jSlice = false; + m_kSlice = false; + + m_iSliceStart = -1; + m_jSliceStart = -1; + m_kSliceStart = -1; } //-------------------------------------------------------------------------------------------------- @@ -39,7 +43,14 @@ RicRangeFilterNewExec::RicRangeFilterNewExec(caf::NotificationCenter* notificati //-------------------------------------------------------------------------------------------------- QString RicRangeFilterNewExec::name() { - return "New Range Filter"; + if (m_iSlice) + return "Add I-slice Filter"; + else if (m_jSlice) + return "Add J-slice Filter"; + else if (m_kSlice) + return "Add K-slice Filter"; + + return "Add Range Filter"; } //-------------------------------------------------------------------------------------------------- diff --git a/ApplicationCode/Commands/RicRangeFilterNewSliceI.cpp b/ApplicationCode/Commands/RicRangeFilterNewSliceI.cpp index 8fe1d0cf24..67a3281fdb 100644 --- a/ApplicationCode/Commands/RicRangeFilterNewSliceI.cpp +++ b/ApplicationCode/Commands/RicRangeFilterNewSliceI.cpp @@ -18,10 +18,12 @@ ///////////////////////////////////////////////////////////////////////////////// #include "RicRangeFilterNewSliceI.h" +#include "RicRangeFilterNewExec.h" #include "RimCellRangeFilter.h" #include "RimCellRangeFilterCollection.h" +#include "cafCmdExecCommandManager.h" #include "cafSelectionManager.h" #include @@ -56,53 +58,19 @@ bool RicRangeFilterNewSliceI::isCommandEnabled() //-------------------------------------------------------------------------------------------------- void RicRangeFilterNewSliceI::onActionTriggered(bool isChecked) { - // MODTODO + std::vector selectedRangeFilterCollection; + caf::SelectionManager::instance()->objectsByType(&selectedRangeFilterCollection); -/* EvmProject* proj = EvaApplication::instance()->project(); - - std::vector selectedNodes; - caf::SelectionManager::instance()->objectsByType(&selectedNodes, caf::SelectionManager::CURRENT); - - caf::CmdAddItemFeature* addItemFeature = dynamic_cast(caf::CmdFeatureManager::instance()->getCommandFeature(caf::CmdAddItemFeature::idNameStatic())); - assert(addItemFeature); - - if (selectedNodes.size() > 0) + if (selectedRangeFilterCollection.size() == 1) { - caf::SelectionManager::instance()->setActiveChildArrayFieldHandle(&proj->boundaryConditions); + RimCellRangeFilterCollection* rangeFilterCollection = selectedRangeFilterCollection[0]; - std::vector commands; - for (size_t i = 0; i < selectedNodes.size(); i++) - { - // Not allowed to add more than one BC - if (proj->findBoundaryConditionForNode(selectedNodes[i]->id)) continue; + RicRangeFilterNewExec* filterExec = new RicRangeFilterNewExec(NULL); + filterExec->cellRangeFilterCollection = rangeFilterCollection; + filterExec->m_iSlice = true; - std::vector newSelection; - newSelection.push_back(selectedNodes[i]); - caf::CmdSelectionChangeExec* selectionChangeExec = caf::CmdSelectionHelper::createSelectionCommand(newSelection, caf::SelectionManager::CURRENT); - commands.push_back(selectionChangeExec); - - int indexAfter = -1; - caf::CmdAddItemExec* addItemExec = new caf::CmdAddItemExec(caf::SelectionManager::instance()->notificationCenter()); - - caf::CmdAddItemExecData* data = addItemExec->commandData(); - data->m_rootObject = caf::PdmReferenceHelper::findRoot(&proj->nodalLoads); - data->m_pathToField = caf::PdmReferenceHelper::referenceFromRootToField(data->m_rootObject, &proj->boundaryConditions); - data->m_indexAfter = indexAfter; - - commands.push_back(addItemExec); - } - - if (commands.size() > 0) - { - // Add an empty selection when boundary conditions has been assigned - std::vector newSelection; - caf::CmdSelectionChangeExec* selectionChangeExec = caf::CmdSelectionHelper::createSelectionCommand(newSelection, caf::SelectionManager::CURRENT); - commands.push_back(selectionChangeExec); - } - - caf::CmdExecCommandManager::instance()->processExecuteCommandsAsMacro("New Boundary Conditions", commands); + caf::CmdExecCommandManager::instance()->processExecuteCommand(filterExec); } -*/ } //-------------------------------------------------------------------------------------------------- diff --git a/ApplicationCode/Commands/RicRangeFilterNewSliceJ.cpp b/ApplicationCode/Commands/RicRangeFilterNewSliceJ.cpp index 6823369cff..a0469425be 100644 --- a/ApplicationCode/Commands/RicRangeFilterNewSliceJ.cpp +++ b/ApplicationCode/Commands/RicRangeFilterNewSliceJ.cpp @@ -18,10 +18,12 @@ ///////////////////////////////////////////////////////////////////////////////// #include "RicRangeFilterNewSliceJ.h" +#include "RicRangeFilterNewExec.h" #include "RimCellRangeFilter.h" #include "RimCellRangeFilterCollection.h" +#include "cafCmdExecCommandManager.h" #include "cafSelectionManager.h" #include @@ -56,53 +58,19 @@ bool RicRangeFilterNewSliceJ::isCommandEnabled() //-------------------------------------------------------------------------------------------------- void RicRangeFilterNewSliceJ::onActionTriggered(bool isChecked) { - // MODTODO + std::vector selectedRangeFilterCollection; + caf::SelectionManager::instance()->objectsByType(&selectedRangeFilterCollection); -/* EvmProject* proj = EvaApplication::instance()->project(); - - std::vector selectedNodes; - caf::SelectionManager::instance()->objectsByType(&selectedNodes, caf::SelectionManager::CURRENT); - - caf::CmdAddItemFeature* addItemFeature = dynamic_cast(caf::CmdFeatureManager::instance()->getCommandFeature(caf::CmdAddItemFeature::idNameStatic())); - assert(addItemFeature); - - if (selectedNodes.size() > 0) + if (selectedRangeFilterCollection.size() == 1) { - caf::SelectionManager::instance()->setActiveChildArrayFieldHandle(&proj->boundaryConditions); + RimCellRangeFilterCollection* rangeFilterCollection = selectedRangeFilterCollection[0]; - std::vector commands; - for (size_t i = 0; i < selectedNodes.size(); i++) - { - // Not allowed to add more than one BC - if (proj->findBoundaryConditionForNode(selectedNodes[i]->id)) continue; + RicRangeFilterNewExec* filterExec = new RicRangeFilterNewExec(NULL); + filterExec->cellRangeFilterCollection = rangeFilterCollection; + filterExec->m_jSlice = true; - std::vector newSelection; - newSelection.push_back(selectedNodes[i]); - caf::CmdSelectionChangeExec* selectionChangeExec = caf::CmdSelectionHelper::createSelectionCommand(newSelection, caf::SelectionManager::CURRENT); - commands.push_back(selectionChangeExec); - - int indexAfter = -1; - caf::CmdAddItemExec* addItemExec = new caf::CmdAddItemExec(caf::SelectionManager::instance()->notificationCenter()); - - caf::CmdAddItemExecData* data = addItemExec->commandData(); - data->m_rootObject = caf::PdmReferenceHelper::findRoot(&proj->nodalLoads); - data->m_pathToField = caf::PdmReferenceHelper::referenceFromRootToField(data->m_rootObject, &proj->boundaryConditions); - data->m_indexAfter = indexAfter; - - commands.push_back(addItemExec); - } - - if (commands.size() > 0) - { - // Add an empty selection when boundary conditions has been assigned - std::vector newSelection; - caf::CmdSelectionChangeExec* selectionChangeExec = caf::CmdSelectionHelper::createSelectionCommand(newSelection, caf::SelectionManager::CURRENT); - commands.push_back(selectionChangeExec); - } - - caf::CmdExecCommandManager::instance()->processExecuteCommandsAsMacro("New Boundary Conditions", commands); + caf::CmdExecCommandManager::instance()->processExecuteCommand(filterExec); } -*/ } //-------------------------------------------------------------------------------------------------- diff --git a/ApplicationCode/Commands/RicRangeFilterNewSliceK.cpp b/ApplicationCode/Commands/RicRangeFilterNewSliceK.cpp index e537481de6..c759dfc046 100644 --- a/ApplicationCode/Commands/RicRangeFilterNewSliceK.cpp +++ b/ApplicationCode/Commands/RicRangeFilterNewSliceK.cpp @@ -27,6 +27,8 @@ #include #include +#include "RicRangeFilterNewExec.h" +#include "cafCmdExecCommandManager.h" CAF_CMD_SOURCE_INIT(RicRangeFilterNewSliceK, "RicRangeFilterNewSliceK"); @@ -56,53 +58,19 @@ bool RicRangeFilterNewSliceK::isCommandEnabled() //-------------------------------------------------------------------------------------------------- void RicRangeFilterNewSliceK::onActionTriggered(bool isChecked) { - // MODTODO + std::vector selectedRangeFilterCollection; + caf::SelectionManager::instance()->objectsByType(&selectedRangeFilterCollection); -/* EvmProject* proj = EvaApplication::instance()->project(); - - std::vector selectedNodes; - caf::SelectionManager::instance()->objectsByType(&selectedNodes, caf::SelectionManager::CURRENT); - - caf::CmdAddItemFeature* addItemFeature = dynamic_cast(caf::CmdFeatureManager::instance()->getCommandFeature(caf::CmdAddItemFeature::idNameStatic())); - assert(addItemFeature); - - if (selectedNodes.size() > 0) + if (selectedRangeFilterCollection.size() == 1) { - caf::SelectionManager::instance()->setActiveChildArrayFieldHandle(&proj->boundaryConditions); + RimCellRangeFilterCollection* rangeFilterCollection = selectedRangeFilterCollection[0]; - std::vector commands; - for (size_t i = 0; i < selectedNodes.size(); i++) - { - // Not allowed to add more than one BC - if (proj->findBoundaryConditionForNode(selectedNodes[i]->id)) continue; + RicRangeFilterNewExec* filterExec = new RicRangeFilterNewExec(NULL); + filterExec->cellRangeFilterCollection = rangeFilterCollection; + filterExec->m_kSlice = true; - std::vector newSelection; - newSelection.push_back(selectedNodes[i]); - caf::CmdSelectionChangeExec* selectionChangeExec = caf::CmdSelectionHelper::createSelectionCommand(newSelection, caf::SelectionManager::CURRENT); - commands.push_back(selectionChangeExec); - - int indexAfter = -1; - caf::CmdAddItemExec* addItemExec = new caf::CmdAddItemExec(caf::SelectionManager::instance()->notificationCenter()); - - caf::CmdAddItemExecData* data = addItemExec->commandData(); - data->m_rootObject = caf::PdmReferenceHelper::findRoot(&proj->nodalLoads); - data->m_pathToField = caf::PdmReferenceHelper::referenceFromRootToField(data->m_rootObject, &proj->boundaryConditions); - data->m_indexAfter = indexAfter; - - commands.push_back(addItemExec); - } - - if (commands.size() > 0) - { - // Add an empty selection when boundary conditions has been assigned - std::vector newSelection; - caf::CmdSelectionChangeExec* selectionChangeExec = caf::CmdSelectionHelper::createSelectionCommand(newSelection, caf::SelectionManager::CURRENT); - commands.push_back(selectionChangeExec); - } - - caf::CmdExecCommandManager::instance()->processExecuteCommandsAsMacro("New Boundary Conditions", commands); + caf::CmdExecCommandManager::instance()->processExecuteCommand(filterExec); } -*/ } //--------------------------------------------------------------------------------------------------