+ // Update tree items if they are expanded
+ if (needUpdate) {
+ aTreeView->viewport()->repaint(aTreeView->viewport()->rect());
+ }
+ } else if (theMessage->eventID() == Events_Loop::loop()->eventByName(EVENT_OBJECT_CREATED)) {
+ std::shared_ptr<ModelAPI_ObjectUpdatedMessage> aUpdMsg =
+ std::dynamic_pointer_cast<ModelAPI_ObjectUpdatedMessage>(theMessage);
+ std::set<ObjectPtr> aObjects = aUpdMsg->objects();
+
+ ObjectPtr aConstrObj;
+ ObjectPtr aResultObj;
+ std::set<ObjectPtr>::const_iterator aIt;
+ DocumentPtr aRootDoc = ModelAPI_Session::get()->moduleDocument();
+ for (aIt = aObjects.begin(); aIt != aObjects.end(); ++aIt) {
+ ObjectPtr aObject = (*aIt);
+ if ((!aResultObj.get()) && (aObject->groupName() == ModelAPI_ResultBody::group())
+ && (aObject->document() != aRootDoc))
+ aResultObj = aObject;
+ if ((!aConstrObj.get()) && (aObject->groupName() == ModelAPI_ResultConstruction::group())
+ && (aObject->document() != aRootDoc))
+ aConstrObj = aObject;
+ if (aResultObj.get() && aConstrObj.get())
+ break;
+ }
+
+ if (aResultObj.get() || aConstrObj.get()) {
+ XGUI_Workshop* aWorkshop = getWorkshop();
+ XGUI_DataTree* aTreeView = aWorkshop->objectBrowser()->treeView();
+ XGUI_DataModel* aDataModel = aWorkshop->objectBrowser()->dataModel();
+
+ if (aResultObj.get()) {
+ EXPAND_PARENT(aResultObj)
+ }
+ if (aConstrObj.get()) {
+ EXPAND_PARENT(aConstrObj)
+ }
+ }