Преглед изворни кода

Make use of the ELSE construct

Yentl Van Tendeloo пре 7 година
родитељ
комит
4b23c43cb0
4 измењених фајлова са 13 додато и 13 уклоњено
  1. 3 2
      classes/toolbar/dsl_toolbar.xml
  2. 3 3
      classes/window/main_window.xml
  3. 0 1
      classes/window/prompt_window.xml
  4. 7 7
      frontend.py

+ 3 - 2
classes/toolbar/dsl_toolbar.xml

@@ -39,13 +39,14 @@
                     </raise>
                 </onentry>
 
-                <transition event="mv_response" cond="'name' in result and result['name'] is not None" target="../create_buttons">
+                <transition event="mv_response" cond="'name' in result and result['name'] is not None and result['abstract'] != True" target="../create_buttons">
                     <parameter name="result"/>
                     <script>
                         self.button_text = result["name"]
+                        print("Got attrs: " + str(result))
                     </script>
                 </transition>
-                <transition event="mv_response" cond="'name' not in result or result['name'] is None" target="../next_button">
+                <transition event="mv_response" cond="ELSE" target="../next_button">
                     <parameter name="result"/>
                     <script>
                         print("Skipping button for %s as it has no name attribute defined" % self.to_create[0])

+ 3 - 3
classes/window/main_window.xml

@@ -1121,7 +1121,7 @@
                                         is_edge = False
                                         attrs = {}
                                         for key, value in elem.items():
-                                            if key == "id":
+                                            if key == "__id":
                                                 element_id = value
                                             elif key == "__source":
                                                 element_source = value
@@ -1129,14 +1129,14 @@
                                             elif key == "__target":
                                                 element_target = value
                                                 is_edge = True
-                                            elif key == "type":
+                                            elif key == "__type":
                                                 element_type = value
                                             else:
                                                 attrs[key] = value
                                         max_text = 0
 
                                         if is_edge:
-                                            edge_edge = len([x for x in result if (x["id"] == element_source or x["id"] == element_target) and "__source" in x]) > 0
+                                            edge_edge = len([x for x in result if (x["__id"] == element_source or x["__id"] == element_target) and "__source" in x]) > 0
                                         else:
                                             edge_edge = False
 

+ 0 - 1
classes/window/prompt_window.xml

@@ -88,7 +88,6 @@
                             results[k] = v.get()
                         except:
                             results[k] = v.get("1.0", tk.END)
-                    print("SENDING DATA")
                 </script>
 
                 <raise event="prompt_results" scope="narrow" target="'parent'">

+ 7 - 7
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)
 
-Date:   Wed May 30 09:44:06 2018
+Date:   Wed May 30 13:06:42 2018
 
 Model author: Yentl Van Tendeloo
 Model name:   Modelverse Visual Editor - Tkinter Version 
@@ -5267,7 +5267,6 @@ class PromptWindow(RuntimeClassBase, tk.Toplevel, SCCDWidget):
                 results[k] = v.get()
             except:
                 results[k] = v.get("1.0", tk.END)
-        print("SENDING DATA")
         self.big_step.outputEventOM(Event("narrow_cast", None, [self, 'parent', Event("prompt_results", None, [results])]))
     
     def _root_0_guard(self, parameters):
@@ -6818,7 +6817,7 @@ class MainWindow(RuntimeClassBase, tk.Toplevel, SCCDWidget):
             is_edge = False
             attrs = {}
             for key, value in elem.items():
-                if key == "id":
+                if key == "__id":
                     element_id = value
                 elif key == "__source":
                     element_source = value
@@ -6826,14 +6825,14 @@ class MainWindow(RuntimeClassBase, tk.Toplevel, SCCDWidget):
                 elif key == "__target":
                     element_target = value
                     is_edge = True
-                elif key == "type":
+                elif key == "__type":
                     element_type = value
                 else:
                     attrs[key] = value
             max_text = 0
         
             if is_edge:
-                edge_edge = len([x for x in result if (x["id"] == element_source or x["id"] == element_target) and "__source" in x]) > 0
+                edge_edge = len([x for x in result if (x["__id"] == element_source or x["__id"] == element_target) and "__source" in x]) > 0
             else:
                 edge_edge = False
         
@@ -11975,10 +11974,11 @@ class DSLToolbar(Toolbar):
     def _init_init_buttons_0_exec(self, parameters):
         result = parameters[0]
         self.button_text = result["name"]
+        print("Got attrs: " + str(result))
     
     def _init_init_buttons_0_guard(self, parameters):
         result = parameters[0]
-        return 'name' in result and result['name'] is not None
+        return 'name' in result and result['name'] is not None and result['abstract'] != True
     
     def _init_init_buttons_1_exec(self, parameters):
         result = parameters[0]
@@ -11987,7 +11987,7 @@ class DSLToolbar(Toolbar):
     
     def _init_init_buttons_1_guard(self, parameters):
         result = parameters[0]
-        return 'name' not in result or result['name'] is None
+        return "ELSE_GUARD"
     
     def _init_create_buttons_0_exec(self, parameters):
         association_name = parameters[0]