Bladeren bron

Fixed remove of element that was previously linked

Yentl Van Tendeloo 8 jaren geleden
bovenliggende
commit
381c66c579
4 gewijzigde bestanden met toevoegingen van 18 en 12 verwijderingen
  1. 1 0
      classes/canvas/canvas.xml
  2. 0 1
      classes/canvas/canvas_element.xml
  3. 3 1
      classes/canvas/connecting_line.xml
  4. 14 10
      frontend.py

+ 1 - 0
classes/canvas/canvas.xml

@@ -146,6 +146,7 @@
                         <parameter name="group_element"/>
                         <script>
                             del self.group_location[group_element]
+                            print("Remove group_location " + str(group_element))
                         </script>
                         <raise event="deleted_element" scope="narrow" target="'connecting_lines'">
                             <parameter expr="group_element"/>

+ 0 - 1
classes/canvas/canvas_element.xml

@@ -2,7 +2,6 @@
     <relationships>
         <association name="parent" class="A" min="1" max="1" />
         <inheritance class="SCCDWidget" priority='0'/>
-        <association name="elements" class="CanvasElement"/>
         <association name="prompt" class="PromptWindow"/>
     </relationships>
     <constructor>

+ 3 - 1
classes/canvas/connecting_line.xml

@@ -126,7 +126,7 @@
                 </raise>
             </transition>
 
-            <transition event="deleted_element" cond="element == self.cs_element['__source'] or element == self.cs_element['__target']" target=".">
+            <transition event="deleted_element" cond="element == self.cs_element['__source'] or element == self.cs_element['__target']" target="../deleted">
                 <parameter name="element"/>
                 <script>
                     for f in self.elements:
@@ -138,6 +138,8 @@
                 </raise>
             </transition>
         </state>
+        
+        <state id="deleted"/>
 
         <state id="remove_element">
             <onentry>

+ 14 - 10
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:   Wed Oct 11 17:50:22 2017
+Date:   Wed Oct 11 19:26:54 2017
 
 Model author: Yentl Van Tendeloo
 Model name:   Modelverse Visual Editor - Tkinter Version 
@@ -8010,6 +8010,7 @@ class Canvas(RuntimeClassBase, tk.Canvas, SCCDWidget):
     def _ready_process_events_ready_9_exec(self, parameters):
         group_element = parameters[0]
         del self.group_location[group_element]
+        print("Remove group_location " + str(group_element))
         self.big_step.outputEventOM(Event("narrow_cast", None, [self, 'connecting_lines', Event("deleted_element", None, [group_element])]))
     
     def _ready_process_events_creating_line_drawing_0_exec(self, parameters):
@@ -8188,34 +8189,38 @@ class ConnectingLine(RuntimeClassBase, SCCDWidget):
         # state /main
         self.states["/main"] = State(2, "/main", self)
         
+        # state /deleted
+        self.states["/deleted"] = State(3, "/deleted", self)
+        
         # state /remove_element
-        self.states["/remove_element"] = State(3, "/remove_element", self)
+        self.states["/remove_element"] = State(4, "/remove_element", self)
         self.states["/remove_element"].setEnter(self._remove_element_enter)
         
         # state /update_attrs
-        self.states["/update_attrs"] = State(4, "/update_attrs", self)
+        self.states["/update_attrs"] = State(5, "/update_attrs", self)
         
         # state /update_attrs/query
-        self.states["/update_attrs/query"] = State(5, "/update_attrs/query", self)
+        self.states["/update_attrs/query"] = State(6, "/update_attrs/query", self)
         self.states["/update_attrs/query"].setEnter(self._update_attrs_query_enter)
         
         # state /update_attrs/prompt
-        self.states["/update_attrs/prompt"] = State(6, "/update_attrs/prompt", self)
+        self.states["/update_attrs/prompt"] = State(7, "/update_attrs/prompt", self)
         self.states["/update_attrs/prompt"].setEnter(self._update_attrs_prompt_enter)
         
         # state /update_attrs/wait_for_results
-        self.states["/update_attrs/wait_for_results"] = State(7, "/update_attrs/wait_for_results", self)
+        self.states["/update_attrs/wait_for_results"] = State(8, "/update_attrs/wait_for_results", self)
         
         # state /update_attrs/process_results
-        self.states["/update_attrs/process_results"] = State(8, "/update_attrs/process_results", self)
+        self.states["/update_attrs/process_results"] = State(9, "/update_attrs/process_results", self)
         
         # state /update_attrs/mark_dirty
-        self.states["/update_attrs/mark_dirty"] = State(9, "/update_attrs/mark_dirty", self)
+        self.states["/update_attrs/mark_dirty"] = State(10, "/update_attrs/mark_dirty", self)
         self.states["/update_attrs/mark_dirty"].setEnter(self._update_attrs_mark_dirty_enter)
         
         # add children
         self.states[""].addChild(self.states["/init"])
         self.states[""].addChild(self.states["/main"])
+        self.states[""].addChild(self.states["/deleted"])
         self.states[""].addChild(self.states["/remove_element"])
         self.states[""].addChild(self.states["/update_attrs"])
         self.states["/update_attrs"].addChild(self.states["/update_attrs/query"])
@@ -8258,7 +8263,7 @@ class ConnectingLine(RuntimeClassBase, SCCDWidget):
         _main_4.setTrigger(Event("moved_element", None))
         _main_4.setGuard(self._main_4_guard)
         self.states["/main"].addTransition(_main_4)
-        _main_5 = Transition(self, self.states["/main"], [self.states["/main"]])
+        _main_5 = Transition(self, self.states["/main"], [self.states["/deleted"]])
         _main_5.setAction(self._main_5_exec)
         _main_5.setTrigger(Event("deleted_element", None))
         _main_5.setGuard(self._main_5_guard)
@@ -9025,7 +9030,6 @@ class ObjectManager(ObjectManagerBase):
             instance = CanvasElement(self.controller, construct_params[0], construct_params[1], construct_params[2], construct_params[3])
             instance.associations = {}
             instance.associations["parent"] = Association("A", 1, 1)
-            instance.associations["elements"] = Association("CanvasElement", 0, -1)
             instance.associations["prompt"] = Association("PromptWindow", 0, -1)
         else:
             raise Exception("Cannot instantiate class " + class_name)