|
From: <ob...@us...> - 2013-05-25 17:55:00
|
Revision: 1815
http://sourceforge.net/p/scstudio/code/1815
Author: obouda
Date: 2013-05-25 17:54:57 +0000 (Sat, 25 May 2013)
Log Message:
-----------
generalized Visio extractors from MessageEvent to Event
Modified Paths:
--------------
branches/conditions/src/view/visio/addon/extract.cpp
branches/conditions/src/view/visio/addon/extract.h
Modified: branches/conditions/src/view/visio/addon/extract.cpp
===================================================================
--- branches/conditions/src/view/visio/addon/extract.cpp 2013-05-25 17:20:58 UTC (rev 1814)
+++ branches/conditions/src/view/visio/addon/extract.cpp 2013-05-25 17:54:57 UTC (rev 1815)
@@ -344,13 +344,13 @@
assert_no_FromConnects(shape->Shapes->Item[i]);
}
-CoregionAreaPtr CDrawingExtractor::create_coregion_area(MessageEventPointMap& events,
+CoregionAreaPtr CDrawingExtractor::create_coregion_area(EventPointMap& events,
const MscMessageMap& messages, Visio::IVShapePtr coregion)
{
Visio::IVPagePtr vsoPage = coregion->ContainingPage;
std::wstring page_name = (const wchar_t*)vsoPage->Name;
- typedef std::multimap<SPoint,MessageEventPtr> TCoregionEvents;
+ typedef std::multimap<SPoint,EventPtr> TCoregionEvents;
TCoregionEvents coregion_events; // events in this coregion
std::set<long> relations;
@@ -368,7 +368,7 @@
// shape connected to this point
Visio::IVShapePtr shape = connect->FromSheet;
- MessageEventPtr event;
+ EventPtr event;
// connect the message
TShapeType type = get_shape_type(shape);
@@ -380,16 +380,17 @@
if(message == NULL)
continue;
// create coregion event
- event = area->add_event(new MessageEvent());
- event->set_position(ConvertEventPoint(coregion, pos));
+ MessageEventPtr msg_event = area->add_event(new MessageEvent());
+ event = msg_event;
+ msg_event->set_position(ConvertEventPoint(coregion, pos));
// connect the message
switch(connect->FromPart)
{
case visBegin:
- message->glue_send_event(event);
+ message->glue_send_event(msg_event);
break;
case visEnd:
- message->glue_receive_event(event);
+ message->glue_receive_event(msg_event);
break;
default:
@@ -407,11 +408,12 @@
if(message == NULL)
continue;
// create coregion event
- event = area->add_event(new MessageEvent());
- event->set_position(ConvertEventPoint(coregion, pos));
+ MessageEventPtr msg_event = area->add_event(new MessageEvent());
+ event = msg_event;
+ msg_event->set_position(ConvertEventPoint(coregion, pos));
// connect the message
if(connect->FromPart == visBegin)
- message->glue_event(event);
+ message->glue_event(msg_event);
else
{
PrintError(stringize() << page_name << ": "
@@ -427,11 +429,12 @@
if(message == NULL)
continue;
// create coregion event
- event = area->add_event(new MessageEvent());
- event->set_position(ConvertEventPoint(coregion, pos));
+ MessageEventPtr msg_event = area->add_event(new MessageEvent());
+ event = msg_event;
+ msg_event->set_position(ConvertEventPoint(coregion, pos));
// connect the message
if(connect->FromPart == visEnd)
- message->glue_event(event);
+ message->glue_event(msg_event);
else
{
PrintError(stringize() << page_name << ": "
@@ -529,8 +532,10 @@
{
// the position is determined from the arrow
if(connect1->FromPart == visBegin && connect2->FromPart == visEnd)
+ // FIXME: typecasting to CoregionArea and adding the same object as an event?
dynamic_cast<CoregionArea*>(event1->second.get())->add_successor_rel(event1->second.get(), event2->second.get());
else if(connect2->FromPart == visBegin && connect1->FromPart == visEnd)
+ // FIXME: typecasting to CoregionArea and adding the same object as an event?
dynamic_cast<CoregionArea*>(event2->second.get())->add_successor_rel(event2->second.get(), event1->second.get());
else
{
@@ -573,7 +578,7 @@
m_msc_cache[pageId] = bmsc;
// temporary mappers Visio shape-id --> msc.h
- MessageEventPointMap events; // all events in the drawing
+ EventPointMap events; // all events in the drawing
std::map<long,InstancePtr> instances;
MscMessageMap messages;
TimeRelationEventMap time_relations;
@@ -949,7 +954,7 @@
else if(epos->event_type == SStrictOrder::ET_INCOMING)
message->glue_receive_event(event);
- events.insert(std::make_pair<SPoint,MessageEventPtr>(point_to_page(instance, epos->event_pos), event));
+ events.insert(std::make_pair<SPoint,EventPtr>(point_to_page(instance, epos->event_pos), event));
break;
}
@@ -981,7 +986,7 @@
event->set_position(ConvertEventPoint(instance, epos->event_pos));
message->glue_event(event);
- events.insert(std::make_pair<SPoint,MessageEventPtr>(point_to_page(instance, epos->event_pos), event));
+ events.insert(std::make_pair<SPoint,EventPtr>(point_to_page(instance, epos->event_pos), event));
break;
}
@@ -1074,13 +1079,13 @@
point_a.m_x = shape->CellsSRC[visSectionObject][visRowXForm1D][vis1DBeginX]->Result[0];
point_a.m_y = shape->CellsSRC[visSectionObject][visRowXForm1D][vis1DBeginY]->Result[0];
// find event at point a
- MessageEventPointMap::iterator event_a = events.find(point_a);
+ EventPointMap::iterator event_a = events.find(point_a);
SPoint point_b;
point_b.m_x = shape->CellsSRC[visSectionObject][visRowXForm1D][vis1DEndX]->Result[0];
point_b.m_y = shape->CellsSRC[visSectionObject][visRowXForm1D][vis1DEndY]->Result[0];
// find event at point b
- MessageEventPointMap::iterator event_b = events.find(point_b);
+ EventPointMap::iterator event_b = events.find(point_b);
if(event_a == events.end() || event_b == events.end())
{
@@ -1113,7 +1118,7 @@
point.m_x = shape->CellsSRC[visSectionObject][visRowXForm1D][vis1DBeginX]->Result[0];
point.m_y = shape->CellsSRC[visSectionObject][visRowXForm1D][vis1DBeginY]->Result[0];
// find event at the point
- MessageEventPointMap::iterator event = events.find(point);
+ EventPointMap::iterator event = events.find(point);
if(event != events.end())
{
@@ -1138,7 +1143,7 @@
point.m_x = shape->CellsSRC[visSectionObject][visRowXForm1D][vis1DBeginX]->Result[0];
point.m_y = shape->CellsSRC[visSectionObject][visRowXForm1D][vis1DBeginY]->Result[0];
// find event at the point
- MessageEventPointMap::iterator event = events.find(point);
+ EventPointMap::iterator event = events.find(point);
if(event != events.end())
{
Modified: branches/conditions/src/view/visio/addon/extract.h
===================================================================
--- branches/conditions/src/view/visio/addon/extract.h 2013-05-25 17:20:58 UTC (rev 1814)
+++ branches/conditions/src/view/visio/addon/extract.h 2013-05-25 17:54:57 UTC (rev 1815)
@@ -162,7 +162,7 @@
// event at given page coordinates
// contains the sematically first event, if multiple events are attached
- typedef std::map<SPoint,MessageEventPtr> MessageEventPointMap;
+ typedef std::map<SPoint,EventPtr> EventPointMap;
typedef std::map<long,MscMessagePtr> MscMessageMap;
typedef std::map<long,TimeRelationEventPtr> TimeRelationEventMap;
@@ -179,7 +179,7 @@
}
//! process the given coregion and build a relevant CoregionArea
- CoregionAreaPtr create_coregion_area(MessageEventPointMap& events, const MscMessageMap& messages,
+ CoregionAreaPtr create_coregion_area(EventPointMap& events, const MscMessageMap& messages,
Visio::IVShapePtr coregion);
struct SStrictOrder
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|