X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FModuleBase%2FModuleBase_FilterFactory.cpp;h=b30ad90f5e356c36665a2055acee23c1cbca8008;hb=423f6b0a08a86d5e47115b87603cddeae4468b49;hp=891d74370621fb944a2ff2789ec631cdf0927a95;hpb=4019e4f7f2008ea45b40e16118d895c4c8ba8a05;p=modules%2Fshaper.git diff --git a/src/ModuleBase/ModuleBase_FilterFactory.cpp b/src/ModuleBase/ModuleBase_FilterFactory.cpp index 891d74370..b30ad90f5 100644 --- a/src/ModuleBase/ModuleBase_FilterFactory.cpp +++ b/src/ModuleBase/ModuleBase_FilterFactory.cpp @@ -1,6 +1,6 @@ // Copyright (C) 2014-20xx CEA/DEN, EDF R&D -// File: ModuleBase_FilterFactory.h +// File: ModuleBase_FilterFactory.cpp // Created: 10 Dec 2014 // Author: Natalia ERMOLAEVA @@ -12,14 +12,15 @@ #include #include //#include -#include +#include void ModuleBase_FilterFactory::registerFilter(const std::string& theID, - Handle(ModuleBase_Filter) theFilter) + ModuleBase_Filter* theFilter) { if (myIDs.find(theID) != myIDs.end()) { - Events_Error::send(std::string("Filter ") + theID + " is already registered"); + Events_InfoMessage("ModuleBase_FilterFactory", + "Filter %1 is already registered").arg(theID).send(); } else { myIDs[theID] = theFilter; } @@ -27,7 +28,8 @@ void ModuleBase_FilterFactory::registerFilter(const std::string& theID, void ModuleBase_FilterFactory::assignFilter(const std::string& theID, const std::string& theFeatureID, - const std::string& theAttrID) + const std::string& theAttrID, + const std::list& theArguments) { // create feature-structures if not exist std::map >::iterator aFeature = myAttrs.find( @@ -41,34 +43,36 @@ void ModuleBase_FilterFactory::assignFilter(const std::string& theID, if (anAttr == aFeature->second.end()) { aFeature->second[theAttrID] = AttrFilters(); } - aFeature->second[theAttrID][theID] = std::list(); + aFeature->second[theAttrID][theID] = theArguments; } void ModuleBase_FilterFactory::filters(const std::string& theFeatureID, const std::string& theAttrID, SelectMgr_ListOfFilter& theFilters/*, - std::list& theFilters/*, + std::list& theFilters/*, std::list >& theArguments*/) const { SelectMgr_ListOfFilter aFilters; - std::map >::const_iterator aFeature = + std::map >::const_iterator aFeature = myAttrs.find(theFeatureID); if (aFeature != myAttrs.cend()) { std::map::const_iterator anAttr = aFeature->second.find(theAttrID); if (anAttr != aFeature->second.end()) { AttrFilters::const_iterator aValIter = anAttr->second.cbegin(); for (; aValIter != anAttr->second.cend(); aValIter++) { - std::map::const_iterator aFound = myIDs.find( + std::map::const_iterator aFound = myIDs.find( aValIter->first); if (aFound == myIDs.end()) { - Events_Error::send(std::string("Filter ") + aValIter->first + " was not registered"); + Events_InfoMessage("ModuleBase_FilterFactory", "Filter %1 was not registered") + .arg(aValIter->first).send(); } else { - Handle(ModuleBase_Filter) aFilter = aFound->second; - if (aFilter.IsNull()) - continue; + ModuleBase_Filter* aFilter = aFound->second; + aFilter->setArguments(aValIter->second); + //if (aFilter.IsNull()) + // continue; - theFilters.Append(aFilter);//aFound->second); + theFilters.Append(aFilter->getFilter());//aFound->second); //theArguments.push_back(aValIter->second); } } @@ -82,9 +86,9 @@ ModuleBase_FilterFactory::ModuleBase_FilterFactory() //registerFilter(kDefaultId, new Model_FeatureFilter); } -const Handle(ModuleBase_Filter) ModuleBase_FilterFactory::filter(const std::string& theID) const +const ModuleBase_Filter* ModuleBase_FilterFactory::filter(const std::string& theID) const { - std::map::const_iterator aIt = myIDs.find(theID); + std::map::const_iterator aIt = myIDs.find(theID); if (aIt != myIDs.end()) { return aIt->second; }