X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;f=net.mograsim.logic.model%2Fsrc%2Fnet%2Fmograsim%2Flogic%2Fmodel%2Fmodeladapter%2FViewLogicModelAdapter.java;fp=net.mograsim.logic.model%2Fsrc%2Fnet%2Fmograsim%2Flogic%2Fmodel%2Fmodeladapter%2FViewLogicModelAdapter.java;h=17dc22f411e90198632e614b82cd2ee66581a845;hb=662eb9515b9fcbccc4997f50fecfb597ee8eb316;hp=f41c407f08f7495268799c61bac93a13b2300832;hpb=e3d7905ec00f7515817ab9921724fd0eb51f79e7;p=Mograsim.git diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/modeladapter/ViewLogicModelAdapter.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/modeladapter/ViewLogicModelAdapter.java index f41c407f..17dc22f4 100644 --- a/net.mograsim.logic.model/src/net/mograsim/logic/model/modeladapter/ViewLogicModelAdapter.java +++ b/net.mograsim.logic.model/src/net/mograsim/logic/model/modeladapter/ViewLogicModelAdapter.java @@ -61,7 +61,7 @@ public class ViewLogicModelAdapter WireCrossPoint guiCompCasted = (WireCrossPoint) guiComp; guiCompCasted.setLogicModelBinding(logicWiresPerPin.get(guiCompCasted.getPin()).createReadOnlyEnd()); } else if (!(guiComp instanceof SubmodelInterface))// nothing to do for SubmodelInterfaces - createAndLinkComponent(timeline, params, guiComp, logicWiresPerPinUnmodifiable, componentAdapters.get(guiComp.getClass())); + createAndLinkComponent(timeline, params, guiComp, logicWiresPerPinUnmodifiable); } } @@ -144,8 +144,15 @@ public class ViewLogicModelAdapter @SuppressWarnings("unchecked") private static void createAndLinkComponent(Timeline timeline, LogicModelParameters params, - GUIComponent guiComponent, Map logicWiresPerPin, ComponentAdapter adapter) + GUIComponent guiComponent, Map logicWiresPerPin) { + Class cls = guiComponent.getClass(); + ComponentAdapter adapter = null; + while (cls != GUIComponent.class && adapter == null) + { + adapter = (ComponentAdapter) componentAdapters.get(cls); + cls = cls.getSuperclass(); + } if (adapter == null) throw new IllegalArgumentException("Unknown component class: " + guiComponent.getClass()); adapter.createAndLinkComponent(timeline, params, (G) guiComponent, logicWiresPerPin);