PLCControler.py
changeset 63 04a02b4b2a57
parent 62 1908c45f21ef
child 67 3a1b0afdaf84
--- a/PLCControler.py	Fri Aug 03 18:02:54 2007 +0200
+++ b/PLCControler.py	Tue Aug 07 17:37:38 2007 +0200
@@ -1300,7 +1300,6 @@
                 infos["type"] = "transition"
                 condition = instance.getConditionContent()
                 infos["condition_type"] = condition["type"]
-                infos["condition"] = condition["value"]
                 infos["connectors"] = {"input":{},"output":{}}
                 infos["connectors"]["input"]["position"] = instance.connectionPointIn.getRelPosition()
                 infos["connectors"]["input"]["links"] = []
@@ -1310,6 +1309,18 @@
                         dic = {"refLocalId":link.getRefLocalId(),"points":link.getPoints(),"formalParameter":link.getFormalParameter()}
                         infos["connectors"]["input"]["links"].append(dic)
                 infos["connectors"]["output"]["position"] = instance.connectionPointOut.getRelPosition()
+                if infos["condition_type"] == "connection":
+                    infos["connectors"]["connection"] = {}
+                    infos["connectors"]["connection"]["links"] = []
+                    connections = instance.getConnections()
+                    print connections
+                    if connections:
+                        for link in connections:
+                            dic = {"refLocalId":link.getRefLocalId(),"points":link.getPoints(),"formalParameter":link.getFormalParameter()}
+                            infos["connectors"]["connection"]["links"].append(dic)
+                    infos["condition"] = None
+                else:
+                    infos["condition"] = condition["value"]
             elif isinstance(instance, (plcopen.selectionDivergence, plcopen.simultaneousDivergence)):
                 if isinstance(instance, plcopen.selectionDivergence):
                     infos["type"] = "selectionDivergence"
@@ -1743,7 +1754,7 @@
     def SetCurrentElementEditingTransitionInfos(self, id, infos):
         transition = self.GetCurrentElementEditing().getInstance(id)
         for param, value in infos.items():
-            if param == "type" and "condition" in infos:
+            if param == "type" and infos.get("condition", None):
                 transition.setConditionContent(value, infos["condition"])
             elif param == "height":
                 transition.setHeight(value)
@@ -1763,6 +1774,9 @@
                 position = output_connector.GetRelPosition()
                 transition.addConnectionPointOut()
                 transition.connectionPointOut.setRelPosition(position.x, position.y)
+                if infos.get("type", None) == "connection":
+                    connection_connector = value["connection"]
+                    self.SetConnectionWires(transition, connection_connector)
     
     def AddCurrentElementEditingDivergence(self, id, type):
         if type == SELECTION_DIVERGENCE: