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

Don't open a second progress bar when starting up subprocesses

Yentl Van Tendeloo 7 лет назад
Родитель
Сommit
68ed97ce83
2 измененных файлов с 52 добавлено и 33 удалено
  1. 12 6
      classes/main_app.xml
  2. 40 27
      frontend.py

+ 12 - 6
classes/main_app.xml

@@ -125,12 +125,18 @@
                         </transition>
                     </state>
 
-                    <state id="conversing" initial="init">
-                        <onentry>
-                            <script>
-                                print("Conversing!")
-                            </script>
-                        </onentry>
+                    <state id="conversing" initial="remove_splash">
+                        <state id="remove_splash">
+                            <onentry>
+                                <raise event="close" scope="narrow" target="self.splash_window"/>
+                            </onentry>
+
+                            <transition event="close_window" target="../init">
+                                <raise event="delete_instance" scope="cd">
+                                    <parameter expr="self.splash_window"/>
+                                </raise>
+                            </transition>
+                        </state>
 
                         <state id="init">
                             <transition event="mv_response" cond="result == 'OP'" target="../execute_OP">

+ 40 - 27
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:   Tue Nov 14 15:22:46 2017
+Date:   Tue Nov 14 15:32:55 2017
 
 Model author: Yentl Van Tendeloo
 Model name:   Modelverse Visual Editor - Tkinter Version 
@@ -94,85 +94,88 @@ class MainApp(RuntimeClassBase):
         
         # state /parallel/behaviour/init_modelverse/conversing
         self.states["/parallel/behaviour/init_modelverse/conversing"] = State(8, "/parallel/behaviour/init_modelverse/conversing", self)
-        self.states["/parallel/behaviour/init_modelverse/conversing"].setEnter(self._parallel_behaviour_init_modelverse_conversing_enter)
+        
+        # state /parallel/behaviour/init_modelverse/conversing/remove_splash
+        self.states["/parallel/behaviour/init_modelverse/conversing/remove_splash"] = State(9, "/parallel/behaviour/init_modelverse/conversing/remove_splash", self)
+        self.states["/parallel/behaviour/init_modelverse/conversing/remove_splash"].setEnter(self._parallel_behaviour_init_modelverse_conversing_remove_splash_enter)
         
         # state /parallel/behaviour/init_modelverse/conversing/init
-        self.states["/parallel/behaviour/init_modelverse/conversing/init"] = State(9, "/parallel/behaviour/init_modelverse/conversing/init", self)
+        self.states["/parallel/behaviour/init_modelverse/conversing/init"] = State(10, "/parallel/behaviour/init_modelverse/conversing/init", self)
         
         # state /parallel/behaviour/init_modelverse/conversing/execute_OP
-        self.states["/parallel/behaviour/init_modelverse/conversing/execute_OP"] = State(10, "/parallel/behaviour/init_modelverse/conversing/execute_OP", self)
+        self.states["/parallel/behaviour/init_modelverse/conversing/execute_OP"] = State(11, "/parallel/behaviour/init_modelverse/conversing/execute_OP", self)
         
         # state /parallel/behaviour/init_modelverse/conversing/execute_OP/wait_model
-        self.states["/parallel/behaviour/init_modelverse/conversing/execute_OP/wait_model"] = State(11, "/parallel/behaviour/init_modelverse/conversing/execute_OP/wait_model", self)
+        self.states["/parallel/behaviour/init_modelverse/conversing/execute_OP/wait_model"] = State(12, "/parallel/behaviour/init_modelverse/conversing/execute_OP/wait_model", self)
         
         # state /parallel/behaviour/init_modelverse/conversing/execute_OP/wait_subprocess
-        self.states["/parallel/behaviour/init_modelverse/conversing/execute_OP/wait_subprocess"] = State(12, "/parallel/behaviour/init_modelverse/conversing/execute_OP/wait_subprocess", self)
+        self.states["/parallel/behaviour/init_modelverse/conversing/execute_OP/wait_subprocess"] = State(13, "/parallel/behaviour/init_modelverse/conversing/execute_OP/wait_subprocess", self)
         self.states["/parallel/behaviour/init_modelverse/conversing/execute_OP/wait_subprocess"].setEnter(self._parallel_behaviour_init_modelverse_conversing_execute_OP_wait_subprocess_enter)
         self.states["/parallel/behaviour/init_modelverse/conversing/execute_OP/wait_subprocess"].setExit(self._parallel_behaviour_init_modelverse_conversing_execute_OP_wait_subprocess_exit)
         
         # state /parallel/behaviour/init_modelverse/conversing/execute_OP/stopping
-        self.states["/parallel/behaviour/init_modelverse/conversing/execute_OP/stopping"] = State(13, "/parallel/behaviour/init_modelverse/conversing/execute_OP/stopping", self)
+        self.states["/parallel/behaviour/init_modelverse/conversing/execute_OP/stopping"] = State(14, "/parallel/behaviour/init_modelverse/conversing/execute_OP/stopping", self)
         self.states["/parallel/behaviour/init_modelverse/conversing/execute_OP/stopping"].setEnter(self._parallel_behaviour_init_modelverse_conversing_execute_OP_stopping_enter)
         self.states["/parallel/behaviour/init_modelverse/conversing/execute_OP/stopping"].setExit(self._parallel_behaviour_init_modelverse_conversing_execute_OP_stopping_exit)
         
         # state /parallel/behaviour/init_modelverse/conversing/execute_SC
-        self.states["/parallel/behaviour/init_modelverse/conversing/execute_SC"] = State(14, "/parallel/behaviour/init_modelverse/conversing/execute_SC", self)
+        self.states["/parallel/behaviour/init_modelverse/conversing/execute_SC"] = State(15, "/parallel/behaviour/init_modelverse/conversing/execute_SC", self)
         self.states["/parallel/behaviour/init_modelverse/conversing/execute_SC"].setEnter(self._parallel_behaviour_init_modelverse_conversing_execute_SC_enter)
         
         # state /parallel/behaviour/init_modelverse/conversing/execute_SC/spawn_chatwindow
-        self.states["/parallel/behaviour/init_modelverse/conversing/execute_SC/spawn_chatwindow"] = State(15, "/parallel/behaviour/init_modelverse/conversing/execute_SC/spawn_chatwindow", self)
+        self.states["/parallel/behaviour/init_modelverse/conversing/execute_SC/spawn_chatwindow"] = State(16, "/parallel/behaviour/init_modelverse/conversing/execute_SC/spawn_chatwindow", self)
         
         # state /parallel/behaviour/init_modelverse/logging_in_modelverse
-        self.states["/parallel/behaviour/init_modelverse/logging_in_modelverse"] = State(16, "/parallel/behaviour/init_modelverse/logging_in_modelverse", self)
+        self.states["/parallel/behaviour/init_modelverse/logging_in_modelverse"] = State(17, "/parallel/behaviour/init_modelverse/logging_in_modelverse", self)
         
         # state /parallel/behaviour/init_modelverse/logging_in_modelverse/prompt_username
-        self.states["/parallel/behaviour/init_modelverse/logging_in_modelverse/prompt_username"] = State(17, "/parallel/behaviour/init_modelverse/logging_in_modelverse/prompt_username", self)
+        self.states["/parallel/behaviour/init_modelverse/logging_in_modelverse/prompt_username"] = State(18, "/parallel/behaviour/init_modelverse/logging_in_modelverse/prompt_username", self)
         self.states["/parallel/behaviour/init_modelverse/logging_in_modelverse/prompt_username"].setEnter(self._parallel_behaviour_init_modelverse_logging_in_modelverse_prompt_username_enter)
         
         # state /parallel/behaviour/init_modelverse/logging_in_modelverse/wait_for_credentials
-        self.states["/parallel/behaviour/init_modelverse/logging_in_modelverse/wait_for_credentials"] = State(18, "/parallel/behaviour/init_modelverse/logging_in_modelverse/wait_for_credentials", self)
+        self.states["/parallel/behaviour/init_modelverse/logging_in_modelverse/wait_for_credentials"] = State(19, "/parallel/behaviour/init_modelverse/logging_in_modelverse/wait_for_credentials", self)
         self.states["/parallel/behaviour/init_modelverse/logging_in_modelverse/wait_for_credentials"].setExit(self._parallel_behaviour_init_modelverse_logging_in_modelverse_wait_for_credentials_exit)
         
         # state /parallel/behaviour/init_modelverse/logging_in_modelverse/wait_for_credentials/responsive
-        self.states["/parallel/behaviour/init_modelverse/logging_in_modelverse/wait_for_credentials/responsive"] = State(19, "/parallel/behaviour/init_modelverse/logging_in_modelverse/wait_for_credentials/responsive", self)
+        self.states["/parallel/behaviour/init_modelverse/logging_in_modelverse/wait_for_credentials/responsive"] = State(20, "/parallel/behaviour/init_modelverse/logging_in_modelverse/wait_for_credentials/responsive", self)
         
         # state /parallel/behaviour/init_modelverse/logging_in_modelverse/login
-        self.states["/parallel/behaviour/init_modelverse/logging_in_modelverse/login"] = State(20, "/parallel/behaviour/init_modelverse/logging_in_modelverse/login", self)
+        self.states["/parallel/behaviour/init_modelverse/logging_in_modelverse/login"] = State(21, "/parallel/behaviour/init_modelverse/logging_in_modelverse/login", self)
         self.states["/parallel/behaviour/init_modelverse/logging_in_modelverse/login"].setEnter(self._parallel_behaviour_init_modelverse_logging_in_modelverse_login_enter)
         
         # state /parallel/behaviour/init_modelverse/logging_in_modelverse/register_SCD
-        self.states["/parallel/behaviour/init_modelverse/logging_in_modelverse/register_SCD"] = State(21, "/parallel/behaviour/init_modelverse/logging_in_modelverse/register_SCD", self)
+        self.states["/parallel/behaviour/init_modelverse/logging_in_modelverse/register_SCD"] = State(22, "/parallel/behaviour/init_modelverse/logging_in_modelverse/register_SCD", self)
         self.states["/parallel/behaviour/init_modelverse/logging_in_modelverse/register_SCD"].setEnter(self._parallel_behaviour_init_modelverse_logging_in_modelverse_register_SCD_enter)
         
         # state /parallel/behaviour/init_modelverse/logging_in_modelverse/register_conf_bottom
-        self.states["/parallel/behaviour/init_modelverse/logging_in_modelverse/register_conf_bottom"] = State(22, "/parallel/behaviour/init_modelverse/logging_in_modelverse/register_conf_bottom", self)
+        self.states["/parallel/behaviour/init_modelverse/logging_in_modelverse/register_conf_bottom"] = State(23, "/parallel/behaviour/init_modelverse/logging_in_modelverse/register_conf_bottom", self)
         self.states["/parallel/behaviour/init_modelverse/logging_in_modelverse/register_conf_bottom"].setEnter(self._parallel_behaviour_init_modelverse_logging_in_modelverse_register_conf_bottom_enter)
         
         # state /parallel/behaviour/init_modelverse/wait_close_splash
-        self.states["/parallel/behaviour/init_modelverse/wait_close_splash"] = State(23, "/parallel/behaviour/init_modelverse/wait_close_splash", self)
+        self.states["/parallel/behaviour/init_modelverse/wait_close_splash"] = State(24, "/parallel/behaviour/init_modelverse/wait_close_splash", self)
         self.states["/parallel/behaviour/init_modelverse/wait_close_splash"].setEnter(self._parallel_behaviour_init_modelverse_wait_close_splash_enter)
         self.states["/parallel/behaviour/init_modelverse/wait_close_splash"].setExit(self._parallel_behaviour_init_modelverse_wait_close_splash_exit)
         
         # state /parallel/behaviour/init_modelverse/closing_splash
-        self.states["/parallel/behaviour/init_modelverse/closing_splash"] = State(24, "/parallel/behaviour/init_modelverse/closing_splash", self)
+        self.states["/parallel/behaviour/init_modelverse/closing_splash"] = State(25, "/parallel/behaviour/init_modelverse/closing_splash", self)
         self.states["/parallel/behaviour/init_modelverse/closing_splash"].setEnter(self._parallel_behaviour_init_modelverse_closing_splash_enter)
         
         # state /parallel/behaviour/init_main_window
-        self.states["/parallel/behaviour/init_main_window"] = State(25, "/parallel/behaviour/init_main_window", self)
+        self.states["/parallel/behaviour/init_main_window"] = State(26, "/parallel/behaviour/init_main_window", self)
         self.states["/parallel/behaviour/init_main_window"].setEnter(self._parallel_behaviour_init_main_window_enter)
         
         # state /parallel/behaviour/main_behaviour
-        self.states["/parallel/behaviour/main_behaviour"] = State(26, "/parallel/behaviour/main_behaviour", self)
+        self.states["/parallel/behaviour/main_behaviour"] = State(27, "/parallel/behaviour/main_behaviour", self)
         
         # state /parallel/behaviour/stopped
-        self.states["/parallel/behaviour/stopped"] = State(27, "/parallel/behaviour/stopped", self)
+        self.states["/parallel/behaviour/stopped"] = State(28, "/parallel/behaviour/stopped", self)
         self.states["/parallel/behaviour/stopped"].setEnter(self._parallel_behaviour_stopped_enter)
         
         # state /parallel/forward_requests
-        self.states["/parallel/forward_requests"] = State(28, "/parallel/forward_requests", self)
+        self.states["/parallel/forward_requests"] = State(29, "/parallel/forward_requests", self)
         
         # state /parallel/forward_requests/forward
-        self.states["/parallel/forward_requests/forward"] = State(29, "/parallel/forward_requests/forward", self)
+        self.states["/parallel/forward_requests/forward"] = State(30, "/parallel/forward_requests/forward", self)
         
         # add children
         self.states[""].addChild(self.states["/parallel"])
@@ -190,6 +193,7 @@ class MainApp(RuntimeClassBase):
         self.states["/parallel/behaviour/init_modelverse"].addChild(self.states["/parallel/behaviour/init_modelverse/logging_in_modelverse"])
         self.states["/parallel/behaviour/init_modelverse"].addChild(self.states["/parallel/behaviour/init_modelverse/wait_close_splash"])
         self.states["/parallel/behaviour/init_modelverse"].addChild(self.states["/parallel/behaviour/init_modelverse/closing_splash"])
+        self.states["/parallel/behaviour/init_modelverse/conversing"].addChild(self.states["/parallel/behaviour/init_modelverse/conversing/remove_splash"])
         self.states["/parallel/behaviour/init_modelverse/conversing"].addChild(self.states["/parallel/behaviour/init_modelverse/conversing/init"])
         self.states["/parallel/behaviour/init_modelverse/conversing"].addChild(self.states["/parallel/behaviour/init_modelverse/conversing/execute_OP"])
         self.states["/parallel/behaviour/init_modelverse/conversing"].addChild(self.states["/parallel/behaviour/init_modelverse/conversing/execute_SC"])
@@ -208,7 +212,7 @@ class MainApp(RuntimeClassBase):
         self.states[""].default_state = self.states["/parallel"]
         self.states["/parallel/behaviour"].default_state = self.states["/parallel/behaviour/init_modelverse"]
         self.states["/parallel/behaviour/init_modelverse"].default_state = self.states["/parallel/behaviour/init_modelverse/splash"]
-        self.states["/parallel/behaviour/init_modelverse/conversing"].default_state = self.states["/parallel/behaviour/init_modelverse/conversing/init"]
+        self.states["/parallel/behaviour/init_modelverse/conversing"].default_state = self.states["/parallel/behaviour/init_modelverse/conversing/remove_splash"]
         self.states["/parallel/behaviour/init_modelverse/conversing/execute_OP"].default_state = self.states["/parallel/behaviour/init_modelverse/conversing/execute_OP/wait_model"]
         self.states["/parallel/behaviour/init_modelverse/conversing/execute_SC"].default_state = self.states["/parallel/behaviour/init_modelverse/conversing/execute_SC/spawn_chatwindow"]
         self.states["/parallel/behaviour/init_modelverse/logging_in_modelverse"].default_state = self.states["/parallel/behaviour/init_modelverse/logging_in_modelverse/prompt_username"]
@@ -245,6 +249,12 @@ class MainApp(RuntimeClassBase):
         _parallel_behaviour_init_modelverse_initializing_modelverse_1.setGuard(self._parallel_behaviour_init_modelverse_initializing_modelverse_1_guard)
         self.states["/parallel/behaviour/init_modelverse/initializing_modelverse"].addTransition(_parallel_behaviour_init_modelverse_initializing_modelverse_1)
         
+        # transition /parallel/behaviour/init_modelverse/conversing/remove_splash
+        _parallel_behaviour_init_modelverse_conversing_remove_splash_0 = Transition(self, self.states["/parallel/behaviour/init_modelverse/conversing/remove_splash"], [self.states["/parallel/behaviour/init_modelverse/conversing/init"]])
+        _parallel_behaviour_init_modelverse_conversing_remove_splash_0.setAction(self._parallel_behaviour_init_modelverse_conversing_remove_splash_0_exec)
+        _parallel_behaviour_init_modelverse_conversing_remove_splash_0.setTrigger(Event("close_window", None))
+        self.states["/parallel/behaviour/init_modelverse/conversing/remove_splash"].addTransition(_parallel_behaviour_init_modelverse_conversing_remove_splash_0)
+        
         # transition /parallel/behaviour/init_modelverse/conversing/init
         _parallel_behaviour_init_modelverse_conversing_init_0 = Transition(self, self.states["/parallel/behaviour/init_modelverse/conversing/init"], [self.states["/parallel/behaviour/init_modelverse/conversing/execute_OP"]])
         _parallel_behaviour_init_modelverse_conversing_init_0.setTrigger(Event("mv_response", None))
@@ -374,9 +384,6 @@ class MainApp(RuntimeClassBase):
         _parallel_forward_requests_forward_5.setTrigger(Event("data_output", None))
         self.states["/parallel/forward_requests/forward"].addTransition(_parallel_forward_requests_forward_5)
     
-    def _parallel_behaviour_init_modelverse_conversing_enter(self):
-        print("Conversing!")
-    
     def _parallel_behaviour_init_modelverse_conversing_execute_SC_enter(self):
         self.big_step.outputEventOM(Event("create_instance", None, [self, 'windows', 'ChatWindow']))
     
@@ -397,6 +404,9 @@ class MainApp(RuntimeClassBase):
         self.raiseInternalEvent(Event("mv_request", None, ['init', [data['mv_address'], data['timeout']]]))
         self.big_step.outputEventOM(Event("narrow_cast", None, [self, self.splash_window, Event("update_status", None, [30, 'Waiting for Modelverse initialization...'])]))
     
+    def _parallel_behaviour_init_modelverse_conversing_remove_splash_enter(self):
+        self.big_step.outputEventOM(Event("narrow_cast", None, [self, self.splash_window, Event("close", None, [])]))
+    
     def _parallel_behaviour_init_modelverse_conversing_execute_OP_wait_subprocess_enter(self):
         self.addTimer(0, 0.5)
     
@@ -462,6 +472,9 @@ class MainApp(RuntimeClassBase):
     def _parallel_behaviour_init_modelverse_initializing_modelverse_1_guard(self, parameters):
         return data['taskname'] is not None
     
+    def _parallel_behaviour_init_modelverse_conversing_remove_splash_0_exec(self, parameters):
+        self.big_step.outputEventOM(Event("delete_instance", None, [self, self.splash_window]))
+    
     def _parallel_behaviour_init_modelverse_conversing_init_0_guard(self, parameters):
         result = parameters[0]
         return result == 'OP'