From c5410d3d46ff6a4aad5bd6d4ec7673bf796e5f97 Mon Sep 17 00:00:00 2001 From: adv Date: Mon, 9 Sep 2013 07:54:14 +0000 Subject: [PATCH] Get Document from object method added. --- src/HYDROData/HYDROData_Document.cxx | 35 ++++++++++++++++++++++++++++ src/HYDROData/HYDROData_Document.h | 4 ++++ 2 files changed, 39 insertions(+) diff --git a/src/HYDROData/HYDROData_Document.cxx b/src/HYDROData/HYDROData_Document.cxx index da06a2c8..665748a6 100644 --- a/src/HYDROData/HYDROData_Document.cxx +++ b/src/HYDROData/HYDROData_Document.cxx @@ -37,6 +37,41 @@ Handle(HYDROData_Document) HYDROData_Document::Document(const int theStudyID) return aResult; } +Handle(HYDROData_Document) HYDROData_Document::Document( + const Handle(HYDROData_Object)& theObject ) +{ + Handle(HYDROData_Document) aResDoc; + if ( theObject.IsNull() ) + return aResDoc; + + Handle(TDocStd_Document) anObjDoc; + try + { + anObjDoc = TDocStd_Document::Get( theObject->Label() ); + } + 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 = diff --git a/src/HYDROData/HYDROData_Document.h b/src/HYDROData/HYDROData_Document.h index 28ac1f41..0701b884 100644 --- a/src/HYDROData/HYDROData_Document.h +++ b/src/HYDROData/HYDROData_Document.h @@ -41,6 +41,10 @@ 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); -- 2.39.2