Salome HOME
Dialog SetupCurveDlg has been added
[modules/gui.git] / src / CAM / CAM_DataModel.cxx
1 #include "CAM_DataModel.h"
2
3 #include "CAM_Module.h"
4 #include "CAM_RootObject.h"
5
6 CAM_DataModel::CAM_DataModel( CAM_Module* module )
7 : myRoot( 0 ),
8 myModule( module )
9 {
10 }
11
12 CAM_DataModel::~CAM_DataModel()
13 {
14 }
15
16 void CAM_DataModel::initialize()
17 {
18   // Default implementation, does nothing.
19   // Can be used for creation of root object.
20 }
21
22 CAM_DataObject* CAM_DataModel::root() const
23 {
24   return myRoot;
25 }
26
27 void CAM_DataModel::setRoot( const CAM_DataObject* newRoot )
28 {
29   if ( myRoot == newRoot )
30     return;
31
32   if ( myRoot )
33     myRoot->disconnect( this, SLOT( onDestroyed( SUIT_DataObject* ) ) );
34
35   myRoot = (CAM_DataObject*)newRoot;
36
37   if ( myRoot )
38     myRoot->connect( this, SLOT( onDestroyed( SUIT_DataObject* ) ) );
39
40   emit rootChanged( this );
41 }
42
43 CAM_Module* CAM_DataModel::module() const
44 {
45   return myModule;
46 }
47
48 void CAM_DataModel::onDestroyed( SUIT_DataObject* obj )
49 {
50   if ( myRoot == obj )
51     myRoot = 0;
52 }