PAL10385: CreateAndDisplayGO does not work properly when reopening a study

This commit is contained in:
jfa 2005-10-25 10:09:35 +00:00
parent ea01f41ad9
commit 163fb83e85

View File

@ -111,13 +111,20 @@ void GEOM_Swig::createAndDisplayGO (const char* Entry)
CORBA::String_var aFatherIOR; CORBA::String_var aFatherIOR;
SALOMEDS::SComponent_var father = aStudy->FindComponent("GEOM"); SALOMEDS::SComponent_var father = aStudy->FindComponent("GEOM");
aStudyBuilder->DefineComponentInstance(father, Geom); if (father->_is_nil())
father->ComponentIOR(aFatherIOR); return;
if (!father->ComponentIOR(aFatherIOR)) {
aStudyBuilder->LoadWith(father, Geom);
father->ComponentIOR(aFatherIOR);
}
SALOMEDS::SObject_var fatherSF = SALOMEDS::SObject_var fatherSF =
aStudy->FindObjectID(ActiveStudy->getActiveStudyFrame()->entry()); aStudy->FindObjectID(ActiveStudy->getActiveStudyFrame()->entry());
SALOMEDS::SObject_var obj = aStudy->FindObjectID(myEntry.c_str()); SALOMEDS::SObject_var obj = aStudy->FindObjectID(myEntry.c_str());
if (obj->_is_nil())
return;
SALOMEDS::GenericAttribute_var anAttr; SALOMEDS::GenericAttribute_var anAttr;
SALOMEDS::AttributeIOR_var anIOR; SALOMEDS::AttributeIOR_var anIOR;
// Create new actor // Create new actor
@ -129,7 +136,7 @@ void GEOM_Swig::createAndDisplayGO (const char* Entry)
GEOM::GEOM_Object_var aShape = Geom->GetIORFromString(anIORValue); GEOM::GEOM_Object_var aShape = Geom->GetIORFromString(anIORValue);
TopoDS_Shape Shape = ShapeReader.GetShape(Geom,aShape); TopoDS_Shape Shape = ShapeReader.GetShape(Geom,aShape);
if (!obj->_is_nil()) { if (!Shape.IsNull()) {
if (obj->FindAttribute(anAttr, "AttributeName")) { if (obj->FindAttribute(anAttr, "AttributeName")) {
SALOMEDS::AttributeName_var aName = SALOMEDS::AttributeName::_narrow(anAttr); SALOMEDS::AttributeName_var aName = SALOMEDS::AttributeName::_narrow(anAttr);
CORBA::String_var aNameValue = aName->Value(); CORBA::String_var aNameValue = aName->Value();