|
@@ -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: Mon Oct 30 10:35:31 2017
|
|
|
+Date: Mon Oct 30 11:26:57 2017
|
|
|
|
|
|
Model author: Yentl Van Tendeloo
|
|
|
Model name: Modelverse Visual Editor - Tkinter Version
|
|
@@ -1017,21 +1017,32 @@ class Modelverse(RuntimeClassBase):
|
|
|
|
|
|
# state /initialized/behaviour/going_manual
|
|
|
self.states["/initialized/behaviour/going_manual"] = State(120, "/initialized/behaviour/going_manual", self)
|
|
|
- self.states["/initialized/behaviour/going_manual"].setEnter(self._initialized_behaviour_going_manual_enter)
|
|
|
+
|
|
|
+ # state /initialized/behaviour/going_manual/init
|
|
|
+ self.states["/initialized/behaviour/going_manual/init"] = State(121, "/initialized/behaviour/going_manual/init", self)
|
|
|
+ self.states["/initialized/behaviour/going_manual/init"].setEnter(self._initialized_behaviour_going_manual_init_enter)
|
|
|
+
|
|
|
+ # state /initialized/behaviour/going_manual/search
|
|
|
+ self.states["/initialized/behaviour/going_manual/search"] = State(122, "/initialized/behaviour/going_manual/search", self)
|
|
|
+ self.states["/initialized/behaviour/going_manual/search"].setEnter(self._initialized_behaviour_going_manual_search_enter)
|
|
|
+
|
|
|
+ # state /initialized/behaviour/going_manual/OK
|
|
|
+ self.states["/initialized/behaviour/going_manual/OK"] = State(123, "/initialized/behaviour/going_manual/OK", self)
|
|
|
+ self.states["/initialized/behaviour/going_manual/OK"].setEnter(self._initialized_behaviour_going_manual_OK_enter)
|
|
|
|
|
|
# state /initialized/behaviour/going_scripted
|
|
|
- self.states["/initialized/behaviour/going_scripted"] = State(121, "/initialized/behaviour/going_scripted", self)
|
|
|
+ self.states["/initialized/behaviour/going_scripted"] = State(124, "/initialized/behaviour/going_scripted", self)
|
|
|
self.states["/initialized/behaviour/going_scripted"].setEnter(self._initialized_behaviour_going_scripted_enter)
|
|
|
|
|
|
# state /initialized/behaviour/leaving_manual
|
|
|
- self.states["/initialized/behaviour/leaving_manual"] = State(122, "/initialized/behaviour/leaving_manual", self)
|
|
|
+ self.states["/initialized/behaviour/leaving_manual"] = State(125, "/initialized/behaviour/leaving_manual", self)
|
|
|
self.states["/initialized/behaviour/leaving_manual"].setEnter(self._initialized_behaviour_leaving_manual_enter)
|
|
|
|
|
|
# state /initialized/queue
|
|
|
- self.states["/initialized/queue"] = State(123, "/initialized/queue", self)
|
|
|
+ self.states["/initialized/queue"] = State(126, "/initialized/queue", self)
|
|
|
|
|
|
# state /initialized/queue/queue
|
|
|
- self.states["/initialized/queue/queue"] = State(124, "/initialized/queue/queue", self)
|
|
|
+ self.states["/initialized/queue/queue"] = State(127, "/initialized/queue/queue", self)
|
|
|
|
|
|
# add children
|
|
|
self.states[""].addChild(self.states["/init"])
|
|
@@ -1157,6 +1168,9 @@ class Modelverse(RuntimeClassBase):
|
|
|
self.states["/initialized/behaviour/wait_for_action/modelling"].addChild(self.states["/initialized/behaviour/wait_for_action/modelling/recognized"])
|
|
|
self.states["/initialized/behaviour/wait_for_action/modelling/recognized"].addChild(self.states["/initialized/behaviour/wait_for_action/modelling/recognized/manual"])
|
|
|
self.states["/initialized/behaviour/wait_for_action/modelling/recognized"].addChild(self.states["/initialized/behaviour/wait_for_action/modelling/recognized/scripted"])
|
|
|
+ self.states["/initialized/behaviour/going_manual"].addChild(self.states["/initialized/behaviour/going_manual/init"])
|
|
|
+ self.states["/initialized/behaviour/going_manual"].addChild(self.states["/initialized/behaviour/going_manual/search"])
|
|
|
+ self.states["/initialized/behaviour/going_manual"].addChild(self.states["/initialized/behaviour/going_manual/OK"])
|
|
|
self.states["/initialized/queue"].addChild(self.states["/initialized/queue/queue"])
|
|
|
self.states[""].fixTree()
|
|
|
self.states[""].default_state = self.states["/init"]
|
|
@@ -1183,6 +1197,7 @@ class Modelverse(RuntimeClassBase):
|
|
|
self.states["/initialized/behaviour/wait_for_action"].default_state = self.states["/initialized/behaviour/wait_for_action/disconnected"]
|
|
|
self.states["/initialized/behaviour/wait_for_action/modelling"].default_state = self.states["/initialized/behaviour/wait_for_action/modelling/recognized"]
|
|
|
self.states["/initialized/behaviour/wait_for_action/modelling/recognized"].default_state = self.states["/initialized/behaviour/wait_for_action/modelling/recognized/manual"]
|
|
|
+ self.states["/initialized/behaviour/going_manual"].default_state = self.states["/initialized/behaviour/going_manual/init"]
|
|
|
self.states["/initialized/queue"].default_state = self.states["/initialized/queue/queue"]
|
|
|
|
|
|
# transition /init
|
|
@@ -2059,6 +2074,7 @@ class Modelverse(RuntimeClassBase):
|
|
|
_initialized_behaviour_wait_for_action_megamodelling_35.setGuard(self._initialized_behaviour_wait_for_action_megamodelling_35_guard)
|
|
|
self.states["/initialized/behaviour/wait_for_action/megamodelling"].addTransition(_initialized_behaviour_wait_for_action_megamodelling_35)
|
|
|
_initialized_behaviour_wait_for_action_megamodelling_36 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/going_manual"]])
|
|
|
+ _initialized_behaviour_wait_for_action_megamodelling_36.setAction(self._initialized_behaviour_wait_for_action_megamodelling_36_exec)
|
|
|
_initialized_behaviour_wait_for_action_megamodelling_36.setTrigger(None)
|
|
|
_initialized_behaviour_wait_for_action_megamodelling_36.setGuard(self._initialized_behaviour_wait_for_action_megamodelling_36_guard)
|
|
|
self.states["/initialized/behaviour/wait_for_action/megamodelling"].addTransition(_initialized_behaviour_wait_for_action_megamodelling_36)
|
|
@@ -2080,16 +2096,33 @@ class Modelverse(RuntimeClassBase):
|
|
|
_initialized_behaviour_wait_for_action_modelling_recognized_scripted_0.setGuard(self._initialized_behaviour_wait_for_action_modelling_recognized_scripted_0_guard)
|
|
|
self.states["/initialized/behaviour/wait_for_action/modelling/recognized/scripted"].addTransition(_initialized_behaviour_wait_for_action_modelling_recognized_scripted_0)
|
|
|
|
|
|
- # transition /initialized/behaviour/going_manual
|
|
|
- _initialized_behaviour_going_manual_0 = Transition(self, self.states["/initialized/behaviour/going_manual"], [self.states["/initialized/behaviour/wait_for_action/modelling/recognized/manual"]])
|
|
|
- _initialized_behaviour_going_manual_0.setTrigger(None)
|
|
|
- _initialized_behaviour_going_manual_0.setGuard(self._initialized_behaviour_going_manual_0_guard)
|
|
|
- self.states["/initialized/behaviour/going_manual"].addTransition(_initialized_behaviour_going_manual_0)
|
|
|
- _initialized_behaviour_going_manual_1 = Transition(self, self.states["/initialized/behaviour/going_manual"], [self.states["/initialized/behaviour/wait_for_action/megamodelling"]])
|
|
|
- _initialized_behaviour_going_manual_1.setAction(self._initialized_behaviour_going_manual_1_exec)
|
|
|
- _initialized_behaviour_going_manual_1.setTrigger(None)
|
|
|
- _initialized_behaviour_going_manual_1.setGuard(self._initialized_behaviour_going_manual_1_guard)
|
|
|
- self.states["/initialized/behaviour/going_manual"].addTransition(_initialized_behaviour_going_manual_1)
|
|
|
+ # transition /initialized/behaviour/going_manual/init
|
|
|
+ _initialized_behaviour_going_manual_init_0 = Transition(self, self.states["/initialized/behaviour/going_manual/init"], [self.states["/initialized/behaviour/going_manual/OK"]])
|
|
|
+ _initialized_behaviour_going_manual_init_0.setTrigger(None)
|
|
|
+ _initialized_behaviour_going_manual_init_0.setGuard(self._initialized_behaviour_going_manual_init_0_guard)
|
|
|
+ self.states["/initialized/behaviour/going_manual/init"].addTransition(_initialized_behaviour_going_manual_init_0)
|
|
|
+ _initialized_behaviour_going_manual_init_1 = Transition(self, self.states["/initialized/behaviour/going_manual/init"], [self.states["/initialized/behaviour/going_manual/search"]])
|
|
|
+ _initialized_behaviour_going_manual_init_1.setTrigger(None)
|
|
|
+ _initialized_behaviour_going_manual_init_1.setGuard(self._initialized_behaviour_going_manual_init_1_guard)
|
|
|
+ self.states["/initialized/behaviour/going_manual/init"].addTransition(_initialized_behaviour_going_manual_init_1)
|
|
|
+
|
|
|
+ # transition /initialized/behaviour/going_manual/search
|
|
|
+ _initialized_behaviour_going_manual_search_0 = Transition(self, self.states["/initialized/behaviour/going_manual/search"], [self.states["/initialized/behaviour/going_manual/OK"]])
|
|
|
+ _initialized_behaviour_going_manual_search_0.setAction(self._initialized_behaviour_going_manual_search_0_exec)
|
|
|
+ _initialized_behaviour_going_manual_search_0.setTrigger(None)
|
|
|
+ _initialized_behaviour_going_manual_search_0.setGuard(self._initialized_behaviour_going_manual_search_0_guard)
|
|
|
+ self.states["/initialized/behaviour/going_manual/search"].addTransition(_initialized_behaviour_going_manual_search_0)
|
|
|
+
|
|
|
+ # transition /initialized/behaviour/going_manual/OK
|
|
|
+ _initialized_behaviour_going_manual_OK_0 = Transition(self, self.states["/initialized/behaviour/going_manual/OK"], [self.states["/initialized/behaviour/wait_for_action/modelling/recognized/manual"]])
|
|
|
+ _initialized_behaviour_going_manual_OK_0.setTrigger(None)
|
|
|
+ _initialized_behaviour_going_manual_OK_0.setGuard(self._initialized_behaviour_going_manual_OK_0_guard)
|
|
|
+ self.states["/initialized/behaviour/going_manual/OK"].addTransition(_initialized_behaviour_going_manual_OK_0)
|
|
|
+ _initialized_behaviour_going_manual_OK_1 = Transition(self, self.states["/initialized/behaviour/going_manual/OK"], [self.states["/initialized/behaviour/wait_for_action/megamodelling"]])
|
|
|
+ _initialized_behaviour_going_manual_OK_1.setAction(self._initialized_behaviour_going_manual_OK_1_exec)
|
|
|
+ _initialized_behaviour_going_manual_OK_1.setTrigger(None)
|
|
|
+ _initialized_behaviour_going_manual_OK_1.setGuard(self._initialized_behaviour_going_manual_OK_1_guard)
|
|
|
+ self.states["/initialized/behaviour/going_manual/OK"].addTransition(_initialized_behaviour_going_manual_OK_1)
|
|
|
|
|
|
# transition /initialized/behaviour/going_scripted
|
|
|
_initialized_behaviour_going_scripted_0 = Transition(self, self.states["/initialized/behaviour/going_scripted"], [self.states["/initialized/behaviour/wait_for_action/modelling/recognized/scripted"]])
|
|
@@ -2523,9 +2556,14 @@ class Modelverse(RuntimeClassBase):
|
|
|
def _initialized_behaviour_operations_save_enter(self):
|
|
|
self.raiseInternalEvent(Event("request", None, [['exit', 'model_modify', self.current_model]]))
|
|
|
|
|
|
- def _initialized_behaviour_going_manual_enter(self):
|
|
|
+ def _initialized_behaviour_going_manual_init_enter(self):
|
|
|
self.context = None
|
|
|
self.current_model = self.actions[None][0]["parameters"][0]
|
|
|
+
|
|
|
+ def _initialized_behaviour_going_manual_search_enter(self):
|
|
|
+ self.raiseInternalEvent(Event("request", None, [['model_types', self.current_model]]))
|
|
|
+
|
|
|
+ def _initialized_behaviour_going_manual_OK_enter(self):
|
|
|
self.raiseInternalEvent(Event("request", None, [['model_modify', self.current_model, self.registered_metamodel[self.current_model]]]))
|
|
|
|
|
|
def _initialized_behaviour_going_scripted_enter(self):
|
|
@@ -3560,6 +3598,9 @@ class Modelverse(RuntimeClassBase):
|
|
|
def _initialized_behaviour_wait_for_action_megamodelling_35_guard(self, parameters):
|
|
|
return self.expect_action(None, 'model_types')
|
|
|
|
|
|
+ def _initialized_behaviour_wait_for_action_megamodelling_36_exec(self, parameters):
|
|
|
+ print("Going manual for operations: " + str(self.actions[None]))
|
|
|
+
|
|
|
def _initialized_behaviour_wait_for_action_megamodelling_36_guard(self, parameters):
|
|
|
return self.expect_action(None, ['element_list', 'element_list_nice', 'types', 'types_full', 'read_info', 'read_attrs', 'read_defined_attrs', 'instantiate', 'delete_element', 'attr_assign', 'attr_assign_code', 'attr_delete', 'read_outgoing', 'read_incoming', 'read_association_source', 'read_association_destination', 'connections_between', 'define_attribute', 'undefine_attribute', 'all_instances', 'attr_optional', 'attr_type', 'attr_name'])
|
|
|
|
|
@@ -3575,15 +3616,27 @@ class Modelverse(RuntimeClassBase):
|
|
|
def _initialized_behaviour_wait_for_action_modelling_recognized_scripted_0_guard(self, parameters):
|
|
|
return self.expect_action(self.context, 'exit')
|
|
|
|
|
|
- def _initialized_behaviour_going_manual_0_guard(self, parameters):
|
|
|
+ def _initialized_behaviour_going_manual_init_0_guard(self, parameters):
|
|
|
+ return self.current_model in self.registered_metamodel
|
|
|
+
|
|
|
+ def _initialized_behaviour_going_manual_init_1_guard(self, parameters):
|
|
|
+ return self.current_model not in self.registered_metamodel
|
|
|
+
|
|
|
+ def _initialized_behaviour_going_manual_search_0_exec(self, parameters):
|
|
|
+ self.registered_metamodel[self.current_model] = set(self.split_response(self.responses.pop(0))).pop()
|
|
|
+
|
|
|
+ def _initialized_behaviour_going_manual_search_0_guard(self, parameters):
|
|
|
+ return self.expect_response_partial('Success: ')
|
|
|
+
|
|
|
+ def _initialized_behaviour_going_manual_OK_0_guard(self, parameters):
|
|
|
return self.expect_response('Model loaded, ready for commands!', pop=True)
|
|
|
|
|
|
- def _initialized_behaviour_going_manual_1_exec(self, parameters):
|
|
|
+ def _initialized_behaviour_going_manual_OK_1_exec(self, parameters):
|
|
|
self.raiseInternalEvent(Event("exception", None, ['UnknownMetamodellingHierarchy', 'Conformance relation not found']))
|
|
|
self.responses.pop(0)
|
|
|
self.actions[None].pop(0)
|
|
|
|
|
|
- def _initialized_behaviour_going_manual_1_guard(self, parameters):
|
|
|
+ def _initialized_behaviour_going_manual_OK_1_guard(self, parameters):
|
|
|
return self.expect_response_partial('No conformance relation can be found ', pop=False)
|
|
|
|
|
|
def _initialized_behaviour_leaving_manual_0_guard(self, parameters):
|
|
@@ -5373,7 +5426,7 @@ class MainWindow(RuntimeClassBase, tk.Toplevel, SCCDWidget):
|
|
|
|
|
|
# transition /init/init/running/change_metamodel
|
|
|
_init_init_running_change_metamodel_0 = Transition(self, self.states["/init/init/running/change_metamodel"], [self.states["/init/init/running/open_model/search_CS_mappers"]])
|
|
|
- _init_init_running_change_metamodel_0.setTrigger(Event("mv_response", None))
|
|
|
+ _init_init_running_change_metamodel_0.setTrigger(None)
|
|
|
self.states["/init/init/running/change_metamodel"].addTransition(_init_init_running_change_metamodel_0)
|
|
|
|
|
|
# transition /init/init/running/conf_bottom/check_if_exists
|
|
@@ -5770,8 +5823,8 @@ class MainWindow(RuntimeClassBase, tk.Toplevel, SCCDWidget):
|
|
|
|
|
|
def _init_init_running_change_metamodel_enter(self):
|
|
|
print("MM -> " + current_metamodel)
|
|
|
- self.big_step.outputEventOM(Event("broad_cast", None, [self, Event("mv_request", None, ['alter_context', [current_model, current_metamodel]])]))
|
|
|
self.big_step.outputEventOM(Event("narrow_cast", None, [self, 'progress_bar', Event("update_status", None, [20, 'Storing model context...'])]))
|
|
|
+ self.big_step.outputEventOM(Event("broad_cast", None, [self, Event("mv_request", None, ['alter_context', [current_model, current_metamodel]])]))
|
|
|
|
|
|
def _init_init_running_conf_bottom_add_bottom_enter(self):
|
|
|
self.big_step.outputEventOM(Event("broad_cast", None, [self, Event("mv_request", None, ['conformance_add', [current_model, 'formalisms/Bottom']])]))
|
|
@@ -5965,6 +6018,7 @@ class MainWindow(RuntimeClassBase, tk.Toplevel, SCCDWidget):
|
|
|
result = parameters[0]
|
|
|
global current_metamodel
|
|
|
current_metamodel = result
|
|
|
+ self.big_step.outputEventOM(Event("broad_cast", None, [self, Event("mv_request", None, ['alter_context', [current_model, current_metamodel]])]))
|
|
|
|
|
|
def _init_init_running_custom_MM_wait_for_metamodel_wait_for_result_0_guard(self, parameters):
|
|
|
result = parameters[0]
|
|
@@ -6018,6 +6072,7 @@ class MainWindow(RuntimeClassBase, tk.Toplevel, SCCDWidget):
|
|
|
else:
|
|
|
current_metamodel = 'formalisms/Bottom'
|
|
|
self.allowed_metamodels = result
|
|
|
+ self.big_step.outputEventOM(Event("broad_cast", None, [self, Event("mv_request", None, ['alter_context', [current_model, current_metamodel]])]))
|
|
|
self.big_step.outputEventOM(Event("narrow_cast", None, [self, 'progress_bar', Event("update_status", None, [20, 'Querying existing metamodels... OK'])]))
|
|
|
|
|
|
def _init_init_running_open_model_search_CS_mappers_0_exec(self, parameters):
|
|
@@ -6032,7 +6087,7 @@ class MainWindow(RuntimeClassBase, tk.Toplevel, SCCDWidget):
|
|
|
print("CHANGING MAPPER TO " + str(current_mapper))
|
|
|
else:
|
|
|
current_mapper = None
|
|
|
- print("REMOVING MAPPER")
|
|
|
+ print("NO MAPPER found")
|
|
|
|
|
|
def _init_init_running_open_model_check_CS_mapper_0_exec(self, parameters):
|
|
|
global current_rendered_model
|
|
@@ -6074,6 +6129,7 @@ class MainWindow(RuntimeClassBase, tk.Toplevel, SCCDWidget):
|
|
|
result = parameters[0]
|
|
|
global current_metamodel
|
|
|
current_metamodel = result
|
|
|
+ self.big_step.outputEventOM(Event("broad_cast", None, [self, Event("mv_request", None, ['alter_context', [current_model, current_metamodel]])]))
|
|
|
|
|
|
def _init_init_running_create_new_model_got_mm_0_exec(self, parameters):
|
|
|
self.big_step.outputEventOM(Event("delete_instance", None, [self, self.subwindow]))
|