|
@@ -0,0 +1,563 @@
|
|
|
+<class name="ActivityCreator">
|
|
|
+ <relationships>
|
|
|
+ <inheritance class="tk.Toplevel" priority="1"/>
|
|
|
+ <inheritance class="SCCDWidget" priority="0"/>
|
|
|
+ <association name="static" class="A"/>
|
|
|
+ <association name="input_tag" class="A"/>
|
|
|
+ <association name="input_delete" class="A"/>
|
|
|
+ <association name="input_MM_browse" class="A"/>
|
|
|
+ <association name="input_MM_entry" class="A"/>
|
|
|
+ <association name="browser" class="Browser"/>
|
|
|
+ <association name="parent" class="A"/>
|
|
|
+ </relationships>
|
|
|
+
|
|
|
+ <constructor>
|
|
|
+ <super class="tk.TopLevel"/>
|
|
|
+ <super class="SCCDWidget"/>
|
|
|
+ <body>
|
|
|
+ self.activity_frame = tk.Frame(self)
|
|
|
+ self.input_frame = tk.Frame(self)
|
|
|
+ self.output_frame = tk.Frame(self)
|
|
|
+ self.create_frame = tk.Frame(self)
|
|
|
+
|
|
|
+ self.activity_frame.pack()
|
|
|
+ tk.Label(self, text="Inputs").pack()
|
|
|
+ self.input_frame.pack()
|
|
|
+ tk.Label(self, text="Outputs").pack()
|
|
|
+ self.output_frame.pack()
|
|
|
+ self.create_frame.pack()
|
|
|
+
|
|
|
+ self.create_input_signature = {}
|
|
|
+ self.create_output_signature = {}
|
|
|
+
|
|
|
+ self.activity_name = ""
|
|
|
+ self.activity_type = "ModelTransformation"
|
|
|
+ </body>
|
|
|
+ </constructor>
|
|
|
+
|
|
|
+ <destructor>
|
|
|
+ <body>
|
|
|
+ self.destroy()
|
|
|
+ </body>
|
|
|
+ </destructor>
|
|
|
+
|
|
|
+ <scxml initial="init">
|
|
|
+ <state id="init" initial="create_activity_info">
|
|
|
+ <state id="create_activity_info" initial="create_name">
|
|
|
+ <state id="create_name" initial="label">
|
|
|
+ <state id="label" initial="create">
|
|
|
+ <state id="create">
|
|
|
+ <onentry>
|
|
|
+ <raise event="create_instance" scope="cd">
|
|
|
+ <parameter expr="'static'"/>
|
|
|
+ <parameter expr="'Label'"/>
|
|
|
+ <parameter expr="{'parent': self.activity_frame, 'text': 'Name'}"/>
|
|
|
+ </raise>
|
|
|
+ </onentry>
|
|
|
+
|
|
|
+ <transition event="instance_created" target="../pack">
|
|
|
+ <parameter name="assoc_name"/>
|
|
|
+ <raise event="start_instance" scope="cd">
|
|
|
+ <parameter expr="assoc_name"/>
|
|
|
+ </raise>
|
|
|
+ </transition>
|
|
|
+ </state>
|
|
|
+
|
|
|
+ <state id="pack">
|
|
|
+ <transition event="tk_widget" target="../../entry">
|
|
|
+ <parameter name="tk_widget"/>
|
|
|
+ <script>
|
|
|
+ tk_widget.grid(row=0,column=0)
|
|
|
+ </script>
|
|
|
+ </transition>
|
|
|
+ </state>
|
|
|
+ </state>
|
|
|
+
|
|
|
+ <state id="entry" initial="create">
|
|
|
+ <state id="create">
|
|
|
+ <onentry>
|
|
|
+ <raise event="create_instance" scope="cd">
|
|
|
+ <parameter expr="'static'"/>
|
|
|
+ <parameter expr="'Entry'"/>
|
|
|
+ <parameter expr="{'parent': self.activity_frame, 'name': 'name', 'value': self.activity_name, 'readonly': False}"/>
|
|
|
+ </raise>
|
|
|
+ </onentry>
|
|
|
+
|
|
|
+ <transition event="instance_created" target="../pack">
|
|
|
+ <parameter name="assoc_name"/>
|
|
|
+ <raise event="start_instance" scope="cd">
|
|
|
+ <parameter expr="assoc_name"/>
|
|
|
+ </raise>
|
|
|
+ </transition>
|
|
|
+ </state>
|
|
|
+
|
|
|
+ <state id="pack">
|
|
|
+ <transition event="tk_widget" target="../../../create_type">
|
|
|
+ <parameter name="tk_widget"/>
|
|
|
+ <script>
|
|
|
+ tk_widget.grid(row=0,column=1)
|
|
|
+ </script>
|
|
|
+ </transition>
|
|
|
+ </state>
|
|
|
+ </state>
|
|
|
+ </state>
|
|
|
+
|
|
|
+ <state id="create_type" initial="label">
|
|
|
+ <state id="label" initial="create">
|
|
|
+ <state id="create">
|
|
|
+ <onentry>
|
|
|
+ <raise event="create_instance" scope="cd">
|
|
|
+ <parameter expr="'static'"/>
|
|
|
+ <parameter expr="'Label'"/>
|
|
|
+ <parameter expr="{'parent': self.activity_frame, 'text': 'Type'}"/>
|
|
|
+ </raise>
|
|
|
+ </onentry>
|
|
|
+
|
|
|
+ <transition event="instance_created" target="../pack">
|
|
|
+ <parameter name="assoc_name"/>
|
|
|
+ <raise event="start_instance" scope="cd">
|
|
|
+ <parameter expr="assoc_name"/>
|
|
|
+ </raise>
|
|
|
+ </transition>
|
|
|
+ </state>
|
|
|
+
|
|
|
+ <state id="pack">
|
|
|
+ <transition event="tk_widget" target="../../dropdown">
|
|
|
+ <parameter name="tk_widget"/>
|
|
|
+ <script>
|
|
|
+ tk_widget.grid(row=1,column=0)
|
|
|
+ </script>
|
|
|
+ </transition>
|
|
|
+ </state>
|
|
|
+ </state>
|
|
|
+
|
|
|
+ <state id="dropdown" initial="create">
|
|
|
+ <state id="create">
|
|
|
+ <onentry>
|
|
|
+ <raise event="create_instance" scope="cd">
|
|
|
+ <parameter expr="'static'"/>
|
|
|
+ <parameter expr="'DropDown'"/>
|
|
|
+ <parameter expr="{'parent': self.activity_frame, 'name': 'type', 'value': self.activity_type, 'options': ['ActionLanguage', 'ModelTransformation', 'ManualOperation']}"/>
|
|
|
+ </raise>
|
|
|
+ </onentry>
|
|
|
+
|
|
|
+ <transition event="instance_created" target="../pack">
|
|
|
+ <parameter name="assoc_name"/>
|
|
|
+ <raise event="start_instance" scope="cd">
|
|
|
+ <parameter expr="assoc_name"/>
|
|
|
+ </raise>
|
|
|
+ </transition>
|
|
|
+ </state>
|
|
|
+
|
|
|
+ <state id="pack">
|
|
|
+ <transition event="tk_widget" target="../../../../create_confirm">
|
|
|
+ <parameter name="tk_widget"/>
|
|
|
+ <script>
|
|
|
+ tk_widget.grid(row=1,column=1)
|
|
|
+ </script>
|
|
|
+ </transition>
|
|
|
+ </state>
|
|
|
+ </state>
|
|
|
+ </state>
|
|
|
+ </state>
|
|
|
+
|
|
|
+ <state id="create_confirm" initial="create_create">
|
|
|
+ <state id="create_create" initial="button">
|
|
|
+ <state id="button" initial="create">
|
|
|
+ <state id="create">
|
|
|
+ <onentry>
|
|
|
+ <raise event="create_instance" scope="cd">
|
|
|
+ <parameter expr="'static'"/>
|
|
|
+ <parameter expr="'Button'"/>
|
|
|
+ <parameter expr="{'parent': self.create_frame, 'event_parameters': 'confirm', 'visual': TextVisual('OK')}"/>
|
|
|
+ </raise>
|
|
|
+ </onentry>
|
|
|
+
|
|
|
+ <transition event="instance_created" target="../pack">
|
|
|
+ <parameter name="assoc_name"/>
|
|
|
+ <raise event="start_instance" scope="cd">
|
|
|
+ <parameter expr="assoc_name"/>
|
|
|
+ </raise>
|
|
|
+ </transition>
|
|
|
+ </state>
|
|
|
+
|
|
|
+ <state id="pack">
|
|
|
+ <transition event="tk_widget" target="../../../../../draw_signature">
|
|
|
+ <parameter name="tk_widget"/>
|
|
|
+ <script>
|
|
|
+ tk_widget.grid(row=0,column=0)
|
|
|
+ </script>
|
|
|
+ </transition>
|
|
|
+ </state>
|
|
|
+ </state>
|
|
|
+ </state>
|
|
|
+ </state>
|
|
|
+ </state>
|
|
|
+
|
|
|
+ <state id="draw_signature" initial="create_inputs">
|
|
|
+ <onentry>
|
|
|
+ <raise event="delete_instance" scope="cd">
|
|
|
+ <parameter expr="'input_tag'"/>
|
|
|
+ </raise>
|
|
|
+ <raise event="delete_instance" scope="cd">
|
|
|
+ <parameter expr="'input_MM_entry'"/>
|
|
|
+ </raise>
|
|
|
+ <raise event="delete_instance" scope="cd">
|
|
|
+ <parameter expr="'input_MM_browse'"/>
|
|
|
+ </raise>
|
|
|
+ <raise event="delete_instance" scope="cd">
|
|
|
+ <parameter expr="'input_delete'"/>
|
|
|
+ </raise>
|
|
|
+ </onentry>
|
|
|
+
|
|
|
+ <state id="create_inputs" initial="check_values">
|
|
|
+ <onentry>
|
|
|
+ <script>
|
|
|
+ self.tmp_input_signature = dict(self.create_input_signature)
|
|
|
+ self.counter = -1
|
|
|
+ self.input_map = []
|
|
|
+ </script>
|
|
|
+ </onentry>
|
|
|
+
|
|
|
+ <state id="check_values">
|
|
|
+ <onentry>
|
|
|
+ <script>
|
|
|
+ self.counter += 1
|
|
|
+ </script>
|
|
|
+ </onentry>
|
|
|
+ <transition cond="self.tmp_input_signature" target="../create_entry"/>
|
|
|
+ <transition cond="not self.tmp_input_signature" target="../create_add_entry"/>
|
|
|
+ </state>
|
|
|
+
|
|
|
+ <state id="create_entry" initial="create_tag">
|
|
|
+ <onentry>
|
|
|
+ <script>
|
|
|
+ self.current = self.tmp_input_signature.popitem()
|
|
|
+ self.input_map.append([self.current[0], self.current[1]])
|
|
|
+ </script>
|
|
|
+ </onentry>
|
|
|
+
|
|
|
+ <state id="create_tag" initial="create">
|
|
|
+ <state id="create">
|
|
|
+ <onentry>
|
|
|
+ <raise event="create_instance" scope="cd">
|
|
|
+ <parameter expr="'input_tag'"/>
|
|
|
+ <parameter expr="'Entry'"/>
|
|
|
+ <parameter expr="{'parent': self.input_frame, 'name': 'input_tag_%s' % self.counter, 'value': self.current[0]}"/>
|
|
|
+ </raise>
|
|
|
+ </onentry>
|
|
|
+
|
|
|
+ <transition event="instance_created" target="../pack">
|
|
|
+ <parameter name="assoc_name"/>
|
|
|
+ <raise event="start_instance" scope="cd">
|
|
|
+ <parameter expr="assoc_name"/>
|
|
|
+ </raise>
|
|
|
+ <script>
|
|
|
+ self.input_map[-1].append(assoc_name)
|
|
|
+ </script>
|
|
|
+ </transition>
|
|
|
+ </state>
|
|
|
+
|
|
|
+ <state id="pack">
|
|
|
+ <transition event="tk_widget" target="../../create_MM">
|
|
|
+ <parameter name="tk_widget"/>
|
|
|
+ <script>
|
|
|
+ tk_widget.grid(row=self.counter,column=0)
|
|
|
+ </script>
|
|
|
+ </transition>
|
|
|
+ </state>
|
|
|
+ </state>
|
|
|
+
|
|
|
+ <state id="create_MM" initial="create">
|
|
|
+ <state id="create">
|
|
|
+ <onentry>
|
|
|
+ <raise event="create_instance" scope="cd">
|
|
|
+ <parameter expr="'input_MM_entry'"/>
|
|
|
+ <parameter expr="'Entry'"/>
|
|
|
+ <parameter expr="{'parent': self.input_frame, 'name': 'input_MM_%s' % self.counter, 'value': self.current[1], 'readonly': True}"/>
|
|
|
+ </raise>
|
|
|
+ </onentry>
|
|
|
+
|
|
|
+ <transition event="instance_created" target="../pack">
|
|
|
+ <parameter name="assoc_name"/>
|
|
|
+ <raise event="start_instance" scope="cd">
|
|
|
+ <parameter expr="assoc_name"/>
|
|
|
+ </raise>
|
|
|
+ <script>
|
|
|
+ self.input_map[-1].append(assoc_name)
|
|
|
+ </script>
|
|
|
+ </transition>
|
|
|
+ </state>
|
|
|
+
|
|
|
+ <state id="pack">
|
|
|
+ <transition event="tk_widget" target="../../create_browse">
|
|
|
+ <parameter name="tk_widget"/>
|
|
|
+ <script>
|
|
|
+ tk_widget.grid(row=self.counter,column=1)
|
|
|
+ </script>
|
|
|
+ </transition>
|
|
|
+ </state>
|
|
|
+ </state>
|
|
|
+
|
|
|
+ <state id="create_browse" initial="create">
|
|
|
+ <state id="create">
|
|
|
+ <onentry>
|
|
|
+ <raise event="create_instance" scope="cd">
|
|
|
+ <parameter expr="'input_MM_browse'"/>
|
|
|
+ <parameter expr="'Button'"/>
|
|
|
+ <parameter expr="{'parent': self.input_frame, 'visual': TextVisual('...'), 'tooltip_text': 'Browse for input metamodel.', 'event_parameters': 'input_browse_%s' % self.counter}"/>
|
|
|
+ </raise>
|
|
|
+ </onentry>
|
|
|
+
|
|
|
+ <transition event="instance_created" target="../pack_button">
|
|
|
+ <parameter name="assoc_name"/>
|
|
|
+ <raise event="start_instance" scope="cd">
|
|
|
+ <parameter expr="assoc_name"/>
|
|
|
+ </raise>
|
|
|
+ <script>
|
|
|
+ self.input_map[-1].append(assoc_name)
|
|
|
+ </script>
|
|
|
+ </transition>
|
|
|
+ </state>
|
|
|
+
|
|
|
+ <state id="pack_button">
|
|
|
+ <transition event="tk_widget" target="../../create_delete">
|
|
|
+ <parameter name="tk_widget"/>
|
|
|
+ <script>
|
|
|
+ tk_widget.grid(row=self.counter, column=2)
|
|
|
+ </script>
|
|
|
+ </transition>
|
|
|
+ </state>
|
|
|
+ </state>
|
|
|
+
|
|
|
+ <state id="create_delete" initial="create">
|
|
|
+ <state id="create">
|
|
|
+ <onentry>
|
|
|
+ <raise event="create_instance" scope="cd">
|
|
|
+ <parameter expr="'input_delete'"/>
|
|
|
+ <parameter expr="'Button'"/>
|
|
|
+ <parameter expr="{'parent': self.input_frame, 'visual': TextVisual('X'), 'tooltip_text': 'Delete tag in signature.', 'event_parameters': 'input_delete_%s' % self.counter}"/>
|
|
|
+ </raise>
|
|
|
+ </onentry>
|
|
|
+
|
|
|
+ <transition event="instance_created" target="../pack_button">
|
|
|
+ <parameter name="assoc_name"/>
|
|
|
+ <raise event="start_instance" scope="cd">
|
|
|
+ <parameter expr="assoc_name"/>
|
|
|
+ </raise>
|
|
|
+ <script>
|
|
|
+ self.input_map[-1].append(assoc_name)
|
|
|
+ </script>
|
|
|
+ </transition>
|
|
|
+ </state>
|
|
|
+
|
|
|
+ <state id="pack_button">
|
|
|
+ <transition event="tk_widget" target="../../../check_values">
|
|
|
+ <parameter name="tk_widget"/>
|
|
|
+ <script>
|
|
|
+ tk_widget.grid(row=self.counter, column=3)
|
|
|
+ </script>
|
|
|
+ </transition>
|
|
|
+ </state>
|
|
|
+ </state>
|
|
|
+ </state>
|
|
|
+
|
|
|
+ <state id="create_add_entry">
|
|
|
+ <state id="create_button" initial="create">
|
|
|
+ <state id="create">
|
|
|
+ <onentry>
|
|
|
+ <raise event="create_instance" scope="cd">
|
|
|
+ <parameter expr="'input_MM_browse'"/>
|
|
|
+ <parameter expr="'Button'"/>
|
|
|
+ <parameter expr="{'parent': self.input_frame, 'visual': TextVisual('+'), 'tooltip_text': 'Create new element in signature.', 'event_parameters': 'add_input'}"/>
|
|
|
+ </raise>
|
|
|
+ </onentry>
|
|
|
+
|
|
|
+ <transition event="instance_created" target="../pack_button">
|
|
|
+ <parameter name="assoc_name"/>
|
|
|
+ <raise event="start_instance" scope="cd">
|
|
|
+ <parameter expr="assoc_name"/>
|
|
|
+ </raise>
|
|
|
+ </transition>
|
|
|
+ </state>
|
|
|
+
|
|
|
+ <state id="pack_button">
|
|
|
+ <transition event="tk_widget" target="../../../../../ready">
|
|
|
+ <parameter name="tk_widget"/>
|
|
|
+ <script>
|
|
|
+ tk_widget.grid(row=self.counter, column=3)
|
|
|
+ </script>
|
|
|
+ </transition>
|
|
|
+ </state>
|
|
|
+ </state>
|
|
|
+ </state>
|
|
|
+ </state>
|
|
|
+ </state>
|
|
|
+
|
|
|
+ <state id="ready">
|
|
|
+ <transition event="button_pressed" cond="evt == 'add_input'" target="../draw_signature">
|
|
|
+ <parameter name="evt"/>
|
|
|
+ <script>
|
|
|
+ ctr = 0
|
|
|
+ while 1:
|
|
|
+ free_id = 'tag_%i' % ctr
|
|
|
+ if free_id not in self.create_input_signature:
|
|
|
+ break
|
|
|
+ else:
|
|
|
+ ctr += 1
|
|
|
+ self.create_input_signature[free_id] = ""
|
|
|
+ </script>
|
|
|
+ </transition>
|
|
|
+
|
|
|
+ <transition event="button_pressed" cond="evt.startswith('input_delete_')" target="../draw_signature">
|
|
|
+ <parameter name="evt"/>
|
|
|
+ <script>
|
|
|
+ index = int(evt.split("input_delete_", 1)[1])
|
|
|
+ del self.create_input_signature[self.input_map[index][0]]
|
|
|
+ </script>
|
|
|
+ </transition>
|
|
|
+
|
|
|
+ <transition event="changed_entry" cond="evt == 'name'" target=".">
|
|
|
+ <parameter name="evt"/>
|
|
|
+ <parameter name="new_value"/>
|
|
|
+ <script>
|
|
|
+ self.activity_name = new_value
|
|
|
+ </script>
|
|
|
+ </transition>
|
|
|
+
|
|
|
+ <transition event="changed_dropdown" cond="evt == 'type'" target=".">
|
|
|
+ <parameter name="evt"/>
|
|
|
+ <parameter name="new_value"/>
|
|
|
+ <script>
|
|
|
+ self.activity_type = new_value
|
|
|
+ </script>
|
|
|
+ </transition>
|
|
|
+
|
|
|
+ <transition event="changed_entry" cond="evt.startswith('input_tag_')" target=".">
|
|
|
+ <parameter name="evt"/>
|
|
|
+ <parameter name="new_value"/>
|
|
|
+ <script>
|
|
|
+ index = int(evt.split("input_tag_", 1)[1])
|
|
|
+ information = self.input_map[index]
|
|
|
+ old_tag = information[0]
|
|
|
+ self.create_input_signature[new_value] = self.create_input_signature.pop(old_tag)
|
|
|
+ information[0] = new_value
|
|
|
+ </script>
|
|
|
+ </transition>
|
|
|
+
|
|
|
+ <transition event="button_pressed" cond="evt.startswith('input_MM_browse_')" target="../browsing">
|
|
|
+ <parameter name="evt"/>
|
|
|
+ <script>
|
|
|
+ self.current = int(evt.split("input_MM_browse_", 1)[1])
|
|
|
+ </script>
|
|
|
+ </transition>
|
|
|
+
|
|
|
+ <transition event="button_pressed" cond="evt == 'create'" target="../creating">
|
|
|
+ <parameter name="evt"/>
|
|
|
+ </transition>
|
|
|
+ </state>
|
|
|
+
|
|
|
+ <state id="creating">
|
|
|
+ <onentry>
|
|
|
+ <raise event="mv_request" scope="broad">
|
|
|
+ <parameter expr="'transformation_add_%s' % ({'ManualOperation': 'MANUAL', 'ModelTransformation': 'MT', 'ActionLanguage': 'AL'}[self.activity_type])"/>
|
|
|
+ <parameter expr="[self.activity_name, self.input_signature, self.output_signature]"/>
|
|
|
+ </raise>
|
|
|
+ </onentry>
|
|
|
+
|
|
|
+ <transition event="mv_response" target="../modifying_mm">
|
|
|
+ <parameter name="context"/>
|
|
|
+ <script>
|
|
|
+ print("Starting subprocess")
|
|
|
+ self.context = context
|
|
|
+ from runner import run_GUI
|
|
|
+ model_to_modify = "merged/%s" % self.activity_name
|
|
|
+ self.subprocess = multiprocessing.Proces(target=run_GUI, args=(self.address, self.username, self.password, model_to_modify, True))
|
|
|
+ </script>
|
|
|
+ </transition>
|
|
|
+ </state>
|
|
|
+
|
|
|
+ <state id="modifying_mm">
|
|
|
+ <transition cond="not self.subprocess.is_alive()" target="../finish_transformation_add"/>
|
|
|
+ <transition after="0.5" target=".">
|
|
|
+ <script>
|
|
|
+ print("Checking whether or not subprocess is still alive...")
|
|
|
+ </script>
|
|
|
+ </transition>
|
|
|
+ </state>
|
|
|
+
|
|
|
+ <state id="finish_transformation_add">
|
|
|
+ <onentry>
|
|
|
+ <raise event="mv_request_context" scope="broad">
|
|
|
+ <parameter expr="'exit'"/>
|
|
|
+ <parameter expr="[]"/>
|
|
|
+ <parameter expr="self.context"/>
|
|
|
+ </raise>
|
|
|
+ </onentry>
|
|
|
+
|
|
|
+ <transition event="mv_response" target="../closing">
|
|
|
+ </transition>
|
|
|
+ </state>
|
|
|
+
|
|
|
+ <state id="closing">
|
|
|
+ <onentry>
|
|
|
+ <raise event="delete_instance" scope="cd">
|
|
|
+ <parameter expr="'input_tag'"/>
|
|
|
+ </raise>
|
|
|
+ <raise event="delete_instance" scope="cd">
|
|
|
+ <parameter expr="'input_MM_entry'"/>
|
|
|
+ </raise>
|
|
|
+ <raise event="delete_instance" scope="cd">
|
|
|
+ <parameter expr="'input_MM_browse'"/>
|
|
|
+ </raise>
|
|
|
+ <raise event="delete_instance" scope="cd">
|
|
|
+ <parameter expr="'input_delete'"/>
|
|
|
+ </raise>
|
|
|
+ </onentry>
|
|
|
+
|
|
|
+ <transition target="../closed">
|
|
|
+ <raise event="close_window" scope="narrow" target="'parent'"/>
|
|
|
+ </transition>
|
|
|
+ </state>
|
|
|
+
|
|
|
+ <state id="closed"/>
|
|
|
+
|
|
|
+ <state id="browsing" initial="creating">
|
|
|
+ <state id="creating">
|
|
|
+ <onentry>
|
|
|
+ <raise event="create_instance" scope="cd">
|
|
|
+ <parameter expr="'browser'"/>
|
|
|
+ <parameter expr="'Browser'"/>
|
|
|
+ <parameter expr="None"/>
|
|
|
+ </raise>
|
|
|
+ </onentry>
|
|
|
+
|
|
|
+ <transition event="instance_created" target="../waiting">
|
|
|
+ <parameter name="assoc_name"/>
|
|
|
+ <raise event="start_instance" scope="cd">
|
|
|
+ <parameter expr="assoc_name"/>
|
|
|
+ </raise>
|
|
|
+ </transition>
|
|
|
+ </state>
|
|
|
+
|
|
|
+ <state id="waiting">
|
|
|
+ <transition event="browse_result" target=".">
|
|
|
+ <parameter name="result"/>
|
|
|
+ <raise event="change_value" scope="narrow" target="self.input_map[self.current][3]">
|
|
|
+ <parameter expr="result"/>
|
|
|
+ </raise>
|
|
|
+ <script>
|
|
|
+ self.create_input_signature[self.input_map[self.current][0]] = result
|
|
|
+ self.input_map[self.current][1] = result
|
|
|
+ </script>
|
|
|
+ </transition>
|
|
|
+
|
|
|
+ <transition event="close_window" target="../../ready">
|
|
|
+ <raise event="delete_instance" scope="cd">
|
|
|
+ <parameter expr="'browser'"/>
|
|
|
+ </raise>
|
|
|
+ </transition>
|
|
|
+ </state>
|
|
|
+ </state>
|
|
|
+ </scxml>
|
|
|
+</class>
|