Salome HOME
Implementation of "isDisplayed" persistent flag
[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.get() && 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.get() && 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) myData->erase();
72   setData(DataPtr());
73 }
74
75 bool ModelAPI_Object::isDisplayed()
76 {
77   return myData->isDisplayed();
78 }
79
80 void ModelAPI_Object::setDisplayed(const bool theDisplay)
81 {
82   myData->setDisplayed(theDisplay);
83 }