]> SALOME platform Git repositories - modules/hydro.git/commitdiff
Salome HOME
Get Document from object method added.
authoradv <adv@opencascade.com>
Mon, 9 Sep 2013 07:54:14 +0000 (07:54 +0000)
committeradv <adv@opencascade.com>
Mon, 9 Sep 2013 07:54:14 +0000 (07:54 +0000)
src/HYDROData/HYDROData_Document.cxx
src/HYDROData/HYDROData_Document.h

index da06a2c8ba819b0fb09bcdf9daa06b6cd771fe55..665748a66b1863ebf8d52b2039cd71f4b7f37b93 100644 (file)
@@ -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 = 
index 28ac1f4133ccafc2cf9042fc7f9f79704a17e42d..0701b884e9a353675ccc8c7a4ac8c8d57fb99f22 100644 (file)
@@ -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);