1 // File: PartSetPlugin_Remove.cxx
2 // Created: 20 May 2014
3 // Author: Mikhail PONIKAROV
5 #include "PartSetPlugin_Remove.h"
6 #include "PartSetPlugin_Part.h"
7 #include <ModelAPI_Document.h>
8 #include <ModelAPI_Data.h>
9 #include <ModelAPI_AttributeDocRef.h>
11 void PartSetPlugin_Remove::execute()
13 boost::shared_ptr<ModelAPI_PluginManager> aPManager = ModelAPI_PluginManager::get();
14 boost::shared_ptr<ModelAPI_Document> aRoot = aPManager->rootDocument();
15 boost::shared_ptr<ModelAPI_Document> aCurrent;
16 boost::shared_ptr<PartSetPlugin_Part> a;
17 for(int a = aRoot->size(getGroup()) - 1; a >= 0; a--) {
18 FeaturePtr aFeature = aRoot->feature(getGroup(), a, true);
19 if (aFeature->getKind() == PARTSET_PART_KIND) {
20 boost::shared_ptr<PartSetPlugin_Part> aPart =
21 boost::static_pointer_cast<PartSetPlugin_Part>(aFeature);
22 if (aPart->data()->docRef(PART_ATTR_DOC_REF)->value() == aPManager->currentDocument()) {
24 aPart->data()->docRef(PART_ATTR_DOC_REF)->value()->close();
25 aRoot->removeFeature(aPart);