Salome HOME
1893a1b689445f0a388ba08742a81be9dbbd484e
[modules/visu.git] / src / VISU_I / VISU_PrsObject_i.cc
1 //  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
2 //
3 //  Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4 //  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
5 //
6 //  This library is free software; you can redistribute it and/or
7 //  modify it under the terms of the GNU Lesser General Public
8 //  License as published by the Free Software Foundation; either
9 //  version 2.1 of the License.
10 //
11 //  This library is distributed in the hope that it will be useful,
12 //  but WITHOUT ANY WARRANTY; without even the implied warranty of
13 //  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14 //  Lesser General Public License for more details.
15 //
16 //  You should have received a copy of the GNU Lesser General Public
17 //  License along with this library; if not, write to the Free Software
18 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
19 //
20 //  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
21 //
22 //  VISU OBJECT : interactive object for VISU entities implementation
23 //  File   : VISU_PrsObject_i.cxx
24 //  Author : Alexey PETROV
25 //  Module : VISU
26 //
27 #include "VISU_PrsObject_i.hh"
28
29 #ifdef _DEBUG_
30 static int MYDEBUG = 0;
31 #else
32 static int MYDEBUG = 0;
33 #endif
34
35 //---------------------------------------------------------------
36 VISU::RemovableObject_i
37 ::RemovableObject_i()
38 {
39   if(MYDEBUG) MESSAGE("RemovableObject_i::RemovableObject_i - this = "<<this);
40 }
41
42
43 //---------------------------------------------------------------
44 VISU::RemovableObject_i
45 ::~RemovableObject_i() 
46 {
47   if(MYDEBUG) MESSAGE("RemovableObject_i::~RemovableObject_i - this = "<<this);
48 }
49
50
51 //---------------------------------------------------------------
52 void
53 VISU::RemovableObject_i
54 ::SetName(const std::string& theName,
55           bool theIsUpdateStudyAttr)
56 {
57   myName = theName;
58   if(theIsUpdateStudyAttr){
59     SALOMEDS::SObject_var aSObject = GetStudyDocument()->FindObjectID(GetEntry().c_str());
60     if(!aSObject->_is_nil()){
61       SALOMEDS::StudyBuilder_var aBuilder = GetStudyDocument()->NewBuilder();
62       SALOMEDS::GenericAttribute_var anAttr = aBuilder->FindOrCreateAttribute( aSObject, "AttributeName" );
63       SALOMEDS::AttributeName_var aNameAttr = SALOMEDS::AttributeName::_narrow( anAttr );
64       aNameAttr->SetValue( theName.c_str() );
65     }
66   }
67 }
68
69
70 //---------------------------------------------------------------
71 std::string
72 VISU::RemovableObject_i
73 ::GetName() const 
74
75   return myName;
76 }
77
78
79 //---------------------------------------------------------------
80 SALOMEDS::Study_var
81 VISU::RemovableObject_i
82 ::GetStudyDocument() const 
83
84   return myStudyDocument;
85 }
86
87
88 //---------------------------------------------------------------
89 SalomeApp_Study*
90 VISU::RemovableObject_i
91 ::GetGUIStudy() const 
92
93   return myGUIStudy;
94 }
95
96
97 //---------------------------------------------------------------
98 void
99 VISU::RemovableObject_i
100 ::SetStudyDocument(SALOMEDS::Study_ptr theStudy) 
101
102   myStudyDocument = SALOMEDS::Study::_duplicate(theStudy);
103   myGUIStudy = VISU::GetGUIStudy(theStudy);
104 }
105
106
107 //---------------------------------------------------------------
108 std::string 
109 VISU::RemovableObject_i
110 ::GetEntry() 
111
112   CORBA::String_var anIOR = GetID();
113   SALOMEDS::SObject_var aSObject = GetStudyDocument()->FindObjectIOR(anIOR.in());
114   CORBA::String_var anEntry("");
115   if(!CORBA::is_nil(aSObject.in()))
116     anEntry = aSObject->GetID();
117   return anEntry.in();
118 }
119
120
121 //---------------------------------------------------------------
122 VISU::PrsObject_i
123 ::PrsObject_i(SALOMEDS::Study_ptr theStudy)
124 {
125   SetStudyDocument(theStudy);
126 }
127
128