Browse Source

Fixed visualization of models at Mv side

Yentl Van Tendeloo 8 years ago
parent
commit
1e9b3cb54b
5 changed files with 110 additions and 5 deletions
  1. 104 0
      classes/toolbar/model_toolbar.xml
  2. 2 2
      classes/window/main_window.xml
  3. 3 3
      frontend.py
  4. BIN
      icons/verify.png
  5. 1 0
      models/render_SCD.alc

+ 104 - 0
classes/toolbar/model_toolbar.xml

@@ -0,0 +1,104 @@
+<class name="ModelToolbar">
+    <relationships>
+        <inheritance class="tk.Frame" priority="1"/>
+        <inheritance class="SCCDWidget" priority="0"/>
+        <association name="buttons" class="Button"/>
+        <association name="parent" class="A"/>
+    </relationships>
+
+    <constructor>
+        <parameter name="parent"/>
+        <super class="tk.Frame">
+            <parameter expr="parent"/>
+        </super>
+        <super class="SCCDWidget"/>
+        <body>
+            self.to_create = ["verify"]
+            self.button_info = {"verify": "Check conformance of currently loaded model.",
+                                }
+            self.buttons = {}
+        </body>
+    </constructor>
+    <destructor>
+        <body>
+            self.destroy()
+        </body>
+    </destructor>
+
+    <scxml initial="init">
+        <state id="init" initial="init_buttons">
+            <onexit>
+                <raise event="tk_widget" scope="narrow" target="'parent'">
+                    <parameter expr="self"/>
+                </raise>
+            </onexit>
+
+            <state id="init_buttons">
+                <onentry>
+                    <raise event="create_instance" scope="cd">
+                        <parameter expr="'buttons'"/>
+                        <parameter expr="'Button'"/>
+                        <parameter expr="{'parent': self, 'visual': ImageVisual('icons/%s.png' % self.to_create[0]), 'tooltip_text': self.button_info[self.to_create[0]], 'event_parameters': self.to_create[0]}"/>
+                    </raise>
+                </onentry>
+
+                <transition event="instance_created" target="../pack_button">
+                    <parameter name="association_name"/>
+                    <raise event="start_instance" scope="cd">
+                        <parameter expr="association_name"/>
+                    </raise>
+
+                    <script>
+                        self.buttons[self.to_create[0]] = association_name
+                        self.to_create.pop(0)
+                    </script>
+                </transition>
+            </state>
+
+            <state id="pack_button">
+                <transition event="tk_widget" target="../next_button">
+                    <parameter name="tk_elem"/>
+                    <script>
+                        tk_elem.pack(side=tk.LEFT)
+                    </script>
+                </transition>
+            </state>
+
+            <state id="next_button">
+                <transition cond="len(self.to_create) == 0" target="../../root"/>
+                <transition cond="len(self.to_create) > 0" target="../init_buttons"/>
+            </state>
+        </state>
+
+        <state id="root">
+            <transition event="button_pressed" cond="event_name == 'new'" target=".">
+                <parameter name="event_name"/>
+                <raise event="create_new_model" scope="narrow" target="'parent'"/>
+            </transition>
+
+            <transition event="button_pressed" cond="event_name == 'open'" target=".">
+                <parameter name="event_name"/>
+                <raise event="open_model" scope="narrow" target="'parent'"/>
+            </transition>
+
+            <transition event="close" target="../closing"/>
+        </state>
+
+        <state id="closing">
+            <onentry>
+                <raise event="delete_instance" scope="cd">
+                    <parameter expr="self.buttons.popitem()[1]"/>
+                </raise>
+            </onentry>
+
+            <transition event="instance_deleted" cond="len(self.buttons) > 0" target="../closing"/>
+            <transition event="instance_deleted" cond="len(self.buttons) == 0" target="../close"/>
+        </state>
+            
+        <state id="close">
+            <onentry>
+                <raise event="close_window" scope="narrow" target="'parent'"/>
+            </onentry>
+        </state>
+    </scxml>
+</class>

+ 2 - 2
classes/window/main_window.xml

@@ -414,7 +414,7 @@
                         </raise>
                         </raise>
                         <script>
                         <script>
                             global current_rendered_model
                             global current_rendered_model
-                            current_rendered_model = "rendered/%s%s" % (current_model, 'models/render_SCD')
+                            current_rendered_model = "rendered/%s" % (current_model)
                         </script>
                         </script>
                         <raise event="update_status" scope="narrow" target="'progress_bar'">
                         <raise event="update_status" scope="narrow" target="'progress_bar'">
                             <parameter expr="50"/>
                             <parameter expr="50"/>
@@ -446,7 +446,7 @@
                         </script>
                         </script>
                         <raise event="mv_request" scope="broad">
                         <raise event="mv_request" scope="broad">
                             <parameter expr="'alter_context'"/>
                             <parameter expr="'alter_context'"/>
-                            <parameter expr="['rendered/%s%s' % (current_model, 'models/render_SCD'), 'formalisms/MM_render']"/>
+                            <parameter expr="['rendered/%s' % (current_model), 'formalisms/MM_render']"/>
                         </raise>
                         </raise>
                     </onentry>
                     </onentry>
 
 

+ 3 - 3
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:   Thu Sep 28 10:43:28 2017
+Date:   Fri Sep 29 09:10:42 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 
@@ -4299,7 +4299,7 @@ class MainWindow(RuntimeClassBase, tk.Toplevel, SCCDWidget):
         self.contains = [i for i in self.rendered if i["type"] == "contains"]
         self.contains = [i for i in self.rendered if i["type"] == "contains"]
         self.rendered = [i for i in self.rendered if i["type"] not in ["Group", "contains"]]
         self.rendered = [i for i in self.rendered if i["type"] not in ["Group", "contains"]]
         self.rendered.reverse()
         self.rendered.reverse()
-        self.big_step.outputEventOM(Event("broad_cast", None, [self, Event("mv_request", None, ['alter_context', ['rendered/%s%s' % (current_model, 'models/render_SCD'), 'formalisms/MM_render']])]))
+        self.big_step.outputEventOM(Event("broad_cast", None, [self, Event("mv_request", None, ['alter_context', ['rendered/%s' % (current_model), 'formalisms/MM_render']])]))
     
     
     def _init_generic_toolbar_enter(self):
     def _init_generic_toolbar_enter(self):
         self.big_step.outputEventOM(Event("create_instance", None, [self, 'toolbars', 'GenericToolbar', self.toolbar_frame]))
         self.big_step.outputEventOM(Event("create_instance", None, [self, 'toolbars', 'GenericToolbar', self.toolbar_frame]))
@@ -4344,7 +4344,7 @@ class MainWindow(RuntimeClassBase, tk.Toplevel, SCCDWidget):
     def _running_rerender_model_request_render_enter(self):
     def _running_rerender_model_request_render_enter(self):
         self.big_step.outputEventOM(Event("broad_cast", None, [self, Event("mv_request", None, ['model_render', [current_model, 'models/render_SCD']])]))
         self.big_step.outputEventOM(Event("broad_cast", None, [self, Event("mv_request", None, ['model_render', [current_model, 'models/render_SCD']])]))
         global current_rendered_model
         global current_rendered_model
-        current_rendered_model = "rendered/%s%s" % (current_model, 'models/render_SCD')
+        current_rendered_model = "rendered/%s" % (current_model)
         self.big_step.outputEventOM(Event("narrow_cast", None, [self, 'progress_bar', Event("update_status", None, [50, 'Perceptualizing model...'])]))
         self.big_step.outputEventOM(Event("narrow_cast", None, [self, 'progress_bar', Event("update_status", None, [50, 'Perceptualizing model...'])]))
     
     
     def _close_enter(self):
     def _close_enter(self):

BIN
icons/verify.png


+ 1 - 0
models/render_SCD.alc

@@ -152,6 +152,7 @@ Boolean function main(model : Element):
 		instantiate_attribute(model, elem, "lineColour", "black")
 		instantiate_attribute(model, elem, "lineColour", "black")
 		instantiate_attribute(model, elem, "arrow", True)
 		instantiate_attribute(model, elem, "arrow", True)
 		instantiate_attribute(model, elem, "__asid", list_read(string_split(class, "/"), 1))
 		instantiate_attribute(model, elem, "__asid", list_read(string_split(class, "/"), 1))
+		log("Found ASID " + cast_v2s(list_read(string_split(class, "/"), 1)))
 		instantiate_link(model, "rendered/contains", "", group, elem)
 		instantiate_link(model, "rendered/contains", "", group, elem)
 
 
 	return True!
 	return True!