editors/Viewer.py
changeset 1130 f96e0254f0ce
parent 1123 55ed55ef7aea
child 1133 d81d99fd1932
equal deleted inserted replaced
1129:189b49723f9f 1130:f96e0254f0ce
  1240             connectors = element.GetConnectors()
  1240             connectors = element.GetConnectors()
  1241         element.SetPosition(instance["x"], instance["y"])
  1241         element.SetPosition(instance["x"], instance["y"])
  1242         element.SetSize(instance["width"], instance["height"])
  1242         element.SetSize(instance["width"], instance["height"])
  1243         for i, output_connector in enumerate(instance["outputs"]):
  1243         for i, output_connector in enumerate(instance["outputs"]):
  1244             if i < len(connectors["outputs"]):
  1244             if i < len(connectors["outputs"]):
  1245                 connector = connectors["outputs"][i]
  1245                 if isinstance(element, FBD_Block):
       
  1246                     connector = element.GetConnector(
       
  1247                         wx.Point(*output_connector["position"]),
       
  1248                         output_name = output_connector["name"])
       
  1249                 else:
       
  1250                     connector = connectors["outputs"][i]
  1246                 if output_connector.get("negated", False):
  1251                 if output_connector.get("negated", False):
  1247                     connector.SetNegated(True)
  1252                     connector.SetNegated(True)
  1248                 if output_connector.get("edge", "none") != "none":
  1253                 if output_connector.get("edge", "none") != "none":
  1249                     connector.SetEdge(output_connector["edge"])
  1254                     connector.SetEdge(output_connector["edge"])
  1250                 connector.SetPosition(wx.Point(*output_connector["position"]))
  1255                 if connectors["outputs"].index(connector) == i:
       
  1256                     connector.SetPosition(wx.Point(*output_connector["position"]))
  1251         for i, input_connector in enumerate(instance["inputs"]):
  1257         for i, input_connector in enumerate(instance["inputs"]):
  1252             if i < len(connectors["inputs"]):
  1258             if i < len(connectors["inputs"]):
  1253                 connector = connectors["inputs"][i]
  1259                 if isinstance(element, FBD_Block):
  1254                 connector.SetPosition(wx.Point(*input_connector["position"]))
  1260                     connector = element.GetConnector(
       
  1261                         wx.Point(*input_connector["position"]),
       
  1262                         input_name = input_connector["name"])
       
  1263                 else:
       
  1264                     connector = connectors["inputs"][i]
       
  1265                 if connectors["inputs"].index(connector) == i:
       
  1266                     connector.SetPosition(wx.Point(*input_connector["position"]))
  1255                 if input_connector.get("negated", False):
  1267                 if input_connector.get("negated", False):
  1256                     connector.SetNegated(True)
  1268                     connector.SetNegated(True)
  1257                 if input_connector.get("edge", "none") != "none":
  1269                 if input_connector.get("edge", "none") != "none":
  1258                     connector.SetEdge(input_connector["edge"])
  1270                     connector.SetEdge(input_connector["edge"])
  1259                 self.CreateWires(connector, instance["id"], input_connector["links"], ids, selection)
  1271                 self.CreateWires(connector, instance["id"], input_connector["links"], ids, selection)
       
  1272         element.RefreshConnectors()
  1260         if selection is not None and selection[0].get(instance["id"], False):
  1273         if selection is not None and selection[0].get(instance["id"], False):
  1261             self.SelectInGroup(element)
  1274             self.SelectInGroup(element)
  1262 
  1275 
  1263     def CreateWires(self, start_connector, id, links, ids, selection=None):
  1276     def CreateWires(self, start_connector, id, links, ids, selection=None):
  1264         for link in links:
  1277         for link in links:
  1277                         wire.SetPoints(points)
  1290                         wire.SetPoints(points)
  1278                         start_connector.Connect((wire, 0), False)
  1291                         start_connector.Connect((wire, 0), False)
  1279                         end_connector.Connect((wire, -1), False)
  1292                         end_connector.Connect((wire, -1), False)
  1280                         wire.ConnectStartPoint(None, start_connector)
  1293                         wire.ConnectStartPoint(None, start_connector)
  1281                         wire.ConnectEndPoint(None, end_connector)
  1294                         wire.ConnectEndPoint(None, end_connector)
       
  1295                         connected.RefreshConnectors()
  1282                         self.AddWire(wire)
  1296                         self.AddWire(wire)
  1283                         if selection is not None and (\
  1297                         if selection is not None and (\
  1284                            selection[1].get((id, refLocalId), False) or \
  1298                            selection[1].get((id, refLocalId), False) or \
  1285                            selection[1].get((refLocalId, id), False)):
  1299                            selection[1].get((refLocalId, id), False)):
  1286                             self.SelectInGroup(wire)
  1300                             self.SelectInGroup(wire)
  1287 
  1301                         
  1288     def IsOfType(self, type, reference):
  1302     def IsOfType(self, type, reference):
  1289         return self.Controler.IsOfType(type, reference, self.Debug)
  1303         return self.Controler.IsOfType(type, reference, self.Debug)
  1290     
  1304     
  1291     def IsEndType(self, type):
  1305     def IsEndType(self, type):
  1292         return self.Controler.IsEndType(type)
  1306         return self.Controler.IsEndType(type)