X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=LogicUI%2Fsrc%2Fera%2Fmi%2Fgui%2Fmodeladapter%2Fcomponentadapters%2FAndGateAdapter.java;fp=LogicUI%2Fsrc%2Fera%2Fmi%2Fgui%2Fmodeladapter%2Fcomponentadapters%2FAndGateAdapter.java;h=3b34d9000257b16d46a4e871472410ed8811d0ec;hb=e9b72fcd41c45807f9e126cae897c9b17e79961d;hp=0000000000000000000000000000000000000000;hpb=73c2a2608cc57cbe1ddb8e99a944fd18216ffd34;p=Mograsim.git diff --git a/LogicUI/src/era/mi/gui/modeladapter/componentadapters/AndGateAdapter.java b/LogicUI/src/era/mi/gui/modeladapter/componentadapters/AndGateAdapter.java new file mode 100644 index 00000000..3b34d900 --- /dev/null +++ b/LogicUI/src/era/mi/gui/modeladapter/componentadapters/AndGateAdapter.java @@ -0,0 +1,29 @@ +package era.mi.gui.modeladapter.componentadapters; + +import java.util.List; +import java.util.Map; + +import era.mi.gui.model.components.GUIAndGate; +import era.mi.gui.model.wires.Pin; +import era.mi.gui.modeladapter.LogicModelParameters; +import era.mi.logic.components.Component; +import era.mi.logic.components.gates.AndGate; +import era.mi.logic.timeline.Timeline; +import era.mi.logic.wires.Wire; +import era.mi.logic.wires.Wire.ReadEnd; +import era.mi.logic.wires.Wire.ReadWriteEnd; + +public class AndGateAdapter implements ComponentAdapter +{ + @Override + public Component createAndLinkComponent(Timeline timeline, LogicModelParameters params, GUIAndGate 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 new AndGate(timeline, params.gateProcessTime, out, ins); + } +} \ No newline at end of file