improved the probe shape

This commit is contained in:
hneemann 2018-04-01 12:27:49 +02:00
parent 1de142d984
commit ed38b08835
3 changed files with 16 additions and 15 deletions

View File

@ -5,13 +5,13 @@
*/ */
package de.neemann.digital.draw.shapes; package de.neemann.digital.draw.shapes;
import de.neemann.digital.core.IntFormat;
import de.neemann.digital.core.ObservableValue; import de.neemann.digital.core.ObservableValue;
import de.neemann.digital.core.Observer; import de.neemann.digital.core.Observer;
import de.neemann.digital.core.Value; import de.neemann.digital.core.Value;
import de.neemann.digital.core.element.ElementAttributes; import de.neemann.digital.core.element.ElementAttributes;
import de.neemann.digital.core.element.Keys; import de.neemann.digital.core.element.Keys;
import de.neemann.digital.core.element.PinDescriptions; import de.neemann.digital.core.element.PinDescriptions;
import de.neemann.digital.core.IntFormat;
import de.neemann.digital.draw.elements.IOState; import de.neemann.digital.draw.elements.IOState;
import de.neemann.digital.draw.elements.Pin; import de.neemann.digital.draw.elements.Pin;
import de.neemann.digital.draw.elements.Pins; import de.neemann.digital.draw.elements.Pins;
@ -19,7 +19,6 @@ import de.neemann.digital.draw.graphics.Graphic;
import de.neemann.digital.draw.graphics.Orientation; import de.neemann.digital.draw.graphics.Orientation;
import de.neemann.digital.draw.graphics.Style; import de.neemann.digital.draw.graphics.Style;
import de.neemann.digital.draw.graphics.Vector; import de.neemann.digital.draw.graphics.Vector;
import de.neemann.digital.lang.Lang;
/** /**
* The probe shape * The probe shape
@ -29,7 +28,7 @@ public class ProbeShape implements Shape {
private final String label; private final String label;
private final PinDescriptions inputs; private final PinDescriptions inputs;
private final IntFormat format; private final IntFormat format;
private int bits; private final boolean isLabel;
private ObservableValue inValue; private ObservableValue inValue;
private Value inValueCopy; private Value inValueCopy;
@ -42,10 +41,8 @@ public class ProbeShape implements Shape {
*/ */
public ProbeShape(ElementAttributes attr, PinDescriptions inputs, PinDescriptions outputs) { public ProbeShape(ElementAttributes attr, PinDescriptions inputs, PinDescriptions outputs) {
this.inputs = inputs; this.inputs = inputs;
String label = attr.getLabel(); label = attr.getLabel();
if (label == null || label.length() == 0) isLabel = label != null && label.length() > 0;
label = Lang.get("name");
this.label = label;
this.format = attr.get(Keys.INT_FORMAT); this.format = attr.get(Keys.INT_FORMAT);
} }
@ -58,22 +55,28 @@ public class ProbeShape implements Shape {
public Interactor applyStateMonitor(IOState ioState, Observer guiObserver) { public Interactor applyStateMonitor(IOState ioState, Observer guiObserver) {
inValue = ioState.getInput(0); inValue = ioState.getInput(0);
inValue.addObserverToValue(guiObserver); inValue.addObserverToValue(guiObserver);
bits = inValue.getBits();
return null; return null;
} }
@Override @Override
public void readObservableValues() { public void readObservableValues() {
if (bits > 1) if (inValue != null)
inValueCopy = inValue.getCopy(); inValueCopy = inValue.getCopy();
} }
@Override @Override
public void drawTo(Graphic graphic, Style highLight) { public void drawTo(Graphic graphic, Style highLight) {
graphic.drawText(new Vector(2, -1), new Vector(3, -1), label, Orientation.LEFTBOTTOM, Style.NORMAL); int dy = -1;
if (bits > 1) { Orientation orientation = Orientation.LEFTCENTER;
String v = format.formatToView(inValueCopy); if (isLabel) {
graphic.drawText(new Vector(2, 1), new Vector(3, 1), v, Orientation.LEFTTOP, Style.NORMAL); graphic.drawText(new Vector(2, -4), new Vector(3, -4), label, Orientation.LEFTBOTTOM, Style.NORMAL);
} dy = 4;
orientation = Orientation.LEFTTOP;
}
String v = "?";
if (inValueCopy != null)
v = format.formatToView(inValueCopy);
graphic.drawText(new Vector(2, dy), new Vector(3, dy), v, orientation, Style.NORMAL);
} }
} }

View File

@ -1,7 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources> <resources>
<string name="addr">Adresse</string> <string name="addr">Adresse</string>
<string name="name">Name</string>
<string name="tableOfContent">Inhaltsverzeichnis</string> <string name="tableOfContent">Inhaltsverzeichnis</string>
<string name="general">Allgemein</string> <string name="general">Allgemein</string>
<string name="revision">Version</string> <string name="revision">Version</string>

View File

@ -1,7 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources> <resources>
<string name="addr">Address</string> <string name="addr">Address</string>
<string name="name">Name</string>
<string name="tableOfContent">Table of Contents</string> <string name="tableOfContent">Table of Contents</string>
<string name="general">General</string> <string name="general">General</string>
<string name="revision">Revision</string> <string name="revision">Revision</string>