Browse Source

Allow concurrent use of multiple perceptualized models

Yentl Van Tendeloo 8 years ago
parent
commit
169ddfa46e

+ 21 - 0
classes/toolbar/concretesyntax_toolbar.xml

@@ -92,6 +92,27 @@
                 <raise event="rerender_model" scope="narrow" target="'parent'"/>
             </transition>
 
+            <transition event="button_pressed" cond="event_name == 'new_rendered'" target=".">
+                <parameter name="event_name"/>
+                <raise event="new_rendered" scope="narrow" target="'parent'"/>
+            </transition>
+
+            <transition event="changed_mapper" cond="ID == id(self) and new_mapper != current_mapper" target=".">
+                <parameter name="ID"/>
+                <parameter name="new_mapper"/>
+                <raise event="change_mapper" scope="narrow" target="'parent'">
+                    <parameter expr="new_mapper"/>
+                </raise>
+            </transition>
+
+            <transition event="changed_rendered" cond="ID == id(self) and new_rendered != current_rendered_model" target=".">
+                <parameter name="ID"/>
+                <parameter name="new_rendered"/>
+                <raise event="change_rendered" scope="narrow" target="'parent'">
+                    <parameter expr="new_rendered"/>
+                </raise>
+            </transition>
+
             <transition event="close" target="../closing"/>
         </state>
 

+ 36 - 0
classes/window/main_window.xml

@@ -105,7 +105,9 @@
                 <transition event="create_new_model" target="../create_new_model"/>
                 <transition event="open_model" target="../open_model"/>
                 <transition event="rerender_model" target="../rerender_model"/>
+                <transition event="new_rendered" target="../new_rendered"/>
                 <transition event="verify" target="../verify_model"/>
+
                 <transition event="change_metamodel" target="../change_metamodel">
                     <parameter name="new_metamodel"/>
                     <script>
@@ -113,6 +115,20 @@
                         current_metamodel = new_metamodel
                     </script>
                 </transition>
+                <transition event="change_mapper" target="../change_mapper">
+                    <parameter name="new_mapper"/>
+                    <script>
+                        global current_mapper
+                        current_mapper = new_mapper
+                    </script>
+                </transition>
+                <transition event="change_rendered" target="../change_rendered">
+                    <parameter name="new_rendered"/>
+                    <script>
+                        global current_rendered_model
+                        current_rendered_model = new_rendered
+                    </script>
+                </transition>
             </state>
 
             <state id="change_metamodel">
@@ -131,6 +147,14 @@
                 <transition event="mv_response" target="../open_model/search_CS_mappers"/>
             </state>
 
+            <state id="change_mapper">
+                <transition target="../rerender_model"/>
+            </state>
+
+            <state id="change_rendered">
+                <transition target="../rerender_model"/>
+            </state>
+
             <state id="verify_model" initial="request">
                 <state id="request">
                     <onentry>
@@ -325,6 +349,18 @@
                 </state>
             </state>
 
+            <state id="new_rendered">
+                <onentry>
+                    <script>
+                        global current_rendered_model
+                        current_rendered_model = "rendered/%s" % str(uuid.uuid4())
+                        self.allowed_rendered.append(current_rendered_model)
+                    </script>
+                </onentry>
+
+                <transition target="../rerender_model"/>
+            </state>
+
             <state id="create_new_model" initial="query_metamodel">
                 <state id="query_metamodel">
                     <onentry>

+ 146 - 49
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:   Mon Oct  2 12:47:20 2017
+Date:   Mon Oct  2 13:04:34 2017
 
 Model author: Yentl Van Tendeloo
 Model name:   Modelverse Visual Editor - Tkinter Version 
@@ -4019,141 +4019,151 @@ class MainWindow(RuntimeClassBase, tk.Toplevel, SCCDWidget):
         self.states["/running/change_metamodel"] = State(8, "/running/change_metamodel", self)
         self.states["/running/change_metamodel"].setEnter(self._running_change_metamodel_enter)
         
+        # state /running/change_mapper
+        self.states["/running/change_mapper"] = State(9, "/running/change_mapper", self)
+        
+        # state /running/change_rendered
+        self.states["/running/change_rendered"] = State(10, "/running/change_rendered", self)
+        
         # state /running/verify_model
-        self.states["/running/verify_model"] = State(9, "/running/verify_model", self)
+        self.states["/running/verify_model"] = State(11, "/running/verify_model", self)
         
         # state /running/verify_model/request
-        self.states["/running/verify_model/request"] = State(10, "/running/verify_model/request", self)
+        self.states["/running/verify_model/request"] = State(12, "/running/verify_model/request", self)
         self.states["/running/verify_model/request"].setEnter(self._running_verify_model_request_enter)
         
         # state /running/verify_model/show_result
-        self.states["/running/verify_model/show_result"] = State(11, "/running/verify_model/show_result", self)
+        self.states["/running/verify_model/show_result"] = State(13, "/running/verify_model/show_result", self)
         
         # state /running/verify_model/wait_for_close
-        self.states["/running/verify_model/wait_for_close"] = State(12, "/running/verify_model/wait_for_close", self)
+        self.states["/running/verify_model/wait_for_close"] = State(14, "/running/verify_model/wait_for_close", self)
         
         # state /running/open_model
-        self.states["/running/open_model"] = State(13, "/running/open_model", self)
+        self.states["/running/open_model"] = State(15, "/running/open_model", self)
         
         # state /running/open_model/query_model
-        self.states["/running/open_model/query_model"] = State(14, "/running/open_model/query_model", self)
+        self.states["/running/open_model/query_model"] = State(16, "/running/open_model/query_model", self)
         self.states["/running/open_model/query_model"].setEnter(self._running_open_model_query_model_enter)
         
         # state /running/open_model/wait_for_model
-        self.states["/running/open_model/wait_for_model"] = State(15, "/running/open_model/wait_for_model", self)
+        self.states["/running/open_model/wait_for_model"] = State(17, "/running/open_model/wait_for_model", self)
         
         # state /running/open_model/got_model
-        self.states["/running/open_model/got_model"] = State(16, "/running/open_model/got_model", self)
+        self.states["/running/open_model/got_model"] = State(18, "/running/open_model/got_model", self)
         
         # state /running/open_model/search_metamodels
-        self.states["/running/open_model/search_metamodels"] = State(17, "/running/open_model/search_metamodels", self)
+        self.states["/running/open_model/search_metamodels"] = State(19, "/running/open_model/search_metamodels", self)
         self.states["/running/open_model/search_metamodels"].setEnter(self._running_open_model_search_metamodels_enter)
         
         # state /running/open_model/search_CS_mappers
-        self.states["/running/open_model/search_CS_mappers"] = State(18, "/running/open_model/search_CS_mappers", self)
+        self.states["/running/open_model/search_CS_mappers"] = State(20, "/running/open_model/search_CS_mappers", self)
         self.states["/running/open_model/search_CS_mappers"].setEnter(self._running_open_model_search_CS_mappers_enter)
         
         # state /running/open_model/search_CS_rendered
-        self.states["/running/open_model/search_CS_rendered"] = State(19, "/running/open_model/search_CS_rendered", self)
+        self.states["/running/open_model/search_CS_rendered"] = State(21, "/running/open_model/search_CS_rendered", self)
         self.states["/running/open_model/search_CS_rendered"].setEnter(self._running_open_model_search_CS_rendered_enter)
         
         # state /running/open_model/store_metamodel
-        self.states["/running/open_model/store_metamodel"] = State(20, "/running/open_model/store_metamodel", self)
+        self.states["/running/open_model/store_metamodel"] = State(22, "/running/open_model/store_metamodel", self)
         self.states["/running/open_model/store_metamodel"].setEnter(self._running_open_model_store_metamodel_enter)
         
+        # state /running/new_rendered
+        self.states["/running/new_rendered"] = State(23, "/running/new_rendered", self)
+        self.states["/running/new_rendered"].setEnter(self._running_new_rendered_enter)
+        
         # state /running/create_new_model
-        self.states["/running/create_new_model"] = State(21, "/running/create_new_model", self)
+        self.states["/running/create_new_model"] = State(24, "/running/create_new_model", self)
         
         # state /running/create_new_model/query_metamodel
-        self.states["/running/create_new_model/query_metamodel"] = State(22, "/running/create_new_model/query_metamodel", self)
+        self.states["/running/create_new_model/query_metamodel"] = State(25, "/running/create_new_model/query_metamodel", self)
         self.states["/running/create_new_model/query_metamodel"].setEnter(self._running_create_new_model_query_metamodel_enter)
         
         # state /running/create_new_model/wait_for_metamodel
-        self.states["/running/create_new_model/wait_for_metamodel"] = State(23, "/running/create_new_model/wait_for_metamodel", self)
+        self.states["/running/create_new_model/wait_for_metamodel"] = State(26, "/running/create_new_model/wait_for_metamodel", self)
         
         # state /running/create_new_model/got_mm
-        self.states["/running/create_new_model/got_mm"] = State(24, "/running/create_new_model/got_mm", self)
+        self.states["/running/create_new_model/got_mm"] = State(27, "/running/create_new_model/got_mm", self)
         
         # state /running/create_new_model/prompt_model_name
-        self.states["/running/create_new_model/prompt_model_name"] = State(25, "/running/create_new_model/prompt_model_name", self)
+        self.states["/running/create_new_model/prompt_model_name"] = State(28, "/running/create_new_model/prompt_model_name", self)
         self.states["/running/create_new_model/prompt_model_name"].setEnter(self._running_create_new_model_prompt_model_name_enter)
         
         # state /running/create_new_model/waiting_for_model_name
-        self.states["/running/create_new_model/waiting_for_model_name"] = State(26, "/running/create_new_model/waiting_for_model_name", self)
+        self.states["/running/create_new_model/waiting_for_model_name"] = State(29, "/running/create_new_model/waiting_for_model_name", self)
         
         # state /running/create_new_model/creating_model
-        self.states["/running/create_new_model/creating_model"] = State(27, "/running/create_new_model/creating_model", self)
+        self.states["/running/create_new_model/creating_model"] = State(30, "/running/create_new_model/creating_model", self)
         self.states["/running/create_new_model/creating_model"].setEnter(self._running_create_new_model_creating_model_enter)
         
         # state /running/rerender_model
-        self.states["/running/rerender_model"] = State(28, "/running/rerender_model", self)
+        self.states["/running/rerender_model"] = State(31, "/running/rerender_model", self)
         
         # state /running/rerender_model/initial_render
-        self.states["/running/rerender_model/initial_render"] = State(29, "/running/rerender_model/initial_render", self)
+        self.states["/running/rerender_model/initial_render"] = State(32, "/running/rerender_model/initial_render", self)
         
         # state /running/rerender_model/recreate_toolbars
-        self.states["/running/rerender_model/recreate_toolbars"] = State(30, "/running/rerender_model/recreate_toolbars", self)
+        self.states["/running/rerender_model/recreate_toolbars"] = State(33, "/running/rerender_model/recreate_toolbars", self)
         self.states["/running/rerender_model/recreate_toolbars"].setEnter(self._running_rerender_model_recreate_toolbars_enter)
         
         # state /running/rerender_model/recreate_toolbars/waiting
-        self.states["/running/rerender_model/recreate_toolbars/waiting"] = State(31, "/running/rerender_model/recreate_toolbars/waiting", self)
+        self.states["/running/rerender_model/recreate_toolbars/waiting"] = State(34, "/running/rerender_model/recreate_toolbars/waiting", self)
         
         # state /running/rerender_model/recreate_toolbars/close_all
-        self.states["/running/rerender_model/recreate_toolbars/close_all"] = State(32, "/running/rerender_model/recreate_toolbars/close_all", self)
+        self.states["/running/rerender_model/recreate_toolbars/close_all"] = State(35, "/running/rerender_model/recreate_toolbars/close_all", self)
         
         # state /running/rerender_model/canvas
-        self.states["/running/rerender_model/canvas"] = State(33, "/running/rerender_model/canvas", self)
+        self.states["/running/rerender_model/canvas"] = State(36, "/running/rerender_model/canvas", self)
         self.states["/running/rerender_model/canvas"].setEnter(self._running_rerender_model_canvas_enter)
         
         # state /running/rerender_model/pack_canvas
-        self.states["/running/rerender_model/pack_canvas"] = State(34, "/running/rerender_model/pack_canvas", self)
+        self.states["/running/rerender_model/pack_canvas"] = State(37, "/running/rerender_model/pack_canvas", self)
         
         # state /running/rerender_model/model_toolbars
-        self.states["/running/rerender_model/model_toolbars"] = State(35, "/running/rerender_model/model_toolbars", self)
+        self.states["/running/rerender_model/model_toolbars"] = State(38, "/running/rerender_model/model_toolbars", self)
         
         # state /running/rerender_model/model_toolbars/mm_toolbar
-        self.states["/running/rerender_model/model_toolbars/mm_toolbar"] = State(36, "/running/rerender_model/model_toolbars/mm_toolbar", self)
+        self.states["/running/rerender_model/model_toolbars/mm_toolbar"] = State(39, "/running/rerender_model/model_toolbars/mm_toolbar", self)
         self.states["/running/rerender_model/model_toolbars/mm_toolbar"].setEnter(self._running_rerender_model_model_toolbars_mm_toolbar_enter)
         
         # state /running/rerender_model/model_toolbars/pack_mm_toolbar
-        self.states["/running/rerender_model/model_toolbars/pack_mm_toolbar"] = State(37, "/running/rerender_model/model_toolbars/pack_mm_toolbar", self)
+        self.states["/running/rerender_model/model_toolbars/pack_mm_toolbar"] = State(40, "/running/rerender_model/model_toolbars/pack_mm_toolbar", self)
         
         # state /running/rerender_model/model_toolbars/cs_toolbar
-        self.states["/running/rerender_model/model_toolbars/cs_toolbar"] = State(38, "/running/rerender_model/model_toolbars/cs_toolbar", self)
+        self.states["/running/rerender_model/model_toolbars/cs_toolbar"] = State(41, "/running/rerender_model/model_toolbars/cs_toolbar", self)
         self.states["/running/rerender_model/model_toolbars/cs_toolbar"].setEnter(self._running_rerender_model_model_toolbars_cs_toolbar_enter)
         
         # state /running/rerender_model/model_toolbars/pack_cs_toolbar
-        self.states["/running/rerender_model/model_toolbars/pack_cs_toolbar"] = State(39, "/running/rerender_model/model_toolbars/pack_cs_toolbar", self)
+        self.states["/running/rerender_model/model_toolbars/pack_cs_toolbar"] = State(42, "/running/rerender_model/model_toolbars/pack_cs_toolbar", self)
         
         # state /running/rerender_model/model_toolbars/dsl_toolbar
-        self.states["/running/rerender_model/model_toolbars/dsl_toolbar"] = State(40, "/running/rerender_model/model_toolbars/dsl_toolbar", self)
+        self.states["/running/rerender_model/model_toolbars/dsl_toolbar"] = State(43, "/running/rerender_model/model_toolbars/dsl_toolbar", self)
         self.states["/running/rerender_model/model_toolbars/dsl_toolbar"].setEnter(self._running_rerender_model_model_toolbars_dsl_toolbar_enter)
         
         # state /running/rerender_model/model_toolbars/pack_dsl_toolbar
-        self.states["/running/rerender_model/model_toolbars/pack_dsl_toolbar"] = State(41, "/running/rerender_model/model_toolbars/pack_dsl_toolbar", self)
+        self.states["/running/rerender_model/model_toolbars/pack_dsl_toolbar"] = State(44, "/running/rerender_model/model_toolbars/pack_dsl_toolbar", self)
         
         # state /running/rerender_model/request_render
-        self.states["/running/rerender_model/request_render"] = State(42, "/running/rerender_model/request_render", self)
+        self.states["/running/rerender_model/request_render"] = State(45, "/running/rerender_model/request_render", self)
         self.states["/running/rerender_model/request_render"].setEnter(self._running_rerender_model_request_render_enter)
         
         # state /running/rerender_model/render_model
-        self.states["/running/rerender_model/render_model"] = State(43, "/running/rerender_model/render_model", self)
+        self.states["/running/rerender_model/render_model"] = State(46, "/running/rerender_model/render_model", self)
         self.states["/running/rerender_model/render_model"].setEnter(self._running_rerender_model_render_model_enter)
         
         # state /running/rerender_model/render_model/allocate_groups
-        self.states["/running/rerender_model/render_model/allocate_groups"] = State(44, "/running/rerender_model/render_model/allocate_groups", self)
+        self.states["/running/rerender_model/render_model/allocate_groups"] = State(47, "/running/rerender_model/render_model/allocate_groups", self)
         
         # state /running/rerender_model/render_model/allocating_group
-        self.states["/running/rerender_model/render_model/allocating_group"] = State(45, "/running/rerender_model/render_model/allocating_group", self)
+        self.states["/running/rerender_model/render_model/allocating_group"] = State(48, "/running/rerender_model/render_model/allocating_group", self)
         
         # state /running/rerender_model/render_model/allocate_contains
-        self.states["/running/rerender_model/render_model/allocate_contains"] = State(46, "/running/rerender_model/render_model/allocate_contains", self)
+        self.states["/running/rerender_model/render_model/allocate_contains"] = State(49, "/running/rerender_model/render_model/allocate_contains", self)
         
         # state /running/rerender_model/render_model/render_elements
-        self.states["/running/rerender_model/render_model/render_elements"] = State(47, "/running/rerender_model/render_model/render_elements", self)
+        self.states["/running/rerender_model/render_model/render_elements"] = State(50, "/running/rerender_model/render_model/render_elements", self)
         
         # state /close
-        self.states["/close"] = State(48, "/close", self)
+        self.states["/close"] = State(51, "/close", self)
         self.states["/close"].setEnter(self._close_enter)
         
         # add children
@@ -4166,8 +4176,11 @@ class MainWindow(RuntimeClassBase, tk.Toplevel, SCCDWidget):
         self.states["/init"].addChild(self.states["/init/pack_progressbar"])
         self.states["/running"].addChild(self.states["/running/idle"])
         self.states["/running"].addChild(self.states["/running/change_metamodel"])
+        self.states["/running"].addChild(self.states["/running/change_mapper"])
+        self.states["/running"].addChild(self.states["/running/change_rendered"])
         self.states["/running"].addChild(self.states["/running/verify_model"])
         self.states["/running"].addChild(self.states["/running/open_model"])
+        self.states["/running"].addChild(self.states["/running/new_rendered"])
         self.states["/running"].addChild(self.states["/running/create_new_model"])
         self.states["/running"].addChild(self.states["/running/rerender_model"])
         self.states["/running/verify_model"].addChild(self.states["/running/verify_model/request"])
@@ -4251,19 +4264,40 @@ class MainWindow(RuntimeClassBase, tk.Toplevel, SCCDWidget):
         _running_idle_2 = Transition(self, self.states["/running/idle"], [self.states["/running/rerender_model"]])
         _running_idle_2.setTrigger(Event("rerender_model", None))
         self.states["/running/idle"].addTransition(_running_idle_2)
-        _running_idle_3 = Transition(self, self.states["/running/idle"], [self.states["/running/verify_model"]])
-        _running_idle_3.setTrigger(Event("verify", None))
+        _running_idle_3 = Transition(self, self.states["/running/idle"], [self.states["/running/new_rendered"]])
+        _running_idle_3.setTrigger(Event("new_rendered", None))
         self.states["/running/idle"].addTransition(_running_idle_3)
-        _running_idle_4 = Transition(self, self.states["/running/idle"], [self.states["/running/change_metamodel"]])
-        _running_idle_4.setAction(self._running_idle_4_exec)
-        _running_idle_4.setTrigger(Event("change_metamodel", None))
+        _running_idle_4 = Transition(self, self.states["/running/idle"], [self.states["/running/verify_model"]])
+        _running_idle_4.setTrigger(Event("verify", None))
         self.states["/running/idle"].addTransition(_running_idle_4)
+        _running_idle_5 = Transition(self, self.states["/running/idle"], [self.states["/running/change_metamodel"]])
+        _running_idle_5.setAction(self._running_idle_5_exec)
+        _running_idle_5.setTrigger(Event("change_metamodel", None))
+        self.states["/running/idle"].addTransition(_running_idle_5)
+        _running_idle_6 = Transition(self, self.states["/running/idle"], [self.states["/running/change_mapper"]])
+        _running_idle_6.setAction(self._running_idle_6_exec)
+        _running_idle_6.setTrigger(Event("change_mapper", None))
+        self.states["/running/idle"].addTransition(_running_idle_6)
+        _running_idle_7 = Transition(self, self.states["/running/idle"], [self.states["/running/change_rendered"]])
+        _running_idle_7.setAction(self._running_idle_7_exec)
+        _running_idle_7.setTrigger(Event("change_rendered", None))
+        self.states["/running/idle"].addTransition(_running_idle_7)
         
         # transition /running/change_metamodel
         _running_change_metamodel_0 = Transition(self, self.states["/running/change_metamodel"], [self.states["/running/open_model/search_CS_mappers"]])
         _running_change_metamodel_0.setTrigger(Event("mv_response", None))
         self.states["/running/change_metamodel"].addTransition(_running_change_metamodel_0)
         
+        # transition /running/change_mapper
+        _running_change_mapper_0 = Transition(self, self.states["/running/change_mapper"], [self.states["/running/rerender_model"]])
+        _running_change_mapper_0.setTrigger(None)
+        self.states["/running/change_mapper"].addTransition(_running_change_mapper_0)
+        
+        # transition /running/change_rendered
+        _running_change_rendered_0 = Transition(self, self.states["/running/change_rendered"], [self.states["/running/rerender_model"]])
+        _running_change_rendered_0.setTrigger(None)
+        self.states["/running/change_rendered"].addTransition(_running_change_rendered_0)
+        
         # transition /running/verify_model/request
         _running_verify_model_request_0 = Transition(self, self.states["/running/verify_model/request"], [self.states["/running/verify_model/request"]])
         _running_verify_model_request_0.setAction(self._running_verify_model_request_0_exec)
@@ -4331,6 +4365,11 @@ class MainWindow(RuntimeClassBase, tk.Toplevel, SCCDWidget):
         _running_open_model_store_metamodel_0.setTrigger(Event("mv_response", None))
         self.states["/running/open_model/store_metamodel"].addTransition(_running_open_model_store_metamodel_0)
         
+        # transition /running/new_rendered
+        _running_new_rendered_0 = Transition(self, self.states["/running/new_rendered"], [self.states["/running/rerender_model"]])
+        _running_new_rendered_0.setTrigger(None)
+        self.states["/running/new_rendered"].addTransition(_running_new_rendered_0)
+        
         # transition /running/create_new_model/query_metamodel
         _running_create_new_model_query_metamodel_0 = Transition(self, self.states["/running/create_new_model/query_metamodel"], [self.states["/running/create_new_model/wait_for_metamodel"]])
         _running_create_new_model_query_metamodel_0.setAction(self._running_create_new_model_query_metamodel_0_exec)
@@ -4556,6 +4595,11 @@ class MainWindow(RuntimeClassBase, tk.Toplevel, SCCDWidget):
         self.big_step.outputEventOM(Event("broad_cast", None, [self, Event("mv_request", None, ['alter_context', [current_model, current_metamodel]])]))
         self.big_step.outputEventOM(Event("narrow_cast", None, [self, 'progress_bar', Event("update_status", None, [45, 'Storing model context...'])]))
     
+    def _running_new_rendered_enter(self):
+        global current_rendered_model
+        current_rendered_model = "rendered/%s" % str(uuid.uuid4())
+        self.allowed_rendered.append(current_rendered_model)
+    
     def _running_create_new_model_query_metamodel_enter(self):
         self.big_step.outputEventOM(Event("create_instance", None, [self, 'subwindow', 'Browser', 'Select metamodel to instantiate', ['formalisms/SimpleClassDiagrams']]))
         self.big_step.outputEventOM(Event("narrow_cast", None, [self, 'progress_bar', Event("update_status", None, [0, 'Browsing for metamodel...'])]))
@@ -4607,11 +4651,21 @@ class MainWindow(RuntimeClassBase, tk.Toplevel, SCCDWidget):
         tk_elem = parameters[0]
         tk_elem.pack(side=tk.BOTTOM, fill=tk.X, expand=tk.TRUE)
     
-    def _running_idle_4_exec(self, parameters):
+    def _running_idle_5_exec(self, parameters):
         new_metamodel = parameters[0]
         global current_metamodel
         current_metamodel = new_metamodel
     
+    def _running_idle_6_exec(self, parameters):
+        new_mapper = parameters[0]
+        global current_mapper
+        current_mapper = new_mapper
+    
+    def _running_idle_7_exec(self, parameters):
+        new_rendered = parameters[0]
+        global current_rendered_model
+        current_rendered_model = new_rendered
+    
     def _running_verify_model_request_0_exec(self, parameters):
         result = parameters[0]
         self.big_step.outputEventOM(Event("narrow_cast", None, [self, 'progress_bar', Event("update_status", None, [result * 100, 'Verifying...'])]))
@@ -6263,9 +6317,24 @@ class ConcreteSyntaxToolbar(Toolbar):
         _root_0.setTrigger(Event("button_pressed", None))
         _root_0.setGuard(self._root_0_guard)
         self.states["/root"].addTransition(_root_0)
-        _root_1 = Transition(self, self.states["/root"], [self.states["/closing"]])
-        _root_1.setTrigger(Event("close", None))
+        _root_1 = Transition(self, self.states["/root"], [self.states["/root"]])
+        _root_1.setAction(self._root_1_exec)
+        _root_1.setTrigger(Event("button_pressed", None))
+        _root_1.setGuard(self._root_1_guard)
         self.states["/root"].addTransition(_root_1)
+        _root_2 = Transition(self, self.states["/root"], [self.states["/root"]])
+        _root_2.setAction(self._root_2_exec)
+        _root_2.setTrigger(Event("changed_mapper", None))
+        _root_2.setGuard(self._root_2_guard)
+        self.states["/root"].addTransition(_root_2)
+        _root_3 = Transition(self, self.states["/root"], [self.states["/root"]])
+        _root_3.setAction(self._root_3_exec)
+        _root_3.setTrigger(Event("changed_rendered", None))
+        _root_3.setGuard(self._root_3_guard)
+        self.states["/root"].addTransition(_root_3)
+        _root_4 = Transition(self, self.states["/root"], [self.states["/closing"]])
+        _root_4.setTrigger(Event("close", None))
+        self.states["/root"].addTransition(_root_4)
         
         # transition /closing
         _closing_0 = Transition(self, self.states["/closing"], [self.states["/closing"]])
@@ -6313,6 +6382,34 @@ class ConcreteSyntaxToolbar(Toolbar):
         event_name = parameters[0]
         return event_name == 'rerender'
     
+    def _root_1_exec(self, parameters):
+        event_name = parameters[0]
+        self.big_step.outputEventOM(Event("narrow_cast", None, [self, 'parent', Event("new_rendered", None, [])]))
+    
+    def _root_1_guard(self, parameters):
+        event_name = parameters[0]
+        return event_name == 'new_rendered'
+    
+    def _root_2_exec(self, parameters):
+        ID = parameters[0]
+        new_mapper = parameters[1]
+        self.big_step.outputEventOM(Event("narrow_cast", None, [self, 'parent', Event("change_mapper", None, [new_mapper])]))
+    
+    def _root_2_guard(self, parameters):
+        ID = parameters[0]
+        new_mapper = parameters[1]
+        return ID == id(self) and new_mapper != current_mapper
+    
+    def _root_3_exec(self, parameters):
+        ID = parameters[0]
+        new_rendered = parameters[1]
+        self.big_step.outputEventOM(Event("narrow_cast", None, [self, 'parent', Event("change_rendered", None, [new_rendered])]))
+    
+    def _root_3_guard(self, parameters):
+        ID = parameters[0]
+        new_rendered = parameters[1]
+        return ID == id(self) and new_rendered != current_rendered_model
+    
     def _closing_0_guard(self, parameters):
         return len(self.buttons) > 0
     

+ 0 - 1
icons/new_rendered.png


BIN
icons/new_rendered.png