X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;f=net.mograsim.logic.ui%2Fsrc%2Fnet%2Fmograsim%2Flogic%2Fui%2Fmodeladapter%2FViewLogicModelAdapter.java;h=5a5ff65899c6a0f7e16a8c4a72bedf9524e187b4;hb=996ddc75e1cbf99b266976b1c5827db75cc902be;hp=80c2898a6164e20252fe462a60a95629506d1451;hpb=95d72ebf4ebc8b9aca649d3e604709fa9daaca24;p=Mograsim.git diff --git a/net.mograsim.logic.ui/src/net/mograsim/logic/ui/modeladapter/ViewLogicModelAdapter.java b/net.mograsim.logic.ui/src/net/mograsim/logic/ui/modeladapter/ViewLogicModelAdapter.java index 80c2898a..5a5ff658 100644 --- a/net.mograsim.logic.ui/src/net/mograsim/logic/ui/modeladapter/ViewLogicModelAdapter.java +++ b/net.mograsim.logic.ui/src/net/mograsim/logic/ui/modeladapter/ViewLogicModelAdapter.java @@ -10,7 +10,6 @@ import java.util.Set; import java.util.function.Function; import java.util.stream.Collectors; -import net.mograsim.logic.core.components.Component; import net.mograsim.logic.core.components.gates.AndGate; import net.mograsim.logic.core.components.gates.NotGate; import net.mograsim.logic.core.components.gates.OrGate; @@ -27,7 +26,7 @@ import net.mograsim.logic.ui.model.components.SubmodelInterface; import net.mograsim.logic.ui.model.wires.GUIWire; import net.mograsim.logic.ui.model.wires.Pin; import net.mograsim.logic.ui.model.wires.WireCrossPoint; -import net.mograsim.logic.ui.modeladapter.componentadapters.Am2901NANDBasedAdapter; +import net.mograsim.logic.ui.modeladapter.componentadapters.AtomicAm2901NANDBasedAdapter; import net.mograsim.logic.ui.modeladapter.componentadapters.BitDisplayAdapter; import net.mograsim.logic.ui.modeladapter.componentadapters.ComponentAdapter; import net.mograsim.logic.ui.modeladapter.componentadapters.ManualSwitchAdapter; @@ -44,7 +43,7 @@ public class ViewLogicModelAdapter componentAdaptersModifiable.add(new SimpleGateAdapter<>(GUINotGate.class, (t, p, o, i) -> new NotGate(t, p, i[0], o))); componentAdaptersModifiable.add(new ManualSwitchAdapter()); componentAdaptersModifiable.add(new BitDisplayAdapter()); - componentAdaptersModifiable.add(new Am2901NANDBasedAdapter()); + componentAdaptersModifiable.add(new AtomicAm2901NANDBasedAdapter()); // TODO list all adapters here componentAdapters = Collections.unmodifiableMap( componentAdaptersModifiable.stream().collect(Collectors.toMap(ComponentAdapter::getSupportedClass, Function.identity()))); @@ -115,7 +114,7 @@ public class ViewLogicModelAdapter else throw new IllegalArgumentException("Two pins to external wires can't be connected directly"); } - return new Wire(timeline, e.getKey().logicWidth, params.wireTravelTime); + return externalWire == null ? new Wire(timeline, e.getKey().logicWidth, params.wireTravelTime) : externalWire; })); return logicWiresPerPin; } @@ -157,12 +156,12 @@ public class ViewLogicModelAdapter } @SuppressWarnings("unchecked") - private static Component createAndLinkComponent(Timeline timeline, LogicModelParameters params, + private static void createAndLinkComponent(Timeline timeline, LogicModelParameters params, GUIComponent guiComponent, Map logicWiresPerPin, ComponentAdapter adapter) { if (adapter == null) throw new IllegalArgumentException("Unknown component class: " + guiComponent.getClass()); - return adapter.createAndLinkComponent(timeline, params, (G) guiComponent, logicWiresPerPin); + adapter.createAndLinkComponent(timeline, params, (G) guiComponent, logicWiresPerPin); } private ViewLogicModelAdapter()