entry.xml 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. <class name="Entry">
  2. <relationships>
  3. <association name="parent" class="A"/>
  4. <inheritance class="SCCDWidget" priority='0'/>
  5. <inheritance class="tk.Entry" priority='1'/>
  6. </relationships>
  7. <constructor>
  8. <parameter name="constructor_parameters" type='dict' default='{}' />
  9. <body>
  10. self.strvar = tk.StringVar(self)
  11. self.strvar.set(constructor_parameters['initial']
  12. self.strvar.trace('w', lambda _, _, _: self.controller.addInput(Event("change_entry", "input", [id(self), self.strvar.get()])))
  13. self.name = constructor_parameters['name']
  14. </body>
  15. <super class="tk.Entry">
  16. <parameter expr="constructor_parameters['parent']"/>
  17. </super>
  18. <super class="SCCDWidget">
  19. </super>
  20. </constructor>
  21. <destructor>
  22. <body>
  23. self.destroy()
  24. </body>
  25. </destructor>
  26. <scxml initial="main">
  27. <state id="main" initial='initializing'>
  28. <state id="initializing">
  29. <transition target="../ready">
  30. <raise event="tk_widget" scope="narrow" target="'parent'">
  31. <parameter expr="self"/>
  32. </raise>
  33. </transition>
  34. </state>
  35. <state id="ready">
  36. <transition port='input' event="change_entry" target='.' cond='tagorid == id(self)'>
  37. <parameter name='tagorid'/>
  38. <parameter name='new_value'/>
  39. <raise event="changed_entry" scope="narrow" target="'parent'">
  40. <parameter expr="self.name"/>
  41. <parameter expr="new_value"/>
  42. </raise>
  43. </transition>
  44. <transition event="mark_committed" target=".">
  45. <script>
  46. self.configure(bg="lightgreen")
  47. </script>
  48. </transition>
  49. <transition event="mark_uncommitted" target=".">
  50. <script>
  51. self.configure(bg="lightorange")
  52. </script>
  53. </transition>
  54. <transition event="change_event_name" target=".">
  55. <parameter name="new_name"/>
  56. <script>
  57. self.name = new_name
  58. </script>
  59. </transition>
  60. </state>
  61. </state>
  62. </scxml>
  63. </class>