X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;f=plugins%2Fnet.mograsim.logic.model%2Fsrc%2Fnet%2Fmograsim%2Flogic%2Fmodel%2Fmodel%2Fwires%2FModelWire.java;h=813f06dd4bb01a2116d69d597e6ed175baec4098;hb=590c4809a069b0d30529735bf58f0db5382f8a88;hp=1f44f5702b2aeb2b7c9159c52b97549a85d96655;hpb=58babf45ae7d259a296656451d796dbe601377a4;p=Mograsim.git diff --git a/plugins/net.mograsim.logic.model/src/net/mograsim/logic/model/model/wires/ModelWire.java b/plugins/net.mograsim.logic.model/src/net/mograsim/logic/model/model/wires/ModelWire.java index 1f44f570..813f06dd 100644 --- a/plugins/net.mograsim.logic.model/src/net/mograsim/logic/model/model/wires/ModelWire.java +++ b/plugins/net.mograsim.logic.model/src/net/mograsim/logic/model/model/wires/ModelWire.java @@ -1,5 +1,9 @@ package net.mograsim.logic.model.model.wires; +import static net.mograsim.logic.model.preferences.RenderPreferences.DEFAULT_LINE_WIDTH; +import static net.mograsim.logic.model.preferences.RenderPreferences.WIRE_WIDTH_MULTIBIT; +import static net.mograsim.logic.model.preferences.RenderPreferences.WIRE_WIDTH_SINGLEBIT; + import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -12,13 +16,13 @@ import net.haspamelodica.swt.helper.swtobjectwrappers.Point; import net.haspamelodica.swt.helper.swtobjectwrappers.Rectangle; import net.mograsim.logic.core.LogicObserver; import net.mograsim.logic.core.types.BitVector; -import net.mograsim.logic.core.types.BitVectorFormatter; import net.mograsim.logic.core.wires.CoreWire; import net.mograsim.logic.core.wires.CoreWire.ReadEnd; +import net.mograsim.logic.model.BitVectorFormatter; import net.mograsim.logic.model.model.LogicModelModifiable; +import net.mograsim.logic.model.preferences.RenderPreferences; import net.mograsim.preferences.ColorDefinition; import net.mograsim.preferences.ColorManager; -import net.mograsim.preferences.Preferences; /** * A wire connecting exactly two {@link Pin}s. @@ -363,15 +367,14 @@ public class ModelWire * * @author Daniel Kirschten */ - public void render(GeneralGC gc) + public void render(GeneralGC gc, RenderPreferences renderPrefs) { - ColorDefinition wireColor = BitVectorFormatter.formatAsColor(end); + ColorDefinition wireColor = BitVectorFormatter.formatAsColor(renderPrefs, end); if (wireColor != null) gc.setForeground(ColorManager.current().toColor(wireColor)); - gc.setLineWidth( - Preferences.current().getDouble("net.mograsim.logic.model.linewidth.wire." + (logicWidth == 1 ? "singlebit" : "multibit"))); + gc.setLineWidth(renderPrefs.getDouble(logicWidth == 1 ? WIRE_WIDTH_SINGLEBIT : WIRE_WIDTH_MULTIBIT)); gc.drawPolyline(effectivePath); - gc.setLineWidth(Preferences.current().getDouble("net.mograsim.logic.model.linewidth.default")); + gc.setLineWidth(renderPrefs.getDouble(DEFAULT_LINE_WIDTH)); } // operations concerning the path @@ -513,6 +516,28 @@ public class ModelWire return end.getValues(); } + /** + * Registers the given {@link LogicObserver} for the {@link ReadEnd} this {@link ModelWire} is bound to. + * + * @see ReadEnd#registerObserver(LogicObserver) + * @author Daniel Kirschten + */ + public void addObserver(LogicObserver obs) + { + end.registerObserver(obs); + } + + /** + * Deregisters the given {@link LogicObserver} for the {@link ReadEnd} this {@link ModelWire} is bound to. + * + * @see ReadEnd#deregisterObserver(LogicObserver) + * @author Daniel Kirschten + */ + public void removeObserver(LogicObserver obs) + { + end.deregisterObserver(obs); + } + // listeners // @formatter:off