|
@@ -0,0 +1,104 @@
|
|
|
+<class name="ModelToolbar">
|
|
|
+ <relationships>
|
|
|
+ <inheritance class="tk.Frame" priority="1"/>
|
|
|
+ <inheritance class="SCCDWidget" priority="0"/>
|
|
|
+ <association name="buttons" class="Button"/>
|
|
|
+ <association name="parent" class="A"/>
|
|
|
+ </relationships>
|
|
|
+
|
|
|
+ <constructor>
|
|
|
+ <parameter name="parent"/>
|
|
|
+ <super class="tk.Frame">
|
|
|
+ <parameter expr="parent"/>
|
|
|
+ </super>
|
|
|
+ <super class="SCCDWidget"/>
|
|
|
+ <body>
|
|
|
+ self.to_create = ["verify"]
|
|
|
+ self.button_info = {"verify": "Check conformance of currently loaded model.",
|
|
|
+ }
|
|
|
+ self.buttons = {}
|
|
|
+ </body>
|
|
|
+ </constructor>
|
|
|
+ <destructor>
|
|
|
+ <body>
|
|
|
+ self.destroy()
|
|
|
+ </body>
|
|
|
+ </destructor>
|
|
|
+
|
|
|
+ <scxml initial="init">
|
|
|
+ <state id="init" initial="init_buttons">
|
|
|
+ <onexit>
|
|
|
+ <raise event="tk_widget" scope="narrow" target="'parent'">
|
|
|
+ <parameter expr="self"/>
|
|
|
+ </raise>
|
|
|
+ </onexit>
|
|
|
+
|
|
|
+ <state id="init_buttons">
|
|
|
+ <onentry>
|
|
|
+ <raise event="create_instance" scope="cd">
|
|
|
+ <parameter expr="'buttons'"/>
|
|
|
+ <parameter expr="'Button'"/>
|
|
|
+ <parameter expr="{'parent': self, 'visual': ImageVisual('icons/%s.png' % self.to_create[0]), 'tooltip_text': self.button_info[self.to_create[0]], 'event_parameters': self.to_create[0]}"/>
|
|
|
+ </raise>
|
|
|
+ </onentry>
|
|
|
+
|
|
|
+ <transition event="instance_created" target="../pack_button">
|
|
|
+ <parameter name="association_name"/>
|
|
|
+ <raise event="start_instance" scope="cd">
|
|
|
+ <parameter expr="association_name"/>
|
|
|
+ </raise>
|
|
|
+
|
|
|
+ <script>
|
|
|
+ self.buttons[self.to_create[0]] = association_name
|
|
|
+ self.to_create.pop(0)
|
|
|
+ </script>
|
|
|
+ </transition>
|
|
|
+ </state>
|
|
|
+
|
|
|
+ <state id="pack_button">
|
|
|
+ <transition event="tk_widget" target="../next_button">
|
|
|
+ <parameter name="tk_elem"/>
|
|
|
+ <script>
|
|
|
+ tk_elem.pack(side=tk.LEFT)
|
|
|
+ </script>
|
|
|
+ </transition>
|
|
|
+ </state>
|
|
|
+
|
|
|
+ <state id="next_button">
|
|
|
+ <transition cond="len(self.to_create) == 0" target="../../root"/>
|
|
|
+ <transition cond="len(self.to_create) > 0" target="../init_buttons"/>
|
|
|
+ </state>
|
|
|
+ </state>
|
|
|
+
|
|
|
+ <state id="root">
|
|
|
+ <transition event="button_pressed" cond="event_name == 'new'" target=".">
|
|
|
+ <parameter name="event_name"/>
|
|
|
+ <raise event="create_new_model" scope="narrow" target="'parent'"/>
|
|
|
+ </transition>
|
|
|
+
|
|
|
+ <transition event="button_pressed" cond="event_name == 'open'" target=".">
|
|
|
+ <parameter name="event_name"/>
|
|
|
+ <raise event="open_model" scope="narrow" target="'parent'"/>
|
|
|
+ </transition>
|
|
|
+
|
|
|
+ <transition event="close" target="../closing"/>
|
|
|
+ </state>
|
|
|
+
|
|
|
+ <state id="closing">
|
|
|
+ <onentry>
|
|
|
+ <raise event="delete_instance" scope="cd">
|
|
|
+ <parameter expr="self.buttons.popitem()[1]"/>
|
|
|
+ </raise>
|
|
|
+ </onentry>
|
|
|
+
|
|
|
+ <transition event="instance_deleted" cond="len(self.buttons) > 0" target="../closing"/>
|
|
|
+ <transition event="instance_deleted" cond="len(self.buttons) == 0" target="../close"/>
|
|
|
+ </state>
|
|
|
+
|
|
|
+ <state id="close">
|
|
|
+ <onentry>
|
|
|
+ <raise event="close_window" scope="narrow" target="'parent'"/>
|
|
|
+ </onentry>
|
|
|
+ </state>
|
|
|
+ </scxml>
|
|
|
+</class>
|