From: adv Date: Mon, 9 Sep 2013 07:54:14 +0000 (+0000) Subject: Get Document from object method added. X-Git-Tag: BR_hydro_v_0_1~57 X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=c5410d3d46ff6a4aad5bd6d4ec7673bf796e5f97;p=modules%2Fhydro.git Get Document from object method added. --- 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);