Просмотр исходного кода

Modularize the generic toolbar

Yentl Van Tendeloo 8 лет назад
Родитель
Сommit
fa6dbabaf1
3 измененных файлов с 12 добавлено и 12 удалено
  1. 3 3
      classes/toolbar/generic_toolbar.xml
  2. 1 0
      classes/window/main_window.xml
  3. 8 9
      frontend.py

+ 3 - 3
classes/toolbar/generic_toolbar.xml

@@ -8,14 +8,14 @@
 
     <constructor>
         <parameter name="parent"/>
+        <parameter name="button_info"/>
         <super class="tk.Frame">
             <parameter expr="parent"/>
         </super>
         <super class="SCCDWidget"/>
         <body>
-            self.to_create = ["new", "open"]
-            self.button_info = {"new": "Create a new model",
-                                "open": "Open an existing model"}
+            self.to_create = button_info.keys()
+            self.button_info = button_info
             self.buttons = {}
         </body>
     </constructor>

+ 1 - 0
classes/window/main_window.xml

@@ -36,6 +36,7 @@
                         <parameter expr="'toolbars'"/>
                         <parameter expr="'GenericToolbar'"/>
                         <parameter expr="self.toolbar_frame"/>
+                        <parameter expr="{'new': 'Create a new model', 'open': 'Open an existing model'}"/>
                     </raise>
                 </onentry>
 

+ 8 - 9
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:   Thu Sep 28 10:43:28 2017
+Date:   Thu Sep 28 11:08:55 2017
 
 Model author: Yentl Van Tendeloo
 Model name:   Modelverse Visual Editor - Tkinter Version 
@@ -4302,7 +4302,7 @@ class MainWindow(RuntimeClassBase, tk.Toplevel, SCCDWidget):
         self.big_step.outputEventOM(Event("broad_cast", None, [self, Event("mv_request", None, ['alter_context', ['rendered/%s%s' % (current_model, 'models/render_SCD'), 'formalisms/MM_render']])]))
     
     def _init_generic_toolbar_enter(self):
-        self.big_step.outputEventOM(Event("create_instance", None, [self, 'toolbars', 'GenericToolbar', self.toolbar_frame]))
+        self.big_step.outputEventOM(Event("create_instance", None, [self, 'toolbars', 'GenericToolbar', self.toolbar_frame, {'new': 'Create a new model', 'open': 'Open an existing model'}]))
     
     def _init_canvas_enter(self):
         self.big_step.outputEventOM(Event("create_instance", None, [self, 'canvas', 'Canvas', self.canvas_frame]))
@@ -5145,7 +5145,7 @@ class SplashWindow(RuntimeClassBase, tk.Toplevel):
         RuntimeClassBase.initializeStatechart(self)
 
 class GenericToolbar(RuntimeClassBase, tk.Frame, SCCDWidget):
-    def __init__(self, controller, parent):
+    def __init__(self, controller, parent, button_info):
         RuntimeClassBase.__init__(self, controller)
         
         self.semantics.big_step_maximality = StatechartSemantics.TakeMany
@@ -5158,14 +5158,13 @@ class GenericToolbar(RuntimeClassBase, tk.Frame, SCCDWidget):
         self.build_statechart_structure()
         
         # call user defined constructor
-        GenericToolbar.user_defined_constructor(self, parent)
+        GenericToolbar.user_defined_constructor(self, parent, button_info)
     
-    def user_defined_constructor(self, parent):
+    def user_defined_constructor(self, parent, button_info):
         tk.Frame.__init__(self, parent)
         SCCDWidget.__init__(self)
-        self.to_create = ["new", "open"]
-        self.button_info = {"new": "Create a new model",
-                            "open": "Open an existing model"}
+        self.to_create = button_info.keys()
+        self.button_info = button_info
         self.buttons = {}
     
     def user_defined_destructor(self):
@@ -6149,7 +6148,7 @@ class ObjectManager(ObjectManagerBase):
             instance.associations["progressbar"] = Association("ProgressBar", 0, -1)
             instance.associations["parent"] = Association("A", 0, -1)
         elif class_name == "GenericToolbar":
-            instance = GenericToolbar(self.controller, construct_params[0])
+            instance = GenericToolbar(self.controller, construct_params[0], construct_params[1])
             instance.associations = {}
             instance.associations["buttons"] = Association("Button", 0, -1)
             instance.associations["parent"] = Association("A", 0, -1)