|
|
@@ -1,7 +1,7 @@
|
|
|
"""
|
|
|
Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
|
|
|
|
|
|
-Date: Fri Sep 15 11:39:26 2017
|
|
|
+Date: Fri Sep 15 11:45:03 2017
|
|
|
|
|
|
Model author: Yentl Van Tendeloo and Addis Gebremichael
|
|
|
Model name: Modelverse Visual Editor - Tkinter Version
|
|
|
@@ -5844,37 +5844,23 @@ class CanvasElement(RuntimeClassBase, SCCDWidget):
|
|
|
# state /update_mv
|
|
|
self.states["/update_mv"] = State(3, "/update_mv", self)
|
|
|
|
|
|
- # state /update_mv/init
|
|
|
- self.states["/update_mv/init"] = State(4, "/update_mv/init", self)
|
|
|
-
|
|
|
# state /update_mv/x
|
|
|
- self.states["/update_mv/x"] = State(5, "/update_mv/x", self)
|
|
|
+ self.states["/update_mv/x"] = State(4, "/update_mv/x", self)
|
|
|
self.states["/update_mv/x"].setEnter(self._update_mv_x_enter)
|
|
|
|
|
|
# state /update_mv/y
|
|
|
- self.states["/update_mv/y"] = State(6, "/update_mv/y", self)
|
|
|
+ self.states["/update_mv/y"] = State(5, "/update_mv/y", self)
|
|
|
self.states["/update_mv/y"].setEnter(self._update_mv_y_enter)
|
|
|
|
|
|
- # state /update_mv/targetX
|
|
|
- self.states["/update_mv/targetX"] = State(7, "/update_mv/targetX", self)
|
|
|
- self.states["/update_mv/targetX"].setEnter(self._update_mv_targetX_enter)
|
|
|
-
|
|
|
- # state /update_mv/targetY
|
|
|
- self.states["/update_mv/targetY"] = State(8, "/update_mv/targetY", self)
|
|
|
- self.states["/update_mv/targetY"].setEnter(self._update_mv_targetY_enter)
|
|
|
-
|
|
|
# add children
|
|
|
self.states[""].addChild(self.states["/main"])
|
|
|
self.states[""].addChild(self.states["/dragging"])
|
|
|
self.states[""].addChild(self.states["/update_mv"])
|
|
|
- self.states["/update_mv"].addChild(self.states["/update_mv/init"])
|
|
|
self.states["/update_mv"].addChild(self.states["/update_mv/x"])
|
|
|
self.states["/update_mv"].addChild(self.states["/update_mv/y"])
|
|
|
- self.states["/update_mv"].addChild(self.states["/update_mv/targetX"])
|
|
|
- self.states["/update_mv"].addChild(self.states["/update_mv/targetY"])
|
|
|
self.states[""].fixTree()
|
|
|
self.states[""].default_state = self.states["/main"]
|
|
|
- self.states["/update_mv"].default_state = self.states["/update_mv/init"]
|
|
|
+ self.states["/update_mv"].default_state = self.states["/update_mv/x"]
|
|
|
|
|
|
# transition /main
|
|
|
_main_0 = Transition(self, self.states["/main"], [self.states["/main"]])
|
|
|
@@ -5899,53 +5885,21 @@ class CanvasElement(RuntimeClassBase, SCCDWidget):
|
|
|
_dragging_1.setGuard(self._dragging_1_guard)
|
|
|
self.states["/dragging"].addTransition(_dragging_1)
|
|
|
|
|
|
- # transition /update_mv/init
|
|
|
- _update_mv_init_0 = Transition(self, self.states["/update_mv/init"], [self.states["/update_mv/x"]])
|
|
|
- _update_mv_init_0.setAction(self._update_mv_init_0_exec)
|
|
|
- _update_mv_init_0.setTrigger(None)
|
|
|
- _update_mv_init_0.setGuard(self._update_mv_init_0_guard)
|
|
|
- self.states["/update_mv/init"].addTransition(_update_mv_init_0)
|
|
|
- _update_mv_init_1 = Transition(self, self.states["/update_mv/init"], [self.states["/main"]])
|
|
|
- _update_mv_init_1.setTrigger(None)
|
|
|
- _update_mv_init_1.setGuard(self._update_mv_init_1_guard)
|
|
|
- self.states["/update_mv/init"].addTransition(_update_mv_init_1)
|
|
|
-
|
|
|
# transition /update_mv/x
|
|
|
_update_mv_x_0 = Transition(self, self.states["/update_mv/x"], [self.states["/update_mv/y"]])
|
|
|
_update_mv_x_0.setTrigger(Event("mv_response", None))
|
|
|
self.states["/update_mv/x"].addTransition(_update_mv_x_0)
|
|
|
|
|
|
# transition /update_mv/y
|
|
|
- _update_mv_y_0 = Transition(self, self.states["/update_mv/y"], [self.states["/update_mv/init"]])
|
|
|
+ _update_mv_y_0 = Transition(self, self.states["/update_mv/y"], [self.states["/main"]])
|
|
|
_update_mv_y_0.setTrigger(Event("mv_response", None))
|
|
|
- _update_mv_y_0.setGuard(self._update_mv_y_0_guard)
|
|
|
self.states["/update_mv/y"].addTransition(_update_mv_y_0)
|
|
|
- _update_mv_y_1 = Transition(self, self.states["/update_mv/y"], [self.states["/update_mv/targetX"]])
|
|
|
- _update_mv_y_1.setTrigger(Event("mv_response", None))
|
|
|
- _update_mv_y_1.setGuard(self._update_mv_y_1_guard)
|
|
|
- self.states["/update_mv/y"].addTransition(_update_mv_y_1)
|
|
|
-
|
|
|
- # transition /update_mv/targetX
|
|
|
- _update_mv_targetX_0 = Transition(self, self.states["/update_mv/targetX"], [self.states["/update_mv/targetY"]])
|
|
|
- _update_mv_targetX_0.setTrigger(Event("mv_response", None))
|
|
|
- self.states["/update_mv/targetX"].addTransition(_update_mv_targetX_0)
|
|
|
-
|
|
|
- # transition /update_mv/targetY
|
|
|
- _update_mv_targetY_0 = Transition(self, self.states["/update_mv/targetY"], [self.states["/update_mv/init"]])
|
|
|
- _update_mv_targetY_0.setTrigger(Event("mv_response", None))
|
|
|
- self.states["/update_mv/targetY"].addTransition(_update_mv_targetY_0)
|
|
|
|
|
|
def _update_mv_x_enter(self):
|
|
|
- self.big_step.outputEventOM(Event("broad_cast", None, [self, Event("mv_request", None, ['attr_assign', [current_rendered_model, self.tmp['mv_id'], 'x', self.tmp['x']]])]))
|
|
|
+ self.big_step.outputEventOM(Event("broad_cast", None, [self, Event("mv_request", None, ['attr_assign', [current_rendered_model, self.group_element, 'x', self.coordinates[0]]])]))
|
|
|
|
|
|
def _update_mv_y_enter(self):
|
|
|
- self.big_step.outputEventOM(Event("broad_cast", None, [self, Event("mv_request", None, ['attr_assign', [current_rendered_model, self.tmp['mv_id'], 'y', self.tmp['y']]])]))
|
|
|
-
|
|
|
- def _update_mv_targetX_enter(self):
|
|
|
- self.big_step.outputEventOM(Event("broad_cast", None, [self, Event("mv_request", None, ['attr_assign', [current_rendered_model, self.tmp['mv_id'], 'targetX', self.tmp['targetX']]])]))
|
|
|
-
|
|
|
- def _update_mv_targetY_enter(self):
|
|
|
- self.big_step.outputEventOM(Event("broad_cast", None, [self, Event("mv_request", None, ['attr_assign', [current_rendered_model, self.tmp['mv_id'], 'targetY', self.tmp['targetY']]])]))
|
|
|
+ self.big_step.outputEventOM(Event("broad_cast", None, [self, Event("mv_request", None, ['attr_assign', [current_rendered_model, self.group_element, 'y', self.coordinates[1]]])]))
|
|
|
|
|
|
def _main_0_exec(self, parameters):
|
|
|
element = parameters[0]
|
|
|
@@ -6009,32 +5963,11 @@ class CanvasElement(RuntimeClassBase, SCCDWidget):
|
|
|
delta_y = self.original_coords[1] - self.last_y
|
|
|
|
|
|
self.coordinates = self.coordinates[0] - delta_x, self.coordinates[1] - delta_y
|
|
|
- self.to_update = dict(self.elements)
|
|
|
|
|
|
def _dragging_1_guard(self, parameters):
|
|
|
ID = parameters[0]
|
|
|
return id(self) == ID
|
|
|
|
|
|
- def _update_mv_init_0_exec(self, parameters):
|
|
|
- tk_id, self.tmp["mv_id"] = self.to_update.popitem()
|
|
|
- self.tmp['x'], self.tmp['y'] = self.containing_canvas.coords(tk_id)[:2]
|
|
|
- if self.containing_canvas.type(tk_id) == "line":
|
|
|
- self.tmp['targetX'], self.tmp['targetY'] = self.containing_canvas.coords(tk_id)[2:4]
|
|
|
- else:
|
|
|
- self.tmp['targetX'], self.tmp['targetY'] = None, None
|
|
|
-
|
|
|
- def _update_mv_init_0_guard(self, parameters):
|
|
|
- return len(self.to_update) > 0
|
|
|
-
|
|
|
- def _update_mv_init_1_guard(self, parameters):
|
|
|
- return len(self.to_update) == 0
|
|
|
-
|
|
|
- def _update_mv_y_0_guard(self, parameters):
|
|
|
- return self.tmp['targetX'] is None
|
|
|
-
|
|
|
- def _update_mv_y_1_guard(self, parameters):
|
|
|
- return self.tmp['targetX'] is not None
|
|
|
-
|
|
|
def initializeStatechart(self):
|
|
|
# enter default state
|
|
|
self.default_targets = self.states["/main"].getEffectiveTargetStates()
|