1239 self.AddBlock(element) |
1239 self.AddBlock(element) |
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 isinstance(element, FBD_Block): |
1245 if isinstance(element, FBD_Block): |
1245 connector = element.GetConnector( |
1246 connector = element.GetConnector( |
1246 wx.Point(*output_connector["position"]), |
1247 wx.Point(*output_connector["position"]), |
1247 output_name = output_connector["name"]) |
1248 output_name = output_connector["name"]) |
1248 elif i < len(connectors["outputs"]): |
1249 else: |
1249 connector = connectors["outputs"][i] |
1250 connector = connectors["outputs"][i] |
1250 else: |
1251 if connector is not None: |
1251 connector = None |
1252 if output_connector.get("negated", False): |
1252 if connector is not None: |
1253 connector.SetNegated(True) |
1253 if output_connector.get("negated", False): |
1254 if output_connector.get("edge", "none") != "none": |
1254 connector.SetNegated(True) |
1255 connector.SetEdge(output_connector["edge"]) |
1255 if output_connector.get("edge", "none") != "none": |
1256 if connectors["outputs"].index(connector) == i: |
1256 connector.SetEdge(output_connector["edge"]) |
1257 connector.SetPosition(wx.Point(*output_connector["position"])) |
1257 if connectors["outputs"].index(connector) == i: |
|
1258 connector.SetPosition(wx.Point(*output_connector["position"])) |
1258 for i, input_connector in enumerate(instance["inputs"]): |
1259 for i, input_connector in enumerate(instance["inputs"]): |
1259 if i < len(connectors["inputs"]): |
1260 if isinstance(element, FBD_Block): |
1260 if isinstance(element, FBD_Block): |
1261 connector = element.GetConnector( |
1261 connector = element.GetConnector( |
1262 wx.Point(*input_connector["position"]), |
1262 wx.Point(*input_connector["position"]), |
1263 input_name = input_connector["name"]) |
1263 input_name = input_connector["name"]) |
1264 elif i < len(connectors["inputs"]): |
1264 else: |
1265 connector = connectors["inputs"][i] |
1265 connector = connectors["inputs"][i] |
1266 else: |
1266 if connector is not None: |
1267 connector = None |
1267 if connectors["inputs"].index(connector) == i: |
1268 if connector is not None: |
1268 connector.SetPosition(wx.Point(*input_connector["position"])) |
1269 if connectors["inputs"].index(connector) == i: |
1269 if input_connector.get("negated", False): |
1270 connector.SetPosition(wx.Point(*input_connector["position"])) |
1270 connector.SetNegated(True) |
1271 if input_connector.get("negated", False): |
1271 if input_connector.get("edge", "none") != "none": |
1272 connector.SetNegated(True) |
1272 connector.SetEdge(input_connector["edge"]) |
1273 if input_connector.get("edge", "none") != "none": |
1273 if not self.CreateWires(connector, instance["id"], input_connector["links"], ids, selection): |
1274 connector.SetEdge(input_connector["edge"]) |
1274 element.RefreshModel() |
1275 if not self.CreateWires(connector, instance["id"], input_connector["links"], ids, selection): |
|
1276 element.RefreshModel() |
1275 element.RefreshConnectors() |
1277 element.RefreshConnectors() |
1276 if selection is not None and selection[0].get(instance["id"], False): |
1278 if selection is not None and selection[0].get(instance["id"], False): |
1277 self.SelectInGroup(element) |
1279 self.SelectInGroup(element) |
1278 |
1280 |
1279 def CreateWires(self, start_connector, id, links, ids, selection=None): |
1281 def CreateWires(self, start_connector, id, links, ids, selection=None): |