Salome HOME
The data model has been rolled back to previous version.
[modules/hydro.git] / src / HYDROData / HYDROData_Document.cxx
index da06a2c8ba819b0fb09bcdf9daa06b6cd771fe55..7d1a12552c9a37fe957777ba17e695a4e2625949 100644 (file)
@@ -37,6 +37,41 @@ Handle(HYDROData_Document) HYDROData_Document::Document(const int theStudyID)
   return aResult;
 }
 
+Handle(HYDROData_Document) HYDROData_Document::Document(
+  const TDF_Label& theObjectLabel )
+{
+  Handle(HYDROData_Document) aResDoc;
+  if ( theObjectLabel.IsNull() )
+    return aResDoc;
+
+  Handle(TDocStd_Document) anObjDoc;
+  try
+  {
+    anObjDoc = TDocStd_Document::Get( theObjectLabel );
+  }
+  catch( ... )
+  {
+  }
+
+  if ( anObjDoc.IsNull() )
+    return aResDoc;
+
+  HYDROData_Application* anApp = HYDROData_Application::GetApplication();
+
+  DataMapOfStudyIDDocument::Iterator aMapIt( anApp->myDocuments );
+  for ( ; aMapIt.More(); aMapIt.Next() )
+  {
+    Handle(HYDROData_Document) anAppDoc = aMapIt.Value();
+    if ( anAppDoc.IsNull() || anAppDoc->myDoc != anObjDoc )
+      continue;
+
+    aResDoc = anAppDoc;
+    break;
+  }
+
+  return aResDoc;
+}
+
 bool HYDROData_Document::HasDocument(const int theStudyID)
 {
   Handle(HYDROData_Document) aResult = 
@@ -162,6 +197,9 @@ bool HYDROData_Document::DumpToPython( const QString& theFileName ) const
   aRes = aRes && dumpPartitionToPython( aFile, aTreatedObjects, KIND_IMAGE      );
   aRes = aRes && dumpPartitionToPython( aFile, aTreatedObjects, KIND_POLYLINE   );
   aRes = aRes && dumpPartitionToPython( aFile, aTreatedObjects, KIND_BATHYMETRY );
+  aRes = aRes && dumpPartitionToPython( aFile, aTreatedObjects, KIND_ALTITUDE );
+  aRes = aRes && dumpPartitionToPython( aFile, aTreatedObjects, KIND_IMMERSIBLE_ZONE );
+  aRes = aRes && dumpPartitionToPython( aFile, aTreatedObjects, KIND_CALCULATION );
 
   return aRes;
 }
@@ -191,6 +229,8 @@ QStringList HYDROData_Document::DumpToPython( MapOfTreatedObjects& theTreatedObj
   QStringList aResScript;
 
   aResScript << QString( "from HYDROData import *" );
+  aResScript << QString( "from PyQt4.QtCore import *" );
+  aResScript << QString( "from PyQt4.QtGui import *" );
   aResScript << QString( "" );
   aResScript << QString( "%1 = HYDROData_Document.Document( %2 );" ).arg( aDocName ).arg( aDocId );
 
@@ -211,7 +251,7 @@ bool HYDROData_Document::dumpPartitionToPython( QFile&               theFile,
   HYDROData_Iterator anIterator( this, theObjectKind );
   for( ; anIterator.More(); anIterator.Next() )
   {
-    Handle(HYDROData_Object) anObject = anIterator.Current();
+    Handle(HYDROData_Entity) anObject = anIterator.Current();
     if ( anObject.IsNull() )
       continue;
 
@@ -313,7 +353,7 @@ void HYDROData_Document::Redo()
   myTransactionsAfterSave++;
 }
 
-Handle_HYDROData_Object HYDROData_Document::CreateObject(const ObjectKind theKind)
+Handle(HYDROData_Entity) HYDROData_Document::CreateObject(const ObjectKind theKind)
 {
   return HYDROData_Iterator::CreateObject(this, theKind);
 }