sccd.xml 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. <?xml version="1.0" ?>
  2. <diagram author="Simon Van Mierlo" name="Timer">
  3. <inport name="ui" />
  4. <class name="MainApp" default="true">
  5. <method name="MainApp">
  6. <body>
  7. <![CDATA[
  8. this.canvas = ui.append_canvas(ui.window,400,150,{'background':'#eee'})
  9. this.clock_text = this.canvas.add_text(25,25,'0.0')
  10. this.actual_clock_text = this.canvas.add_text(25,50,'0.0')
  11. var interrupt_button = ui.append_button(ui.window, 'INTERRUPT');
  12. var continue_button = ui.append_button(ui.window, 'CONTINUE');
  13. ui.bind_event(interrupt_button.element, ui.EVENTS.MOUSE_CLICK, this.controller, 'interrupt_clicked');
  14. ui.bind_event(continue_button.element, ui.EVENTS.MOUSE_CLICK, this.controller, 'continue_clicked');
  15. ]]>
  16. </body>
  17. </method>
  18. <method name="update_timers">
  19. <body>
  20. this.clock_text.set_text((this.getSimulatedTime() / 1000).toFixed(2));
  21. this.actual_clock_text.set_text((this.getSimulatedTime() / 1000).toFixed(2));
  22. </body>
  23. </method>
  24. <scxml initial="running">
  25. <state id="running">
  26. <transition target="." after="0.05">
  27. <script>
  28. this.update_timers();
  29. </script>
  30. </transition>
  31. <transition target="../interrupted" event="interrupt_clicked" port="ui">
  32. <script>
  33. this.update_timers();
  34. </script>
  35. </transition>
  36. </state>
  37. <state id="interrupted">
  38. <transition target="." event="interrupt_clicked" port="ui">
  39. <script>
  40. this.update_timers();
  41. </script>
  42. </transition>
  43. <transition target="../running" event="continue_clicked" port="ui">
  44. <script>
  45. this.update_timers();
  46. </script>
  47. </transition>
  48. </state>
  49. </scxml>
  50. </class>
  51. </diagram>