X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;f=net.mograsim.logic.ui%2Fsrc%2Fnet%2Fmograsim%2Flogic%2Fui%2Fmodel%2Fcomponents%2FSimpleRectangularSubmodelComponent.java;h=44b402d3acb9fc561eb1545eb3b8c7e898458908;hb=a93901091c018edc992828e3a23817e97a98e4ca;hp=89a55f01101a3a4bb098d945f0a5605ed1f7090a;hpb=f05390137e98cbbffbbeccb8ed296fdfeeb222b0;p=Mograsim.git diff --git a/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/SimpleRectangularSubmodelComponent.java b/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/SimpleRectangularSubmodelComponent.java index 89a55f01..44b402d3 100644 --- a/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/SimpleRectangularSubmodelComponent.java +++ b/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/SimpleRectangularSubmodelComponent.java @@ -3,6 +3,8 @@ package net.mograsim.logic.ui.model.components; import java.util.ArrayList; import java.util.Collections; import java.util.List; +import java.util.Map; +import java.util.TreeMap; import net.haspamelodica.swt.helper.gcs.GeneralGC; import net.haspamelodica.swt.helper.swtobjectwrappers.Font; @@ -13,6 +15,8 @@ import net.mograsim.logic.ui.model.wires.Pin; public class SimpleRectangularSubmodelComponent extends SubmodelComponent { + public static String kLabel = "label", kInCount = "input_count", kOutCount = "output_count", kLogicWidth = "logic_width"; + private static final double width = 35; private static final double pinDistance = 10; private static final double fontHeight = 5; @@ -58,7 +62,8 @@ public class SimpleRectangularSubmodelComponent extends SubmodelComponent else if (oldInputCount < inputCount) for (int i = oldInputCount; i < inputCount; i++) { - Pin submodelPin = addSubmodelInterface(logicWidth, 0, pinDistance / 2 + i * pinDistance); + // TODO pin names + Pin submodelPin = addSubmodelInterface("Input pin #" + i, logicWidth, 0, pinDistance / 2 + i * pinDistance); inputSubmodelPins.add(submodelPin); inputSupermodelPins.add(getSupermodelPin(submodelPin)); } @@ -77,7 +82,8 @@ public class SimpleRectangularSubmodelComponent extends SubmodelComponent else if (oldOutputCount < outputCount) for (int i = oldOutputCount; i < outputCount; i++) { - Pin submodelPin = addSubmodelInterface(logicWidth, width, pinDistance / 2 + i * pinDistance); + // TODO pin names + Pin submodelPin = addSubmodelInterface("Output pin #" + i, logicWidth, width, pinDistance / 2 + i * pinDistance); outputSubmodelPins.add(submodelPin); outputSupermodelPins.add(getSupermodelPin(submodelPin)); } @@ -115,6 +121,7 @@ public class SimpleRectangularSubmodelComponent extends SubmodelComponent Point textExtent = gc.textExtent(label); gc.drawText(label, posX + (getBounds().width - textExtent.x) / 2, posY + (getBounds().height - textExtent.y) / 2, true); gc.setFont(oldFont); + // TODO draw pin names } @Override @@ -122,4 +129,18 @@ public class SimpleRectangularSubmodelComponent extends SubmodelComponent { gc.drawRectangle(getBounds()); } + + @Override + public SubmodelComponentParams calculateParams() + { + SubmodelComponentParams ret = super.calculateParams(); + ret.type = SimpleRectangularSubmodelComponent.class.getSimpleName(); + Map m = new TreeMap<>(); + m.put(kLabel, label); + m.put(kInCount, inputSupermodelPins.size()); + m.put(kOutCount, outputSupermodelPins.size()); + m.put(kLogicWidth, logicWidth); + ret.specialized = m; + return ret; + } } \ No newline at end of file