X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;f=net.mograsim.logic.ui%2Fsrc%2Fnet%2Fmograsim%2Flogic%2Fui%2Fmodeladapter%2Fcomponentadapters%2FSimpleGateAdapter.java;h=0460906d2f88e6c7bb804aaa779187825c7c6ade;hb=69cb6725ef670328959d55649257ded6ac924b33;hp=1902d626a3ef05fc4ad5923838c39ab910702a3d;hpb=07faf07e3acb8b2afdc2bf65a46bc868faaed0f8;p=Mograsim.git diff --git a/net.mograsim.logic.ui/src/net/mograsim/logic/ui/modeladapter/componentadapters/SimpleGateAdapter.java b/net.mograsim.logic.ui/src/net/mograsim/logic/ui/modeladapter/componentadapters/SimpleGateAdapter.java index 1902d626..0460906d 100644 --- a/net.mograsim.logic.ui/src/net/mograsim/logic/ui/modeladapter/componentadapters/SimpleGateAdapter.java +++ b/net.mograsim.logic.ui/src/net/mograsim/logic/ui/modeladapter/componentadapters/SimpleGateAdapter.java @@ -1,16 +1,15 @@ package net.mograsim.logic.ui.modeladapter.componentadapters; -import java.util.List; import java.util.Map; -import net.mograsim.logic.ui.model.components.SimpleRectangularGUIGate; -import net.mograsim.logic.ui.model.wires.Pin; -import net.mograsim.logic.ui.modeladapter.LogicModelParameters; import net.mograsim.logic.core.components.Component; import net.mograsim.logic.core.timeline.Timeline; import net.mograsim.logic.core.wires.Wire; import net.mograsim.logic.core.wires.Wire.ReadEnd; import net.mograsim.logic.core.wires.Wire.ReadWriteEnd; +import net.mograsim.logic.ui.model.components.atomic.SimpleRectangularGUIGate; +import net.mograsim.logic.ui.model.wires.Pin; +import net.mograsim.logic.ui.modeladapter.LogicModelParameters; public class SimpleGateAdapter implements ComponentAdapter { @@ -30,14 +29,17 @@ public class SimpleGateAdapter implements Co } @Override - public Component createAndLinkComponent(Timeline timeline, LogicModelParameters params, G guiComponent, Map logicWiresPerPin) + public void createAndLinkComponent(Timeline timeline, LogicModelParameters params, G guiComponent, Map logicWiresPerPin) { - ReadWriteEnd out = logicWiresPerPin.get(guiComponent.getOutputPin()).createReadWriteEnd(); - List inputPins = guiComponent.getInputPins(); - ReadEnd[] ins = new ReadEnd[inputPins.size()]; - for (int i = 0; i < inputPins.size(); i++) - ins[i] = logicWiresPerPin.get(inputPins.get(i)).createReadOnlyEnd(); - return constructor.newComponent(timeline, params.gateProcessTime, out, ins); + ReadWriteEnd out = logicWiresPerPin.get(guiComponent.getPin("Y")).createReadWriteEnd(); + + // TODO can we do this prettier? + int inputPinCount = guiComponent.getPins().size() - 1; + ReadEnd[] ins = new ReadEnd[inputPinCount]; + for (int i = 0; i < inputPinCount; i++) + ins[i] = logicWiresPerPin.get(guiComponent.getPin(String.valueOf((char) ('A' + i)))).createReadOnlyEnd(); + + constructor.newComponent(timeline, params.gateProcessTime, out, ins); } public static interface ComponentConstructor