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

Mostly working window for activity execution

Yentl Van Tendeloo 8 лет назад
Родитель
Сommit
1334abe6ce
3 измененных файлов с 427 добавлено и 68 удалено
  1. 7 0
      classes/widgets/entry.xml
  2. 179 23
      classes/window/activity.xml
  3. 241 45
      frontend.py

+ 7 - 0
classes/widgets/entry.xml

@@ -66,6 +66,13 @@
                         self.name = new_name
                         self.name = new_name
                     </script>
                     </script>
                 </transition>
                 </transition>
+
+                <transition event="change_value" target=".">
+                    <parameter name="new_value"/>
+                    <script>
+                        self.strvar.set(new_value)
+                    </script>
+                </transition>
             </state>
             </state>
         </state>
         </state>
     </scxml>
     </scxml>

+ 179 - 23
classes/window/activity.xml

@@ -2,8 +2,9 @@
     <relationships>
     <relationships>
         <inheritance class="tk.Toplevel" priority="1"/>
         <inheritance class="tk.Toplevel" priority="1"/>
         <inheritance class="SCCDWidget" priority="0"/>
         <inheritance class="SCCDWidget" priority="0"/>
-        <association name="activity_browse_button" class="Button"/>
+        <association name="activity_browse" class="A"/>
         <association name="model_browse_button" class="Button"/>
         <association name="model_browse_button" class="Button"/>
+        <association name="model_browse_entry" class="Entry"/>
         <association name="model_browse_label" class="Label"/>
         <association name="model_browse_label" class="Label"/>
         <association name="browsers" class="Browser"/>
         <association name="browsers" class="Browser"/>
         <association name="parent" class="A"/>
         <association name="parent" class="A"/>
@@ -13,17 +14,19 @@
         <super class="tk.TopLevel"/>
         <super class="tk.TopLevel"/>
         <super class="SCCDWidget"/>
         <super class="SCCDWidget"/>
         <body>
         <body>
+            self.activity_frame = tk.Frame(self)
             self.input_frame = tk.Frame(self)
             self.input_frame = tk.Frame(self)
             self.output_frame = tk.Frame(self)
             self.output_frame = tk.Frame(self)
 
 
-            tk.Label(self, text="Activity").grid(row=0, column=0)
-            tk.Label(self, text="Inputs").grid(row=1, column=0)
-            self.input_frame.grid(row=2,column=0)
-            tk.Label(self, text="Outputs").grid(row=3, column=0)
-            self.output_frame.grid(row=4, column=0)
+            self.activity_frame.pack()
+            tk.Label(self, text="Inputs").pack()
+            self.input_frame.pack()
+            tk.Label(self, text="Outputs").pack()
+            self.output_frame.pack()
 
 
             self.associations = {}
             self.associations = {}
             self.current = None
             self.current = None
+            self.activity = None
         </body>
         </body>
     </constructor>
     </constructor>
 
 
@@ -33,14 +36,73 @@
         </body>
         </body>
     </destructor>
     </destructor>
 
 
-    <scxml initial="create_activity_browse_button">
+    <scxml initial="create_activity_browse_label">
+        <state id="create_activity_browse_label" initial="create">
+            <state id="create">
+                <onentry>
+                    <raise event="create_instance" scope="cd">
+                        <parameter expr="'activity_browse'"/>
+                        <parameter expr="'Label'"/>
+                        <parameter expr="{'parent': self.activity_frame, 'text': 'Activity'}"/>
+                    </raise>
+                </onentry>
+
+                <transition event="instance_created" target="../pack">
+                    <parameter name="assoc_name"/>
+                    <raise event="start_instance" scope="cd">
+                        <parameter expr="assoc_name"/>
+                    </raise>
+                </transition>
+            </state>
+
+            <state id="pack">
+                <transition event="tk_widget" target="../../create_activity_browse_entry">
+                    <parameter name="tk_widget"/>
+                    <script>
+                        tk_widget.grid(row=0,column=0)
+                    </script>
+                </transition>
+            </state>
+        </state>
+
+        <state id="create_activity_browse_entry" initial="create">
+            <state id="create">
+                <onentry>
+                    <raise event="create_instance" scope="cd">
+                        <parameter expr="'activity_browse'"/>
+                        <parameter expr="'Entry'"/>
+                        <parameter expr="{'parent': self.activity_frame, 'name': 'activity_entry', 'value': '(none)', 'readonly': True}"/>
+                    </raise>
+                </onentry>
+
+                <transition event="instance_created" target="../pack">
+                    <parameter name="assoc_name"/>
+                    <raise event="start_instance" scope="cd">
+                        <parameter expr="assoc_name"/>
+                    </raise>
+                    <script>
+                        self.activity_entry = assoc_name
+                    </script>
+                </transition>
+            </state>
+
+            <state id="pack">
+                <transition event="tk_widget" target="../../create_activity_browse_button">
+                    <parameter name="tk_widget"/>
+                    <script>
+                        tk_widget.grid(row=0,column=1)
+                    </script>
+                </transition>
+            </state>
+        </state>
+
         <state id="create_activity_browse_button" initial="create">
         <state id="create_activity_browse_button" initial="create">
             <state id="create">
             <state id="create">
                 <onentry>
                 <onentry>
                     <raise event="create_instance" scope="cd">
                     <raise event="create_instance" scope="cd">
-                        <parameter expr="'activity_browse_button'"/>
+                        <parameter expr="'activity_browse'"/>
                         <parameter expr="'Button'"/>
                         <parameter expr="'Button'"/>
-                        <parameter expr="{'parent': self, 'event_parameters': 'browse_activity', 'visual': TextVisual('(none)'), 'tooltip_text': 'Browse for a activity'}"/>
+                        <parameter expr="{'parent': self.activity_frame, 'event_parameters': 'browse_activity', 'visual': TextVisual('...'), 'tooltip_text': 'Browse for a activity'}"/>
                     </raise>
                     </raise>
                 </onentry>
                 </onentry>
 
 
@@ -56,7 +118,7 @@
                 <transition event="tk_widget" target="../../ready">
                 <transition event="tk_widget" target="../../ready">
                     <parameter name="tk_widget"/>
                     <parameter name="tk_widget"/>
                     <script>
                     <script>
-                        tk_widget.grid(row=0,column=1)
+                        tk_widget.grid(row=0,column=2)
                     </script>
                     </script>
                 </transition>
                 </transition>
             </state>
             </state>
@@ -99,6 +161,9 @@
                     <script>
                     <script>
                         self.activity = activity
                         self.activity = activity
                     </script>
                     </script>
+                    <raise event="change_text" target="self.activity_entry">
+                        <parameter expr="self.activity"/>
+                    </raise>
                 </transition>
                 </transition>
 
 
                 <transition event="close_window" target="../../redraw_signature">
                 <transition event="close_window" target="../../redraw_signature">
@@ -173,7 +238,7 @@
                 </state>
                 </state>
 
 
                 <state id="pack_label">
                 <state id="pack_label">
-                    <transition event="tk_widget" target="../create_button">
+                    <transition event="tk_widget" target="../create_entry">
                         <parameter name="tk_widget"/>
                         <parameter name="tk_widget"/>
                         <script>
                         <script>
                             tk_widget.grid(row=self.counter,column=0)
                             tk_widget.grid(row=self.counter,column=0)
@@ -183,12 +248,43 @@
                     </transition>
                     </transition>
                 </state>
                 </state>
 
 
+                <state id="create_entry">
+                    <onentry>
+                        <raise event="create_instance" scope="cd">
+                            <parameter expr="'model_browse_entry'"/>
+                            <parameter expr="'Entry'"/>
+                            <parameter expr="{'parent': self.input_frame, 'name': 'input_%s' % self.current[0], 'value': '(none)', 'readonly': True}"/>
+                        </raise>
+                    </onentry>
+
+                    <transition event="instance_created" target="../pack_entry">
+                        <parameter name="assoc_name"/>
+                        <raise event="start_instance" scope="cd">
+                            <parameter expr="assoc_name"/>
+                        </raise>
+                        <script>
+                            self.associations["input_%s" % self.current[0]] = assoc_name
+                        </script>
+                    </transition>
+                </state>
+
+                <state id="pack_entry">
+                    <transition event="tk_widget" target="../create_button">
+                        <parameter name="tk_widget"/>
+                        <script>
+                            tk_widget.grid(row=self.counter, column=0)
+                            print("Adding input for " + str(self.current))
+                            print("At row " + str(self.counter))
+                        </script>
+                    </transition>
+                </state>
+
                 <state id="create_button">
                 <state id="create_button">
                     <onentry>
                     <onentry>
                         <raise event="create_instance" scope="cd">
                         <raise event="create_instance" scope="cd">
                             <parameter expr="'model_browse_button'"/>
                             <parameter expr="'model_browse_button'"/>
                             <parameter expr="'Button'"/>
                             <parameter expr="'Button'"/>
-                            <parameter expr="{'parent': self.input_frame, 'visual': TextVisual('(none)'), 'tooltip_text': 'Select input model for tag %s.' % self.current[0], 'event_parameters': 'input_%s' % self.current[0]}"/>
+                            <parameter expr="{'parent': self.input_frame, 'visual': TextVisual('...'), 'tooltip_text': 'Select input model for tag %s.' % self.current[0], 'event_parameters': 'input_%s' % self.current[0]}"/>
                         </raise>
                         </raise>
                     </onentry>
                     </onentry>
 
 
@@ -197,9 +293,6 @@
                         <raise event="start_instance" scope="cd">
                         <raise event="start_instance" scope="cd">
                             <parameter expr="assoc_name"/>
                             <parameter expr="assoc_name"/>
                         </raise>
                         </raise>
-                        <script>
-                            self.associations["input_%s" % self.current[0]] = assoc_name
-                        </script>
                     </transition>
                     </transition>
                 </state>
                 </state>
 
 
@@ -207,7 +300,7 @@
                     <transition event="tk_widget" target="../check_next">
                     <transition event="tk_widget" target="../check_next">
                         <parameter name="tk_widget"/>
                         <parameter name="tk_widget"/>
                         <script>
                         <script>
-                            tk_widget.grid(row=self.counter, column=1)
+                            tk_widget.grid(row=self.counter, column=2)
                         </script>
                         </script>
                     </transition>
                     </transition>
                 </state>
                 </state>
@@ -248,6 +341,37 @@
                 </state>
                 </state>
 
 
                 <state id="pack_label">
                 <state id="pack_label">
+                    <transition event="tk_widget" target="../create_entry">
+                        <parameter name="tk_widget"/>
+                        <script>
+                            tk_widget.grid(row=self.counter, column=0)
+                            print("Adding output for " + str(self.current))
+                            print("At row " + str(self.counter))
+                        </script>
+                    </transition>
+                </state>
+
+                <state id="create_entry">
+                    <onentry>
+                        <raise event="create_instance" scope="cd">
+                            <parameter expr="'model_browse_entry'"/>
+                            <parameter expr="'Entry'"/>
+                            <parameter expr="{'parent': self.output_frame, 'name': 'output_%s' % self.current[0], 'value': '(none)', 'readonly': False}"/>
+                        </raise>
+                    </onentry>
+
+                    <transition event="instance_created" target="../pack_entry">
+                        <parameter name="assoc_name"/>
+                        <raise event="start_instance" scope="cd">
+                            <parameter expr="assoc_name"/>
+                        </raise>
+                        <script>
+                            self.associations["output_%s" % self.current[0]] = assoc_name
+                        </script>
+                    </transition>
+                </state>
+
+                <state id="pack_entry">
                     <transition event="tk_widget" target="../create_button">
                     <transition event="tk_widget" target="../create_button">
                         <parameter name="tk_widget"/>
                         <parameter name="tk_widget"/>
                         <script>
                         <script>
@@ -263,7 +387,7 @@
                         <raise event="create_instance" scope="cd">
                         <raise event="create_instance" scope="cd">
                             <parameter expr="'model_browse_button'"/>
                             <parameter expr="'model_browse_button'"/>
                             <parameter expr="'Button'"/>
                             <parameter expr="'Button'"/>
-                            <parameter expr="{'parent': self.output_frame, 'visual': TextVisual('(none)'), 'tooltip_text': 'Select output model for tag %s.' % self.current[0], 'event_parameters': 'output_%s' % self.current[0]}"/>
+                            <parameter expr="{'parent': self.output_frame, 'visual': TextVisual('...'), 'tooltip_text': 'Select output model for tag %s.' % self.current[0], 'event_parameters': 'output_%s' % self.current[0]}"/>
                         </raise>
                         </raise>
                     </onentry>
                     </onentry>
 
 
@@ -272,9 +396,6 @@
                         <raise event="start_instance" scope="cd">
                         <raise event="start_instance" scope="cd">
                             <parameter expr="assoc_name"/>
                             <parameter expr="assoc_name"/>
                         </raise>
                         </raise>
-                        <script>
-                            self.associations["output_%s" % self.current[0]] = assoc_name
-                        </script>
                     </transition>
                     </transition>
                 </state>
                 </state>
 
 
@@ -282,14 +403,46 @@
                     <transition event="tk_widget" target="../check_next">
                     <transition event="tk_widget" target="../check_next">
                         <parameter name="tk_widget"/>
                         <parameter name="tk_widget"/>
                         <script>
                         <script>
-                            tk_widget.grid(row=self.counter, column=1)
+                            tk_widget.grid(row=self.counter, column=2)
                         </script>
                         </script>
                     </transition>
                     </transition>
                 </state>
                 </state>
             </state>
             </state>
         </state>
         </state>
 
 
-        <state id="browse_model">
+        <state id="browse_model" initial="create_browser">
+            <state id="create_browser">
+                <onentry>
+                    <raise event="create_instance" scope="cd">
+                        <parameter expr="'browsers'"/>
+                        <parameter expr="'Browser'"/>
+                        <parameter expr="'Select model to use.'"/>
+                        <parameter expr="None"/>
+                    </raise>
+                </onentry>
+
+                <transition event="instance_created" target="../waiting_for_decision">
+                    <parameter name="assoc_name"/>
+                    <raise event="start_instance" scope="cd">
+                        <parameter expr="assoc_name"/>
+                    </raise>
+                </transition>
+            </state>
+
+            <state id="waiting_for_decision">
+                <transition event="browse_result" target=".">
+                    <parameter name="model"/>
+                    <raise event="change_value" scope="narrow" target="self.associations[self.current]">
+                        <parameter expr="model"/>
+                    </raise>
+                </transition>
+
+                <transition event="close_window" target="../../ready">
+                    <raise event="delete_instance" scope="cd">
+                        <parameter expr="'browsers'"/>
+                    </raise>
+                </transition>
+            </state>
         </state>
         </state>
 
 
         <state id="closing">
         <state id="closing">
@@ -301,7 +454,10 @@
                     <parameter expr="'model_browse_button'"/>
                     <parameter expr="'model_browse_button'"/>
                 </raise>
                 </raise>
                 <raise event="delete_instance" scope="cd">
                 <raise event="delete_instance" scope="cd">
-                    <parameter expr="'activity_browse_button'"/>
+                    <parameter expr="'model_browse_entry'"/>
+                </raise>
+                <raise event="delete_instance" scope="cd">
+                    <parameter expr="'activity_browse'"/>
                 </raise>
                 </raise>
             </transition>
             </transition>
         </state>
         </state>

+ 241 - 45
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:   Mon Oct 16 16:05:21 2017
+Date:   Mon Oct 16 16:47:33 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 
@@ -7250,17 +7250,19 @@ class ActivityExecutor(RuntimeClassBase, tk.Toplevel, SCCDWidget):
     def user_defined_constructor(self):
     def user_defined_constructor(self):
         tk.Toplevel.__init__(self)
         tk.Toplevel.__init__(self)
         SCCDWidget.__init__(self)
         SCCDWidget.__init__(self)
+        self.activity_frame = tk.Frame(self)
         self.input_frame = tk.Frame(self)
         self.input_frame = tk.Frame(self)
         self.output_frame = tk.Frame(self)
         self.output_frame = tk.Frame(self)
         
         
-        tk.Label(self, text="Activity").grid(row=0, column=0)
-        tk.Label(self, text="Inputs").grid(row=1, column=0)
-        self.input_frame.grid(row=2,column=0)
-        tk.Label(self, text="Outputs").grid(row=3, column=0)
-        self.output_frame.grid(row=4, column=0)
+        self.activity_frame.pack()
+        tk.Label(self, text="Inputs").pack()
+        self.input_frame.pack()
+        tk.Label(self, text="Outputs").pack()
+        self.output_frame.pack()
         
         
         self.associations = {}
         self.associations = {}
         self.current = None
         self.current = None
+        self.activity = None
     
     
     def user_defined_destructor(self):
     def user_defined_destructor(self):
         self.destroy()
         self.destroy()
@@ -7277,92 +7279,135 @@ class ActivityExecutor(RuntimeClassBase, tk.Toplevel, SCCDWidget):
         # state <root>
         # state <root>
         self.states[""] = State(0, "", self)
         self.states[""] = State(0, "", self)
         
         
+        # state /create_activity_browse_label
+        self.states["/create_activity_browse_label"] = State(1, "/create_activity_browse_label", self)
+        
+        # state /create_activity_browse_label/create
+        self.states["/create_activity_browse_label/create"] = State(2, "/create_activity_browse_label/create", self)
+        self.states["/create_activity_browse_label/create"].setEnter(self._create_activity_browse_label_create_enter)
+        
+        # state /create_activity_browse_label/pack
+        self.states["/create_activity_browse_label/pack"] = State(3, "/create_activity_browse_label/pack", self)
+        
+        # state /create_activity_browse_entry
+        self.states["/create_activity_browse_entry"] = State(4, "/create_activity_browse_entry", self)
+        
+        # state /create_activity_browse_entry/create
+        self.states["/create_activity_browse_entry/create"] = State(5, "/create_activity_browse_entry/create", self)
+        self.states["/create_activity_browse_entry/create"].setEnter(self._create_activity_browse_entry_create_enter)
+        
+        # state /create_activity_browse_entry/pack
+        self.states["/create_activity_browse_entry/pack"] = State(6, "/create_activity_browse_entry/pack", self)
+        
         # state /create_activity_browse_button
         # state /create_activity_browse_button
-        self.states["/create_activity_browse_button"] = State(1, "/create_activity_browse_button", self)
+        self.states["/create_activity_browse_button"] = State(7, "/create_activity_browse_button", self)
         
         
         # state /create_activity_browse_button/create
         # state /create_activity_browse_button/create
-        self.states["/create_activity_browse_button/create"] = State(2, "/create_activity_browse_button/create", self)
+        self.states["/create_activity_browse_button/create"] = State(8, "/create_activity_browse_button/create", self)
         self.states["/create_activity_browse_button/create"].setEnter(self._create_activity_browse_button_create_enter)
         self.states["/create_activity_browse_button/create"].setEnter(self._create_activity_browse_button_create_enter)
         
         
         # state /create_activity_browse_button/pack
         # state /create_activity_browse_button/pack
-        self.states["/create_activity_browse_button/pack"] = State(3, "/create_activity_browse_button/pack", self)
+        self.states["/create_activity_browse_button/pack"] = State(9, "/create_activity_browse_button/pack", self)
         
         
         # state /ready
         # state /ready
-        self.states["/ready"] = State(4, "/ready", self)
+        self.states["/ready"] = State(10, "/ready", self)
         
         
         # state /browse_activity
         # state /browse_activity
-        self.states["/browse_activity"] = State(5, "/browse_activity", self)
+        self.states["/browse_activity"] = State(11, "/browse_activity", self)
         
         
         # state /browse_activity/create_browser
         # state /browse_activity/create_browser
-        self.states["/browse_activity/create_browser"] = State(6, "/browse_activity/create_browser", self)
+        self.states["/browse_activity/create_browser"] = State(12, "/browse_activity/create_browser", self)
         self.states["/browse_activity/create_browser"].setEnter(self._browse_activity_create_browser_enter)
         self.states["/browse_activity/create_browser"].setEnter(self._browse_activity_create_browser_enter)
         
         
         # state /browse_activity/waiting_for_decision
         # state /browse_activity/waiting_for_decision
-        self.states["/browse_activity/waiting_for_decision"] = State(7, "/browse_activity/waiting_for_decision", self)
+        self.states["/browse_activity/waiting_for_decision"] = State(13, "/browse_activity/waiting_for_decision", self)
         
         
         # state /redraw_signature
         # state /redraw_signature
-        self.states["/redraw_signature"] = State(8, "/redraw_signature", self)
+        self.states["/redraw_signature"] = State(14, "/redraw_signature", self)
         
         
         # state /redraw_signature/clear_previous
         # state /redraw_signature/clear_previous
-        self.states["/redraw_signature/clear_previous"] = State(9, "/redraw_signature/clear_previous", self)
+        self.states["/redraw_signature/clear_previous"] = State(15, "/redraw_signature/clear_previous", self)
         
         
         # state /redraw_signature/read_signature
         # state /redraw_signature/read_signature
-        self.states["/redraw_signature/read_signature"] = State(10, "/redraw_signature/read_signature", self)
+        self.states["/redraw_signature/read_signature"] = State(16, "/redraw_signature/read_signature", self)
         self.states["/redraw_signature/read_signature"].setEnter(self._redraw_signature_read_signature_enter)
         self.states["/redraw_signature/read_signature"].setEnter(self._redraw_signature_read_signature_enter)
         
         
         # state /redraw_signature/add_input
         # state /redraw_signature/add_input
-        self.states["/redraw_signature/add_input"] = State(11, "/redraw_signature/add_input", self)
+        self.states["/redraw_signature/add_input"] = State(17, "/redraw_signature/add_input", self)
         self.states["/redraw_signature/add_input"].setEnter(self._redraw_signature_add_input_enter)
         self.states["/redraw_signature/add_input"].setEnter(self._redraw_signature_add_input_enter)
         
         
         # state /redraw_signature/add_input/check_next
         # state /redraw_signature/add_input/check_next
-        self.states["/redraw_signature/add_input/check_next"] = State(12, "/redraw_signature/add_input/check_next", self)
+        self.states["/redraw_signature/add_input/check_next"] = State(18, "/redraw_signature/add_input/check_next", self)
         
         
         # state /redraw_signature/add_input/create_label
         # state /redraw_signature/add_input/create_label
-        self.states["/redraw_signature/add_input/create_label"] = State(13, "/redraw_signature/add_input/create_label", self)
+        self.states["/redraw_signature/add_input/create_label"] = State(19, "/redraw_signature/add_input/create_label", self)
         self.states["/redraw_signature/add_input/create_label"].setEnter(self._redraw_signature_add_input_create_label_enter)
         self.states["/redraw_signature/add_input/create_label"].setEnter(self._redraw_signature_add_input_create_label_enter)
         
         
         # state /redraw_signature/add_input/pack_label
         # state /redraw_signature/add_input/pack_label
-        self.states["/redraw_signature/add_input/pack_label"] = State(14, "/redraw_signature/add_input/pack_label", self)
+        self.states["/redraw_signature/add_input/pack_label"] = State(20, "/redraw_signature/add_input/pack_label", self)
+        
+        # state /redraw_signature/add_input/create_entry
+        self.states["/redraw_signature/add_input/create_entry"] = State(21, "/redraw_signature/add_input/create_entry", self)
+        self.states["/redraw_signature/add_input/create_entry"].setEnter(self._redraw_signature_add_input_create_entry_enter)
+        
+        # state /redraw_signature/add_input/pack_entry
+        self.states["/redraw_signature/add_input/pack_entry"] = State(22, "/redraw_signature/add_input/pack_entry", self)
         
         
         # state /redraw_signature/add_input/create_button
         # state /redraw_signature/add_input/create_button
-        self.states["/redraw_signature/add_input/create_button"] = State(15, "/redraw_signature/add_input/create_button", self)
+        self.states["/redraw_signature/add_input/create_button"] = State(23, "/redraw_signature/add_input/create_button", self)
         self.states["/redraw_signature/add_input/create_button"].setEnter(self._redraw_signature_add_input_create_button_enter)
         self.states["/redraw_signature/add_input/create_button"].setEnter(self._redraw_signature_add_input_create_button_enter)
         
         
         # state /redraw_signature/add_input/pack_button
         # state /redraw_signature/add_input/pack_button
-        self.states["/redraw_signature/add_input/pack_button"] = State(16, "/redraw_signature/add_input/pack_button", self)
+        self.states["/redraw_signature/add_input/pack_button"] = State(24, "/redraw_signature/add_input/pack_button", self)
         
         
         # state /redraw_signature/add_output
         # state /redraw_signature/add_output
-        self.states["/redraw_signature/add_output"] = State(17, "/redraw_signature/add_output", self)
+        self.states["/redraw_signature/add_output"] = State(25, "/redraw_signature/add_output", self)
         self.states["/redraw_signature/add_output"].setEnter(self._redraw_signature_add_output_enter)
         self.states["/redraw_signature/add_output"].setEnter(self._redraw_signature_add_output_enter)
         
         
         # state /redraw_signature/add_output/check_next
         # state /redraw_signature/add_output/check_next
-        self.states["/redraw_signature/add_output/check_next"] = State(18, "/redraw_signature/add_output/check_next", self)
+        self.states["/redraw_signature/add_output/check_next"] = State(26, "/redraw_signature/add_output/check_next", self)
         
         
         # state /redraw_signature/add_output/create_label
         # state /redraw_signature/add_output/create_label
-        self.states["/redraw_signature/add_output/create_label"] = State(19, "/redraw_signature/add_output/create_label", self)
+        self.states["/redraw_signature/add_output/create_label"] = State(27, "/redraw_signature/add_output/create_label", self)
         self.states["/redraw_signature/add_output/create_label"].setEnter(self._redraw_signature_add_output_create_label_enter)
         self.states["/redraw_signature/add_output/create_label"].setEnter(self._redraw_signature_add_output_create_label_enter)
         
         
         # state /redraw_signature/add_output/pack_label
         # state /redraw_signature/add_output/pack_label
-        self.states["/redraw_signature/add_output/pack_label"] = State(20, "/redraw_signature/add_output/pack_label", self)
+        self.states["/redraw_signature/add_output/pack_label"] = State(28, "/redraw_signature/add_output/pack_label", self)
+        
+        # state /redraw_signature/add_output/create_entry
+        self.states["/redraw_signature/add_output/create_entry"] = State(29, "/redraw_signature/add_output/create_entry", self)
+        self.states["/redraw_signature/add_output/create_entry"].setEnter(self._redraw_signature_add_output_create_entry_enter)
+        
+        # state /redraw_signature/add_output/pack_entry
+        self.states["/redraw_signature/add_output/pack_entry"] = State(30, "/redraw_signature/add_output/pack_entry", self)
         
         
         # state /redraw_signature/add_output/create_button
         # state /redraw_signature/add_output/create_button
-        self.states["/redraw_signature/add_output/create_button"] = State(21, "/redraw_signature/add_output/create_button", self)
+        self.states["/redraw_signature/add_output/create_button"] = State(31, "/redraw_signature/add_output/create_button", self)
         self.states["/redraw_signature/add_output/create_button"].setEnter(self._redraw_signature_add_output_create_button_enter)
         self.states["/redraw_signature/add_output/create_button"].setEnter(self._redraw_signature_add_output_create_button_enter)
         
         
         # state /redraw_signature/add_output/pack_button
         # state /redraw_signature/add_output/pack_button
-        self.states["/redraw_signature/add_output/pack_button"] = State(22, "/redraw_signature/add_output/pack_button", self)
+        self.states["/redraw_signature/add_output/pack_button"] = State(32, "/redraw_signature/add_output/pack_button", self)
         
         
         # state /browse_model
         # state /browse_model
-        self.states["/browse_model"] = State(23, "/browse_model", self)
+        self.states["/browse_model"] = State(33, "/browse_model", self)
+        
+        # state /browse_model/create_browser
+        self.states["/browse_model/create_browser"] = State(34, "/browse_model/create_browser", self)
+        self.states["/browse_model/create_browser"].setEnter(self._browse_model_create_browser_enter)
+        
+        # state /browse_model/waiting_for_decision
+        self.states["/browse_model/waiting_for_decision"] = State(35, "/browse_model/waiting_for_decision", self)
         
         
         # state /closing
         # state /closing
-        self.states["/closing"] = State(24, "/closing", self)
+        self.states["/closing"] = State(36, "/closing", self)
         
         
         # state /closed
         # state /closed
-        self.states["/closed"] = State(25, "/closed", self)
+        self.states["/closed"] = State(37, "/closed", self)
         self.states["/closed"].setEnter(self._closed_enter)
         self.states["/closed"].setEnter(self._closed_enter)
         
         
         # add children
         # add children
+        self.states[""].addChild(self.states["/create_activity_browse_label"])
+        self.states[""].addChild(self.states["/create_activity_browse_entry"])
         self.states[""].addChild(self.states["/create_activity_browse_button"])
         self.states[""].addChild(self.states["/create_activity_browse_button"])
         self.states[""].addChild(self.states["/ready"])
         self.states[""].addChild(self.states["/ready"])
         self.states[""].addChild(self.states["/browse_activity"])
         self.states[""].addChild(self.states["/browse_activity"])
@@ -7370,6 +7415,10 @@ class ActivityExecutor(RuntimeClassBase, tk.Toplevel, SCCDWidget):
         self.states[""].addChild(self.states["/browse_model"])
         self.states[""].addChild(self.states["/browse_model"])
         self.states[""].addChild(self.states["/closing"])
         self.states[""].addChild(self.states["/closing"])
         self.states[""].addChild(self.states["/closed"])
         self.states[""].addChild(self.states["/closed"])
+        self.states["/create_activity_browse_label"].addChild(self.states["/create_activity_browse_label/create"])
+        self.states["/create_activity_browse_label"].addChild(self.states["/create_activity_browse_label/pack"])
+        self.states["/create_activity_browse_entry"].addChild(self.states["/create_activity_browse_entry/create"])
+        self.states["/create_activity_browse_entry"].addChild(self.states["/create_activity_browse_entry/pack"])
         self.states["/create_activity_browse_button"].addChild(self.states["/create_activity_browse_button/create"])
         self.states["/create_activity_browse_button"].addChild(self.states["/create_activity_browse_button/create"])
         self.states["/create_activity_browse_button"].addChild(self.states["/create_activity_browse_button/pack"])
         self.states["/create_activity_browse_button"].addChild(self.states["/create_activity_browse_button/pack"])
         self.states["/browse_activity"].addChild(self.states["/browse_activity/create_browser"])
         self.states["/browse_activity"].addChild(self.states["/browse_activity/create_browser"])
@@ -7381,20 +7430,53 @@ class ActivityExecutor(RuntimeClassBase, tk.Toplevel, SCCDWidget):
         self.states["/redraw_signature/add_input"].addChild(self.states["/redraw_signature/add_input/check_next"])
         self.states["/redraw_signature/add_input"].addChild(self.states["/redraw_signature/add_input/check_next"])
         self.states["/redraw_signature/add_input"].addChild(self.states["/redraw_signature/add_input/create_label"])
         self.states["/redraw_signature/add_input"].addChild(self.states["/redraw_signature/add_input/create_label"])
         self.states["/redraw_signature/add_input"].addChild(self.states["/redraw_signature/add_input/pack_label"])
         self.states["/redraw_signature/add_input"].addChild(self.states["/redraw_signature/add_input/pack_label"])
+        self.states["/redraw_signature/add_input"].addChild(self.states["/redraw_signature/add_input/create_entry"])
+        self.states["/redraw_signature/add_input"].addChild(self.states["/redraw_signature/add_input/pack_entry"])
         self.states["/redraw_signature/add_input"].addChild(self.states["/redraw_signature/add_input/create_button"])
         self.states["/redraw_signature/add_input"].addChild(self.states["/redraw_signature/add_input/create_button"])
         self.states["/redraw_signature/add_input"].addChild(self.states["/redraw_signature/add_input/pack_button"])
         self.states["/redraw_signature/add_input"].addChild(self.states["/redraw_signature/add_input/pack_button"])
         self.states["/redraw_signature/add_output"].addChild(self.states["/redraw_signature/add_output/check_next"])
         self.states["/redraw_signature/add_output"].addChild(self.states["/redraw_signature/add_output/check_next"])
         self.states["/redraw_signature/add_output"].addChild(self.states["/redraw_signature/add_output/create_label"])
         self.states["/redraw_signature/add_output"].addChild(self.states["/redraw_signature/add_output/create_label"])
         self.states["/redraw_signature/add_output"].addChild(self.states["/redraw_signature/add_output/pack_label"])
         self.states["/redraw_signature/add_output"].addChild(self.states["/redraw_signature/add_output/pack_label"])
+        self.states["/redraw_signature/add_output"].addChild(self.states["/redraw_signature/add_output/create_entry"])
+        self.states["/redraw_signature/add_output"].addChild(self.states["/redraw_signature/add_output/pack_entry"])
         self.states["/redraw_signature/add_output"].addChild(self.states["/redraw_signature/add_output/create_button"])
         self.states["/redraw_signature/add_output"].addChild(self.states["/redraw_signature/add_output/create_button"])
         self.states["/redraw_signature/add_output"].addChild(self.states["/redraw_signature/add_output/pack_button"])
         self.states["/redraw_signature/add_output"].addChild(self.states["/redraw_signature/add_output/pack_button"])
+        self.states["/browse_model"].addChild(self.states["/browse_model/create_browser"])
+        self.states["/browse_model"].addChild(self.states["/browse_model/waiting_for_decision"])
         self.states[""].fixTree()
         self.states[""].fixTree()
-        self.states[""].default_state = self.states["/create_activity_browse_button"]
+        self.states[""].default_state = self.states["/create_activity_browse_label"]
+        self.states["/create_activity_browse_label"].default_state = self.states["/create_activity_browse_label/create"]
+        self.states["/create_activity_browse_entry"].default_state = self.states["/create_activity_browse_entry/create"]
         self.states["/create_activity_browse_button"].default_state = self.states["/create_activity_browse_button/create"]
         self.states["/create_activity_browse_button"].default_state = self.states["/create_activity_browse_button/create"]
         self.states["/browse_activity"].default_state = self.states["/browse_activity/create_browser"]
         self.states["/browse_activity"].default_state = self.states["/browse_activity/create_browser"]
         self.states["/redraw_signature"].default_state = self.states["/redraw_signature/clear_previous"]
         self.states["/redraw_signature"].default_state = self.states["/redraw_signature/clear_previous"]
         self.states["/redraw_signature/add_input"].default_state = self.states["/redraw_signature/add_input/check_next"]
         self.states["/redraw_signature/add_input"].default_state = self.states["/redraw_signature/add_input/check_next"]
         self.states["/redraw_signature/add_output"].default_state = self.states["/redraw_signature/add_output/check_next"]
         self.states["/redraw_signature/add_output"].default_state = self.states["/redraw_signature/add_output/check_next"]
+        self.states["/browse_model"].default_state = self.states["/browse_model/create_browser"]
+        
+        # transition /create_activity_browse_label/create
+        _create_activity_browse_label_create_0 = Transition(self, self.states["/create_activity_browse_label/create"], [self.states["/create_activity_browse_label/pack"]])
+        _create_activity_browse_label_create_0.setAction(self._create_activity_browse_label_create_0_exec)
+        _create_activity_browse_label_create_0.setTrigger(Event("instance_created", None))
+        self.states["/create_activity_browse_label/create"].addTransition(_create_activity_browse_label_create_0)
+        
+        # transition /create_activity_browse_label/pack
+        _create_activity_browse_label_pack_0 = Transition(self, self.states["/create_activity_browse_label/pack"], [self.states["/create_activity_browse_entry"]])
+        _create_activity_browse_label_pack_0.setAction(self._create_activity_browse_label_pack_0_exec)
+        _create_activity_browse_label_pack_0.setTrigger(Event("tk_widget", None))
+        self.states["/create_activity_browse_label/pack"].addTransition(_create_activity_browse_label_pack_0)
+        
+        # transition /create_activity_browse_entry/create
+        _create_activity_browse_entry_create_0 = Transition(self, self.states["/create_activity_browse_entry/create"], [self.states["/create_activity_browse_entry/pack"]])
+        _create_activity_browse_entry_create_0.setAction(self._create_activity_browse_entry_create_0_exec)
+        _create_activity_browse_entry_create_0.setTrigger(Event("instance_created", None))
+        self.states["/create_activity_browse_entry/create"].addTransition(_create_activity_browse_entry_create_0)
+        
+        # transition /create_activity_browse_entry/pack
+        _create_activity_browse_entry_pack_0 = Transition(self, self.states["/create_activity_browse_entry/pack"], [self.states["/create_activity_browse_button"]])
+        _create_activity_browse_entry_pack_0.setAction(self._create_activity_browse_entry_pack_0_exec)
+        _create_activity_browse_entry_pack_0.setTrigger(Event("tk_widget", None))
+        self.states["/create_activity_browse_entry/pack"].addTransition(_create_activity_browse_entry_pack_0)
         
         
         # transition /create_activity_browse_button/create
         # transition /create_activity_browse_button/create
         _create_activity_browse_button_create_0 = Transition(self, self.states["/create_activity_browse_button/create"], [self.states["/create_activity_browse_button/pack"]])
         _create_activity_browse_button_create_0 = Transition(self, self.states["/create_activity_browse_button/create"], [self.states["/create_activity_browse_button/pack"]])
@@ -7465,11 +7547,23 @@ class ActivityExecutor(RuntimeClassBase, tk.Toplevel, SCCDWidget):
         self.states["/redraw_signature/add_input/create_label"].addTransition(_redraw_signature_add_input_create_label_0)
         self.states["/redraw_signature/add_input/create_label"].addTransition(_redraw_signature_add_input_create_label_0)
         
         
         # transition /redraw_signature/add_input/pack_label
         # transition /redraw_signature/add_input/pack_label
-        _redraw_signature_add_input_pack_label_0 = Transition(self, self.states["/redraw_signature/add_input/pack_label"], [self.states["/redraw_signature/add_input/create_button"]])
+        _redraw_signature_add_input_pack_label_0 = Transition(self, self.states["/redraw_signature/add_input/pack_label"], [self.states["/redraw_signature/add_input/create_entry"]])
         _redraw_signature_add_input_pack_label_0.setAction(self._redraw_signature_add_input_pack_label_0_exec)
         _redraw_signature_add_input_pack_label_0.setAction(self._redraw_signature_add_input_pack_label_0_exec)
         _redraw_signature_add_input_pack_label_0.setTrigger(Event("tk_widget", None))
         _redraw_signature_add_input_pack_label_0.setTrigger(Event("tk_widget", None))
         self.states["/redraw_signature/add_input/pack_label"].addTransition(_redraw_signature_add_input_pack_label_0)
         self.states["/redraw_signature/add_input/pack_label"].addTransition(_redraw_signature_add_input_pack_label_0)
         
         
+        # transition /redraw_signature/add_input/create_entry
+        _redraw_signature_add_input_create_entry_0 = Transition(self, self.states["/redraw_signature/add_input/create_entry"], [self.states["/redraw_signature/add_input/pack_entry"]])
+        _redraw_signature_add_input_create_entry_0.setAction(self._redraw_signature_add_input_create_entry_0_exec)
+        _redraw_signature_add_input_create_entry_0.setTrigger(Event("instance_created", None))
+        self.states["/redraw_signature/add_input/create_entry"].addTransition(_redraw_signature_add_input_create_entry_0)
+        
+        # transition /redraw_signature/add_input/pack_entry
+        _redraw_signature_add_input_pack_entry_0 = Transition(self, self.states["/redraw_signature/add_input/pack_entry"], [self.states["/redraw_signature/add_input/create_button"]])
+        _redraw_signature_add_input_pack_entry_0.setAction(self._redraw_signature_add_input_pack_entry_0_exec)
+        _redraw_signature_add_input_pack_entry_0.setTrigger(Event("tk_widget", None))
+        self.states["/redraw_signature/add_input/pack_entry"].addTransition(_redraw_signature_add_input_pack_entry_0)
+        
         # transition /redraw_signature/add_input/create_button
         # transition /redraw_signature/add_input/create_button
         _redraw_signature_add_input_create_button_0 = Transition(self, self.states["/redraw_signature/add_input/create_button"], [self.states["/redraw_signature/add_input/pack_button"]])
         _redraw_signature_add_input_create_button_0 = Transition(self, self.states["/redraw_signature/add_input/create_button"], [self.states["/redraw_signature/add_input/pack_button"]])
         _redraw_signature_add_input_create_button_0.setAction(self._redraw_signature_add_input_create_button_0_exec)
         _redraw_signature_add_input_create_button_0.setAction(self._redraw_signature_add_input_create_button_0_exec)
@@ -7500,11 +7594,23 @@ class ActivityExecutor(RuntimeClassBase, tk.Toplevel, SCCDWidget):
         self.states["/redraw_signature/add_output/create_label"].addTransition(_redraw_signature_add_output_create_label_0)
         self.states["/redraw_signature/add_output/create_label"].addTransition(_redraw_signature_add_output_create_label_0)
         
         
         # transition /redraw_signature/add_output/pack_label
         # transition /redraw_signature/add_output/pack_label
-        _redraw_signature_add_output_pack_label_0 = Transition(self, self.states["/redraw_signature/add_output/pack_label"], [self.states["/redraw_signature/add_output/create_button"]])
+        _redraw_signature_add_output_pack_label_0 = Transition(self, self.states["/redraw_signature/add_output/pack_label"], [self.states["/redraw_signature/add_output/create_entry"]])
         _redraw_signature_add_output_pack_label_0.setAction(self._redraw_signature_add_output_pack_label_0_exec)
         _redraw_signature_add_output_pack_label_0.setAction(self._redraw_signature_add_output_pack_label_0_exec)
         _redraw_signature_add_output_pack_label_0.setTrigger(Event("tk_widget", None))
         _redraw_signature_add_output_pack_label_0.setTrigger(Event("tk_widget", None))
         self.states["/redraw_signature/add_output/pack_label"].addTransition(_redraw_signature_add_output_pack_label_0)
         self.states["/redraw_signature/add_output/pack_label"].addTransition(_redraw_signature_add_output_pack_label_0)
         
         
+        # transition /redraw_signature/add_output/create_entry
+        _redraw_signature_add_output_create_entry_0 = Transition(self, self.states["/redraw_signature/add_output/create_entry"], [self.states["/redraw_signature/add_output/pack_entry"]])
+        _redraw_signature_add_output_create_entry_0.setAction(self._redraw_signature_add_output_create_entry_0_exec)
+        _redraw_signature_add_output_create_entry_0.setTrigger(Event("instance_created", None))
+        self.states["/redraw_signature/add_output/create_entry"].addTransition(_redraw_signature_add_output_create_entry_0)
+        
+        # transition /redraw_signature/add_output/pack_entry
+        _redraw_signature_add_output_pack_entry_0 = Transition(self, self.states["/redraw_signature/add_output/pack_entry"], [self.states["/redraw_signature/add_output/create_button"]])
+        _redraw_signature_add_output_pack_entry_0.setAction(self._redraw_signature_add_output_pack_entry_0_exec)
+        _redraw_signature_add_output_pack_entry_0.setTrigger(Event("tk_widget", None))
+        self.states["/redraw_signature/add_output/pack_entry"].addTransition(_redraw_signature_add_output_pack_entry_0)
+        
         # transition /redraw_signature/add_output/create_button
         # transition /redraw_signature/add_output/create_button
         _redraw_signature_add_output_create_button_0 = Transition(self, self.states["/redraw_signature/add_output/create_button"], [self.states["/redraw_signature/add_output/pack_button"]])
         _redraw_signature_add_output_create_button_0 = Transition(self, self.states["/redraw_signature/add_output/create_button"], [self.states["/redraw_signature/add_output/pack_button"]])
         _redraw_signature_add_output_create_button_0.setAction(self._redraw_signature_add_output_create_button_0_exec)
         _redraw_signature_add_output_create_button_0.setAction(self._redraw_signature_add_output_create_button_0_exec)
@@ -7517,6 +7623,22 @@ class ActivityExecutor(RuntimeClassBase, tk.Toplevel, SCCDWidget):
         _redraw_signature_add_output_pack_button_0.setTrigger(Event("tk_widget", None))
         _redraw_signature_add_output_pack_button_0.setTrigger(Event("tk_widget", None))
         self.states["/redraw_signature/add_output/pack_button"].addTransition(_redraw_signature_add_output_pack_button_0)
         self.states["/redraw_signature/add_output/pack_button"].addTransition(_redraw_signature_add_output_pack_button_0)
         
         
+        # transition /browse_model/create_browser
+        _browse_model_create_browser_0 = Transition(self, self.states["/browse_model/create_browser"], [self.states["/browse_model/waiting_for_decision"]])
+        _browse_model_create_browser_0.setAction(self._browse_model_create_browser_0_exec)
+        _browse_model_create_browser_0.setTrigger(Event("instance_created", None))
+        self.states["/browse_model/create_browser"].addTransition(_browse_model_create_browser_0)
+        
+        # transition /browse_model/waiting_for_decision
+        _browse_model_waiting_for_decision_0 = Transition(self, self.states["/browse_model/waiting_for_decision"], [self.states["/browse_model/waiting_for_decision"]])
+        _browse_model_waiting_for_decision_0.setAction(self._browse_model_waiting_for_decision_0_exec)
+        _browse_model_waiting_for_decision_0.setTrigger(Event("browse_result", None))
+        self.states["/browse_model/waiting_for_decision"].addTransition(_browse_model_waiting_for_decision_0)
+        _browse_model_waiting_for_decision_1 = Transition(self, self.states["/browse_model/waiting_for_decision"], [self.states["/ready"]])
+        _browse_model_waiting_for_decision_1.setAction(self._browse_model_waiting_for_decision_1_exec)
+        _browse_model_waiting_for_decision_1.setTrigger(Event("close_window", None))
+        self.states["/browse_model/waiting_for_decision"].addTransition(_browse_model_waiting_for_decision_1)
+        
         # transition /closing
         # transition /closing
         _closing_0 = Transition(self, self.states["/closing"], [self.states["/closed"]])
         _closing_0 = Transition(self, self.states["/closing"], [self.states["/closed"]])
         _closing_0.setAction(self._closing_0_exec)
         _closing_0.setAction(self._closing_0_exec)
@@ -7529,8 +7651,14 @@ class ActivityExecutor(RuntimeClassBase, tk.Toplevel, SCCDWidget):
     def _redraw_signature_add_output_enter(self):
     def _redraw_signature_add_output_enter(self):
         self.counter = -1
         self.counter = -1
     
     
+    def _create_activity_browse_label_create_enter(self):
+        self.big_step.outputEventOM(Event("create_instance", None, [self, 'activity_browse', 'Label', {'parent': self.activity_frame, 'text': 'Activity'}]))
+    
+    def _create_activity_browse_entry_create_enter(self):
+        self.big_step.outputEventOM(Event("create_instance", None, [self, 'activity_browse', 'Entry', {'parent': self.activity_frame, 'name': 'activity_entry', 'value': '(none)', 'readonly': True}]))
+    
     def _create_activity_browse_button_create_enter(self):
     def _create_activity_browse_button_create_enter(self):
-        self.big_step.outputEventOM(Event("create_instance", None, [self, 'activity_browse_button', 'Button', {'parent': self, 'event_parameters': 'browse_activity', 'visual': TextVisual('(none)'), 'tooltip_text': 'Browse for a activity'}]))
+        self.big_step.outputEventOM(Event("create_instance", None, [self, 'activity_browse', 'Button', {'parent': self.activity_frame, 'event_parameters': 'browse_activity', 'visual': TextVisual('...'), 'tooltip_text': 'Browse for a activity'}]))
     
     
     def _browse_activity_create_browser_enter(self):
     def _browse_activity_create_browser_enter(self):
         self.big_step.outputEventOM(Event("create_instance", None, [self, 'browsers', 'Browser', 'Select activity to execute.', None]))
         self.big_step.outputEventOM(Event("create_instance", None, [self, 'browsers', 'Browser', 'Select activity to execute.', None]))
@@ -7541,25 +7669,51 @@ class ActivityExecutor(RuntimeClassBase, tk.Toplevel, SCCDWidget):
     def _redraw_signature_add_input_create_label_enter(self):
     def _redraw_signature_add_input_create_label_enter(self):
         self.big_step.outputEventOM(Event("create_instance", None, [self, 'model_browse_label', 'Label', {'parent': self.input_frame, 'text': self.current[0]}]))
         self.big_step.outputEventOM(Event("create_instance", None, [self, 'model_browse_label', 'Label', {'parent': self.input_frame, 'text': self.current[0]}]))
     
     
+    def _redraw_signature_add_input_create_entry_enter(self):
+        self.big_step.outputEventOM(Event("create_instance", None, [self, 'model_browse_entry', 'Entry', {'parent': self.input_frame, 'name': 'input_%s' % self.current[0], 'value': '(none)', 'readonly': True}]))
+    
     def _redraw_signature_add_input_create_button_enter(self):
     def _redraw_signature_add_input_create_button_enter(self):
-        self.big_step.outputEventOM(Event("create_instance", None, [self, 'model_browse_button', 'Button', {'parent': self.input_frame, 'visual': TextVisual('(none)'), 'tooltip_text': 'Select input model for tag %s.' % self.current[0], 'event_parameters': 'input_%s' % self.current[0]}]))
+        self.big_step.outputEventOM(Event("create_instance", None, [self, 'model_browse_button', 'Button', {'parent': self.input_frame, 'visual': TextVisual('...'), 'tooltip_text': 'Select input model for tag %s.' % self.current[0], 'event_parameters': 'input_%s' % self.current[0]}]))
     
     
     def _redraw_signature_add_output_create_label_enter(self):
     def _redraw_signature_add_output_create_label_enter(self):
         self.big_step.outputEventOM(Event("create_instance", None, [self, 'model_browse_label', 'Label', {'parent': self.output_frame, 'text': self.current[0]}]))
         self.big_step.outputEventOM(Event("create_instance", None, [self, 'model_browse_label', 'Label', {'parent': self.output_frame, 'text': self.current[0]}]))
     
     
+    def _redraw_signature_add_output_create_entry_enter(self):
+        self.big_step.outputEventOM(Event("create_instance", None, [self, 'model_browse_entry', 'Entry', {'parent': self.output_frame, 'name': 'output_%s' % self.current[0], 'value': '(none)', 'readonly': False}]))
+    
     def _redraw_signature_add_output_create_button_enter(self):
     def _redraw_signature_add_output_create_button_enter(self):
-        self.big_step.outputEventOM(Event("create_instance", None, [self, 'model_browse_button', 'Button', {'parent': self.output_frame, 'visual': TextVisual('(none)'), 'tooltip_text': 'Select output model for tag %s.' % self.current[0], 'event_parameters': 'output_%s' % self.current[0]}]))
+        self.big_step.outputEventOM(Event("create_instance", None, [self, 'model_browse_button', 'Button', {'parent': self.output_frame, 'visual': TextVisual('(...)'), 'tooltip_text': 'Select output model for tag %s.' % self.current[0], 'event_parameters': 'output_%s' % self.current[0]}]))
+    
+    def _browse_model_create_browser_enter(self):
+        self.big_step.outputEventOM(Event("create_instance", None, [self, 'browsers', 'Browser', 'Select model to use.', None]))
     
     
     def _closed_enter(self):
     def _closed_enter(self):
         self.big_step.outputEventOM(Event("narrow_cast", None, [self, 'parent', Event("window_close", None, [])]))
         self.big_step.outputEventOM(Event("narrow_cast", None, [self, 'parent', Event("window_close", None, [])]))
     
     
+    def _create_activity_browse_label_create_0_exec(self, parameters):
+        assoc_name = parameters[0]
+        self.big_step.outputEventOM(Event("start_instance", None, [self, assoc_name]))
+    
+    def _create_activity_browse_label_pack_0_exec(self, parameters):
+        tk_widget = parameters[0]
+        tk_widget.grid(row=0,column=0)
+    
+    def _create_activity_browse_entry_create_0_exec(self, parameters):
+        assoc_name = parameters[0]
+        self.big_step.outputEventOM(Event("start_instance", None, [self, assoc_name]))
+        self.activity_entry = assoc_name
+    
+    def _create_activity_browse_entry_pack_0_exec(self, parameters):
+        tk_widget = parameters[0]
+        tk_widget.grid(row=0,column=1)
+    
     def _create_activity_browse_button_create_0_exec(self, parameters):
     def _create_activity_browse_button_create_0_exec(self, parameters):
         assoc_name = parameters[0]
         assoc_name = parameters[0]
         self.big_step.outputEventOM(Event("start_instance", None, [self, assoc_name]))
         self.big_step.outputEventOM(Event("start_instance", None, [self, assoc_name]))
     
     
     def _create_activity_browse_button_pack_0_exec(self, parameters):
     def _create_activity_browse_button_pack_0_exec(self, parameters):
         tk_widget = parameters[0]
         tk_widget = parameters[0]
-        tk_widget.grid(row=0,column=1)
+        tk_widget.grid(row=0,column=2)
     
     
     def _ready_0_guard(self, parameters):
     def _ready_0_guard(self, parameters):
         event_name = parameters[0]
         event_name = parameters[0]
@@ -7580,6 +7734,7 @@ class ActivityExecutor(RuntimeClassBase, tk.Toplevel, SCCDWidget):
     def _browse_activity_waiting_for_decision_0_exec(self, parameters):
     def _browse_activity_waiting_for_decision_0_exec(self, parameters):
         activity = parameters[0]
         activity = parameters[0]
         self.activity = activity
         self.activity = activity
+        self.big_step.outputEventOM(Event("narrow_cast", None, [self, self.activity_entry, Event("change_text", None, [self.activity])]))
     
     
     def _browse_activity_waiting_for_decision_1_exec(self, parameters):
     def _browse_activity_waiting_for_decision_1_exec(self, parameters):
         self.big_step.outputEventOM(Event("delete_instance", None, [self, 'browsers']))
         self.big_step.outputEventOM(Event("delete_instance", None, [self, 'browsers']))
@@ -7613,14 +7768,24 @@ class ActivityExecutor(RuntimeClassBase, tk.Toplevel, SCCDWidget):
         print("Adding input for " + str(self.current))
         print("Adding input for " + str(self.current))
         print("At row " + str(self.counter))
         print("At row " + str(self.counter))
     
     
-    def _redraw_signature_add_input_create_button_0_exec(self, parameters):
+    def _redraw_signature_add_input_create_entry_0_exec(self, parameters):
         assoc_name = parameters[0]
         assoc_name = parameters[0]
         self.big_step.outputEventOM(Event("start_instance", None, [self, assoc_name]))
         self.big_step.outputEventOM(Event("start_instance", None, [self, assoc_name]))
         self.associations["input_%s" % self.current[0]] = assoc_name
         self.associations["input_%s" % self.current[0]] = assoc_name
     
     
+    def _redraw_signature_add_input_pack_entry_0_exec(self, parameters):
+        tk_widget = parameters[0]
+        tk_widget.grid(row=self.counter, column=0)
+        print("Adding input for " + str(self.current))
+        print("At row " + str(self.counter))
+    
+    def _redraw_signature_add_input_create_button_0_exec(self, parameters):
+        assoc_name = parameters[0]
+        self.big_step.outputEventOM(Event("start_instance", None, [self, assoc_name]))
+    
     def _redraw_signature_add_input_pack_button_0_exec(self, parameters):
     def _redraw_signature_add_input_pack_button_0_exec(self, parameters):
         tk_widget = parameters[0]
         tk_widget = parameters[0]
-        tk_widget.grid(row=self.counter, column=1)
+        tk_widget.grid(row=self.counter, column=2)
     
     
     def _redraw_signature_add_output_check_next_0_exec(self, parameters):
     def _redraw_signature_add_output_check_next_0_exec(self, parameters):
         self.counter += 1
         self.counter += 1
@@ -7642,23 +7807,45 @@ class ActivityExecutor(RuntimeClassBase, tk.Toplevel, SCCDWidget):
         print("Adding output for " + str(self.current))
         print("Adding output for " + str(self.current))
         print("At row " + str(self.counter))
         print("At row " + str(self.counter))
     
     
-    def _redraw_signature_add_output_create_button_0_exec(self, parameters):
+    def _redraw_signature_add_output_create_entry_0_exec(self, parameters):
         assoc_name = parameters[0]
         assoc_name = parameters[0]
         self.big_step.outputEventOM(Event("start_instance", None, [self, assoc_name]))
         self.big_step.outputEventOM(Event("start_instance", None, [self, assoc_name]))
         self.associations["output_%s" % self.current[0]] = assoc_name
         self.associations["output_%s" % self.current[0]] = assoc_name
     
     
+    def _redraw_signature_add_output_pack_entry_0_exec(self, parameters):
+        tk_widget = parameters[0]
+        tk_widget.grid(row=self.counter, column=0)
+        print("Adding output for " + str(self.current))
+        print("At row " + str(self.counter))
+    
+    def _redraw_signature_add_output_create_button_0_exec(self, parameters):
+        assoc_name = parameters[0]
+        self.big_step.outputEventOM(Event("start_instance", None, [self, assoc_name]))
+    
     def _redraw_signature_add_output_pack_button_0_exec(self, parameters):
     def _redraw_signature_add_output_pack_button_0_exec(self, parameters):
         tk_widget = parameters[0]
         tk_widget = parameters[0]
-        tk_widget.grid(row=self.counter, column=1)
+        tk_widget.grid(row=self.counter, column=2)
+    
+    def _browse_model_create_browser_0_exec(self, parameters):
+        assoc_name = parameters[0]
+        self.big_step.outputEventOM(Event("start_instance", None, [self, assoc_name]))
+    
+    def _browse_model_waiting_for_decision_0_exec(self, parameters):
+        model = parameters[0]
+        self.big_step.outputEventOM(Event("narrow_cast", None, [self, self.associations[self.current], Event("change_value", None, [model])]))
+    
+    def _browse_model_waiting_for_decision_1_exec(self, parameters):
+        self.big_step.outputEventOM(Event("delete_instance", None, [self, 'browsers']))
     
     
     def _closing_0_exec(self, parameters):
     def _closing_0_exec(self, parameters):
         self.big_step.outputEventOM(Event("delete_instance", None, [self, 'model_browse_label']))
         self.big_step.outputEventOM(Event("delete_instance", None, [self, 'model_browse_label']))
         self.big_step.outputEventOM(Event("delete_instance", None, [self, 'model_browse_button']))
         self.big_step.outputEventOM(Event("delete_instance", None, [self, 'model_browse_button']))
-        self.big_step.outputEventOM(Event("delete_instance", None, [self, 'activity_browse_button']))
+        self.big_step.outputEventOM(Event("delete_instance", None, [self, 'model_browse_entry']))
+        self.big_step.outputEventOM(Event("delete_instance", None, [self, 'activity_browse']))
     
     
     def initializeStatechart(self):
     def initializeStatechart(self):
         # enter default state
         # enter default state
-        self.default_targets = self.states["/create_activity_browse_button"].getEffectiveTargetStates()
+        self.default_targets = self.states["/create_activity_browse_label"].getEffectiveTargetStates()
         RuntimeClassBase.initializeStatechart(self)
         RuntimeClassBase.initializeStatechart(self)
 
 
 class Toolbar(RuntimeClassBase, tk.Frame, SCCDWidget):
 class Toolbar(RuntimeClassBase, tk.Frame, SCCDWidget):
@@ -8642,6 +8829,10 @@ class Entry(RuntimeClassBase):
         _main_ready_3.setAction(self._main_ready_3_exec)
         _main_ready_3.setAction(self._main_ready_3_exec)
         _main_ready_3.setTrigger(Event("change_event_name", None))
         _main_ready_3.setTrigger(Event("change_event_name", None))
         self.states["/main/ready"].addTransition(_main_ready_3)
         self.states["/main/ready"].addTransition(_main_ready_3)
+        _main_ready_4 = Transition(self, self.states["/main/ready"], [self.states["/main/ready"]])
+        _main_ready_4.setAction(self._main_ready_4_exec)
+        _main_ready_4.setTrigger(Event("change_value", None))
+        self.states["/main/ready"].addTransition(_main_ready_4)
     
     
     def _main_initializing_0_exec(self, parameters):
     def _main_initializing_0_exec(self, parameters):
         self.big_step.outputEventOM(Event("narrow_cast", None, [self, 'parent', Event("tk_widget", None, [self.entry])]))
         self.big_step.outputEventOM(Event("narrow_cast", None, [self, 'parent', Event("tk_widget", None, [self.entry])]))
@@ -8666,6 +8857,10 @@ class Entry(RuntimeClassBase):
         new_name = parameters[0]
         new_name = parameters[0]
         self.name = new_name
         self.name = new_name
     
     
+    def _main_ready_4_exec(self, parameters):
+        new_value = parameters[0]
+        self.strvar.set(new_value)
+    
     def initializeStatechart(self):
     def initializeStatechart(self):
         # enter default state
         # enter default state
         self.default_targets = self.states["/main"].getEffectiveTargetStates()
         self.default_targets = self.states["/main"].getEffectiveTargetStates()
@@ -10680,8 +10875,9 @@ class ObjectManager(ObjectManagerBase):
         elif class_name == "ActivityExecutor":
         elif class_name == "ActivityExecutor":
             instance = ActivityExecutor(self.controller)
             instance = ActivityExecutor(self.controller)
             instance.associations = {}
             instance.associations = {}
-            instance.associations["activity_browse_button"] = Association("Button", 0, -1)
+            instance.associations["activity_browse"] = Association("A", 0, -1)
             instance.associations["model_browse_button"] = Association("Button", 0, -1)
             instance.associations["model_browse_button"] = Association("Button", 0, -1)
+            instance.associations["model_browse_entry"] = Association("Entry", 0, -1)
             instance.associations["model_browse_label"] = Association("Label", 0, -1)
             instance.associations["model_browse_label"] = Association("Label", 0, -1)
             instance.associations["browsers"] = Association("Browser", 0, -1)
             instance.associations["browsers"] = Association("Browser", 0, -1)
             instance.associations["parent"] = Association("A", 0, -1)
             instance.associations["parent"] = Association("A", 0, -1)