- if (myID->Get().Length() != 0 || feature() != theFeature) {
- boost::shared_ptr<Model_Data> aData =
- boost::dynamic_pointer_cast<Model_Data>(theFeature->data());
- myRef->Set(aData->label());
- myID->Set(""); // feature is identified by the empty ID
-
- static Events_ID anEvent = Events_Loop::eventByName(EVENT_FEATURE_UPDATED);
- Model_FeatureUpdatedMessage aMsg(feature(), anEvent);
- Events_Loop::loop()->send(aMsg);
+ if (theObject && (!myIsInitialized || myID->Get().Length() != 0 || object() != theObject)) {
+ std::shared_ptr<Model_Data> aData = std::dynamic_pointer_cast<Model_Data>(
+ theObject->data());
+ myRef->Set(aData->label().Father());
+ myID->Set(""); // feature is identified by the empty ID
+ owner()->data()->sendAttributeUpdated(this);