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) |