Salome HOME
Update flag for calculation case during polyline changing.
[modules/hydro.git] / src / HYDROData / HYDROData_Document.h
index 1ec24ee7e11540fc86a1c47665f771660f690094..13bdffb007a9cdbe653e3d4065be3e46bf4ecf19 100644 (file)
@@ -2,13 +2,12 @@
 #define HYDROData_Document_HeaderFile
 
 #include <HYDROData.h>
-#include <HYDROData_Object.h>
+#include <HYDROData_Entity.h>
 
 #include <TDocStd_Document.hxx>
 
 class QFile;
 
-
 /**
  * Errors that could appear on document open/save actions.
  * If there is no error, it is "OK".
@@ -42,9 +41,17 @@ public:
   //! Returns the existing document or creates new if it is not exist
   HYDRODATA_EXPORT static Handle(HYDROData_Document) Document(const int theStudyID);
 
+  //! Returns the document by object
+  HYDRODATA_EXPORT static Handle(HYDROData_Document) Document( 
+    const TDF_Label& theObjectLabel );
+
   //! Returns true if data model contains document for this study
   HYDRODATA_EXPORT static bool HasDocument(const int theStudyID);
 
+  //! Get study id by document instance, if document doesn't exists return false
+  HYDRODATA_EXPORT static bool DocumentId( const Handle(HYDROData_Document)& theDocument,
+                                           int&                              theDocId );
+
   //! Loads the OCAF document from the file.
   //! \param theFileName full name of the file to load
   //! \param theStudyID identifier of the SALOME study to associate with loaded file
@@ -59,11 +66,17 @@ public:
   //! Removes document data
   HYDRODATA_EXPORT void Close();
 
+  // Returns name of document instance in python dump script
+  HYDRODATA_EXPORT QString GetDocPyName() const;
+
   //! Dump study document to Python script representation.
   //! \param theFileName full name of the file to store
   //! \returns true if document has been successfuly dumped
   HYDRODATA_EXPORT bool DumpToPython( const QString& theFileName ) const;
 
+  //! Dump model data to Python script representation.
+  HYDRODATA_EXPORT virtual QStringList DumpToPython( MapOfTreatedObjects& theTreatedObjects ) const;
+
   //! Starts a new operation (opens a tansaction)
   HYDRODATA_EXPORT void StartOperation();
   //! Finishes the previously started operation (closes the transaction)
@@ -97,7 +110,7 @@ public:
   //! Creates and locates in the document a new object
   //! \param theKind kind of the created object, can not be UNKNOWN
   //! \returns the created object
-  HYDRODATA_EXPORT Handle_HYDROData_Object CreateObject(const ObjectKind theKind);
+  HYDRODATA_EXPORT Handle(HYDROData_Entity) CreateObject(const ObjectKind theKind);
 
 protected:
 
@@ -119,10 +132,14 @@ protected:
 
 private:
   
+  // Dump header Python part in to file \c theFile
+  bool DumpToPython( QFile&               theFile,
+                     MapOfTreatedObjects& theTreatedObjects ) const;
+
   // Dump objects of type \c theObjectKind to file \c theFile
-  bool dumpPartitionToPython( QFile&                                  theFile,
-                              QMap<QString,Handle(HYDROData_Object)>& theDumpedObjects,
-                              const ObjectKind&                       theObjectKind ) const;
+  bool dumpPartitionToPython( QFile&               theFile,
+                              MapOfTreatedObjects& theDumpedObjects,
+                              const ObjectKind&    theObjectKind ) const;
 
 private:
   Handle(TDocStd_Document) myDoc; ///< OCAF document instance corresponding for keeping all persistent data