X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FHYDROData%2FHYDROData_Document.h;h=13bdffb007a9cdbe653e3d4065be3e46bf4ecf19;hb=5b4f8c7000189059d1c32f1982e24ca998d994fe;hp=00a907299603744f177bd5464bd449e20aa986d6;hpb=2728f2367cc657e6a4c900ca221263ee9add26fd;p=modules%2Fhydro.git diff --git a/src/HYDROData/HYDROData_Document.h b/src/HYDROData/HYDROData_Document.h index 00a90729..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,10 +66,22 @@ 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) - HYDRODATA_EXPORT void CommitOperation(); + HYDRODATA_EXPORT void CommitOperation( + const TCollection_ExtendedString& theName = TCollection_ExtendedString()); //! Aborts the operation HYDRODATA_EXPORT void AbortOperation(); //! Returns true if operation has been started, but not yet finished or aborted @@ -69,17 +91,26 @@ public: //! Returns True if there are available Undos HYDRODATA_EXPORT bool CanUndo(); + //! Returns a list of stored undo actions + HYDRODATA_EXPORT const TDF_DeltaList& GetUndos(); + //! Clears a list of stored undo actions + HYDRODATA_EXPORT void ClearUndos(); //! Undoes last operation HYDRODATA_EXPORT void Undo(); + //! Returns True if there are available Redos HYDRODATA_EXPORT bool CanRedo(); + //! Returns a list of stored undo actions + HYDRODATA_EXPORT const TDF_DeltaList& GetRedos(); + //! Clears a list of stored undo actions + HYDRODATA_EXPORT void ClearRedos(); //! Redoes last operation HYDRODATA_EXPORT void Redo(); //! 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: @@ -99,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