]> SALOME platform Git repositories - modules/kernel.git/commitdiff
Salome HOME
IMP PAL13614: Added a new attrubute AttributeString
authorsrn <srn@opencascade.com>
Tue, 17 Oct 2006 10:32:13 +0000 (10:32 +0000)
committersrn <srn@opencascade.com>
Tue, 17 Oct 2006 10:32:13 +0000 (10:32 +0000)
14 files changed:
idl/SALOMEDS_Attributes.idl
src/SALOMEDS/Makefile.am
src/SALOMEDS/SALOMEDS_AttributeString.cxx [new file with mode: 0644]
src/SALOMEDS/SALOMEDS_AttributeString.hxx [new file with mode: 0644]
src/SALOMEDS/SALOMEDS_AttributeString_i.cxx [new file with mode: 0644]
src/SALOMEDS/SALOMEDS_AttributeString_i.hxx [new file with mode: 0644]
src/SALOMEDS/SALOMEDS_Attributes.hxx
src/SALOMEDS/SALOMEDS_ClientAttributes.hxx
src/SALOMEDSClient/Makefile.am
src/SALOMEDSClient/SALOMEDSClient.hxx
src/SALOMEDSImpl/Makefile.am
src/SALOMEDSImpl/SALOMEDSImpl_AttributeString.cxx [new file with mode: 0644]
src/SALOMEDSImpl/SALOMEDSImpl_AttributeString.hxx [new file with mode: 0644]
src/SALOMEDSImpl/SALOMEDSImpl_Attributes.hxx

index d992ece005c19070c7bba5a4431e1c32fabb219e..6e50fb52fcb39dbd75b1fac72f9357fd4d3b97f8 100644 (file)
@@ -262,6 +262,24 @@ module SALOMEDS
    \param value This string parameter defines the value of this attribute - a description of a %SObject.
 
 <BR><VAR>See also <A href="exemple/Example1.html"> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
+*/
+    void   SetValue(in string value);
+  };
+  //==========================================================================
+/*! \brief String attribute
+
+    This attribute stores a string value containing arbitrary information.
+*/
+  //==========================================================================
+  interface AttributeString : GenericAttribute
+  {
+/*!
+    Returns the value of this attribute
+*/
+    string Value();
+/*!
+   Sets the value of this attribute
+   \param value This string parameter defines the value of this attribute.
 */
     void   SetValue(in string value);
   };
index 00ead570a337c815fe620d1bb125283997cb0827..ea225cb8ffc8bd1a142512200f34bb90cdffb197 100644 (file)
@@ -140,6 +140,7 @@ libSalomeDS_la_SOURCES =    \
        SALOMEDS_AttributeStudyProperties_i.cxx \
        SALOMEDS_AttributePythonObject_i.cxx \
        SALOMEDS_AttributeParameter_i.cxx \
+       SALOMEDS_AttributeString_i.cxx \
        SALOMEDS_SObject.cxx \
        SALOMEDS_SComponent.cxx \
        SALOMEDS_GenericAttribute.cxx \
@@ -180,6 +181,7 @@ libSalomeDS_la_SOURCES =    \
        SALOMEDS_AttributeUserID.cxx \
        SALOMEDS_TMPFile_i.cxx \
        SALOMEDS_AttributeParameter.cxx \
+       SALOMEDS_AttributeString.cxx \
        SALOMEDS_IParameters.cxx \
        \
        Handle_SALOMEDS_DataMapNodeOfDataMapOfIntegerString.hxx \
@@ -322,6 +324,8 @@ libSalomeDS_la_SOURCES =    \
        SALOMEDS_UseCaseIterator_i.hxx \
        SALOMEDS_AttributeParameter.hxx \
        SALOMEDS_AttributeParameter_i.hxx \
+       SALOMEDS_AttributeString.hxx \
+       SALOMEDS_AttributeString_i.hxx \
        SALOMEDS_TMPFile_i.hxx
 
 libSalomeDS_la_CPPFLAGS = $(COMMON_CPPFLAGS)
diff --git a/src/SALOMEDS/SALOMEDS_AttributeString.cxx b/src/SALOMEDS/SALOMEDS_AttributeString.cxx
new file mode 100644 (file)
index 0000000..dcf1f06
--- /dev/null
@@ -0,0 +1,62 @@
+// Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+// 
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either 
+// version 2.1 of the License.
+// 
+// This library is distributed in the hope that it will be useful 
+// but WITHOUT ANY WARRANTY; without even the implied warranty of 
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public  
+// License along with this library; if not, write to the Free Software 
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+//  File   : SALOMEDS_AttributeString.cxx
+//  Author : Sergey RUIN
+//  Module : SALOME
+
+#include "SALOMEDS_AttributeString.hxx"
+#include "SALOMEDS.hxx"
+
+#include <string>
+#include <TCollection_AsciiString.hxx> 
+#include <TCollection_ExtendedString.hxx>
+
+SALOMEDS_AttributeString::SALOMEDS_AttributeString(const Handle(SALOMEDSImpl_AttributeString)& theAttr)
+:SALOMEDS_GenericAttribute(theAttr)
+{}
+
+SALOMEDS_AttributeString::SALOMEDS_AttributeString(SALOMEDS::AttributeString_ptr theAttr)
+:SALOMEDS_GenericAttribute(theAttr)
+{}
+
+SALOMEDS_AttributeString::~SALOMEDS_AttributeString()
+{}
+
+std::string SALOMEDS_AttributeString::Value()
+{
+  std::string aValue;
+  if (_isLocal) {
+    SALOMEDS::Locker lock;
+    aValue = TCollection_AsciiString(Handle(SALOMEDSImpl_AttributeString)::
+                                     DownCast(_local_impl)->Value()).ToCString();
+  }
+  else aValue = SALOMEDS::AttributeString::_narrow(_corba_impl)->Value();
+  return aValue;
+}
+void SALOMEDS_AttributeString::SetValue(const std::string& value)
+{
+  if (_isLocal) {
+    CheckLocked();
+    SALOMEDS::Locker lock; 
+    Handle(SALOMEDSImpl_AttributeString)::DownCast(_local_impl)->SetValue((char*)value.c_str());
+  }
+  else SALOMEDS::AttributeString::_narrow(_corba_impl)->SetValue(value.c_str());
+}
diff --git a/src/SALOMEDS/SALOMEDS_AttributeString.hxx b/src/SALOMEDS/SALOMEDS_AttributeString.hxx
new file mode 100644 (file)
index 0000000..025ae78
--- /dev/null
@@ -0,0 +1,47 @@
+// Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+// 
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either 
+// version 2.1 of the License.
+// 
+// This library is distributed in the hope that it will be useful 
+// but WITHOUT ANY WARRANTY; without even the implied warranty of 
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public  
+// License along with this library; if not, write to the Free Software 
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+//  File   : SALOMEDS_AttributeString.hxx
+//  Author : Sergey RUIN
+//  Module : SALOME
+
+#ifndef SALOMEDS_AttributeString_HeaderFile
+#define SALOMEDS_AttributeString_HeaderFile
+
+#include "SALOMEDSClient_AttributeString.hxx"
+#include "SALOMEDS_GenericAttribute.hxx"
+#include "SALOMEDSImpl_AttributeString.hxx"
+
+// IDL headers
+#include <SALOMEconfig.h>
+#include CORBA_SERVER_HEADER(SALOMEDS)
+#include CORBA_SERVER_HEADER(SALOMEDS_Attributes)
+
+class SALOMEDS_AttributeString: public SALOMEDS_GenericAttribute, public SALOMEDSClient_AttributeString
+{
+public:  
+  SALOMEDS_AttributeString(const Handle(SALOMEDSImpl_AttributeString)& theAttr);
+  SALOMEDS_AttributeString(SALOMEDS::AttributeString_ptr theAttr);
+  ~SALOMEDS_AttributeString();
+
+  virtual std::string Value();
+  virtual void SetValue(const std::string& value);
+};
+
+#endif
diff --git a/src/SALOMEDS/SALOMEDS_AttributeString_i.cxx b/src/SALOMEDS/SALOMEDS_AttributeString_i.cxx
new file mode 100644 (file)
index 0000000..62f9de6
--- /dev/null
@@ -0,0 +1,49 @@
+// Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+// 
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either 
+// version 2.1 of the License.
+// 
+// This library is distributed in the hope that it will be useful 
+// but WITHOUT ANY WARRANTY; without even the implied warranty of 
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public  
+// License along with this library; if not, write to the Free Software 
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+//  File   : SALOMEDS_AttributeString_i.cxx
+//  Author : Sergey RUIN
+//  Module : SALOME
+
+
+#include "SALOMEDS_AttributeString_i.hxx"
+
+#include <TCollection_ExtendedString.hxx>
+#include "SALOMEDS_SObject_i.hxx"
+#include "SALOMEDS.hxx"
+
+using namespace std;
+
+char* SALOMEDS_AttributeString_i::Value()
+{
+  SALOMEDS::Locker lock;
+  
+  CORBA::String_var c_s =
+    CORBA::string_dup(TCollection_AsciiString(Handle(SALOMEDSImpl_AttributeString)::DownCast(_impl)->Value()).ToCString());
+  return c_s._retn();
+}
+
+void SALOMEDS_AttributeString_i::SetValue(const char* value) 
+{
+  SALOMEDS::Locker lock; 
+
+  CheckLocked();
+  TCollection_AsciiString aStr((char*)value);
+  Handle(SALOMEDSImpl_AttributeString)::DownCast(_impl)->SetValue(TCollection_ExtendedString(aStr));
+}
diff --git a/src/SALOMEDS/SALOMEDS_AttributeString_i.hxx b/src/SALOMEDS/SALOMEDS_AttributeString_i.hxx
new file mode 100644 (file)
index 0000000..1fa8e02
--- /dev/null
@@ -0,0 +1,47 @@
+// Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+// 
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either 
+// version 2.1 of the License.
+// 
+// This library is distributed in the hope that it will be useful 
+// but WITHOUT ANY WARRANTY; without even the implied warranty of 
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public  
+// License along with this library; if not, write to the Free Software 
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+//  File   : SALOMEDS_AttributeString_i.hxx
+//  Author : Sergey RUIN
+//  Module : SALOME
+
+#ifndef SALOMEDS_AttributeString_i_HeaderFile
+#define SALOMEDS_AttributeString_i_HeaderFile
+
+// IDL headers
+#include <SALOMEconfig.h>
+#include CORBA_SERVER_HEADER(SALOMEDS_Attributes)
+
+#include "SALOMEDS_GenericAttribute_i.hxx"
+#include "SALOMEDSImpl_AttributeString.hxx"
+
+class SALOMEDS_AttributeString_i: public virtual POA_SALOMEDS::AttributeString,
+                                  public virtual SALOMEDS_GenericAttribute_i 
+{
+public:  
+  SALOMEDS_AttributeString_i(const Handle(SALOMEDSImpl_AttributeString)& theAttr, CORBA::ORB_ptr orb) 
+    :SALOMEDS_GenericAttribute_i(theAttr, orb) {};
+
+  virtual ~SALOMEDS_AttributeString_i() {};
+
+  char* Value();
+  void SetValue(const char* value);
+};
+
+#endif
index c27e95d2da7b9ac9102a2817e129ebc8e8f6a00f..4c990172926c5f6bacf8a570a77c06c2f83c0ce7 100644 (file)
@@ -55,6 +55,7 @@
 #include "SALOMEDSImpl_AttributeFlags.hxx"
 #include "SALOMEDSImpl_AttributeGraphic.hxx"
 #include "SALOMEDSImpl_AttributeParameter.hxx"
+#include "SALOMEDSImpl_AttributeString.hxx"
 
 #include "SALOMEDS_GenericAttribute_i.hxx"
 #include "SALOMEDS_AttributeName_i.hxx"
@@ -86,6 +87,7 @@
 #include "SALOMEDS_AttributeFlags_i.hxx"
 #include "SALOMEDS_AttributeGraphic_i.hxx"
 #include "SALOMEDS_AttributeParameter_i.hxx"
+#include "SALOMEDS_AttributeString_i.hxx"
 
 #define __CreateCORBAAttribute(CORBA_Name) if (strcmp(aTypeOfAttribute, #CORBA_Name) == 0) { \
     Handle(SALOMEDSImpl_##CORBA_Name) A = Handle(SALOMEDSImpl_##CORBA_Name)::DownCast(theAttr); \
@@ -124,6 +126,7 @@ __CreateCORBAAttribute(AttributeFlags) \
 __CreateCORBAAttribute(AttributeGraphic) \
 __CreateCORBAAttribute(AttributeTreeNode) \
 __CreateCORBAAttribute(AttributeUserID) \
-__CreateCORBAAttribute(AttributeParameter)
+__CreateCORBAAttribute(AttributeParameter) \
+__CreateCORBAAttribute(AttributeString)
 
 #endif
index 69ae2d131d710a2475bc3f64ea37cf91b3db5be9..cb6786209cd06e567e11b091b023c475bf655abd 100644 (file)
@@ -56,6 +56,7 @@
 #include "SALOMEDSImpl_AttributeFlags.hxx"
 #include "SALOMEDSImpl_AttributeGraphic.hxx"
 #include "SALOMEDSImpl_AttributeParameter.hxx"
+#include "SALOMEDSImpl_AttributeString.hxx"
 
 #include "SALOMEDS_GenericAttribute.hxx"
 #include "SALOMEDS_AttributeName.hxx"
@@ -87,6 +88,7 @@
 #include "SALOMEDS_AttributeFlags.hxx"
 #include "SALOMEDS_AttributeGraphic.hxx"
 #include "SALOMEDS_AttributeParameter.hxx"
+#include "SALOMEDS_AttributeString.hxx"
 
 #define __CreateClientAttributeLocal(CORBA_Name) if (strcmp(aTypeOfAttribute.c_str(), #CORBA_Name) == 0) { \
     Handle(SALOMEDSImpl_##CORBA_Name) A = Handle(SALOMEDSImpl_##CORBA_Name)::DownCast(theGA); \
@@ -127,7 +129,8 @@ __CreateClientAttributeLocal(AttributeFlags) \
 __CreateClientAttributeLocal(AttributeGraphic) \
 __CreateClientAttributeLocal(AttributeTreeNode) \
 __CreateClientAttributeLocal(AttributeUserID) \
-__CreateClientAttributeLocal(AttributeParameter)
+__CreateClientAttributeLocal(AttributeParameter) \
+__CreateClientAttributeLocal(AttributeString)
 
 #define __CreateGenericClientAttributeCORBA \
 __CreateClientAttributeCORBA(AttributeReal) \
@@ -158,6 +161,7 @@ __CreateClientAttributeCORBA(AttributeFlags) \
 __CreateClientAttributeCORBA(AttributeGraphic) \
 __CreateClientAttributeCORBA(AttributeTreeNode) \
 __CreateClientAttributeCORBA(AttributeUserID) \
-__CreateClientAttributeCORBA(AttributeParameter)
+__CreateClientAttributeCORBA(AttributeParameter) \
+__CreateClientAttributeCORBA(AttributeString)
 
 #endif
index 4895488957170ab98cf2699867a335c2a7a508c3..4615a1a866822dcfe9b989017b2fb55d5e9da7cc 100644 (file)
@@ -55,6 +55,7 @@ salomeinclude_HEADERS=\
                 SALOMEDSClient_AttributeTreeNode.hxx \
                 SALOMEDSClient_AttributeUserID.hxx \
                SALOMEDSClient_AttributeParameter.hxx \
+               SALOMEDSClient_AttributeString.hxx \
                 SALOMEDSClient_ChildIterator.hxx \
                 SALOMEDSClient_GenericAttribute.hxx \
                 SALOMEDSClient_SComponent.hxx \
index a03c019e00dfa92ee878564dca6221904c46ad8e..6551f3cbbb0b5dbd6c897990ea3a10703383158d 100644 (file)
@@ -50,6 +50,7 @@
 #include "SALOMEDSClient_AttributeTreeNode.hxx"
 #include "SALOMEDSClient_AttributeUserID.hxx"
 #include "SALOMEDSClient_AttributeParameter.hxx"
+#include "SALOMEDSClient_AttributeString.hxx"
 #include "SALOMEDSClient_ChildIterator.hxx"
 #include "SALOMEDSClient_GenericAttribute.hxx"
 #include "SALOMEDSClient_SComponent.hxx"
index ca9352aab46511f822aff0155f04a91e21b97721..a228cac57c80fb1c361af2da8ad0617ceb251165 100644 (file)
@@ -66,6 +66,7 @@ salomeinclude_HEADERS= \
        SALOMEDSImpl_AttributeComment.hxx \
        SALOMEDSImpl_AttributeReference.hxx \
        SALOMEDSImpl_AttributeParameter.hxx \
+       SALOMEDSImpl_AttributeString.hxx \
        SALOMEDSImpl_UseCaseBuilder.hxx \
        SALOMEDSImpl_UseCaseIterator.hxx \
        SALOMEDSImpl_SComponentIterator.hxx \
@@ -147,6 +148,7 @@ libSalomeDSImpl_la_SOURCES =\
        SALOMEDSImpl_AttributeComment.cxx \
        SALOMEDSImpl_AttributeReference.cxx \
        SALOMEDSImpl_AttributeParameter.cxx \
+       SALOMEDSImpl_AttributeString.cxx \
        SALOMEDSImpl_ChildNodeIterator.cxx \
        SALOMEDSImpl_UseCaseBuilder.cxx \
        SALOMEDSImpl_UseCaseIterator.cxx \
@@ -187,6 +189,8 @@ libSalomeDSImpl_la_SOURCES =\
        SALOMEDSImpl_AttributeTextHighlightColor.hxx \
        SALOMEDSImpl_AttributeTreeNode.hxx \
        SALOMEDSImpl_AttributeUserID.hxx \
+       SALOMEDSImpl_AttributeParameter.hxx \
+       SALOMEDSImpl_AttributeString.hxx \
        SALOMEDSImpl_Callback.hxx \
        SALOMEDSImpl_ChildIterator.hxx \
        SALOMEDSImpl_ChildNodeIterator.hxx \
diff --git a/src/SALOMEDSImpl/SALOMEDSImpl_AttributeString.cxx b/src/SALOMEDSImpl/SALOMEDSImpl_AttributeString.cxx
new file mode 100644 (file)
index 0000000..7a7ee76
--- /dev/null
@@ -0,0 +1,108 @@
+// Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+// 
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either 
+// version 2.1 of the License.
+// 
+// This library is distributed in the hope that it will be useful 
+// but WITHOUT ANY WARRANTY; without even the implied warranty of 
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public  
+// License along with this library; if not, write to the Free Software 
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+//  File   : SALOMEDSImpl_AttributeString.cxx
+//  Author : Sergey RUIN
+//  Module : SALOME
+
+#include "SALOMEDSImpl_AttributeString.hxx"
+
+#ifndef WNT
+using namespace std;
+#endif
+
+IMPLEMENT_STANDARD_HANDLE( SALOMEDSImpl_AttributeString, SALOMEDSImpl_GenericAttribute )
+IMPLEMENT_STANDARD_RTTIEXT( SALOMEDSImpl_AttributeString, SALOMEDSImpl_GenericAttribute )
+
+//=======================================================================
+//function : GetID
+//purpose  :
+//=======================================================================
+const Standard_GUID& SALOMEDSImpl_AttributeString::GetID ()
+{
+  static Standard_GUID CommentID ("1808A12F-AD0E-4a6a-B58A-395DCF469FE9");
+  return CommentID;
+}   
+
+Handle(SALOMEDSImpl_AttributeString) SALOMEDSImpl_AttributeString::Set (const TDF_Label& L, 
+                                                                       const TCollection_ExtendedString& Val) 
+{
+  Handle(SALOMEDSImpl_AttributeString) A;
+  if (!L.FindAttribute(SALOMEDSImpl_AttributeString::GetID(), A)) {
+    A = new  SALOMEDSImpl_AttributeString(); 
+    L.AddAttribute(A);
+  }
+
+  A->SetValue(Val);     
+    
+  return A;
+}
+
+//=======================================================================
+//function : SetValue
+//purpose  :
+//=======================================================================
+void SALOMEDSImpl_AttributeString::SetValue (const TCollection_ExtendedString& S)
+{
+  CheckLocked();
+
+  if(myString == S) return;
+
+  Backup();
+
+  myString = S;
+  
+  SetModifyFlag(); //SRN: Mark the study as being modified, so it could be saved 
+}
+           
+
+//=======================================================================
+//function : ID
+//purpose  :
+//=======================================================================
+const Standard_GUID& SALOMEDSImpl_AttributeString::ID () const { return GetID(); } 
+
+//=======================================================================
+//function : NewEmpty
+//purpose  : 
+//=======================================================================
+Handle(TDF_Attribute) SALOMEDSImpl_AttributeString::NewEmpty () const
+{  
+  return new SALOMEDSImpl_AttributeString(); 
+}
+
+//=======================================================================
+//function : Restore
+//purpose  : 
+//=======================================================================
+void SALOMEDSImpl_AttributeString::Restore(const Handle(TDF_Attribute)& with) 
+{
+  myString = Handle(SALOMEDSImpl_AttributeString)::DownCast (with)->Value ();
+}
+
+//=======================================================================
+//function : Paste
+//purpose  : 
+//=======================================================================
+
+void SALOMEDSImpl_AttributeString::Paste (const Handle(TDF_Attribute)& into,
+                                          const Handle(TDF_RelocationTable)& RT) const
+{
+  Handle(SALOMEDSImpl_AttributeString)::DownCast (into)->SetValue(myString);
+}
diff --git a/src/SALOMEDSImpl/SALOMEDSImpl_AttributeString.hxx b/src/SALOMEDSImpl/SALOMEDSImpl_AttributeString.hxx
new file mode 100644 (file)
index 0000000..ec07111
--- /dev/null
@@ -0,0 +1,70 @@
+// Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+// 
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either 
+// version 2.1 of the License.
+// 
+// This library is distributed in the hope that it will be useful 
+// but WITHOUT ANY WARRANTY; without even the implied warranty of 
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public  
+// License along with this library; if not, write to the Free Software 
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+//  File   : SALOMEDSImpl_AttributeIOR.hxx
+//  Author : Sergey RUIN
+//  Module : SALOME
+
+#ifndef _SALOMEDSImpl_AttributeString_HeaderFile
+#define _SALOMEDSImpl_AttributeString_HeaderFile
+
+#include <Standard_DefineHandle.hxx>
+#include <TDF_Attribute.hxx>
+#include <TCollection_AsciiString.hxx>
+#include <TCollection_ExtendedString.hxx>
+#include <TDF_Label.hxx> 
+#include <Standard_GUID.hxx> 
+#include "SALOMEDSImpl_GenericAttribute.hxx"
+
+class Handle(TDF_Attribute);
+class Handle(TDF_RelocationTable);
+
+DEFINE_STANDARD_HANDLE( SALOMEDSImpl_AttributeString, SALOMEDSImpl_GenericAttribute )
+
+class SALOMEDSImpl_AttributeString : public SALOMEDSImpl_GenericAttribute 
+{
+private:
+
+ TCollection_ExtendedString myString;
+
+public:
+
+Standard_EXPORT static const Standard_GUID& GetID() ;
+
+Standard_EXPORT  SALOMEDSImpl_AttributeString() :SALOMEDSImpl_GenericAttribute("AttributeString") {}
+
+Standard_EXPORT  static Handle(SALOMEDSImpl_AttributeString) Set(const TDF_Label& L, const TCollection_ExtendedString& Val); 
+Standard_EXPORT  void SetValue (const TCollection_ExtendedString& S);
+Standard_EXPORT  TCollection_ExtendedString Value() const { return myString; }
+
+Standard_EXPORT  virtual TCollection_AsciiString Save() { return myString; }
+Standard_EXPORT  virtual void Load(const TCollection_AsciiString& theValue) { myString = theValue; }
+
+Standard_EXPORT  const Standard_GUID& ID() const;
+Standard_EXPORT  void Restore(const Handle(TDF_Attribute)& with) ;
+Standard_EXPORT  Handle_TDF_Attribute NewEmpty() const;
+Standard_EXPORT  void Paste(const Handle(TDF_Attribute)& into,const Handle(TDF_RelocationTable)& RT) const;
+
+Standard_EXPORT ~SALOMEDSImpl_AttributeString() {}
+
+public:
+  DEFINE_STANDARD_RTTI( SALOMEDSImpl_AttributeString )
+};
+
+#endif
index 118cdf3d81613d80e314b26c028be8d25a7ddd34..7850a71e088b93a9245c306e434b1d2d78183ad4 100644 (file)
@@ -64,6 +64,7 @@ public :
 #include "SALOMEDSImpl_AttributeFlags.hxx"
 #include "SALOMEDSImpl_AttributeGraphic.hxx"
 #include "SALOMEDSImpl_AttributeParameter.hxx"
+#include "SALOMEDSImpl_AttributeString.hxx"
 
 
 #define __AttributeTypeToGUIDForSObject \
@@ -95,7 +96,8 @@ public :
        if(theType == "AttributeFlags") return SALOMEDSImpl_AttributeFlags::GetID(); \
         if(theType == "AttributeGraphic") return SALOMEDSImpl_AttributeGraphic::GetID(); \
        if(theType == "AttributeReference") return SALOMEDSImpl_AttributeReference::GetID(); \
-       if(theType == "AttributeParameter") return SALOMEDSImpl_AttributeParameter::GetID();
+       if(theType == "AttributeParameter") return SALOMEDSImpl_AttributeParameter::GetID(); \
+        if(theType == "AttributeString") return SALOMEDSImpl_AttributeString::GetID();
 
 
 #define __FindOrCreateAttributeLocked(ClassName) if (strcmp(aTypeOfAttribute.ToCString(), #ClassName) == 0) { \
@@ -132,6 +134,7 @@ __FindOrCreateAttributeLocked(AttributeTableOfReal) \
 __FindOrCreateAttributeLocked(AttributeTableOfString) \
 __FindOrCreateAttributeLocked(AttributePythonObject) \
 __FindOrCreateAttributeLocked(AttributeParameter) \
+__FindOrCreateAttributeLocked(AttributeString) \
 __FindOrCreateAttribute(AttributePersistentRef) \
 __FindOrCreateAttribute(AttributeDrawable) \
 __FindOrCreateAttribute(AttributeSelectable) \