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>
10 #include <ModelAPI_ResultPart.h>
12 void PartSetPlugin_Remove::execute()
14 boost::shared_ptr<ModelAPI_PluginManager> aPManager = ModelAPI_PluginManager::get();
15 boost::shared_ptr<ModelAPI_Document> aRoot = aPManager->rootDocument();
16 boost::shared_ptr<ModelAPI_Document> aCurrent;
17 boost::shared_ptr<PartSetPlugin_Part> a;
18 for (int a = aRoot->size(ModelAPI_ResultPart::group()) - 1; a >= 0; a--) {
19 ResultPartPtr aPart = boost::dynamic_pointer_cast<ModelAPI_ResultPart>(
20 aRoot->object(ModelAPI_ResultPart::group(), a));
22 && aPart->data()->docRef(ModelAPI_ResultPart::DOC_REF())->value()
23 == aPManager->currentDocument()) {
24 FeaturePtr aFeature = aRoot->feature(aPart);
27 aPart->data()->docRef(ModelAPI_ResultPart::DOC_REF())->value()->close();
28 aRoot->removeFeature(aFeature);