text.xml 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. <class name="Text">
  2. <relationships>
  3. <association name="parent" class="A"/>
  4. </relationships>
  5. <constructor>
  6. <parameter name="constructor_parameters" type='dict' default='{}' />
  7. <body>
  8. self.name = constructor_parameters['name']
  9. self.entry = tk.Text(constructor_parameters['parent'])
  10. self.entry.config(state=tk.DISABLED)
  11. </body>
  12. </constructor>
  13. <destructor>
  14. <body>
  15. self.entry.destroy()
  16. </body>
  17. </destructor>
  18. <scxml initial="main">
  19. <state id="main" initial='initializing'>
  20. <state id="initializing">
  21. <transition target="../ready">
  22. <raise event="tk_widget" scope="narrow" target="'parent'">
  23. <parameter expr="self.entry"/>
  24. </raise>
  25. </transition>
  26. </state>
  27. <state id="ready">
  28. <transition event="append_value" target=".">
  29. <parameter name="new_value"/>
  30. <script>
  31. self.entry.config(state=tk.NORMAL)
  32. self.entry.insert(tk.END, new_value)
  33. self.entry.config(state=tk.DISABLED)
  34. self.entry.see(tk.END)
  35. </script>
  36. <raise event="changed_value" scope="narrow" target="'parent'">
  37. <parameter expr="self.name"/>
  38. <parameter expr="self.entry.get(1.0, tk.END)"/>
  39. </raise>
  40. </transition>
  41. </state>
  42. </state>
  43. </scxml>
  44. </class>