(aTheObjLab.IsNull() && aDoc->objects()->object(aRefIter.Value()) != NULL)) {
myRef->Append(aRefIter.Value());
myIDs->Append(anIDIter.Value());
- } else if (aTheObjLab.IsNull() && aDoc->objects()->object(aRefIter.Value()) != NULL) {
+ } else {
aOneisDeleted = true;
}
}
TDataStd_ListIteratorOfListOfExtendedString anIDIter(anIDList);
for (; aLIter.More(); aLIter.Next(), anIDIter.Next()) {
ObjectPtr anObj;
- if (!aLIter.Value().IsNull())
+ if (!aLIter.Value().IsNull()) {
anObj = aDoc->objects()->object(aLIter.Value());
- aResult.push_back(std::pair<ObjectPtr, AttributePtr>(anObj,
- anObj->data()->attribute(TCollection_AsciiString(anIDIter.Value()).ToCString())));
+ aResult.push_back(std::pair<ObjectPtr, AttributePtr>(anObj,
+ anObj->data()->attribute(TCollection_AsciiString(anIDIter.Value()).ToCString())));
+ } else {
+ aResult.push_back(std::pair<ObjectPtr, AttributePtr>(ObjectPtr(), AttributePtr()));
+ }
}
}
return aResult;
aOneisDeleted = true;
ObjectPtr anObj = aDoc->objects()->object(aRefIter.Value());
if (anObj.get()) {
- myRef->Remove(aRefIter.Value());
REMOVE_BACK_REF(anObj);
}
}
Model_AttributeRefAttrList::Model_AttributeRefAttrList(TDF_Label& theLabel)
{
- myIsInitialized = theLabel.FindAttribute(TDataStd_ReferenceList::GetID(), myRef) == Standard_True;
+ myLab = theLabel;
+ reinit();
+}
+
+void Model_AttributeRefAttrList::reinit()
+{
+ myIsInitialized = myLab.FindAttribute(TDataStd_ReferenceList::GetID(), myRef) == Standard_True;
if (!myIsInitialized) {
- myRef = TDataStd_ReferenceList::Set(theLabel);
- myIDs = TDataStd_ExtStringList::Set(theLabel);
+ myRef = TDataStd_ReferenceList::Set(myLab);
+ myIDs = TDataStd_ExtStringList::Set(myLab);
} else {
- theLabel.FindAttribute(TDataStd_ExtStringList::GetID(), myIDs);
+ myLab.FindAttribute(TDataStd_ExtStringList::GetID(), myIDs);
}
}