#include "XGUI_ContextMenuMgr.h"
#include "XGUI_ModuleConnector.h"
-#include <Model_Events.h>
+#include <ModelAPI_Events.h>
#include <ModelAPI_PluginManager.h>
#include <ModelAPI_Feature.h>
#include <ModelAPI_Data.h>
// Process creation of Part
if (theMessage->eventID() == Events_Loop::loop()->eventByName(EVENT_OBJECT_CREATED)) {
- const Model_ObjectUpdatedMessage* aUpdMsg = dynamic_cast<const Model_ObjectUpdatedMessage*>(theMessage);
+ const ModelAPI_ObjectUpdatedMessage* aUpdMsg = dynamic_cast<const ModelAPI_ObjectUpdatedMessage*>(theMessage);
onFeatureCreatedMsg(aUpdMsg);
return;
}
// Redisplay feature
if (theMessage->eventID() == Events_Loop::loop()->eventByName(EVENT_OBJECT_TO_REDISPLAY)) {
- const Model_ObjectUpdatedMessage* aUpdMsg = dynamic_cast<const Model_ObjectUpdatedMessage*>(theMessage);
+ const ModelAPI_ObjectUpdatedMessage* aUpdMsg = dynamic_cast<const ModelAPI_ObjectUpdatedMessage*>(theMessage);
onFeatureRedisplayMsg(aUpdMsg);
return;
}
//Update property panel on corresponding message. If there is no current operation (no
//property panel), or received message has different feature to the current - do nothing.
if (theMessage->eventID() == Events_Loop::loop()->eventByName(EVENT_OBJECT_UPDATED)) {
- const Model_ObjectUpdatedMessage* anUpdateMsg =
- dynamic_cast<const Model_ObjectUpdatedMessage*>(theMessage);
+ const ModelAPI_ObjectUpdatedMessage* anUpdateMsg =
+ dynamic_cast<const ModelAPI_ObjectUpdatedMessage*>(theMessage);
onFeatureUpdatedMsg(anUpdateMsg);
return;
}
if (theMessage->eventID() == Events_Loop::loop()->eventByName(EVENT_OBJECT_DELETED)) {
- const Model_ObjectDeletedMessage* aDelMsg =
- dynamic_cast<const Model_ObjectDeletedMessage*>(theMessage);
+ const ModelAPI_ObjectDeletedMessage* aDelMsg =
+ dynamic_cast<const ModelAPI_ObjectDeletedMessage*>(theMessage);
onObjectDeletedMsg(aDelMsg);
return;
}
}
//******************************************************
-void XGUI_Workshop::onFeatureUpdatedMsg(const Model_ObjectUpdatedMessage* theMsg)
+void XGUI_Workshop::onFeatureUpdatedMsg(const ModelAPI_ObjectUpdatedMessage* theMsg)
{
std::set<ObjectPtr> aFeatures = theMsg->objects();
if (myOperationMgr->hasOperation())
}
//******************************************************
-void XGUI_Workshop::onFeatureRedisplayMsg(const Model_ObjectUpdatedMessage* theMsg)
+void XGUI_Workshop::onFeatureRedisplayMsg(const ModelAPI_ObjectUpdatedMessage* theMsg)
{
std::set<ObjectPtr> aObjects = theMsg->objects();
std::set<ObjectPtr>::const_iterator aIt;
ObjectPtr aObj = (*aIt);
ResultPtr aRes = boost::dynamic_pointer_cast<ModelAPI_Result>(aObj);
if (aRes) {
- isDisplayed = myDisplayer->redisplay(aRes, false);
+ if (aRes->data())
+ isDisplayed = myDisplayer->redisplay(aRes, false);
+ else {
+ myDisplayer->erase(aRes, false);
+ isDisplayed = true;
+ }
}
}
if (isDisplayed)
}
//******************************************************
-void XGUI_Workshop::onFeatureCreatedMsg(const Model_ObjectUpdatedMessage* theMsg)
+void XGUI_Workshop::onFeatureCreatedMsg(const ModelAPI_ObjectUpdatedMessage* theMsg)
{
std::set<ObjectPtr> aFeatures = theMsg->objects();
}
//******************************************************
-void XGUI_Workshop::onObjectDeletedMsg(const Model_ObjectDeletedMessage* theMsg)
+void XGUI_Workshop::onObjectDeletedMsg(const ModelAPI_ObjectDeletedMessage* theMsg)
{
//std::set<ObjectPtr> aFeatures = theMsg->objects();
}
{
PluginManagerPtr aMgr = ModelAPI_PluginManager::get();
if (theObj) {
- DocumentPtr aPartDoc = theObj->document();
- if (aPartDoc)
- aMgr->setCurrentDocument(aPartDoc);
- } else {
- aMgr->setCurrentDocument(aMgr->rootDocument());
- }
+ ResultPartPtr aPart = boost::dynamic_pointer_cast<ModelAPI_ResultPart>(theObj);
+ if (aPart) {
+ DocumentPtr aPartDoc = aPart->partDoc();
+ if (aPartDoc) {
+ aMgr->setCurrentDocument(aPartDoc);
+ return;
+ }
+ }
+ }
+ aMgr->setCurrentDocument(aMgr->rootDocument());
}
//******************************************************
QList<ObjectPtr> aObjects = mySelector->selection()->selectedObjects();
if ((theId == "ACTIVATE_PART_CMD") && (aObjects.size() > 0)) {
ResultPartPtr aPart = boost::dynamic_pointer_cast<ModelAPI_ResultPart>(aObjects.first());
- if (aPart)
- activatePart(aPart);
+ activatePart(aPart);
} else if (theId == "DEACTIVATE_PART_CMD")
activatePart(ResultPartPtr());
else if (theId == "DELETE_CMD")