X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FHYDROData%2FHYDROData_Document.h;h=0701b884e9a353675ccc8c7a4ac8c8d57fb99f22;hb=f108c7fd8c3b2dbb8c263b14456a31f8dd1d0921;hp=fbda69941454765aba8e1be88e169ef2f871cc14;hpb=ea51c1575cfdc7e3ad0b8cc1db55d9d83626b12d;p=modules%2Fhydro.git diff --git a/src/HYDROData/HYDROData_Document.h b/src/HYDROData/HYDROData_Document.h index fbda6994..0701b884 100644 --- a/src/HYDROData/HYDROData_Document.h +++ b/src/HYDROData/HYDROData_Document.h @@ -6,6 +6,8 @@ #include +class QFile; + /** * Errors that could appear on document open/save actions. * If there is no error, it is "OK". @@ -39,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 Handle(HYDROData_Object)& theObject ); + //! 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 @@ -56,6 +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) @@ -109,6 +130,17 @@ protected: //! Returns the label where the objects are located (used by Iterator) TDF_Label LabelOfObjects(); +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, + MapOfTreatedObjects& theDumpedObjects, + const ObjectKind& theObjectKind ) const; + private: Handle(TDocStd_Document) myDoc; ///< OCAF document instance corresponding for keeping all persistent data int myTransactionsAfterSave; ///< number of transactions after the last "save" call, used for "IsModified" method