Salome HOME
Merge from V6_2_BR 23/12/2010
[modules/visu.git] / src / VISU_I / VISU_PrsObject_i.cc
1 //  Copyright (C) 2007-2010  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
23 //  VISU OBJECT : interactive object for VISU entities implementation
24 //  File   : VISU_PrsObject_i.cxx
25 //  Author : Alexey PETROV
26 //  Module : VISU
27 //
28 #include "VISU_PrsObject_i.hh"
29
30 #ifdef _DEBUG_
31 static int MYDEBUG = 0;
32 #else
33 static int MYDEBUG = 0;
34 #endif
35
36 //---------------------------------------------------------------
37 VISU::RemovableObject_i
38 ::RemovableObject_i()
39 {
40   if(MYDEBUG) MESSAGE("RemovableObject_i::RemovableObject_i - this = "<<this);
41 }
42
43
44 //---------------------------------------------------------------
45 VISU::RemovableObject_i
46 ::~RemovableObject_i() 
47 {
48   if(MYDEBUG) MESSAGE("RemovableObject_i::~RemovableObject_i - this = "<<this);
49 }
50
51
52 //---------------------------------------------------------------
53 void
54 VISU::RemovableObject_i
55 ::SetName(const std::string& theName,
56           bool theIsUpdateStudyAttr)
57 {
58   myName = theName;
59   if(theIsUpdateStudyAttr){
60     SALOMEDS::SObject_var aSObject = GetStudyDocument()->FindObjectID(GetEntry().c_str());
61     if(!aSObject->_is_nil()){
62       SALOMEDS::StudyBuilder_var aBuilder = GetStudyDocument()->NewBuilder();
63       SALOMEDS::GenericAttribute_var anAttr = aBuilder->FindOrCreateAttribute( aSObject, "AttributeName" );
64       SALOMEDS::AttributeName_var aNameAttr = SALOMEDS::AttributeName::_narrow( anAttr );
65       aNameAttr->SetValue( theName.c_str() );
66     }
67   }
68 }
69
70
71 //---------------------------------------------------------------
72 std::string
73 VISU::RemovableObject_i
74 ::GetName() const 
75
76   return myName;
77 }
78
79
80 //---------------------------------------------------------------
81 SALOMEDS::Study_var
82 VISU::RemovableObject_i
83 ::GetStudyDocument() const 
84
85   return myStudyDocument;
86 }
87
88
89 //---------------------------------------------------------------
90 SalomeApp_Study*
91 VISU::RemovableObject_i
92 ::GetGUIStudy() const 
93
94   return myGUIStudy;
95 }
96
97
98 //---------------------------------------------------------------
99 void
100 VISU::RemovableObject_i
101 ::SetStudyDocument(SALOMEDS::Study_ptr theStudy) 
102
103   myStudyDocument = SALOMEDS::Study::_duplicate(theStudy);
104   myGUIStudy = VISU::GetGUIStudy(theStudy);
105 }
106
107
108 //---------------------------------------------------------------
109 std::string 
110 VISU::RemovableObject_i
111 ::GetEntry() 
112
113   CORBA::String_var anIOR = GetID();
114   SALOMEDS::SObject_var aSObject = GetStudyDocument()->FindObjectIOR(anIOR.in());
115   CORBA::String_var anEntry("");
116   if(!CORBA::is_nil(aSObject.in()))
117     anEntry = aSObject->GetID();
118   return anEntry.in();
119 }
120
121
122 //---------------------------------------------------------------
123 VISU::PrsObject_i
124 ::PrsObject_i(SALOMEDS::Study_ptr theStudy)
125 {
126   SetStudyDocument(theStudy);
127 }
128
129