Salome HOME
The persistence mechanism of part results modification features support
[modules/shaper.git] / src / ModelAPI / ModelAPI_Object.cpp
1 // Copyright (C) 2014-20xx CEA/DEN, EDF R&D
2
3 // File:        ModelAPI_Object.cpp
4 // Created:     19 May 2014
5 // Author:      Mikhail PONIKAROV
6
7 #include "ModelAPI_Object.h"
8 #include "ModelAPI_Document.h"
9 #include "ModelAPI_Data.h"
10 #include "ModelAPI_Events.h"
11 #include <Events_Loop.h>
12
13 bool ModelAPI_Object::isInHistory()
14 {
15   if (myData->isValid()) {
16     return myData->isInHistory();
17   }
18   return true; // default value
19 }
20
21 void ModelAPI_Object::setInHistory(
22   const std::shared_ptr<ModelAPI_Object> theObject, const bool theFlag)
23 {
24   if (isInHistory() != theFlag) {
25     if (myData->isValid()) {
26       myData->setIsInHistory(theFlag);
27     }
28     myDoc->updateHistory(theObject);
29   }
30 }
31
32 std::shared_ptr<ModelAPI_Data> ModelAPI_Object::data() const
33 {
34   return myData;
35 }
36
37 bool ModelAPI_Object::isSame(const std::shared_ptr<ModelAPI_Object>& theObject)
38 {
39   return theObject.get() == this;
40 }
41
42 std::shared_ptr<ModelAPI_Document> ModelAPI_Object::document() const
43 {
44   return myDoc;
45 }
46
47 void ModelAPI_Object::attributeChanged(const std::string& theID)
48 {
49 }
50
51 ModelAPI_Object::ModelAPI_Object()
52 {
53 }
54
55 ModelAPI_Object::~ModelAPI_Object()
56 {
57 }
58
59 void ModelAPI_Object::setData(std::shared_ptr<ModelAPI_Data> theData)
60 {
61   myData = theData;
62 }
63
64 void ModelAPI_Object::setDoc(std::shared_ptr<ModelAPI_Document> theDoc)
65 {
66   myDoc = theDoc;
67 }
68
69 void ModelAPI_Object::erase()
70 {
71   if (myData->isValid() && myData != myData->invalidPtr())
72     myData->erase();
73   setData(myData->invalidPtr());
74 }
75
76 bool ModelAPI_Object::isDisplayed()
77 {
78   return myData->isDisplayed();
79 }
80
81 void ModelAPI_Object::setDisplayed(const bool theDisplay)
82 {
83   myData->setDisplayed(theDisplay);
84 }