|
@@ -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: Tue Oct 17 14:42:55 2017
|
|
|
+Date: Wed Oct 18 09:07:30 2017
|
|
|
|
|
|
Model author: Yentl Van Tendeloo
|
|
|
Model name: Modelverse Visual Editor - Tkinter Version
|
|
@@ -2342,7 +2342,7 @@ class Modelverse(RuntimeClassBase):
|
|
|
self.raiseInternalEvent(Event("request", None, [['model_rendered', self.parameters[0], self.parameters[1]]]))
|
|
|
|
|
|
def _initialized_behaviour_operations_transformation_between_enter(self):
|
|
|
- self.raiseInternalEvent(Event("request", None, [['transformation_between', self.parameters[0], self.parameters[1]]]))
|
|
|
+ self.raiseInternalEvent(Event("request", None, [['transformation_between'] + self.dict_to_list(self.parameters[0]) + self.dict_to_list(self.parameters[1])]))
|
|
|
|
|
|
def _initialized_behaviour_operations_transformation_signature_enter(self):
|
|
|
print("Signature of " + str(self.parameters[0]))
|
|
@@ -2959,6 +2959,7 @@ class Modelverse(RuntimeClassBase):
|
|
|
|
|
|
def _initialized_behaviour_operations_store_on_scripted_transformation_execute_dialog_0_exec(self, parameters):
|
|
|
self.raiseInternalEvent(Event("result", None, [True if self.responses.pop(0) == 'Success' else False]))
|
|
|
+ print("RAISING FINISHED")
|
|
|
|
|
|
def _initialized_behaviour_operations_store_on_scripted_transformation_execute_dialog_0_guard(self, parameters):
|
|
|
return self.expect_response('Success', pop=False) or self.expect_response('Failure', pop=False)
|
|
@@ -5711,7 +5712,8 @@ class MainWindow(RuntimeClassBase, tk.Toplevel, SCCDWidget):
|
|
|
self.big_step.outputEventOM(Event("narrow_cast", None, [self, 'progress_bar', Event("update_status", None, [10, 'Querying existing metamodels...'])]))
|
|
|
|
|
|
def _init_init_running_open_model_search_CS_mappers_enter(self):
|
|
|
- self.big_step.outputEventOM(Event("broad_cast", None, [self, Event("mv_request", None, ['transformation_between', [current_metamodel, 'formalisms/MM_render']])]))
|
|
|
+ self.big_step.outputEventOM(Event("broad_cast", None, [self, Event("mv_request", None, ['transformation_between', [{'abstract': current_metamodel, 'rendered': 'formalisms/MM_render'}, {'rendered': 'formalisms/MM_render'}]])]))
|
|
|
+ print("Finding transformation with current MM: " + current_metamodel)
|
|
|
|
|
|
def _init_init_running_open_model_search_CS_rendered_enter(self):
|
|
|
self.big_step.outputEventOM(Event("broad_cast", None, [self, Event("mv_request", None, ['model_rendered', [current_model, current_mapper]])]))
|
|
@@ -7285,6 +7287,8 @@ class ActivityExecutor(RuntimeClassBase, tk.Toplevel, SCCDWidget):
|
|
|
|
|
|
# state /all/execute/in_context
|
|
|
self.states["/all/execute/in_context"] = State(18, "/all/execute/in_context", self)
|
|
|
+ self.states["/all/execute/in_context"].setEnter(self._all_execute_in_context_enter)
|
|
|
+ self.states["/all/execute/in_context"].setExit(self._all_execute_in_context_exit)
|
|
|
|
|
|
# state /all/execute/alter_context_result
|
|
|
self.states["/all/execute/alter_context_result"] = State(19, "/all/execute/alter_context_result", self)
|
|
@@ -7553,7 +7557,7 @@ class ActivityExecutor(RuntimeClassBase, tk.Toplevel, SCCDWidget):
|
|
|
_all_execute_alter_context_result_check_next_0.setTrigger(None)
|
|
|
_all_execute_alter_context_result_check_next_0.setGuard(self._all_execute_alter_context_result_check_next_0_guard)
|
|
|
self.states["/all/execute/alter_context_result/check_next"].addTransition(_all_execute_alter_context_result_check_next_0)
|
|
|
- _all_execute_alter_context_result_check_next_1 = Transition(self, self.states["/all/execute/alter_context_result/check_next"], [self.states["/all/ready"]])
|
|
|
+ _all_execute_alter_context_result_check_next_1 = Transition(self, self.states["/all/execute/alter_context_result/check_next"], [self.states["/all/closing"]])
|
|
|
_all_execute_alter_context_result_check_next_1.setTrigger(None)
|
|
|
_all_execute_alter_context_result_check_next_1.setGuard(self._all_execute_alter_context_result_check_next_1_guard)
|
|
|
self.states["/all/execute/alter_context_result/check_next"].addTransition(_all_execute_alter_context_result_check_next_1)
|
|
@@ -7740,9 +7744,17 @@ class ActivityExecutor(RuntimeClassBase, tk.Toplevel, SCCDWidget):
|
|
|
print(" Outputs " + str(self.exec_output_signature))
|
|
|
self.big_step.outputEventOM(Event("broad_cast", None, [self, Event("mv_request", None, ['transformation_execute', [self.activity, self.exec_input_signature, self.exec_output_signature]])]))
|
|
|
|
|
|
+ def _all_execute_in_context_enter(self):
|
|
|
+ print("Waiting in context: " + str(self.current_context))
|
|
|
+
|
|
|
+ def _all_execute_in_context_exit(self):
|
|
|
+ print("Finished context: " + str(self.current_context))
|
|
|
+
|
|
|
def _all_execute_alter_context_result_add_enter(self):
|
|
|
- key, value = self.exec_output_signature.popitem()
|
|
|
- self.big_step.outputEventOM(Event("broad_cast", None, [self, Event("mv_request", None, ['alter_context', [key, value]])]))
|
|
|
+ tag, model = self.exec_output_signature.popitem()
|
|
|
+ metamodel = self.output_signature[tag]
|
|
|
+ print("Setting context for " + str((model, metamodel)))
|
|
|
+ self.big_step.outputEventOM(Event("broad_cast", None, [self, Event("mv_request", None, ['alter_context', [model, metamodel]])]))
|
|
|
|
|
|
def _all_browse_activity_create_browser_enter(self):
|
|
|
self.big_step.outputEventOM(Event("create_instance", None, [self, 'browsers', 'Browser', 'Select activity to execute.', None]))
|
|
@@ -7831,12 +7843,9 @@ class ActivityExecutor(RuntimeClassBase, tk.Toplevel, SCCDWidget):
|
|
|
def _all_ready_2_exec(self, parameters):
|
|
|
event_name = parameters[0]
|
|
|
value = parameters[1]
|
|
|
- print("Setting " + str(event_name) + " to " + str(value))
|
|
|
if event_name.startswith('input_'):
|
|
|
- print("INP")
|
|
|
self.exec_input_signature[event_name.split("input_", 1)[1]] = value
|
|
|
else:
|
|
|
- print("OUTP")
|
|
|
self.exec_output_signature[event_name.split("output_", 1)[1]] = value
|
|
|
|
|
|
def _all_ready_3_guard(self, parameters):
|
|
@@ -7844,8 +7853,7 @@ class ActivityExecutor(RuntimeClassBase, tk.Toplevel, SCCDWidget):
|
|
|
return event_name == 'execute'
|
|
|
|
|
|
def _all_execute_check_args_0_exec(self, parameters):
|
|
|
- self.big_step.outputEventOM(Event("narrow_cast", None, [self, 'model_browse_entry', Event("change_bg", None, ['light grey'])]))
|
|
|
- print("Start execution")
|
|
|
+ self.big_step.outputEventOM(Event("narrow_cast", None, [self, 'model_browse_entry', Event("disable", None, [])]))
|
|
|
|
|
|
def _all_execute_check_args_0_guard(self, parameters):
|
|
|
return set(self.exec_input_signature.keys()) == set(self.input_signature.keys())
|
|
@@ -7853,8 +7861,6 @@ class ActivityExecutor(RuntimeClassBase, tk.Toplevel, SCCDWidget):
|
|
|
def _all_execute_check_args_1_exec(self, parameters):
|
|
|
actual = set(self.exec_input_signature.keys())
|
|
|
formal = set(self.input_signature.keys())
|
|
|
- print("Actual: " + str(actual))
|
|
|
- print("Formal: " + str(formal))
|
|
|
missing = formal - actual
|
|
|
print("Missing input values for: " + str(missing))
|
|
|
self.big_step.outputEventOM(Event("narrow_cast", None, [self, [self.stored_associations['input_%s' % i] for i in missing], Event("change_bg", None, ['red'])]))
|
|
@@ -7920,8 +7926,6 @@ class ActivityExecutor(RuntimeClassBase, tk.Toplevel, SCCDWidget):
|
|
|
def _all_redraw_signature_add_input_pack_label_0_exec(self, parameters):
|
|
|
tk_widget = parameters[0]
|
|
|
tk_widget.grid(row=self.counter,column=0)
|
|
|
- print("Adding input for " + str(self.current))
|
|
|
- print("At row " + str(self.counter))
|
|
|
|
|
|
def _all_redraw_signature_add_input_create_entry_0_exec(self, parameters):
|
|
|
assoc_name = parameters[0]
|
|
@@ -7931,8 +7935,6 @@ class ActivityExecutor(RuntimeClassBase, tk.Toplevel, SCCDWidget):
|
|
|
def _all_redraw_signature_add_input_pack_entry_0_exec(self, parameters):
|
|
|
tk_widget = parameters[0]
|
|
|
tk_widget.grid(row=self.counter, column=1)
|
|
|
- print("Adding input for " + str(self.current))
|
|
|
- print("At row " + str(self.counter))
|
|
|
|
|
|
def _all_redraw_signature_add_input_create_button_0_exec(self, parameters):
|
|
|
assoc_name = parameters[0]
|
|
@@ -7990,7 +7992,6 @@ class ActivityExecutor(RuntimeClassBase, tk.Toplevel, SCCDWidget):
|
|
|
self.big_step.outputEventOM(Event("narrow_cast", None, [self, self.stored_associations[self.current], Event("change_value", None, [model])]))
|
|
|
|
|
|
def _all_browse_model_waiting_for_decision_1_exec(self, parameters):
|
|
|
- print("Got window close")
|
|
|
self.big_step.outputEventOM(Event("delete_instance", None, [self, 'browsers']))
|
|
|
|
|
|
def _all_closing_0_exec(self, parameters):
|
|
@@ -8360,7 +8361,12 @@ class DSLToolbar(Toolbar):
|
|
|
self.states["/root"].addTransition(_root_0)
|
|
|
_root_1 = Transition(self, self.states["/root"], [self.states["/closing"]])
|
|
|
_root_1.setTrigger(Event("close", None))
|
|
|
+ _root_1.setGuard(self._root_1_guard)
|
|
|
self.states["/root"].addTransition(_root_1)
|
|
|
+ _root_2 = Transition(self, self.states["/root"], [self.states["/close"]])
|
|
|
+ _root_2.setTrigger(Event("close", None))
|
|
|
+ _root_2.setGuard(self._root_2_guard)
|
|
|
+ self.states["/root"].addTransition(_root_2)
|
|
|
|
|
|
# transition /closing
|
|
|
_closing_0 = Transition(self, self.states["/closing"], [self.states["/closing"]])
|
|
@@ -8431,6 +8437,12 @@ class DSLToolbar(Toolbar):
|
|
|
event_name = parameters[0]
|
|
|
return event_name != self.currently_active
|
|
|
|
|
|
+ def _root_1_guard(self, parameters):
|
|
|
+ return self.buttons
|
|
|
+
|
|
|
+ def _root_2_guard(self, parameters):
|
|
|
+ return not self.buttons
|
|
|
+
|
|
|
def _closing_0_guard(self, parameters):
|
|
|
return len(self.buttons) > 0
|
|
|
|
|
@@ -8988,6 +9000,10 @@ class Entry(RuntimeClassBase):
|
|
|
_main_ready_3.setAction(self._main_ready_3_exec)
|
|
|
_main_ready_3.setTrigger(Event("change_value", None))
|
|
|
self.states["/main/ready"].addTransition(_main_ready_3)
|
|
|
+ _main_ready_4 = Transition(self, self.states["/main/ready"], [self.states["/main/ready"]])
|
|
|
+ _main_ready_4.setAction(self._main_ready_4_exec)
|
|
|
+ _main_ready_4.setTrigger(Event("disable", None))
|
|
|
+ self.states["/main/ready"].addTransition(_main_ready_4)
|
|
|
|
|
|
def _main_initializing_0_exec(self, parameters):
|
|
|
self.big_step.outputEventOM(Event("narrow_cast", None, [self, 'parent', Event("tk_widget", None, [self.entry])]))
|
|
@@ -9016,6 +9032,9 @@ class Entry(RuntimeClassBase):
|
|
|
print("CHANGE VALUE IN ENTRY")
|
|
|
self.strvar.set(new_value)
|
|
|
|
|
|
+ def _main_ready_4_exec(self, parameters):
|
|
|
+ self.entry.config(state=tk.DISABLED)
|
|
|
+
|
|
|
def initializeStatechart(self):
|
|
|
# enter default state
|
|
|
self.default_targets = self.states["/main"].getEffectiveTargetStates()
|