Salome HOME
Issue 0020701: EDF SMESH : GetName Method of smeshDC.py
authorvsr <vsr@opencascade.com>
Fri, 12 Feb 2010 06:07:26 +0000 (06:07 +0000)
committervsr <vsr@opencascade.com>
Fri, 12 Feb 2010 06:07:26 +0000 (06:07 +0000)
src/SMESH_SWIG/smeshDC.py

index dafa111b09d4be2e83f520f143bc3d3ccbcb58af..cd769182d9988e27209938f9b91fb5cb0518330f 100644 (file)
@@ -99,6 +99,7 @@ from   SMESH import *
 import StdMeshers
 
 import SALOME
+import SALOMEDS
 
 # import NETGENPlugin module if possible
 noNETGENPlugin = 0
@@ -393,13 +394,17 @@ NO_NAME = "NoName"
 
 ## Gets object name
 def GetName(obj):
+    if isinstance(obj, SALOMEDS._objref_SObject):
+        return obj.GetName()
     ior  = salome.orb.object_to_string(obj)
-    sobj = salome.myStudy.FindObjectIOR(ior)
-    if sobj is None:
-        return NO_NAME
-    else:
-        attr = sobj.FindAttribute("AttributeName")[1]
-        return attr.Value()
+    studies = salome.myStudyManager.GetOpenStudies()
+    for sname in studies:
+        s = salome.myStudyManager.GetStudyByName(sname)
+        if not s: continue
+        sobj = s.FindObjectIOR(ior)
+        if not sobj: continue
+        return sobj.GetName()
+    raise RuntimeError, "Null or invalid object"
 
 ## Prints error message if a hypothesis was not assigned.
 def TreatHypoStatus(status, hypName, geomName, isAlgo):