123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171 |
- <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>
- <super class="tk.TopLevel"/>
- <super class="SCCDWidget"/>
- <body>
- self.input_value = ""
- </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="stdout_output" scope="output" port="stdout_port">
- <parameter expr="self.input_value"/>
- </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="stdin_input" port="stdin_port" 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"/>
- </scxml>
- </class>
|