123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867 |
- <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="../../../../create_outputs">
- <parameter name="tk_widget"/>
- <script>
- tk_widget.grid(row=self.counter, column=3)
- </script>
- </transition>
- </state>
- </state>
- </state>
- </state>
- <state id="create_outputs" initial="check_values">
- <onentry>
- <script>
- self.tmp_output_signature = dict(self.create_output_signature)
- self.counter = -1
- self.output_map = []
- </script>
- </onentry>
- <state id="check_values">
- <onentry>
- <script>
- self.counter += 1
- </script>
- </onentry>
- <transition cond="self.tmp_output_signature" target="../create_entry"/>
- <transition cond="not self.tmp_output_signature" target="../create_add_entry"/>
- </state>
- <state id="create_entry" initial="create_tag">
- <onentry>
- <script>
- self.current = self.tmp_output_signature.popitem()
- self.output_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.output_frame, 'name': 'output_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.output_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.output_frame, 'name': 'output_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.output_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.output_frame, 'visual': TextVisual('...'), 'tooltip_text': 'Browse for output metamodel.', 'event_parameters': 'output_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.output_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.output_frame, 'visual': TextVisual('X'), 'tooltip_text': 'Delete tag in signature.', 'event_parameters': 'output_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.output_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.output_frame, 'visual': TextVisual('+'), 'tooltip_text': 'Create new element in signature.', 'event_parameters': 'add_output'}"/>
- </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 == 'add_output'" target="../draw_signature">
- <parameter name="evt"/>
- <script>
- ctr = 0
- while 1:
- free_id = 'tag_%i' % ctr
- if free_id not in self.create_output_signature:
- break
- else:
- ctr += 1
- self.create_output_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="button_pressed" cond="evt.startswith('output_delete_')" target="../draw_signature">
- <parameter name="evt"/>
- <script>
- index = int(evt.split("output_delete_", 1)[1])
- del self.create_output_signature[self.output_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="changed_entry" cond="evt.startswith('output_tag_')" target=".">
- <parameter name="evt"/>
- <parameter name="new_value"/>
- <script>
- index = int(evt.split("output_tag_", 1)[1])
- information = self.output_map[index]
- old_tag = information[0]
- self.create_output_signature[new_value] = self.create_output_signature.pop(old_tag)
- information[0] = new_value
- </script>
- </transition>
- <transition event="button_pressed" cond="evt.startswith('input_browse_')" target="../browsing_input">
- <parameter name="evt"/>
- <script>
- self.current = int(evt.split("input_browse_", 1)[1])
- </script>
- </transition>
- <transition event="button_pressed" cond="evt.startswith('output_browse_')" target="../browsing_output">
- <parameter name="evt"/>
- <script>
- self.current = int(evt.split("output_browse_", 1)[1])
- </script>
- </transition>
- <transition event="button_pressed" cond="evt == 'confirm' and self.activity_type != 'ActionLanguage'" target="../creating">
- <parameter name="evt"/>
- <script>
- self.upload_code = ""
- </script>
- </transition>
- <transition event="button_pressed" cond="evt == 'confirm' and self.activity_type == 'ActionLanguage'" target="../browse_file">
- <parameter name="evt"/>
- </transition>
- </state>
- <state id="browse_file">
- <onentry>
- <raise event="create_instance" scope="cd">
- <parameter expr="'browser'"/>
- <parameter expr="'FileBrowser'"/>
- <parameter expr="'Select model code.'"/>
- </raise>
- <script>
- self.upload_code = ""
- </script>
- </onentry>
-
- <transition event="instance_created" target="../waiting">
- <parameter name="result"/>
- <raise event="start_instance" scope="cd">
- <parameter expr="result"/>
- </raise>
- </transition>
- </state>
- <state id="waiting">
- <transition event="browse_result" target=".">
- <parameter name="result"/>
- <script>
- self.upload_code = open(result, 'r').read()
- </script>
- </transition>
- <transition event="close_window" target="../creating">
- <raise event="delete_instance" scope="cd">
- <parameter expr="'browser'"/>
- </raise>
- </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.create_input_signature, self.create_output_signature, self.activity_name, self.upload_code]"/>
- </raise>
- </onentry>
- <transition event="mv_response" cond="model is not None" target="../modifying_mm">
- <parameter name="model"/>
- <script>
- self.subprocess = subprocess.Popen([sys.executable, sys.argv[0], "--address", data['mv_address'], "--username", data['username'], "--password", data['password'], "--model", model, "--limited"])
- </script>
- </transition>
- <transition event="mv_response" cond="model is None" target="../closing">
- <parameter name="model"/>
- </transition>
- </state>
- <state id="modifying_mm">
- <transition cond="self.subprocess.poll() is not None" target="../finish_transformation_add"/>
- <transition after="0.5" target="."/>
- </state>
- <state id="finish_transformation_add">
- <onentry>
- <raise event="mv_data_input" scope="broad">
- <parameter expr="None"/>
- <parameter expr="None"/>
- </raise>
- </onentry>
- <transition event="mv_response" target="../closing"/>
- </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>
- <raise event="delete_instance" scope="cd">
- <parameter expr="'static'"/>
- </raise>
- </onentry>
-
- <transition target="../closed">
- <raise event="close_window" scope="narrow" target="'parent'"/>
- </transition>
- </state>
- <state id="closed"/>
- <state id="browsing_input" initial="creating">
- <state id="creating">
- <onentry>
- <raise event="create_instance" scope="cd">
- <parameter expr="'browser'"/>
- <parameter expr="'Browser'"/>
- <parameter expr="'Select metamodel for signature of activity.'"/>
- <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>
- <state id="browsing_output" initial="creating">
- <state id="creating">
- <onentry>
- <raise event="create_instance" scope="cd">
- <parameter expr="'browser'"/>
- <parameter expr="'Browser'"/>
- <parameter expr="'Select metamodel for signature of activity.'"/>
- <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.output_map[self.current][3]">
- <parameter expr="result"/>
- </raise>
- <script>
- self.create_output_signature[self.output_map[self.current][0]] = result
- self.output_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>
|