X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FHYDROData%2FHYDROData_Document.h;h=13bdffb007a9cdbe653e3d4065be3e46bf4ecf19;hb=5b4f8c7000189059d1c32f1982e24ca998d994fe;hp=fbda69941454765aba8e1be88e169ef2f871cc14;hpb=ea51c1575cfdc7e3ad0b8cc1db55d9d83626b12d;p=modules%2Fhydro.git diff --git a/src/HYDROData/HYDROData_Document.h b/src/HYDROData/HYDROData_Document.h index fbda6994..13bdffb0 100644 --- a/src/HYDROData/HYDROData_Document.h +++ b/src/HYDROData/HYDROData_Document.h @@ -2,10 +2,12 @@ #define HYDROData_Document_HeaderFile #include -#include +#include #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 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 @@ -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) @@ -89,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: @@ -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