Kaynağa Gözat

Clean up when closing the attribute editor by sending event to all widgets

Yentl Van Tendeloo 8 yıl önce
ebeveyn
işleme
37685e2f17
2 değiştirilmiş dosya ile 21 ekleme ve 5 silme
  1. 14 2
      classes/window/attribute_editor.xml
  2. 7 3
      frontend.py

+ 14 - 2
classes/window/attribute_editor.xml

@@ -16,7 +16,7 @@
         <super class="tk.TopLevel"/>
         <super class="tk.TopLevel"/>
         <super class="SCCDWidget"/>
         <super class="SCCDWidget"/>
         <body>
         <body>
-            self.as_element = element
+            self.as_element = as_element
             self.allowed_types = allowed_types
             self.allowed_types = allowed_types
 
 
             self.attrs = None
             self.attrs = None
@@ -450,7 +450,19 @@
             <state id="closing">
             <state id="closing">
                 <onentry>
                 <onentry>
                     <raise event="delete_instance" scope="cd">
                     <raise event="delete_instance" scope="cd">
-                        <parameter expr="self.button"/>
+                        <parameter expr="'names'"/>
+                    </raise>
+                    <raise event="delete_instance" scope="cd">
+                        <parameter expr="'types'"/>
+                    </raise>
+                    <raise event="delete_instance" scope="cd">
+                        <parameter expr="'optional'"/>
+                    </raise>
+                    <raise event="delete_instance" scope="cd">
+                        <parameter expr="'delete'"/>
+                    </raise>
+                    <raise event="delete_instance" scope="cd">
+                        <parameter expr="'add_attribute_button'"/>
                     </raise>
                     </raise>
                 </onentry>
                 </onentry>
 
 

+ 7 - 3
frontend.py

@@ -1,7 +1,7 @@
 """
 """
 Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 
 
-Date:   Thu Oct 12 16:26:49 2017
+Date:   Thu Oct 12 16:39:52 2017
 
 
 Model author: Yentl Van Tendeloo
 Model author: Yentl Van Tendeloo
 Model name:   Modelverse Visual Editor - Tkinter Version 
 Model name:   Modelverse Visual Editor - Tkinter Version 
@@ -3860,7 +3860,7 @@ class AttributeEditor(RuntimeClassBase, tk.Toplevel, SCCDWidget):
     def user_defined_constructor(self, as_element, allowed_types):
     def user_defined_constructor(self, as_element, allowed_types):
         tk.Toplevel.__init__(self)
         tk.Toplevel.__init__(self)
         SCCDWidget.__init__(self)
         SCCDWidget.__init__(self)
-        self.as_element = element
+        self.as_element = as_element
         self.allowed_types = allowed_types
         self.allowed_types = allowed_types
         
         
         self.attrs = None
         self.attrs = None
@@ -4280,7 +4280,11 @@ class AttributeEditor(RuntimeClassBase, tk.Toplevel, SCCDWidget):
         self.big_step.outputEventOM(Event("broad_cast", None, [self, Event("mv_request", None, ['attr_del', [current_model, self.as_element, self.parameter]])]))
         self.big_step.outputEventOM(Event("broad_cast", None, [self, Event("mv_request", None, ['attr_del', [current_model, self.as_element, self.parameter]])]))
     
     
     def _all_closing_enter(self):
     def _all_closing_enter(self):
-        self.big_step.outputEventOM(Event("delete_instance", None, [self, self.button]))
+        self.big_step.outputEventOM(Event("delete_instance", None, [self, 'names']))
+        self.big_step.outputEventOM(Event("delete_instance", None, [self, 'types']))
+        self.big_step.outputEventOM(Event("delete_instance", None, [self, 'optional']))
+        self.big_step.outputEventOM(Event("delete_instance", None, [self, 'delete']))
+        self.big_step.outputEventOM(Event("delete_instance", None, [self, 'add_attribute_button']))
     
     
     def _all_close_enter(self):
     def _all_close_enter(self):
         self.big_step.outputEventOM(Event("narrow_cast", None, [self, 'parent', Event("close_window", None, [])]))
         self.big_step.outputEventOM(Event("narrow_cast", None, [self, 'parent', Event("close_window", None, [])]))