X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FConfig%2FConfig_DataModelReader.cpp;h=20e8203508c9ec8f034260b970241df8f9c70dc5;hb=bdbfb368d71ed11cc0391354a7d86c880cd94949;hp=e9113e85e9bb99c1058a6f122b578814714d8b61;hpb=f3b6abdd8d0a128e2fdb93273190ff24f9bf0609;p=modules%2Fshaper.git diff --git a/src/Config/Config_DataModelReader.cpp b/src/Config/Config_DataModelReader.cpp index e9113e85e..20e820350 100644 --- a/src/Config/Config_DataModelReader.cpp +++ b/src/Config/Config_DataModelReader.cpp @@ -11,7 +11,7 @@ #include #include "Config_Common.h" -#include +#include Config_DataModelReader::Config_DataModelReader() @@ -29,10 +29,12 @@ void Config_DataModelReader::processNode(xmlNodePtr theNode) std::string aName = getProperty(theNode, FOLDER_NAME); std::string aGroupType = getProperty(theNode, GROUP_TYPE); if (aName.empty() || aGroupType.empty()) - Events_Error::send("Reading dataModel.xml: wrong folder definition"); - + Events_InfoMessage("Config_DataModelReader", + "Reading dataModel.xml: wrong folder definition.").send(); + std::string aIcon = getProperty(theNode, NODE_ICON); std::string aEmpty = getProperty(theNode, SHOW_EMPTY); + std::string aFeatures = getProperty(theNode, FOLDER_FEATURES); std::string::iterator aIt; for (aIt = aEmpty.begin(); aIt != aEmpty.end(); aIt++) { (*aIt) = toupper(*aIt); @@ -44,11 +46,13 @@ void Config_DataModelReader::processNode(xmlNodePtr theNode) myRootFolderTypes.push_back(aGroupType); myRootFolderIcons.push_back(aIcon); myRootFolderShowEmpty.push_back(aIsEmpty); + myRootFeaturesList.push_back(aFeatures); } else { mySubFolderNames.push_back(aName); mySubFolderTypes.push_back(aGroupType); mySubFolderIcons.push_back(aIcon); mySubFolderShowEmpty.push_back(aIsEmpty); + mySubFeaturesList.push_back(aFeatures); } } else if (isNode(theNode, ROOT_DOCUMENT, NULL)) { isRootReading = true; @@ -86,3 +90,35 @@ int Config_DataModelReader::subFolderId(std::string theType) const } return -1; } + +std::string getFolderFeatures(const std::string& theFolderName, + const std::vector& theNames, + const std::vector& theFeatures) +{ + int aId; + bool aFound = false; + std::vector::const_iterator aIt; + for(aIt = theNames.cbegin(), aId = 0; aIt != theNames.cend(); ++aIt, ++aId) { + if ((*aIt) == theFolderName) { + aFound = true; + break; + } + } + if (aFound) + return theFeatures.at(aId); + return std::string(); +} + +std::string Config_DataModelReader:: + subFolderFeatures(const std::string& theFolderName) const +{ + return getFolderFeatures(theFolderName, mySubFolderNames, mySubFeaturesList); +} + + +std::string Config_DataModelReader:: + rootFolderFeatures(const std::string& theFolderName) const +{ + return getFolderFeatures(theFolderName, myRootFolderNames, myRootFeaturesList); +} +