Salome HOME
PAL5887. In Restore(), create field convertor for imported timestamp
authoreap <eap@opencascade.com>
Thu, 10 Nov 2005 12:37:59 +0000 (12:37 +0000)
committereap <eap@opencascade.com>
Thu, 10 Nov 2005 12:37:59 +0000 (12:37 +0000)
src/VISU_I/VISU_Result_i.cc

index 15cf901e109f38e87b12dbce24ab33c5bbd6ee0c..167c412b8879e0d8dedb7e0edf1e0c40dd8f32f6 100644 (file)
@@ -543,8 +543,15 @@ Restore(SALOMEDS::SObject_ptr theSObject,
       SALOMEDS::StudyBuilder_var aStudyBuilder = myStudyDocument->NewBuilder();
       SALOMEDS::Driver_var aDriver = SALOMEDS::Driver::_narrow(aEngComp);
       aStudyBuilder->LoadWith(aCompRefSObj, aDriver);
-      if (strcmp(aDataType, "MED") == 0)
-       myInput = CreateMEDConvertor(aTargetRefSObj);
+      if (strcmp(aDataType, "MED") == 0) {
+        // create field or MED converter
+        CORBA::Object_var aMedObject = VISU::SObjectToObject(aTargetRefSObj);
+        SALOME_MED::FIELD_var aField = SALOME_MED::FIELD::_narrow(aMedObject);
+        if(!CORBA::is_nil(aField))
+          myInput = CreateMEDFieldConvertor(aField);
+        else
+          myInput = CreateMEDConvertor(aTargetRefSObj);
+      }
       else
        throw std::runtime_error("GetInput - There is no convertor for the aDataType !!!");
     } else {