Salome HOME
Merge remote-tracking branch 'remotes/origin/master' into SketchSolver
[modules/shaper.git] / src / PartSetPlugin / PartSetPlugin_Part.cpp
1 // File:        PartSetPlugin_Part.cxx
2 // Created:     27 Mar 2014
3 // Author:      Mikhail PONIKAROV
4
5 #include "PartSetPlugin_Part.h"
6 #include "ModelAPI_PluginManager.h"
7 #include "ModelAPI_Document.h"
8 #include "ModelAPI_Data.h"
9 #include "ModelAPI_AttributeDocRef.h"
10
11 using namespace std;
12
13 PartSetPlugin_Part::PartSetPlugin_Part()
14 {
15 }
16
17 void PartSetPlugin_Part::initAttributes()
18 {
19   data()->addAttribute(PART_ATTR_DOC_REF, ModelAPI_AttributeDocRef::type());
20 }
21
22 void PartSetPlugin_Part::execute() 
23 {
24   boost::shared_ptr<ModelAPI_AttributeDocRef> aDocRef = data()->docRef(PART_ATTR_DOC_REF);
25   if (!aDocRef->value()) { // create a document if not yet created
26     boost::shared_ptr<ModelAPI_Document> aPartSetDoc = 
27       ModelAPI_PluginManager::get()->rootDocument();
28     aDocRef->setValue(aPartSetDoc->subDocument(data()->getName()));
29   }
30 }
31
32 boost::shared_ptr<ModelAPI_Document> PartSetPlugin_Part::documentToAdd() {
33   return ModelAPI_PluginManager::get()->rootDocument();
34 }