|
|
@@ -0,0 +1,179 @@
|
|
|
+<class name="ChatWindow">
|
|
|
+ <relationships>
|
|
|
+ <inheritance class="tk.Toplevel" priority="1"/>
|
|
|
+ <inheritance class="SCCDWidget" priority="0"/>
|
|
|
+ <association name="buttons" class="Button"/>
|
|
|
+ <association name="entries" class="Entry"/>
|
|
|
+ <association name="parent" class="A"/>
|
|
|
+ </relationships>
|
|
|
+
|
|
|
+ <constructor>
|
|
|
+ <parameter name="context"/>
|
|
|
+ <parameter name="activity_name"/>
|
|
|
+ <super class="tk.TopLevel"/>
|
|
|
+ <super class="SCCDWidget"/>
|
|
|
+ <body>
|
|
|
+ tk.Label(self, text="Executing %s" % activity_name).pack()
|
|
|
+ self.input_value = ""
|
|
|
+ self.context = context
|
|
|
+ </body>
|
|
|
+ </constructor>
|
|
|
+
|
|
|
+ <destructor>
|
|
|
+ <body>
|
|
|
+ self.destroy()
|
|
|
+ </body>
|
|
|
+ </destructor>
|
|
|
+
|
|
|
+ <scxml initial="init">
|
|
|
+ <state id="init" initial="init_entry_log">
|
|
|
+ <state id="init_entry_log" initial="create">
|
|
|
+ <state id="create">
|
|
|
+ <onentry>
|
|
|
+ <raise event="create_instance" scope="cd">
|
|
|
+ <parameter expr="'entries'"/>
|
|
|
+ <parameter expr="'Text'"/>
|
|
|
+ <parameter expr="{'parent': self, 'name': 'history'}"/>
|
|
|
+ </raise>
|
|
|
+ </onentry>
|
|
|
+
|
|
|
+ <transition event="instance_created" target="../wait_for_packing">
|
|
|
+ <parameter name="association_name"/>
|
|
|
+ <raise event="start_instance" scope="cd">
|
|
|
+ <parameter expr="association_name"/>
|
|
|
+ </raise>
|
|
|
+
|
|
|
+ <script>
|
|
|
+ self.entry_log = association_name
|
|
|
+ </script>
|
|
|
+ </transition>
|
|
|
+ </state>
|
|
|
+
|
|
|
+ <state id="wait_for_packing">
|
|
|
+ <transition event="tk_widget" target="../../init_entry_input">
|
|
|
+ <parameter name="tk_elem"/>
|
|
|
+ <script>
|
|
|
+ tk_elem.pack()
|
|
|
+ </script>
|
|
|
+ </transition>
|
|
|
+ </state>
|
|
|
+ </state>
|
|
|
+
|
|
|
+ <state id="init_entry_input" initial="create">
|
|
|
+ <state id="create">
|
|
|
+ <onentry>
|
|
|
+ <raise event="create_instance" scope="cd">
|
|
|
+ <parameter expr="'entries'"/>
|
|
|
+ <parameter expr="'Entry'"/>
|
|
|
+ <parameter expr="{'parent': self, 'value': self.input_value, 'name': 'input_value'}"/>
|
|
|
+ </raise>
|
|
|
+ </onentry>
|
|
|
+
|
|
|
+ <transition event="instance_created" target="../wait_for_packing">
|
|
|
+ <parameter name="association_name"/>
|
|
|
+ <raise event="start_instance" scope="cd">
|
|
|
+ <parameter expr="association_name"/>
|
|
|
+ </raise>
|
|
|
+
|
|
|
+ <script>
|
|
|
+ self.entry_input = association_name
|
|
|
+ </script>
|
|
|
+ </transition>
|
|
|
+ </state>
|
|
|
+
|
|
|
+ <state id="wait_for_packing">
|
|
|
+ <transition event="tk_widget" target="../../init_button_send">
|
|
|
+ <parameter name="tk_elem"/>
|
|
|
+ <script>
|
|
|
+ tk_elem.pack()
|
|
|
+ </script>
|
|
|
+ </transition>
|
|
|
+ </state>
|
|
|
+ </state>
|
|
|
+
|
|
|
+ <state id="init_button_send" initial="create">
|
|
|
+ <state id="create">
|
|
|
+ <onentry>
|
|
|
+ <raise event="create_instance" scope="cd">
|
|
|
+ <parameter expr="'buttons'"/>
|
|
|
+ <parameter expr="'Button'"/>
|
|
|
+ <parameter expr="{'parent': self, 'visual': TextVisual('send'), 'tooltip_text': 'Send data to active activity.', 'event_parameters': 'send'}"/>
|
|
|
+ </raise>
|
|
|
+ </onentry>
|
|
|
+
|
|
|
+ <transition event="instance_created" target="../wait_for_packing">
|
|
|
+ <parameter name="association_name"/>
|
|
|
+ <raise event="start_instance" scope="cd">
|
|
|
+ <parameter expr="association_name"/>
|
|
|
+ </raise>
|
|
|
+
|
|
|
+ <script>
|
|
|
+ self.button = association_name
|
|
|
+ </script>
|
|
|
+ </transition>
|
|
|
+ </state>
|
|
|
+
|
|
|
+ <state id="wait_for_packing">
|
|
|
+ <transition event="tk_widget" target="../../../root">
|
|
|
+ <parameter name="tk_elem"/>
|
|
|
+ <script>
|
|
|
+ tk_elem.pack()
|
|
|
+ </script>
|
|
|
+ </transition>
|
|
|
+ </state>
|
|
|
+ </state>
|
|
|
+ </state>
|
|
|
+
|
|
|
+ <state id="root">
|
|
|
+ <transition event="button_pressed" cond="event_name == 'send'" target=".">
|
|
|
+ <parameter name="event_name"/>
|
|
|
+ <raise event="mv_data_input" scope="broad">
|
|
|
+ <parameter expr="self.input_value"/>
|
|
|
+ <parameter expr="self.context"/>
|
|
|
+ </raise>
|
|
|
+ <raise event="change_value" scope="narrow" target="self.entry_input">
|
|
|
+ <parameter expr="''"/>
|
|
|
+ </raise>
|
|
|
+ <raise event="append_value" scope="narrow" target="self.entry_log">
|
|
|
+ <parameter expr="'< ' + self.input_value + '\n'"/>
|
|
|
+ </raise>
|
|
|
+ </transition>
|
|
|
+
|
|
|
+ <transition event="mv_data_output" target=".">
|
|
|
+ <parameter name="value"/>
|
|
|
+ <raise event="append_value" scope="narrow" target="self.entry_log">
|
|
|
+ <parameter expr="'> ' + value + '\n'"/>
|
|
|
+ </raise>
|
|
|
+ </transition>
|
|
|
+
|
|
|
+ <transition event="changed_entry" cond="name == 'input_value'" target=".">
|
|
|
+ <parameter name="name"/>
|
|
|
+ <parameter name="value"/>
|
|
|
+ <script>
|
|
|
+ self.input_value = value
|
|
|
+ </script>
|
|
|
+ </transition>
|
|
|
+
|
|
|
+ <transition event="close_window" target="../closing"/>
|
|
|
+ </state>
|
|
|
+
|
|
|
+ <state id="closing">
|
|
|
+ <onentry>
|
|
|
+ <raise event="delete_instance" scope="cd">
|
|
|
+ <parameter expr="'buttons'"/>
|
|
|
+ </raise>
|
|
|
+ <raise event="delete_instance" scope="cd">
|
|
|
+ <parameter expr="'entries'"/>
|
|
|
+ </raise>
|
|
|
+ </onentry>
|
|
|
+
|
|
|
+ <transition event="instance_deleted" target="../close"/>
|
|
|
+ </state>
|
|
|
+
|
|
|
+ <state id="close">
|
|
|
+ <onentry>
|
|
|
+ <raise event="close_window" scope="narrow" target="'parent'"/>
|
|
|
+ </onentry>
|
|
|
+ </state>
|
|
|
+ </scxml>
|
|
|
+</class>
|