From f09052d0e169fbe0e11fe79c5d45fe64d43cd86c Mon Sep 17 00:00:00 2001 From: hneemann Date: Fri, 10 Apr 2020 09:51:14 +0200 Subject: [PATCH] adds a label to GND and VDD, closes #439 --- src/main/java/de/neemann/digital/core/io/Ground.java | 3 ++- src/main/java/de/neemann/digital/core/io/VDD.java | 3 ++- .../de/neemann/digital/draw/shapes/GroundShape.java | 5 +++++ .../java/de/neemann/digital/draw/shapes/VDDShape.java | 11 ++++++----- 4 files changed, 15 insertions(+), 7 deletions(-) diff --git a/src/main/java/de/neemann/digital/core/io/Ground.java b/src/main/java/de/neemann/digital/core/io/Ground.java index 3108408a9..78e32da05 100644 --- a/src/main/java/de/neemann/digital/core/io/Ground.java +++ b/src/main/java/de/neemann/digital/core/io/Ground.java @@ -25,7 +25,8 @@ public class Ground implements Element { */ public static final ElementTypeDescription DESCRIPTION = new ElementTypeDescription(Ground.class) .addAttribute(Keys.ROTATE) - .addAttribute(Keys.BITS); + .addAttribute(Keys.BITS) + .addAttribute(Keys.LABEL); private final ObservableValue output; diff --git a/src/main/java/de/neemann/digital/core/io/VDD.java b/src/main/java/de/neemann/digital/core/io/VDD.java index 02e06bd1b..3fff05102 100644 --- a/src/main/java/de/neemann/digital/core/io/VDD.java +++ b/src/main/java/de/neemann/digital/core/io/VDD.java @@ -25,7 +25,8 @@ public class VDD implements Element { */ public static final ElementTypeDescription DESCRIPTION = new ElementTypeDescription(VDD.class) .addAttribute(Keys.ROTATE) - .addAttribute(Keys.BITS); + .addAttribute(Keys.BITS) + .addAttribute(Keys.LABEL); private final ObservableValue output; diff --git a/src/main/java/de/neemann/digital/draw/shapes/GroundShape.java b/src/main/java/de/neemann/digital/draw/shapes/GroundShape.java index 4df746785..f34742ff0 100644 --- a/src/main/java/de/neemann/digital/draw/shapes/GroundShape.java +++ b/src/main/java/de/neemann/digital/draw/shapes/GroundShape.java @@ -12,6 +12,7 @@ import de.neemann.digital.draw.elements.IOState; import de.neemann.digital.draw.elements.Pin; import de.neemann.digital.draw.elements.Pins; import de.neemann.digital.draw.graphics.Graphic; +import de.neemann.digital.draw.graphics.Orientation; import de.neemann.digital.draw.graphics.Style; import de.neemann.digital.draw.graphics.Vector; @@ -23,6 +24,7 @@ import static de.neemann.digital.draw.shapes.GenericShape.SIZE2; public class GroundShape implements Shape { private final PinDescriptions outputs; + private final String label; /** * Creates a new instance @@ -33,6 +35,7 @@ public class GroundShape implements Shape { */ public GroundShape(ElementAttributes attr, PinDescriptions inputs, PinDescriptions outputs) { this.outputs = outputs; + label = attr.getLabel(); } @Override @@ -48,5 +51,7 @@ public class GroundShape implements Shape { @Override public void drawTo(Graphic graphic, Style heighLight) { graphic.drawLine(new Vector(-SIZE2, 0), new Vector(SIZE2, 0), Style.THICK); + if (!label.isEmpty()) + graphic.drawText(new Vector(0, SIZE2), label, Orientation.CENTERTOP, Style.SHAPE_PIN); } } diff --git a/src/main/java/de/neemann/digital/draw/shapes/VDDShape.java b/src/main/java/de/neemann/digital/draw/shapes/VDDShape.java index 61fca8303..299300966 100644 --- a/src/main/java/de/neemann/digital/draw/shapes/VDDShape.java +++ b/src/main/java/de/neemann/digital/draw/shapes/VDDShape.java @@ -11,20 +11,18 @@ import de.neemann.digital.core.element.PinDescriptions; import de.neemann.digital.draw.elements.IOState; import de.neemann.digital.draw.elements.Pin; import de.neemann.digital.draw.elements.Pins; -import de.neemann.digital.draw.graphics.Graphic; -import de.neemann.digital.draw.graphics.Polygon; -import de.neemann.digital.draw.graphics.Style; -import de.neemann.digital.draw.graphics.Vector; +import de.neemann.digital.draw.graphics.*; import static de.neemann.digital.draw.shapes.GenericShape.SIZE; import static de.neemann.digital.draw.shapes.GenericShape.SIZE2; /** - * The Vcc shape + * The VDD shape */ public class VDDShape implements Shape { static final int DOWNSHIFT = 4; private final PinDescriptions outputs; + private final String label; /** * Creates a new instance @@ -35,6 +33,7 @@ public class VDDShape implements Shape { */ public VDDShape(ElementAttributes attr, PinDescriptions inputs, PinDescriptions outputs) { this.outputs = outputs; + label = attr.getLabel(); } @Override @@ -55,5 +54,7 @@ public class VDDShape implements Shape { .add(0, DOWNSHIFT - SIZE * 2 / 3) .add(SIZE2, DOWNSHIFT), Style.NORMAL); graphic.drawLine(new Vector(0, -SIZE2 + DOWNSHIFT), new Vector(0, 0), Style.NORMAL); + if (!label.isEmpty()) + graphic.drawText(new Vector(0, DOWNSHIFT - SIZE * 2 / 3 - SIZE2), label, Orientation.CENTERBOTTOM, Style.SHAPE_PIN); } }