- if (!(guiComp instanceof WireCrossPoint))
- oneToOneComponents.put(guiComp, createAndLinkComponent(timeline, params, guiComp, logicWiresPerPinUnmodifiable,
- componentAdapters.get(guiComp.getClass())));
- else
+ if (guiComp instanceof SubmodelComponent)
+ {
+ SubmodelComponent guiCompCasted = (SubmodelComponent) guiComp;
+ Map<Pin, Pin> supermodelPinsPerSubmodelPin = guiCompCasted.getSupermodelPinsPerSubmodelPin();
+ Map<Pin, Wire> externalWiresForSubmodel = supermodelPinsPerSubmodelPin.entrySet().stream()
+ .collect(Collectors.toMap(Entry::getKey, e -> logicWiresPerPin.get(e.getValue())));
+ convert(guiCompCasted.submodel, params, timeline, externalWiresForSubmodel);
+ } else if (guiComp instanceof WireCrossPoint)