diff --git a/src/net/sourceforge/plantuml/braille/DriverCenteredCharacterBraille.java b/src/net/sourceforge/plantuml/braille/DriverCenteredCharacterBraille.java index e83b04771..f3e0956a5 100644 --- a/src/net/sourceforge/plantuml/braille/DriverCenteredCharacterBraille.java +++ b/src/net/sourceforge/plantuml/braille/DriverCenteredCharacterBraille.java @@ -38,14 +38,11 @@ package net.sourceforge.plantuml.braille; import net.sourceforge.plantuml.ugraphic.UCenteredCharacter; import net.sourceforge.plantuml.ugraphic.UDriver; import net.sourceforge.plantuml.ugraphic.UParam; -import net.sourceforge.plantuml.ugraphic.UShape; import net.sourceforge.plantuml.ugraphic.color.ColorMapper; -public class DriverCenteredCharacterBraille implements UDriver { - - public void draw(UShape ushape, double x, double y, ColorMapper mapper, UParam param, BrailleGrid grid) { - final UCenteredCharacter characterCircled = (UCenteredCharacter) ushape; +public class DriverCenteredCharacterBraille implements UDriver { + public void draw(UCenteredCharacter characterCircled, double x, double y, ColorMapper mapper, UParam param, BrailleGrid grid) { final double xpos = x; final double ypos = y; diff --git a/src/net/sourceforge/plantuml/braille/DriverDotPathBraille.java b/src/net/sourceforge/plantuml/braille/DriverDotPathBraille.java index 6fcb3f8e8..b75f1625e 100644 --- a/src/net/sourceforge/plantuml/braille/DriverDotPathBraille.java +++ b/src/net/sourceforge/plantuml/braille/DriverDotPathBraille.java @@ -38,14 +38,11 @@ package net.sourceforge.plantuml.braille; import net.sourceforge.plantuml.posimo.DotPath; import net.sourceforge.plantuml.ugraphic.UDriver; import net.sourceforge.plantuml.ugraphic.UParam; -import net.sourceforge.plantuml.ugraphic.UShape; import net.sourceforge.plantuml.ugraphic.color.ColorMapper; -public class DriverDotPathBraille implements UDriver { - - public void draw(UShape ushape, double x, double y, ColorMapper mapper, UParam param, BrailleGrid grid) { - final DotPath shape = (DotPath) ushape; +public class DriverDotPathBraille implements UDriver { + public void draw(DotPath shape, double x, double y, ColorMapper mapper, UParam param, BrailleGrid grid) { if (param.getColor() != null) { grid.drawDotPath(x, y, shape); } diff --git a/src/net/sourceforge/plantuml/braille/DriverLineBraille.java b/src/net/sourceforge/plantuml/braille/DriverLineBraille.java index 002924241..48c738ae2 100644 --- a/src/net/sourceforge/plantuml/braille/DriverLineBraille.java +++ b/src/net/sourceforge/plantuml/braille/DriverLineBraille.java @@ -41,10 +41,9 @@ import net.sourceforge.plantuml.ugraphic.UClip; import net.sourceforge.plantuml.ugraphic.UDriver; import net.sourceforge.plantuml.ugraphic.ULine; import net.sourceforge.plantuml.ugraphic.UParam; -import net.sourceforge.plantuml.ugraphic.UShape; import net.sourceforge.plantuml.ugraphic.color.ColorMapper; -public class DriverLineBraille implements UDriver { +public class DriverLineBraille implements UDriver { private final ClipContainer clipContainer; @@ -52,9 +51,7 @@ public class DriverLineBraille implements UDriver { this.clipContainer = clipContainer; } - public void draw(UShape ushape, double x, double y, ColorMapper mapper, UParam param, BrailleGrid grid) { - final ULine shape = (ULine) ushape; - + public void draw(ULine shape , double x, double y, ColorMapper mapper, UParam param, BrailleGrid grid) { double x2 = x + shape.getDX(); double y2 = y + shape.getDY(); diff --git a/src/net/sourceforge/plantuml/braille/DriverNoneBraille.java b/src/net/sourceforge/plantuml/braille/DriverNoneBraille.java deleted file mode 100644 index 6e132b68a..000000000 --- a/src/net/sourceforge/plantuml/braille/DriverNoneBraille.java +++ /dev/null @@ -1,47 +0,0 @@ -/* ======================================================================== - * PlantUML : a free UML diagram generator - * ======================================================================== - * - * (C) Copyright 2009-2020, Arnaud Roques - * - * Project Info: http://plantuml.com - * - * If you like this project or if you find it useful, you can support us at: - * - * http://plantuml.com/patreon (only 1$ per month!) - * http://plantuml.com/paypal - * - * This file is part of PlantUML. - * - * PlantUML is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * PlantUML distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public - * License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, - * USA. - * - * - * Original Author: Arnaud Roques - * - */ -package net.sourceforge.plantuml.braille; - -import net.sourceforge.plantuml.ugraphic.UDriver; -import net.sourceforge.plantuml.ugraphic.UParam; -import net.sourceforge.plantuml.ugraphic.UShape; -import net.sourceforge.plantuml.ugraphic.color.ColorMapper; - -public class DriverNoneBraille implements UDriver { - - public void draw(UShape shape, double x, double y, ColorMapper mapper, UParam param, BrailleGrid object) { - } - -} diff --git a/src/net/sourceforge/plantuml/braille/DriverPolygonBraille.java b/src/net/sourceforge/plantuml/braille/DriverPolygonBraille.java index 7b5bdea2b..1fb8be370 100644 --- a/src/net/sourceforge/plantuml/braille/DriverPolygonBraille.java +++ b/src/net/sourceforge/plantuml/braille/DriverPolygonBraille.java @@ -43,11 +43,10 @@ import net.sourceforge.plantuml.ugraphic.UClip; import net.sourceforge.plantuml.ugraphic.UDriver; import net.sourceforge.plantuml.ugraphic.UParam; import net.sourceforge.plantuml.ugraphic.UPolygon; -import net.sourceforge.plantuml.ugraphic.UShape; import net.sourceforge.plantuml.ugraphic.UTranslate; import net.sourceforge.plantuml.ugraphic.color.ColorMapper; -public class DriverPolygonBraille implements UDriver { +public class DriverPolygonBraille implements UDriver { private final ClipContainer clipContainer; @@ -55,9 +54,7 @@ public class DriverPolygonBraille implements UDriver { this.clipContainer = clipContainer; } - public void draw(UShape ushape, double x, double y, ColorMapper mapper, UParam param, BrailleGrid grid) { - final UPolygon shape = (UPolygon) ushape; - + public void draw(UPolygon shape, double x, double y, ColorMapper mapper, UParam param, BrailleGrid grid) { final List points = new ArrayList<>(); int i = 0; diff --git a/src/net/sourceforge/plantuml/braille/DriverRectangleBraille.java b/src/net/sourceforge/plantuml/braille/DriverRectangleBraille.java index 37fa98977..e1967898e 100644 --- a/src/net/sourceforge/plantuml/braille/DriverRectangleBraille.java +++ b/src/net/sourceforge/plantuml/braille/DriverRectangleBraille.java @@ -41,10 +41,9 @@ import net.sourceforge.plantuml.ugraphic.UClip; import net.sourceforge.plantuml.ugraphic.UDriver; import net.sourceforge.plantuml.ugraphic.UParam; import net.sourceforge.plantuml.ugraphic.URectangle; -import net.sourceforge.plantuml.ugraphic.UShape; import net.sourceforge.plantuml.ugraphic.color.ColorMapper; -public class DriverRectangleBraille implements UDriver { +public class DriverRectangleBraille implements UDriver { private final ClipContainer clipContainer; @@ -52,9 +51,7 @@ public class DriverRectangleBraille implements UDriver { this.clipContainer = clipContainer; } - public void draw(UShape ushape, double x, double y, ColorMapper mapper, UParam param, BrailleGrid grid) { - final URectangle rect = (URectangle) ushape; - + public void draw(URectangle rect, double x, double y, ColorMapper mapper, UParam param, BrailleGrid grid) { // final double rx = rect.getRx(); // final double ry = rect.getRy(); double width = rect.getWidth(); diff --git a/src/net/sourceforge/plantuml/braille/DriverTextBraille.java b/src/net/sourceforge/plantuml/braille/DriverTextBraille.java index e20f090c3..37327cd2d 100644 --- a/src/net/sourceforge/plantuml/braille/DriverTextBraille.java +++ b/src/net/sourceforge/plantuml/braille/DriverTextBraille.java @@ -36,18 +36,15 @@ package net.sourceforge.plantuml.braille; import net.sourceforge.plantuml.ugraphic.UDriver; import net.sourceforge.plantuml.ugraphic.UParam; -import net.sourceforge.plantuml.ugraphic.UShape; import net.sourceforge.plantuml.ugraphic.UText; import net.sourceforge.plantuml.ugraphic.color.ColorMapper; -public class DriverTextBraille implements UDriver { +public class DriverTextBraille implements UDriver { public DriverTextBraille() { } - public void draw(UShape ushape, double x, double y, ColorMapper mapper, UParam param, BrailleGrid grid) { - final UText text = (UText) ushape; - + public void draw(UText text, double x, double y, ColorMapper mapper, UParam param, BrailleGrid grid) { y -= grid.getQuanta() * 3; x += grid.getQuanta(); diff --git a/src/net/sourceforge/plantuml/braille/UGraphicBraille.java b/src/net/sourceforge/plantuml/braille/UGraphicBraille.java index 7eaee354e..cd4a271ba 100644 --- a/src/net/sourceforge/plantuml/braille/UGraphicBraille.java +++ b/src/net/sourceforge/plantuml/braille/UGraphicBraille.java @@ -103,14 +103,14 @@ public class UGraphicBraille extends AbstractUGraphic implements Cl } private void register() { - registerDriver(URectangle.class, new DriverNoneBraille()); + ignoreShape(URectangle.class); registerDriver(URectangle.class, new DriverRectangleBraille(this)); registerDriver(UText.class, new DriverTextBraille()); registerDriver(ULine.class, new DriverLineBraille(this)); registerDriver(UPolygon.class, new DriverPolygonBraille(this)); - registerDriver(UEllipse.class, new DriverNoneBraille()); - registerDriver(UImage.class, new DriverNoneBraille()); - registerDriver(UPath.class, new DriverNoneBraille()); + ignoreShape(UEllipse.class); + ignoreShape(UImage.class); + ignoreShape(UPath.class); registerDriver(DotPath.class, new DriverDotPathBraille()); registerDriver(UCenteredCharacter.class, new DriverCenteredCharacterBraille()); } diff --git a/src/net/sourceforge/plantuml/ugraphic/AbstractUGraphic.java b/src/net/sourceforge/plantuml/ugraphic/AbstractUGraphic.java index c2704705c..a7ddca4e1 100644 --- a/src/net/sourceforge/plantuml/ugraphic/AbstractUGraphic.java +++ b/src/net/sourceforge/plantuml/ugraphic/AbstractUGraphic.java @@ -48,7 +48,10 @@ public abstract class AbstractUGraphic extends AbstractCommonUGraphic { private final O graphic; - private final Map, UDriver> drivers = new HashMap, UDriver>(); + // It would be nice to do something like this but not sure how: + // Map, UDriver> + // See https://stackoverflow.com/questions/416540/java-map-with-values-limited-by-keys-type-parameter + private final Map, UDriver> drivers = new HashMap<>(); public AbstractUGraphic(HColor defaultBackground, ColorMapper colorMapper, StringBounder stringBounder, O graphic) { super(Objects.requireNonNull(defaultBackground), colorMapper, stringBounder); @@ -69,11 +72,22 @@ public abstract class AbstractUGraphic extends AbstractCommonUGraphic { return true; } - final protected void registerDriver(Class cl, UDriver driver) { + final protected void registerDriver(Class cl, UDriver driver) { this.drivers.put(cl, driver); } - public final void draw(UShape shape) { + private static final UDriver NOOP_DRIVER = new UDriver() { + @Override + public void draw(UShape shape, double x, double y, ColorMapper mapper, UParam param, Object object) { + } + }; + + @SuppressWarnings("unchecked") + final protected void ignoreShape(Class cl) { + registerDriver(cl, (UDriver) NOOP_DRIVER); + } + + public final void draw(SHAPE shape) { if (shape instanceof SpecialText) { ((SpecialText) shape).getTitle().drawU(this); return; @@ -85,7 +99,10 @@ public abstract class AbstractUGraphic extends AbstractCommonUGraphic { drawComment((UComment) shape); return; } - final UDriver driver = drivers.get(shape.getClass()); + + @SuppressWarnings("unchecked") + final UDriver driver = (UDriver) drivers.get(shape.getClass()); + if (driver == null) { throw new UnsupportedOperationException(shape.getClass().toString() + " " + this.getClass()); } diff --git a/src/net/sourceforge/plantuml/ugraphic/UDriver.java b/src/net/sourceforge/plantuml/ugraphic/UDriver.java index 3317362ca..3354c91da 100644 --- a/src/net/sourceforge/plantuml/ugraphic/UDriver.java +++ b/src/net/sourceforge/plantuml/ugraphic/UDriver.java @@ -37,7 +37,7 @@ package net.sourceforge.plantuml.ugraphic; import net.sourceforge.plantuml.ugraphic.color.ColorMapper; -public interface UDriver { - public void draw(UShape shape, double x, double y, ColorMapper mapper, UParam param, O object); +public interface UDriver { + public void draw(SHAPE shape, double x, double y, ColorMapper mapper, UParam param, O object); } diff --git a/src/net/sourceforge/plantuml/ugraphic/UGraphic.java b/src/net/sourceforge/plantuml/ugraphic/UGraphic.java index 06193fed9..4c1254941 100644 --- a/src/net/sourceforge/plantuml/ugraphic/UGraphic.java +++ b/src/net/sourceforge/plantuml/ugraphic/UGraphic.java @@ -49,7 +49,7 @@ public interface UGraphic { public UParam getParam(); - public void draw(UShape shape); + public void draw(SHAPE shape); public UGraphic apply(UChange change); diff --git a/src/net/sourceforge/plantuml/ugraphic/eps/DriverCenteredCharacterEps.java b/src/net/sourceforge/plantuml/ugraphic/eps/DriverCenteredCharacterEps.java index c7e774f14..a86cc453a 100644 --- a/src/net/sourceforge/plantuml/ugraphic/eps/DriverCenteredCharacterEps.java +++ b/src/net/sourceforge/plantuml/ugraphic/eps/DriverCenteredCharacterEps.java @@ -44,13 +44,11 @@ import net.sourceforge.plantuml.ugraphic.UCenteredCharacter; import net.sourceforge.plantuml.ugraphic.UDriver; import net.sourceforge.plantuml.ugraphic.UFont; import net.sourceforge.plantuml.ugraphic.UParam; -import net.sourceforge.plantuml.ugraphic.UShape; import net.sourceforge.plantuml.ugraphic.color.ColorMapper; -public class DriverCenteredCharacterEps implements UDriver { +public class DriverCenteredCharacterEps implements UDriver { - public void draw(UShape ushape, double x, double y, ColorMapper mapper, UParam param, EpsGraphics eps) { - final UCenteredCharacter centeredCharacter = (UCenteredCharacter) ushape; + public void draw(UCenteredCharacter centeredCharacter, double x, double y, ColorMapper mapper, UParam param, EpsGraphics eps) { final char c = centeredCharacter.getChar(); final UFont font = centeredCharacter.getFont(); final UnusedSpace unusedSpace = UnusedSpace.getUnusedSpace(font, c); @@ -61,7 +59,6 @@ public class DriverCenteredCharacterEps implements UDriver { final TextLayout t = createTextLayout(font, "" + c); eps.setStrokeColor(mapper.toColor(param.getColor())); DriverTextEps.drawPathIterator(eps, xpos, ypos, t.getOutline(null)); - } } diff --git a/src/net/sourceforge/plantuml/ugraphic/eps/DriverDotPathEps.java b/src/net/sourceforge/plantuml/ugraphic/eps/DriverDotPathEps.java index 5b05b79d6..517f5e2e0 100644 --- a/src/net/sourceforge/plantuml/ugraphic/eps/DriverDotPathEps.java +++ b/src/net/sourceforge/plantuml/ugraphic/eps/DriverDotPathEps.java @@ -39,13 +39,11 @@ import net.sourceforge.plantuml.eps.EpsGraphics; import net.sourceforge.plantuml.posimo.DotPath; import net.sourceforge.plantuml.ugraphic.UDriver; import net.sourceforge.plantuml.ugraphic.UParam; -import net.sourceforge.plantuml.ugraphic.UShape; import net.sourceforge.plantuml.ugraphic.color.ColorMapper; -public class DriverDotPathEps implements UDriver { +public class DriverDotPathEps implements UDriver { - public void draw(UShape ushape, double x, double y, ColorMapper mapper, UParam param, EpsGraphics eps) { - final DotPath shape = (DotPath) ushape; + public void draw(DotPath shape, double x, double y, ColorMapper mapper, UParam param, EpsGraphics eps) { //DriverLineG2d.manageStroke(param, g2d); if (param.getColor() != null) { diff --git a/src/net/sourceforge/plantuml/ugraphic/eps/DriverEllipseEps.java b/src/net/sourceforge/plantuml/ugraphic/eps/DriverEllipseEps.java index 7683ca9a9..0cc91e0fe 100644 --- a/src/net/sourceforge/plantuml/ugraphic/eps/DriverEllipseEps.java +++ b/src/net/sourceforge/plantuml/ugraphic/eps/DriverEllipseEps.java @@ -40,10 +40,9 @@ import net.sourceforge.plantuml.ugraphic.UClip; import net.sourceforge.plantuml.ugraphic.UDriver; import net.sourceforge.plantuml.ugraphic.UEllipse; import net.sourceforge.plantuml.ugraphic.UParam; -import net.sourceforge.plantuml.ugraphic.UShape; import net.sourceforge.plantuml.ugraphic.color.ColorMapper; -public class DriverEllipseEps implements UDriver { +public class DriverEllipseEps implements UDriver { private final ClipContainer clipContainer; @@ -51,8 +50,7 @@ public class DriverEllipseEps implements UDriver { this.clipContainer = clipContainer; } - public void draw(UShape ushape, double x, double y, ColorMapper mapper, UParam param, EpsGraphics eps) { - final UEllipse shape = (UEllipse) ushape; + public void draw(UEllipse shape, double x, double y, ColorMapper mapper, UParam param, EpsGraphics eps) { final double width = shape.getWidth(); final double height = shape.getHeight(); diff --git a/src/net/sourceforge/plantuml/ugraphic/eps/DriverImageEps.java b/src/net/sourceforge/plantuml/ugraphic/eps/DriverImageEps.java index 56dd07f6a..cece989b2 100644 --- a/src/net/sourceforge/plantuml/ugraphic/eps/DriverImageEps.java +++ b/src/net/sourceforge/plantuml/ugraphic/eps/DriverImageEps.java @@ -40,10 +40,9 @@ import net.sourceforge.plantuml.ugraphic.UClip; import net.sourceforge.plantuml.ugraphic.UDriver; import net.sourceforge.plantuml.ugraphic.UImage; import net.sourceforge.plantuml.ugraphic.UParam; -import net.sourceforge.plantuml.ugraphic.UShape; import net.sourceforge.plantuml.ugraphic.color.ColorMapper; -public class DriverImageEps implements UDriver { +public class DriverImageEps implements UDriver { private final ClipContainer clipContainer; @@ -51,10 +50,7 @@ public class DriverImageEps implements UDriver { this.clipContainer = clipContainer; } - public void draw(UShape ushape, double x, double y, ColorMapper mapper, UParam param, EpsGraphics eps) { - - final UImage shape = (UImage) ushape; - + public void draw(UImage shape, double x, double y, ColorMapper mapper, UParam param, EpsGraphics eps) { final UClip clip = clipContainer.getClip(); if (clip != null) { if (clip.isInside(x, y) == false) { diff --git a/src/net/sourceforge/plantuml/ugraphic/eps/DriverLineEps.java b/src/net/sourceforge/plantuml/ugraphic/eps/DriverLineEps.java index 67ea43e3a..28550cb7d 100644 --- a/src/net/sourceforge/plantuml/ugraphic/eps/DriverLineEps.java +++ b/src/net/sourceforge/plantuml/ugraphic/eps/DriverLineEps.java @@ -42,10 +42,9 @@ import net.sourceforge.plantuml.ugraphic.UClip; import net.sourceforge.plantuml.ugraphic.UDriver; import net.sourceforge.plantuml.ugraphic.ULine; import net.sourceforge.plantuml.ugraphic.UParam; -import net.sourceforge.plantuml.ugraphic.UShape; import net.sourceforge.plantuml.ugraphic.color.ColorMapper; -public class DriverLineEps implements UDriver { +public class DriverLineEps implements UDriver { private final ClipContainer clipContainer; @@ -53,9 +52,7 @@ public class DriverLineEps implements UDriver { this.clipContainer = clipContainer; } - public void draw(UShape ushape, double x, double y, ColorMapper mapper, UParam param, EpsGraphics eps) { - final ULine shape = (ULine) ushape; - + public void draw(ULine shape, double x, double y, ColorMapper mapper, UParam param, EpsGraphics eps) { double x2 = x + shape.getDX(); double y2 = y + shape.getDY(); diff --git a/src/net/sourceforge/plantuml/ugraphic/eps/DriverPathEps.java b/src/net/sourceforge/plantuml/ugraphic/eps/DriverPathEps.java index ca1caa1e4..6429d6a33 100644 --- a/src/net/sourceforge/plantuml/ugraphic/eps/DriverPathEps.java +++ b/src/net/sourceforge/plantuml/ugraphic/eps/DriverPathEps.java @@ -38,14 +38,11 @@ import net.sourceforge.plantuml.eps.EpsGraphics; import net.sourceforge.plantuml.ugraphic.UDriver; import net.sourceforge.plantuml.ugraphic.UParam; import net.sourceforge.plantuml.ugraphic.UPath; -import net.sourceforge.plantuml.ugraphic.UShape; import net.sourceforge.plantuml.ugraphic.color.ColorMapper; -public class DriverPathEps implements UDriver { - - public void draw(UShape ushape, double x, double y, ColorMapper mapper, UParam param, EpsGraphics eps) { - final UPath shape = (UPath) ushape; +public class DriverPathEps implements UDriver { + public void draw(UPath shape, double x, double y, ColorMapper mapper, UParam param, EpsGraphics eps) { eps.setStrokeColor(mapper.toColor(param.getColor())); eps.setFillColor(mapper.toColor(param.getBackcolor())); eps.setStrokeWidth(param.getStroke().getThickness(), param.getStroke().getDashVisible(), param diff --git a/src/net/sourceforge/plantuml/ugraphic/eps/DriverPolygonEps.java b/src/net/sourceforge/plantuml/ugraphic/eps/DriverPolygonEps.java index 8164d723d..bde4dcf5f 100644 --- a/src/net/sourceforge/plantuml/ugraphic/eps/DriverPolygonEps.java +++ b/src/net/sourceforge/plantuml/ugraphic/eps/DriverPolygonEps.java @@ -42,12 +42,11 @@ import net.sourceforge.plantuml.ugraphic.UClip; import net.sourceforge.plantuml.ugraphic.UDriver; import net.sourceforge.plantuml.ugraphic.UParam; import net.sourceforge.plantuml.ugraphic.UPolygon; -import net.sourceforge.plantuml.ugraphic.UShape; import net.sourceforge.plantuml.ugraphic.color.ColorMapper; import net.sourceforge.plantuml.ugraphic.color.HColor; import net.sourceforge.plantuml.ugraphic.color.HColorGradient; -public class DriverPolygonEps implements UDriver { +public class DriverPolygonEps implements UDriver { private final ClipContainer clipContainer; @@ -55,9 +54,7 @@ public class DriverPolygonEps implements UDriver { this.clipContainer = clipContainer; } - public void draw(UShape ushape, double x, double y, ColorMapper mapper, UParam param, EpsGraphics eps) { - final UPolygon shape = (UPolygon) ushape; - + public void draw(UPolygon shape, double x, double y, ColorMapper mapper, UParam param, EpsGraphics eps) { final double points[] = new double[shape.getPoints().size() * 2]; int i = 0; diff --git a/src/net/sourceforge/plantuml/ugraphic/eps/DriverRectangleEps.java b/src/net/sourceforge/plantuml/ugraphic/eps/DriverRectangleEps.java index c1f01426b..c261613c8 100644 --- a/src/net/sourceforge/plantuml/ugraphic/eps/DriverRectangleEps.java +++ b/src/net/sourceforge/plantuml/ugraphic/eps/DriverRectangleEps.java @@ -42,12 +42,11 @@ import net.sourceforge.plantuml.ugraphic.UClip; import net.sourceforge.plantuml.ugraphic.UDriver; import net.sourceforge.plantuml.ugraphic.UParam; import net.sourceforge.plantuml.ugraphic.URectangle; -import net.sourceforge.plantuml.ugraphic.UShape; import net.sourceforge.plantuml.ugraphic.color.ColorMapper; import net.sourceforge.plantuml.ugraphic.color.HColor; import net.sourceforge.plantuml.ugraphic.color.HColorGradient; -public class DriverRectangleEps implements UDriver { +public class DriverRectangleEps implements UDriver { private final ClipContainer clipContainer; @@ -55,9 +54,7 @@ public class DriverRectangleEps implements UDriver { this.clipContainer = clipContainer; } - public void draw(UShape ushape, double x, double y, ColorMapper mapper, UParam param, EpsGraphics eps) { - final URectangle rect = (URectangle) ushape; - + public void draw(URectangle rect, double x, double y, ColorMapper mapper, UParam param, EpsGraphics eps) { double width = rect.getWidth(); double height = rect.getHeight(); @@ -93,6 +90,5 @@ public class DriverRectangleEps implements UDriver { .getStroke().getDashSpace()); eps.epsRectangle(x, y, width, height, rx / 2, ry / 2); } - } } diff --git a/src/net/sourceforge/plantuml/ugraphic/eps/DriverTextEps.java b/src/net/sourceforge/plantuml/ugraphic/eps/DriverTextEps.java index bd62af601..e51992835 100644 --- a/src/net/sourceforge/plantuml/ugraphic/eps/DriverTextEps.java +++ b/src/net/sourceforge/plantuml/ugraphic/eps/DriverTextEps.java @@ -53,13 +53,12 @@ import net.sourceforge.plantuml.ugraphic.MinMax; import net.sourceforge.plantuml.ugraphic.UClip; import net.sourceforge.plantuml.ugraphic.UDriver; import net.sourceforge.plantuml.ugraphic.UParam; -import net.sourceforge.plantuml.ugraphic.UShape; import net.sourceforge.plantuml.ugraphic.UText; import net.sourceforge.plantuml.ugraphic.color.ColorMapper; import net.sourceforge.plantuml.ugraphic.color.HColor; import net.sourceforge.plantuml.ugraphic.color.HColorUtils; -public class DriverTextEps implements UDriver { +public class DriverTextEps implements UDriver { private final ClipContainer clipContainer; private final EpsStrategy strategy; @@ -69,15 +68,12 @@ public class DriverTextEps implements UDriver { this.strategy = strategy; } - public void draw(UShape ushape, double x, double y, ColorMapper mapper, UParam param, EpsGraphics eps) { - + public void draw(UText shape, double x, double y, ColorMapper mapper, UParam param, EpsGraphics eps) { final UClip clip = clipContainer.getClip(); if (clip != null && clip.isInside(x, y) == false) { return; } - final UText shape = (UText) ushape; - final FontConfiguration fontConfiguration = shape.getFontConfiguration(); if (HColorUtils.isTransparent(fontConfiguration.getColor())) { return; diff --git a/src/net/sourceforge/plantuml/ugraphic/g2d/DriverCenteredCharacterG2d.java b/src/net/sourceforge/plantuml/ugraphic/g2d/DriverCenteredCharacterG2d.java index 120424252..a64866780 100644 --- a/src/net/sourceforge/plantuml/ugraphic/g2d/DriverCenteredCharacterG2d.java +++ b/src/net/sourceforge/plantuml/ugraphic/g2d/DriverCenteredCharacterG2d.java @@ -42,13 +42,11 @@ import net.sourceforge.plantuml.ugraphic.UCenteredCharacter; import net.sourceforge.plantuml.ugraphic.UDriver; import net.sourceforge.plantuml.ugraphic.UFont; import net.sourceforge.plantuml.ugraphic.UParam; -import net.sourceforge.plantuml.ugraphic.UShape; import net.sourceforge.plantuml.ugraphic.color.ColorMapper; -public class DriverCenteredCharacterG2d implements UDriver { +public class DriverCenteredCharacterG2d implements UDriver { - public void draw(UShape ushape, double x, double y, ColorMapper mapper, UParam param, Graphics2D g2d) { - final UCenteredCharacter characterCircled = (UCenteredCharacter) ushape; + public void draw(UCenteredCharacter characterCircled, double x, double y, ColorMapper mapper, UParam param, Graphics2D g2d) { final char c = characterCircled.getChar(); final UFont font = characterCircled.getFont(); final UnusedSpace unusedSpace = UnusedSpace.getUnusedSpace(font, c); diff --git a/src/net/sourceforge/plantuml/ugraphic/g2d/DriverDotPathG2d.java b/src/net/sourceforge/plantuml/ugraphic/g2d/DriverDotPathG2d.java index e06fc17b0..3855d7028 100644 --- a/src/net/sourceforge/plantuml/ugraphic/g2d/DriverDotPathG2d.java +++ b/src/net/sourceforge/plantuml/ugraphic/g2d/DriverDotPathG2d.java @@ -41,10 +41,9 @@ import net.sourceforge.plantuml.EnsureVisible; import net.sourceforge.plantuml.posimo.DotPath; import net.sourceforge.plantuml.ugraphic.UDriver; import net.sourceforge.plantuml.ugraphic.UParam; -import net.sourceforge.plantuml.ugraphic.UShape; import net.sourceforge.plantuml.ugraphic.color.ColorMapper; -public class DriverDotPathG2d implements UDriver { +public class DriverDotPathG2d implements UDriver { private final EnsureVisible visible; @@ -52,8 +51,7 @@ public class DriverDotPathG2d implements UDriver { this.visible = visible; } - public void draw(UShape ushape, double x, double y, ColorMapper mapper, UParam param, Graphics2D g2d) { - final DotPath shape = (DotPath) ushape; + public void draw(DotPath shape, double x, double y, ColorMapper mapper, UParam param, Graphics2D g2d) { DriverLineG2d.manageStroke(param, g2d); if (param.getColor() != null) { diff --git a/src/net/sourceforge/plantuml/ugraphic/g2d/DriverEllipseG2d.java b/src/net/sourceforge/plantuml/ugraphic/g2d/DriverEllipseG2d.java index e55d94f68..5a0326e49 100644 --- a/src/net/sourceforge/plantuml/ugraphic/g2d/DriverEllipseG2d.java +++ b/src/net/sourceforge/plantuml/ugraphic/g2d/DriverEllipseG2d.java @@ -46,12 +46,11 @@ import net.sourceforge.plantuml.EnsureVisible; import net.sourceforge.plantuml.ugraphic.UDriver; import net.sourceforge.plantuml.ugraphic.UEllipse; import net.sourceforge.plantuml.ugraphic.UParam; -import net.sourceforge.plantuml.ugraphic.UShape; import net.sourceforge.plantuml.ugraphic.color.ColorMapper; import net.sourceforge.plantuml.ugraphic.color.HColor; import net.sourceforge.plantuml.ugraphic.color.HColorGradient; -public class DriverEllipseG2d extends DriverShadowedG2d implements UDriver { +public class DriverEllipseG2d extends DriverShadowedG2d implements UDriver { private final double dpiFactor; private final EnsureVisible visible; @@ -61,8 +60,7 @@ public class DriverEllipseG2d extends DriverShadowedG2d implements UDriver { +public class DriverImageG2d implements UDriver { private final EnsureVisible visible; @@ -57,11 +55,7 @@ public class DriverImageG2d implements UDriver { this.dpiFactor = dpiFactor; } - public void draw(UShape ushape, double x, double y, ColorMapper mapper, UParam param, Graphics2D g2d) { - if (ushape instanceof UImageSvg) { - return; - } - final UImage shape = ((UImage) ushape); + public void draw(UImage shape, double x, double y, ColorMapper mapper, UParam param, Graphics2D g2d) { visible.ensureVisible(x, y); visible.ensureVisible(x + shape.getWidth(), y + shape.getHeight()); if (dpiFactor == 1) { diff --git a/src/net/sourceforge/plantuml/ugraphic/g2d/DriverLineG2d.java b/src/net/sourceforge/plantuml/ugraphic/g2d/DriverLineG2d.java index 30084854b..f9afa08f8 100644 --- a/src/net/sourceforge/plantuml/ugraphic/g2d/DriverLineG2d.java +++ b/src/net/sourceforge/plantuml/ugraphic/g2d/DriverLineG2d.java @@ -43,12 +43,11 @@ import java.awt.geom.Line2D; import net.sourceforge.plantuml.ugraphic.UDriver; import net.sourceforge.plantuml.ugraphic.ULine; import net.sourceforge.plantuml.ugraphic.UParam; -import net.sourceforge.plantuml.ugraphic.UShape; import net.sourceforge.plantuml.ugraphic.UStroke; import net.sourceforge.plantuml.ugraphic.color.ColorMapper; import net.sourceforge.plantuml.ugraphic.color.HColor; -public class DriverLineG2d extends DriverShadowedG2d implements UDriver { +public class DriverLineG2d extends DriverShadowedG2d implements UDriver { private final double dpiFactor; @@ -56,9 +55,7 @@ public class DriverLineG2d extends DriverShadowedG2d implements UDriver { +public class DriverPathG2d extends DriverShadowedG2d implements UDriver { private final double dpiFactor; @@ -59,8 +58,7 @@ public class DriverPathG2d extends DriverShadowedG2d implements UDriver { +public class DriverPixelG2d implements UDriver { - public void draw(UShape ushape, double x, double y, ColorMapper mapper, UParam param, Graphics2D g2d) { + public void draw(UPixel pixel, double x, double y, ColorMapper mapper, UParam param, Graphics2D g2d) { g2d.setColor(mapper.toColor(param.getColor())); g2d.fillRect((int) x, (int) y, 1, 1); } diff --git a/src/net/sourceforge/plantuml/ugraphic/g2d/DriverPolygonG2d.java b/src/net/sourceforge/plantuml/ugraphic/g2d/DriverPolygonG2d.java index c13b4dae0..ee8a6a919 100644 --- a/src/net/sourceforge/plantuml/ugraphic/g2d/DriverPolygonG2d.java +++ b/src/net/sourceforge/plantuml/ugraphic/g2d/DriverPolygonG2d.java @@ -45,13 +45,12 @@ import net.sourceforge.plantuml.EnsureVisible; import net.sourceforge.plantuml.ugraphic.UDriver; import net.sourceforge.plantuml.ugraphic.UParam; import net.sourceforge.plantuml.ugraphic.UPolygon; -import net.sourceforge.plantuml.ugraphic.UShape; import net.sourceforge.plantuml.ugraphic.color.ColorMapper; import net.sourceforge.plantuml.ugraphic.color.HColor; import net.sourceforge.plantuml.ugraphic.color.HColorGradient; import net.sourceforge.plantuml.ugraphic.color.HColorUtils; -public class DriverPolygonG2d extends DriverShadowedG2d implements UDriver { +public class DriverPolygonG2d extends DriverShadowedG2d implements UDriver { private final double dpiFactor; private final EnsureVisible visible; @@ -61,9 +60,7 @@ public class DriverPolygonG2d extends DriverShadowedG2d implements UDriver { +public class DriverRectangleG2d extends DriverShadowedG2d implements UDriver { private final double dpiFactor; private final EnsureVisible visible; @@ -68,9 +67,8 @@ public class DriverRectangleG2d extends DriverShadowedG2d implements UDriver { +public class DriverTextAsPathG2d implements UDriver { private final EnsureVisible visible; private final StringBounder stringBounder; @@ -79,8 +78,7 @@ public class DriverTextAsPathG2d implements UDriver { } } - public void draw(UShape ushape, double x, double y, ColorMapper mapper, UParam param, Graphics2D g2d) { - final UText shape = (UText) ushape; + public void draw(UText shape, double x, double y, ColorMapper mapper, UParam param, Graphics2D g2d) { final FontConfiguration fontConfiguration = shape.getFontConfiguration(); final UFont font = fontConfiguration.getFont(); diff --git a/src/net/sourceforge/plantuml/ugraphic/g2d/DriverTextG2d.java b/src/net/sourceforge/plantuml/ugraphic/g2d/DriverTextG2d.java index b862b917b..06c4eb6ca 100644 --- a/src/net/sourceforge/plantuml/ugraphic/g2d/DriverTextG2d.java +++ b/src/net/sourceforge/plantuml/ugraphic/g2d/DriverTextG2d.java @@ -56,14 +56,13 @@ import net.sourceforge.plantuml.text.StyledString; import net.sourceforge.plantuml.ugraphic.UDriver; import net.sourceforge.plantuml.ugraphic.UFont; import net.sourceforge.plantuml.ugraphic.UParam; -import net.sourceforge.plantuml.ugraphic.UShape; import net.sourceforge.plantuml.ugraphic.UText; import net.sourceforge.plantuml.ugraphic.color.ColorMapper; import net.sourceforge.plantuml.ugraphic.color.HColor; import net.sourceforge.plantuml.ugraphic.color.HColorGradient; import net.sourceforge.plantuml.ugraphic.color.HColorUtils; -public class DriverTextG2d implements UDriver { +public class DriverTextG2d implements UDriver { private final EnsureVisible visible; private final StringBounder stringBounder; @@ -73,8 +72,7 @@ public class DriverTextG2d implements UDriver { this.stringBounder = stringBounder; } - public void draw(UShape ushape, double x, double y, ColorMapper mapper, UParam param, Graphics2D g2d) { - final UText shape = (UText) ushape; + public void draw(UText shape, double x, double y, ColorMapper mapper, UParam param, Graphics2D g2d) { final FontConfiguration fontConfiguration = shape.getFontConfiguration(); if (HColorUtils.isTransparent(fontConfiguration.getColor())) { diff --git a/src/net/sourceforge/plantuml/ugraphic/g2d/UGraphicG2d.java b/src/net/sourceforge/plantuml/ugraphic/g2d/UGraphicG2d.java index 1322261f9..6d79c98af 100644 --- a/src/net/sourceforge/plantuml/ugraphic/g2d/UGraphicG2d.java +++ b/src/net/sourceforge/plantuml/ugraphic/g2d/UGraphicG2d.java @@ -148,7 +148,7 @@ public class UGraphicG2d extends AbstractUGraphic implements EnsureV registerDriver(UPixel.class, new DriverPixelG2d()); registerDriver(UPolygon.class, new DriverPolygonG2d(dpiFactor, this)); registerDriver(UEllipse.class, new DriverEllipseG2d(dpiFactor, this)); - registerDriver(UImageSvg.class, new DriverImageG2d(dpiFactor, this)); + ignoreShape(UImageSvg.class); registerDriver(UImage.class, new DriverImageG2d(dpiFactor, this)); registerDriver(DotPath.class, new DriverDotPathG2d(this)); registerDriver(UPath.class, new DriverPathG2d(dpiFactor)); diff --git a/src/net/sourceforge/plantuml/ugraphic/html5/DriverLineHtml5.java b/src/net/sourceforge/plantuml/ugraphic/html5/DriverLineHtml5.java index 8a6962322..7da053d7f 100644 --- a/src/net/sourceforge/plantuml/ugraphic/html5/DriverLineHtml5.java +++ b/src/net/sourceforge/plantuml/ugraphic/html5/DriverLineHtml5.java @@ -41,10 +41,9 @@ import net.sourceforge.plantuml.ugraphic.UClip; import net.sourceforge.plantuml.ugraphic.UDriver; import net.sourceforge.plantuml.ugraphic.ULine; import net.sourceforge.plantuml.ugraphic.UParam; -import net.sourceforge.plantuml.ugraphic.UShape; import net.sourceforge.plantuml.ugraphic.color.ColorMapper; -public class DriverLineHtml5 implements UDriver { +public class DriverLineHtml5 implements UDriver { private final ClipContainer clipContainer; @@ -52,9 +51,7 @@ public class DriverLineHtml5 implements UDriver { this.clipContainer = clipContainer; } - public void draw(UShape ushape, double x, double y, ColorMapper mapper, UParam param, Html5Drawer html) { - final ULine shape = (ULine) ushape; - + public void draw(ULine shape, double x, double y, ColorMapper mapper, UParam param, Html5Drawer html) { double x2 = x + shape.getDX(); double y2 = y + shape.getDY(); diff --git a/src/net/sourceforge/plantuml/ugraphic/html5/DriverNopHtml5.java b/src/net/sourceforge/plantuml/ugraphic/html5/DriverNopHtml5.java deleted file mode 100644 index 46b12cf64..000000000 --- a/src/net/sourceforge/plantuml/ugraphic/html5/DriverNopHtml5.java +++ /dev/null @@ -1,46 +0,0 @@ -/* ======================================================================== - * PlantUML : a free UML diagram generator - * ======================================================================== - * - * (C) Copyright 2009-2020, Arnaud Roques - * - * Project Info: http://plantuml.com - * - * If you like this project or if you find it useful, you can support us at: - * - * http://plantuml.com/patreon (only 1$ per month!) - * http://plantuml.com/paypal - * - * This file is part of PlantUML. - * - * PlantUML is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * PlantUML distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public - * License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, - * USA. - * - * - * Original Author: Arnaud Roques - * - */ -package net.sourceforge.plantuml.ugraphic.html5; - -import net.sourceforge.plantuml.ugraphic.UDriver; -import net.sourceforge.plantuml.ugraphic.UParam; -import net.sourceforge.plantuml.ugraphic.UShape; -import net.sourceforge.plantuml.ugraphic.color.ColorMapper; - -public class DriverNopHtml5 implements UDriver { - - public void draw(UShape ushape, double x, double y, ColorMapper mapper, UParam param, Html5Drawer html) { - } -} diff --git a/src/net/sourceforge/plantuml/ugraphic/html5/DriverRectangleHtml5.java b/src/net/sourceforge/plantuml/ugraphic/html5/DriverRectangleHtml5.java index 0ffbadedb..2fc1708ab 100644 --- a/src/net/sourceforge/plantuml/ugraphic/html5/DriverRectangleHtml5.java +++ b/src/net/sourceforge/plantuml/ugraphic/html5/DriverRectangleHtml5.java @@ -41,12 +41,11 @@ import net.sourceforge.plantuml.ugraphic.UClip; import net.sourceforge.plantuml.ugraphic.UDriver; import net.sourceforge.plantuml.ugraphic.UParam; import net.sourceforge.plantuml.ugraphic.URectangle; -import net.sourceforge.plantuml.ugraphic.UShape; import net.sourceforge.plantuml.ugraphic.color.ColorMapper; import net.sourceforge.plantuml.ugraphic.color.HColor; import net.sourceforge.plantuml.ugraphic.color.HColorGradient; -public class DriverRectangleHtml5 implements UDriver { +public class DriverRectangleHtml5 implements UDriver { private final ClipContainer clipContainer; @@ -54,9 +53,7 @@ public class DriverRectangleHtml5 implements UDriver { this.clipContainer = clipContainer; } - public void draw(UShape ushape, double x, double y, ColorMapper mapper, UParam param, Html5Drawer html) { - final URectangle rect = (URectangle) ushape; - + public void draw(URectangle rect, double x, double y, ColorMapper mapper, UParam param, Html5Drawer html) { double width = rect.getWidth(); double height = rect.getHeight(); @@ -91,6 +88,5 @@ public class DriverRectangleHtml5 implements UDriver { // .getStroke().getDashSpace()); html.htmlRectangle(x, y, width, height, rx / 2, ry / 2); } - } } diff --git a/src/net/sourceforge/plantuml/ugraphic/html5/UGraphicHtml5.java b/src/net/sourceforge/plantuml/ugraphic/html5/UGraphicHtml5.java index 5cd9aa316..ca5bc0a98 100644 --- a/src/net/sourceforge/plantuml/ugraphic/html5/UGraphicHtml5.java +++ b/src/net/sourceforge/plantuml/ugraphic/html5/UGraphicHtml5.java @@ -59,10 +59,10 @@ public class UGraphicHtml5 extends AbstractUGraphic implements Clip super(defaultBackground, colorMapper, FileFormat.PNG.getDefaultStringBounder(), new Html5Drawer()); registerDriver(URectangle.class, new DriverRectangleHtml5(this)); // registerDriver(UText.class, new DriverTextEps(imDummy, this, strategy)); - registerDriver(UText.class, new DriverNopHtml5()); + ignoreShape(UText.class); registerDriver(ULine.class, new DriverLineHtml5(this)); // registerDriver(UPolygon.class, new DriverPolygonEps(this)); - registerDriver(UPolygon.class, new DriverNopHtml5()); + ignoreShape(UPolygon.class); // registerDriver(UEllipse.class, new DriverEllipseEps()); // registerDriver(UImage.class, new DriverImageEps()); // registerDriver(UPath.class, new DriverPathEps()); diff --git a/src/net/sourceforge/plantuml/ugraphic/svg/DriverCenteredCharacterSvg.java b/src/net/sourceforge/plantuml/ugraphic/svg/DriverCenteredCharacterSvg.java index 555817ad7..bb6da2406 100644 --- a/src/net/sourceforge/plantuml/ugraphic/svg/DriverCenteredCharacterSvg.java +++ b/src/net/sourceforge/plantuml/ugraphic/svg/DriverCenteredCharacterSvg.java @@ -44,13 +44,11 @@ import net.sourceforge.plantuml.ugraphic.UCenteredCharacter; import net.sourceforge.plantuml.ugraphic.UDriver; import net.sourceforge.plantuml.ugraphic.UFont; import net.sourceforge.plantuml.ugraphic.UParam; -import net.sourceforge.plantuml.ugraphic.UShape; import net.sourceforge.plantuml.ugraphic.color.ColorMapper; -public class DriverCenteredCharacterSvg implements UDriver { +public class DriverCenteredCharacterSvg implements UDriver { - public void draw(UShape ushape, double x, double y, ColorMapper mapper, UParam param, SvgGraphics svg) { - final UCenteredCharacter characterCircled = (UCenteredCharacter) ushape; + public void draw(UCenteredCharacter characterCircled, double x, double y, ColorMapper mapper, UParam param, SvgGraphics svg) { final char c = characterCircled.getChar(); final UFont font = characterCircled.getFont(); final UnusedSpace unusedSpace = UnusedSpace.getUnusedSpace(font, c); @@ -61,6 +59,5 @@ public class DriverCenteredCharacterSvg implements UDriver { final TextLayout t = createTextLayout(font, "" + c); svg.setFillColor(mapper.toRGB(param.getColor())); svg.drawPathIterator(xpos, ypos, t.getOutline(null).getPathIterator(null)); - } } diff --git a/src/net/sourceforge/plantuml/ugraphic/svg/DriverDotPathSvg.java b/src/net/sourceforge/plantuml/ugraphic/svg/DriverDotPathSvg.java index 970822d48..8ee6b3b04 100644 --- a/src/net/sourceforge/plantuml/ugraphic/svg/DriverDotPathSvg.java +++ b/src/net/sourceforge/plantuml/ugraphic/svg/DriverDotPathSvg.java @@ -39,13 +39,11 @@ import net.sourceforge.plantuml.posimo.DotPath; import net.sourceforge.plantuml.svg.SvgGraphics; import net.sourceforge.plantuml.ugraphic.UDriver; import net.sourceforge.plantuml.ugraphic.UParam; -import net.sourceforge.plantuml.ugraphic.UShape; import net.sourceforge.plantuml.ugraphic.color.ColorMapper; -public class DriverDotPathSvg implements UDriver { +public class DriverDotPathSvg implements UDriver { - public void draw(UShape ushape, double x, double y, ColorMapper mapper, UParam param, SvgGraphics svg) { - final DotPath shape = (DotPath) ushape; + public void draw(DotPath shape, double x, double y, ColorMapper mapper, UParam param, SvgGraphics svg) { // DriverLineG2d.manageStroke(param, g2d); if (param.getColor() != null) { diff --git a/src/net/sourceforge/plantuml/ugraphic/svg/DriverEllipseSvg.java b/src/net/sourceforge/plantuml/ugraphic/svg/DriverEllipseSvg.java index dc62aa8a5..37ebe676d 100644 --- a/src/net/sourceforge/plantuml/ugraphic/svg/DriverEllipseSvg.java +++ b/src/net/sourceforge/plantuml/ugraphic/svg/DriverEllipseSvg.java @@ -40,13 +40,12 @@ import net.sourceforge.plantuml.ugraphic.UClip; import net.sourceforge.plantuml.ugraphic.UDriver; import net.sourceforge.plantuml.ugraphic.UEllipse; import net.sourceforge.plantuml.ugraphic.UParam; -import net.sourceforge.plantuml.ugraphic.UShape; import net.sourceforge.plantuml.ugraphic.color.ColorMapper; import net.sourceforge.plantuml.ugraphic.color.HColor; import net.sourceforge.plantuml.ugraphic.color.HColorBackground; import net.sourceforge.plantuml.ugraphic.color.HColorGradient; -public class DriverEllipseSvg implements UDriver { +public class DriverEllipseSvg implements UDriver { private final ClipContainer clipContainer; @@ -54,8 +53,7 @@ public class DriverEllipseSvg implements UDriver { this.clipContainer = clipContainer; } - public void draw(UShape ushape, double x, double y, ColorMapper mapper, UParam param, SvgGraphics svg) { - final UEllipse shape = (UEllipse) ushape; + public void draw(UEllipse shape, double x, double y, ColorMapper mapper, UParam param, SvgGraphics svg) { final double width = shape.getWidth(); final double height = shape.getHeight(); diff --git a/src/net/sourceforge/plantuml/ugraphic/svg/DriverImagePng.java b/src/net/sourceforge/plantuml/ugraphic/svg/DriverImagePng.java index 30132db01..1d406ddd0 100644 --- a/src/net/sourceforge/plantuml/ugraphic/svg/DriverImagePng.java +++ b/src/net/sourceforge/plantuml/ugraphic/svg/DriverImagePng.java @@ -43,10 +43,9 @@ import net.sourceforge.plantuml.ugraphic.UClip; import net.sourceforge.plantuml.ugraphic.UDriver; import net.sourceforge.plantuml.ugraphic.UImage; import net.sourceforge.plantuml.ugraphic.UParam; -import net.sourceforge.plantuml.ugraphic.UShape; import net.sourceforge.plantuml.ugraphic.color.ColorMapper; -public class DriverImagePng implements UDriver { +public class DriverImagePng implements UDriver { private final ClipContainer clipContainer; @@ -54,9 +53,7 @@ public class DriverImagePng implements UDriver { this.clipContainer = clipContainer; } - public void draw(UShape ushape, double x, double y, ColorMapper mapper, UParam param, SvgGraphics svg) { - - final UImage image = (UImage) ushape; + public void draw(UImage image, double x, double y, ColorMapper mapper, UParam param, SvgGraphics svg) { final UClip clip = clipContainer.getClip(); if (clip != null) { if (clip.isInside(x, y) == false) { diff --git a/src/net/sourceforge/plantuml/ugraphic/svg/DriverImageSvgSvg.java b/src/net/sourceforge/plantuml/ugraphic/svg/DriverImageSvgSvg.java index 6e1a66897..27f314585 100644 --- a/src/net/sourceforge/plantuml/ugraphic/svg/DriverImageSvgSvg.java +++ b/src/net/sourceforge/plantuml/ugraphic/svg/DriverImageSvgSvg.java @@ -38,13 +38,11 @@ import net.sourceforge.plantuml.svg.SvgGraphics; import net.sourceforge.plantuml.ugraphic.UDriver; import net.sourceforge.plantuml.ugraphic.UImageSvg; import net.sourceforge.plantuml.ugraphic.UParam; -import net.sourceforge.plantuml.ugraphic.UShape; import net.sourceforge.plantuml.ugraphic.color.ColorMapper; -public class DriverImageSvgSvg implements UDriver { +public class DriverImageSvgSvg implements UDriver { - public void draw(UShape ushape, double x, double y, ColorMapper mapper, UParam param, SvgGraphics svg) { - final UImageSvg image = (UImageSvg) ushape; + public void draw(UImageSvg image, double x, double y, ColorMapper mapper, UParam param, SvgGraphics svg) { svg.svgImage(image, x, y); } } diff --git a/src/net/sourceforge/plantuml/ugraphic/svg/DriverLineSvg.java b/src/net/sourceforge/plantuml/ugraphic/svg/DriverLineSvg.java index 2f733f989..38287cfe5 100644 --- a/src/net/sourceforge/plantuml/ugraphic/svg/DriverLineSvg.java +++ b/src/net/sourceforge/plantuml/ugraphic/svg/DriverLineSvg.java @@ -42,12 +42,11 @@ import net.sourceforge.plantuml.ugraphic.UClip; import net.sourceforge.plantuml.ugraphic.UDriver; import net.sourceforge.plantuml.ugraphic.ULine; import net.sourceforge.plantuml.ugraphic.UParam; -import net.sourceforge.plantuml.ugraphic.UShape; import net.sourceforge.plantuml.ugraphic.color.ColorMapper; import net.sourceforge.plantuml.ugraphic.color.HColor; import net.sourceforge.plantuml.ugraphic.color.HColorGradient; -public class DriverLineSvg implements UDriver { +public class DriverLineSvg implements UDriver { private final ClipContainer clipContainer; @@ -55,9 +54,7 @@ public class DriverLineSvg implements UDriver { this.clipContainer = clipContainer; } - public void draw(UShape ushape, double x, double y, ColorMapper mapper, UParam param, SvgGraphics svg) { - final ULine shape = (ULine) ushape; - + public void draw(ULine shape, double x, double y, ColorMapper mapper, UParam param, SvgGraphics svg) { double x2 = x + shape.getDX(); double y2 = y + shape.getDY(); diff --git a/src/net/sourceforge/plantuml/ugraphic/svg/DriverNoneSvg.java b/src/net/sourceforge/plantuml/ugraphic/svg/DriverNoneSvg.java deleted file mode 100644 index c9d3095ab..000000000 --- a/src/net/sourceforge/plantuml/ugraphic/svg/DriverNoneSvg.java +++ /dev/null @@ -1,48 +0,0 @@ -/* ======================================================================== - * PlantUML : a free UML diagram generator - * ======================================================================== - * - * (C) Copyright 2009-2020, Arnaud Roques - * - * Project Info: http://plantuml.com - * - * If you like this project or if you find it useful, you can support us at: - * - * http://plantuml.com/patreon (only 1$ per month!) - * http://plantuml.com/paypal - * - * This file is part of PlantUML. - * - * PlantUML is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * PlantUML distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public - * License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, - * USA. - * - * - * Original Author: Arnaud Roques - * - */ -package net.sourceforge.plantuml.ugraphic.svg; - -import net.sourceforge.plantuml.svg.SvgGraphics; -import net.sourceforge.plantuml.ugraphic.UDriver; -import net.sourceforge.plantuml.ugraphic.UParam; -import net.sourceforge.plantuml.ugraphic.UShape; -import net.sourceforge.plantuml.ugraphic.color.ColorMapper; - -public class DriverNoneSvg implements UDriver { - - public void draw(UShape shape, double x, double y, ColorMapper mapper, UParam param, SvgGraphics object) { - } - -} diff --git a/src/net/sourceforge/plantuml/ugraphic/svg/DriverPathSvg.java b/src/net/sourceforge/plantuml/ugraphic/svg/DriverPathSvg.java index 9cebdceb7..4f7fed54f 100644 --- a/src/net/sourceforge/plantuml/ugraphic/svg/DriverPathSvg.java +++ b/src/net/sourceforge/plantuml/ugraphic/svg/DriverPathSvg.java @@ -40,13 +40,12 @@ import net.sourceforge.plantuml.ugraphic.UClip; import net.sourceforge.plantuml.ugraphic.UDriver; import net.sourceforge.plantuml.ugraphic.UParam; import net.sourceforge.plantuml.ugraphic.UPath; -import net.sourceforge.plantuml.ugraphic.UShape; import net.sourceforge.plantuml.ugraphic.color.ColorMapper; import net.sourceforge.plantuml.ugraphic.color.HColor; import net.sourceforge.plantuml.ugraphic.color.HColorGradient; import net.sourceforge.plantuml.ugraphic.g2d.DriverShadowedG2d; -public class DriverPathSvg extends DriverShadowedG2d implements UDriver { +public class DriverPathSvg extends DriverShadowedG2d implements UDriver { private final ClipContainer clipContainer; @@ -54,9 +53,7 @@ public class DriverPathSvg extends DriverShadowedG2d implements UDriver { +public class DriverPixelSvg implements UDriver { - public void draw(UShape ushape, double x, double y, ColorMapper mapper, UParam param, SvgGraphics svg) { + public void draw(UPixel pixel, double x, double y, ColorMapper mapper, UParam param, SvgGraphics svg) { final HColor color = param.getColor(); if (color instanceof HColorGradient) { final HColorGradient gr = (HColorGradient) color; diff --git a/src/net/sourceforge/plantuml/ugraphic/svg/DriverPolygonSvg.java b/src/net/sourceforge/plantuml/ugraphic/svg/DriverPolygonSvg.java index 55245b32e..a88a72ab1 100644 --- a/src/net/sourceforge/plantuml/ugraphic/svg/DriverPolygonSvg.java +++ b/src/net/sourceforge/plantuml/ugraphic/svg/DriverPolygonSvg.java @@ -40,12 +40,11 @@ import net.sourceforge.plantuml.ugraphic.UClip; import net.sourceforge.plantuml.ugraphic.UDriver; import net.sourceforge.plantuml.ugraphic.UParam; import net.sourceforge.plantuml.ugraphic.UPolygon; -import net.sourceforge.plantuml.ugraphic.UShape; import net.sourceforge.plantuml.ugraphic.color.ColorMapper; import net.sourceforge.plantuml.ugraphic.color.HColor; import net.sourceforge.plantuml.ugraphic.color.HColorGradient; -public class DriverPolygonSvg implements UDriver { +public class DriverPolygonSvg implements UDriver { private final ClipContainer clipContainer; @@ -53,9 +52,7 @@ public class DriverPolygonSvg implements UDriver { this.clipContainer = clipContainer; } - public void draw(UShape ushape, double x, double y, ColorMapper mapper, UParam param, SvgGraphics svg) { - final UPolygon shape = (UPolygon) ushape; - + public void draw(UPolygon shape, double x, double y, ColorMapper mapper, UParam param, SvgGraphics svg) { final double points[] = shape.getPointArray(x, y); assert points.length % 2 == 0; final UClip clip = clipContainer.getClip(); diff --git a/src/net/sourceforge/plantuml/ugraphic/svg/DriverRectangleSvg.java b/src/net/sourceforge/plantuml/ugraphic/svg/DriverRectangleSvg.java index d8219e1e3..8a5113c44 100644 --- a/src/net/sourceforge/plantuml/ugraphic/svg/DriverRectangleSvg.java +++ b/src/net/sourceforge/plantuml/ugraphic/svg/DriverRectangleSvg.java @@ -42,12 +42,11 @@ import net.sourceforge.plantuml.ugraphic.UClip; import net.sourceforge.plantuml.ugraphic.UDriver; import net.sourceforge.plantuml.ugraphic.UParam; import net.sourceforge.plantuml.ugraphic.URectangle; -import net.sourceforge.plantuml.ugraphic.UShape; import net.sourceforge.plantuml.ugraphic.color.ColorMapper; import net.sourceforge.plantuml.ugraphic.color.HColor; import net.sourceforge.plantuml.ugraphic.color.HColorGradient; -public class DriverRectangleSvg implements UDriver { +public class DriverRectangleSvg implements UDriver { private final ClipContainer clipContainer; @@ -55,9 +54,7 @@ public class DriverRectangleSvg implements UDriver { this.clipContainer = clipContainer; } - public void draw(UShape ushape, double x, double y, ColorMapper mapper, UParam param, SvgGraphics svg) { - final URectangle rect = (URectangle) ushape; - + public void draw(URectangle rect, double x, double y, ColorMapper mapper, UParam param, SvgGraphics svg) { final double rx = rect.getRx(); final double ry = rect.getRy(); double width = rect.getWidth(); diff --git a/src/net/sourceforge/plantuml/ugraphic/svg/DriverTextAsPathSvg.java b/src/net/sourceforge/plantuml/ugraphic/svg/DriverTextAsPathSvg.java index 34b721fd6..2abce1681 100644 --- a/src/net/sourceforge/plantuml/ugraphic/svg/DriverTextAsPathSvg.java +++ b/src/net/sourceforge/plantuml/ugraphic/svg/DriverTextAsPathSvg.java @@ -43,11 +43,10 @@ import net.sourceforge.plantuml.ugraphic.ClipContainer; import net.sourceforge.plantuml.ugraphic.UClip; import net.sourceforge.plantuml.ugraphic.UDriver; import net.sourceforge.plantuml.ugraphic.UParam; -import net.sourceforge.plantuml.ugraphic.UShape; import net.sourceforge.plantuml.ugraphic.UText; import net.sourceforge.plantuml.ugraphic.color.ColorMapper; -public class DriverTextAsPathSvg implements UDriver { +public class DriverTextAsPathSvg implements UDriver { private final ClipContainer clipContainer; @@ -55,14 +54,13 @@ public class DriverTextAsPathSvg implements UDriver { this.clipContainer = clipContainer; } - public void draw(UShape ushape, double x, double y, ColorMapper mapper, UParam param, SvgGraphics svg) { - + public void draw(UText ushape, double x, double y, ColorMapper mapper, UParam param, SvgGraphics svg) { final UClip clip = clipContainer.getClip(); if (clip != null && clip.isInside(x, y) == false) { return; } - final TextLayout t = createTextLayout((UText) ushape); + final TextLayout t = createTextLayout(ushape); svg.drawPathIterator(x, y, t.getOutline(null).getPathIterator(null)); } diff --git a/src/net/sourceforge/plantuml/ugraphic/svg/DriverTextSvg.java b/src/net/sourceforge/plantuml/ugraphic/svg/DriverTextSvg.java index 46303cf0c..1eab8bc4c 100644 --- a/src/net/sourceforge/plantuml/ugraphic/svg/DriverTextSvg.java +++ b/src/net/sourceforge/plantuml/ugraphic/svg/DriverTextSvg.java @@ -47,14 +47,13 @@ import net.sourceforge.plantuml.ugraphic.UDriver; import net.sourceforge.plantuml.ugraphic.UFont; import net.sourceforge.plantuml.ugraphic.UFontContext; import net.sourceforge.plantuml.ugraphic.UParam; -import net.sourceforge.plantuml.ugraphic.UShape; import net.sourceforge.plantuml.ugraphic.UText; import net.sourceforge.plantuml.ugraphic.color.ColorMapper; import net.sourceforge.plantuml.ugraphic.color.HColor; import net.sourceforge.plantuml.ugraphic.color.HColorGradient; import net.sourceforge.plantuml.ugraphic.color.HColorUtils; -public class DriverTextSvg implements UDriver { +public class DriverTextSvg implements UDriver { private final StringBounder stringBounder; private final ClipContainer clipContainer; @@ -64,14 +63,12 @@ public class DriverTextSvg implements UDriver { this.clipContainer = clipContainer; } - public void draw(UShape ushape, double x, double y, ColorMapper mapper, UParam param, SvgGraphics svg) { - + public void draw(UText shape, double x, double y, ColorMapper mapper, UParam param, SvgGraphics svg) { final UClip clip = clipContainer.getClip(); if (clip != null && clip.isInside(x, y) == false) { return; } - final UText shape = (UText) ushape; final FontConfiguration fontConfiguration = shape.getFontConfiguration(); if (HColorUtils.isTransparent(fontConfiguration.getColor())) { return; diff --git a/src/net/sourceforge/plantuml/ugraphic/tikz/DriverAtomTextTikz.java b/src/net/sourceforge/plantuml/ugraphic/tikz/DriverAtomTextTikz.java index d675aecb9..8bea14f6c 100644 --- a/src/net/sourceforge/plantuml/ugraphic/tikz/DriverAtomTextTikz.java +++ b/src/net/sourceforge/plantuml/ugraphic/tikz/DriverAtomTextTikz.java @@ -41,14 +41,12 @@ import net.sourceforge.plantuml.tikz.TikzGraphics; import net.sourceforge.plantuml.ugraphic.UDriver; import net.sourceforge.plantuml.ugraphic.UFont; import net.sourceforge.plantuml.ugraphic.UParam; -import net.sourceforge.plantuml.ugraphic.UShape; import net.sourceforge.plantuml.ugraphic.color.ColorMapper; import net.sourceforge.plantuml.ugraphic.color.HColor; -public class DriverAtomTextTikz implements UDriver { +public class DriverAtomTextTikz implements UDriver { - public void draw(UShape shape, double x, double y, ColorMapper mapper, UParam param, TikzGraphics tikz) { - final AtomText text = (AtomText) shape; + public void draw(AtomText text, double x, double y, ColorMapper mapper, UParam param, TikzGraphics tikz) { final FontConfiguration fontConfiguration = text.getFontConfiguration(); final UFont font = fontConfiguration.getFont(); final HColor col = fontConfiguration.getColor(); @@ -57,7 +55,6 @@ public class DriverAtomTextTikz implements UDriver { final boolean italic = font.isItalic(); final boolean bold = font.isBold(); tikz.text(x, y, text.getText(), underline, italic, bold); - } } diff --git a/src/net/sourceforge/plantuml/ugraphic/tikz/DriverCenteredCharacterTikz.java b/src/net/sourceforge/plantuml/ugraphic/tikz/DriverCenteredCharacterTikz.java index 5ce35a0d5..81f9e4c86 100644 --- a/src/net/sourceforge/plantuml/ugraphic/tikz/DriverCenteredCharacterTikz.java +++ b/src/net/sourceforge/plantuml/ugraphic/tikz/DriverCenteredCharacterTikz.java @@ -44,13 +44,11 @@ import net.sourceforge.plantuml.ugraphic.UCenteredCharacter; import net.sourceforge.plantuml.ugraphic.UDriver; import net.sourceforge.plantuml.ugraphic.UFont; import net.sourceforge.plantuml.ugraphic.UParam; -import net.sourceforge.plantuml.ugraphic.UShape; import net.sourceforge.plantuml.ugraphic.color.ColorMapper; -public class DriverCenteredCharacterTikz implements UDriver { +public class DriverCenteredCharacterTikz implements UDriver { - public void draw(UShape ushape, double x, double y, ColorMapper mapper, UParam param, TikzGraphics tikz) { - final UCenteredCharacter centeredCharacter = (UCenteredCharacter) ushape; + public void draw(UCenteredCharacter centeredCharacter, double x, double y, ColorMapper mapper, UParam param, TikzGraphics tikz) { final char c = centeredCharacter.getChar(); final UFont font = centeredCharacter.getFont(); final UnusedSpace unusedSpace = UnusedSpace.getUnusedSpace(font, c); @@ -61,7 +59,6 @@ public class DriverCenteredCharacterTikz implements UDriver { final TextLayout t = createTextLayout(font, "" + c); tikz.setStrokeColor(mapper.toColor(param.getColor())); tikz.drawPathIterator(xpos, ypos, t.getOutline(null).getPathIterator(null)); - } } diff --git a/src/net/sourceforge/plantuml/ugraphic/tikz/DriverCenteredCharacterTikz2.java b/src/net/sourceforge/plantuml/ugraphic/tikz/DriverCenteredCharacterTikz2.java index d652698d1..4f0f4f5a2 100644 --- a/src/net/sourceforge/plantuml/ugraphic/tikz/DriverCenteredCharacterTikz2.java +++ b/src/net/sourceforge/plantuml/ugraphic/tikz/DriverCenteredCharacterTikz2.java @@ -38,18 +38,15 @@ import net.sourceforge.plantuml.tikz.TikzGraphics; import net.sourceforge.plantuml.ugraphic.UCenteredCharacter; import net.sourceforge.plantuml.ugraphic.UDriver; import net.sourceforge.plantuml.ugraphic.UParam; -import net.sourceforge.plantuml.ugraphic.UShape; import net.sourceforge.plantuml.ugraphic.color.ColorMapper; -public class DriverCenteredCharacterTikz2 implements UDriver { +public class DriverCenteredCharacterTikz2 implements UDriver { - public void draw(UShape ushape, double x, double y, ColorMapper mapper, UParam param, TikzGraphics tikz) { - final UCenteredCharacter centeredCharacter = (UCenteredCharacter) ushape; + public void draw(UCenteredCharacter centeredCharacter, double x, double y, ColorMapper mapper, UParam param, TikzGraphics tikz) { final char c = centeredCharacter.getChar(); tikz.setStrokeColor(mapper.toColor(param.getColor())); tikz.drawSingleCharacter(x, y, c); - } } diff --git a/src/net/sourceforge/plantuml/ugraphic/tikz/DriverDotPathTikz.java b/src/net/sourceforge/plantuml/ugraphic/tikz/DriverDotPathTikz.java index 2ed616df4..565915309 100644 --- a/src/net/sourceforge/plantuml/ugraphic/tikz/DriverDotPathTikz.java +++ b/src/net/sourceforge/plantuml/ugraphic/tikz/DriverDotPathTikz.java @@ -38,13 +38,11 @@ import net.sourceforge.plantuml.posimo.DotPath; import net.sourceforge.plantuml.tikz.TikzGraphics; import net.sourceforge.plantuml.ugraphic.UDriver; import net.sourceforge.plantuml.ugraphic.UParam; -import net.sourceforge.plantuml.ugraphic.UShape; import net.sourceforge.plantuml.ugraphic.color.ColorMapper; -public class DriverDotPathTikz implements UDriver { +public class DriverDotPathTikz implements UDriver { - public void draw(UShape shape, double x, double y, ColorMapper mapper, UParam param, TikzGraphics tikz) { - final DotPath path = (DotPath) shape; + public void draw(DotPath path, double x, double y, ColorMapper mapper, UParam param, TikzGraphics tikz) { tikz.setFillColor(null); tikz.setStrokeColor(mapper.toColor(param.getColor())); tikz.setStrokeWidth(param.getStroke().getThickness(), param.getStroke().getDashTikz()); diff --git a/src/net/sourceforge/plantuml/ugraphic/tikz/DriverEllipseTikz.java b/src/net/sourceforge/plantuml/ugraphic/tikz/DriverEllipseTikz.java index d3fe91803..356558b29 100644 --- a/src/net/sourceforge/plantuml/ugraphic/tikz/DriverEllipseTikz.java +++ b/src/net/sourceforge/plantuml/ugraphic/tikz/DriverEllipseTikz.java @@ -38,13 +38,11 @@ import net.sourceforge.plantuml.tikz.TikzGraphics; import net.sourceforge.plantuml.ugraphic.UDriver; import net.sourceforge.plantuml.ugraphic.UEllipse; import net.sourceforge.plantuml.ugraphic.UParam; -import net.sourceforge.plantuml.ugraphic.UShape; import net.sourceforge.plantuml.ugraphic.color.ColorMapper; -public class DriverEllipseTikz implements UDriver { +public class DriverEllipseTikz implements UDriver { - public void draw(UShape ushape, double x, double y, ColorMapper mapper, UParam param, TikzGraphics tikz) { - final UEllipse shape = (UEllipse) ushape; + public void draw(UEllipse shape, double x, double y, ColorMapper mapper, UParam param, TikzGraphics tikz) { final double width = shape.getWidth(); final double height = shape.getHeight(); diff --git a/src/net/sourceforge/plantuml/ugraphic/tikz/DriverImageTikz.java b/src/net/sourceforge/plantuml/ugraphic/tikz/DriverImageTikz.java index 3916c10a4..66f348575 100644 --- a/src/net/sourceforge/plantuml/ugraphic/tikz/DriverImageTikz.java +++ b/src/net/sourceforge/plantuml/ugraphic/tikz/DriverImageTikz.java @@ -38,13 +38,11 @@ import net.sourceforge.plantuml.tikz.TikzGraphics; import net.sourceforge.plantuml.ugraphic.UDriver; import net.sourceforge.plantuml.ugraphic.UImage; import net.sourceforge.plantuml.ugraphic.UParam; -import net.sourceforge.plantuml.ugraphic.UShape; import net.sourceforge.plantuml.ugraphic.color.ColorMapper; -public class DriverImageTikz implements UDriver { +public class DriverImageTikz implements UDriver { - public void draw(UShape ushape, double x, double y, ColorMapper mapper, UParam param, TikzGraphics tikz) { - final UImage shape = (UImage) ushape; + public void draw(UImage shape, double x, double y, ColorMapper mapper, UParam param, TikzGraphics tikz) { final String rawFileName = shape.getRawFileName(); if (rawFileName != null) { final String raw = "\\includegraphics{" + rawFileName + "}"; diff --git a/src/net/sourceforge/plantuml/ugraphic/tikz/DriverLineTikz.java b/src/net/sourceforge/plantuml/ugraphic/tikz/DriverLineTikz.java index 082b7550a..55d999e66 100644 --- a/src/net/sourceforge/plantuml/ugraphic/tikz/DriverLineTikz.java +++ b/src/net/sourceforge/plantuml/ugraphic/tikz/DriverLineTikz.java @@ -38,14 +38,11 @@ import net.sourceforge.plantuml.tikz.TikzGraphics; import net.sourceforge.plantuml.ugraphic.UDriver; import net.sourceforge.plantuml.ugraphic.ULine; import net.sourceforge.plantuml.ugraphic.UParam; -import net.sourceforge.plantuml.ugraphic.UShape; import net.sourceforge.plantuml.ugraphic.color.ColorMapper; -public class DriverLineTikz implements UDriver { - - public void draw(UShape shape, double x, double y, ColorMapper mapper, UParam param, TikzGraphics tikz) { - final ULine line = (ULine) shape; +public class DriverLineTikz implements UDriver { + public void draw(ULine line, double x, double y, ColorMapper mapper, UParam param, TikzGraphics tikz) { double x2 = x + line.getDX(); double y2 = y + line.getDY(); tikz.setStrokeColor(mapper.toColor(param.getColor())); diff --git a/src/net/sourceforge/plantuml/ugraphic/tikz/DriverNoneTikz.java b/src/net/sourceforge/plantuml/ugraphic/tikz/DriverNoneTikz.java deleted file mode 100644 index 63435a6fe..000000000 --- a/src/net/sourceforge/plantuml/ugraphic/tikz/DriverNoneTikz.java +++ /dev/null @@ -1,48 +0,0 @@ -/* ======================================================================== - * PlantUML : a free UML diagram generator - * ======================================================================== - * - * (C) Copyright 2009-2020, Arnaud Roques - * - * Project Info: http://plantuml.com - * - * If you like this project or if you find it useful, you can support us at: - * - * http://plantuml.com/patreon (only 1$ per month!) - * http://plantuml.com/paypal - * - * This file is part of PlantUML. - * - * PlantUML is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * PlantUML distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public - * License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, - * USA. - * - * - * Original Author: Arnaud Roques - * - */ -package net.sourceforge.plantuml.ugraphic.tikz; - -import net.sourceforge.plantuml.tikz.TikzGraphics; -import net.sourceforge.plantuml.ugraphic.UDriver; -import net.sourceforge.plantuml.ugraphic.UParam; -import net.sourceforge.plantuml.ugraphic.UShape; -import net.sourceforge.plantuml.ugraphic.color.ColorMapper; - -public class DriverNoneTikz implements UDriver { - - public void draw(UShape shape, double x, double y, ColorMapper mapper, UParam param, TikzGraphics object) { - } - -} diff --git a/src/net/sourceforge/plantuml/ugraphic/tikz/DriverUPathTikz.java b/src/net/sourceforge/plantuml/ugraphic/tikz/DriverPathTikz.java similarity index 89% rename from src/net/sourceforge/plantuml/ugraphic/tikz/DriverUPathTikz.java rename to src/net/sourceforge/plantuml/ugraphic/tikz/DriverPathTikz.java index e41a0354f..2df1c7e50 100644 --- a/src/net/sourceforge/plantuml/ugraphic/tikz/DriverUPathTikz.java +++ b/src/net/sourceforge/plantuml/ugraphic/tikz/DriverPathTikz.java @@ -40,15 +40,13 @@ import net.sourceforge.plantuml.tikz.TikzGraphics; import net.sourceforge.plantuml.ugraphic.UDriver; import net.sourceforge.plantuml.ugraphic.UParam; import net.sourceforge.plantuml.ugraphic.UPath; -import net.sourceforge.plantuml.ugraphic.UShape; import net.sourceforge.plantuml.ugraphic.color.ColorMapper; import net.sourceforge.plantuml.ugraphic.color.HColor; import net.sourceforge.plantuml.ugraphic.color.HColorGradient; -public class DriverUPathTikz implements UDriver { +public class DriverPathTikz implements UDriver { - public void draw(UShape shape, double x, double y, ColorMapper mapper, UParam param, TikzGraphics tikz) { - final UPath path = (UPath) shape; + public void draw(UPath path, double x, double y, ColorMapper mapper, UParam param, TikzGraphics tikz) { final HColor back = param.getBackcolor(); if (back instanceof HColorGradient) { final HColorGradient gr = (HColorGradient) back; diff --git a/src/net/sourceforge/plantuml/ugraphic/tikz/DriverPolygonTikz.java b/src/net/sourceforge/plantuml/ugraphic/tikz/DriverPolygonTikz.java index 3abdcb8cd..f1555494b 100644 --- a/src/net/sourceforge/plantuml/ugraphic/tikz/DriverPolygonTikz.java +++ b/src/net/sourceforge/plantuml/ugraphic/tikz/DriverPolygonTikz.java @@ -40,15 +40,13 @@ import net.sourceforge.plantuml.tikz.TikzGraphics; import net.sourceforge.plantuml.ugraphic.UDriver; import net.sourceforge.plantuml.ugraphic.UParam; import net.sourceforge.plantuml.ugraphic.UPolygon; -import net.sourceforge.plantuml.ugraphic.UShape; import net.sourceforge.plantuml.ugraphic.color.ColorMapper; import net.sourceforge.plantuml.ugraphic.color.HColor; import net.sourceforge.plantuml.ugraphic.color.HColorGradient; -public class DriverPolygonTikz implements UDriver { +public class DriverPolygonTikz implements UDriver { - public void draw(UShape shape, double x, double y, ColorMapper mapper, UParam param, TikzGraphics tikz) { - final UPolygon poly = (UPolygon) shape; + public void draw(UPolygon poly, double x, double y, ColorMapper mapper, UParam param, TikzGraphics tikz) { final double points[] = poly.getPointArray(x, y); final HColor back = param.getBackcolor(); diff --git a/src/net/sourceforge/plantuml/ugraphic/tikz/DriverRectangleTikz.java b/src/net/sourceforge/plantuml/ugraphic/tikz/DriverRectangleTikz.java index 1b2cd6b46..730954829 100644 --- a/src/net/sourceforge/plantuml/ugraphic/tikz/DriverRectangleTikz.java +++ b/src/net/sourceforge/plantuml/ugraphic/tikz/DriverRectangleTikz.java @@ -40,17 +40,14 @@ import net.sourceforge.plantuml.tikz.TikzGraphics; import net.sourceforge.plantuml.ugraphic.UDriver; import net.sourceforge.plantuml.ugraphic.UParam; import net.sourceforge.plantuml.ugraphic.URectangle; -import net.sourceforge.plantuml.ugraphic.UShape; import net.sourceforge.plantuml.ugraphic.color.ColorMapper; import net.sourceforge.plantuml.ugraphic.color.HColor; import net.sourceforge.plantuml.ugraphic.color.HColorGradient; import net.sourceforge.plantuml.utils.MathUtils; -public class DriverRectangleTikz implements UDriver { - - public void draw(UShape shape, double x, double y, ColorMapper mapper, UParam param, TikzGraphics tikz) { - final URectangle rect = (URectangle) shape; +public class DriverRectangleTikz implements UDriver { + public void draw(URectangle rect, double x, double y, ColorMapper mapper, UParam param, TikzGraphics tikz) { final double width = rect.getWidth(); final double height = rect.getHeight(); final double r = MathUtils.min(rect.getRx(), rect.getRy(), width / 2, height / 2); diff --git a/src/net/sourceforge/plantuml/ugraphic/tikz/DriverUTextTikz.java b/src/net/sourceforge/plantuml/ugraphic/tikz/DriverTextTikz.java similarity index 89% rename from src/net/sourceforge/plantuml/ugraphic/tikz/DriverUTextTikz.java rename to src/net/sourceforge/plantuml/ugraphic/tikz/DriverTextTikz.java index 8075083d5..f2f3a8f6f 100644 --- a/src/net/sourceforge/plantuml/ugraphic/tikz/DriverUTextTikz.java +++ b/src/net/sourceforge/plantuml/ugraphic/tikz/DriverTextTikz.java @@ -40,15 +40,13 @@ import net.sourceforge.plantuml.tikz.TikzGraphics; import net.sourceforge.plantuml.ugraphic.UDriver; import net.sourceforge.plantuml.ugraphic.UFont; import net.sourceforge.plantuml.ugraphic.UParam; -import net.sourceforge.plantuml.ugraphic.UShape; import net.sourceforge.plantuml.ugraphic.UText; import net.sourceforge.plantuml.ugraphic.color.ColorMapper; import net.sourceforge.plantuml.ugraphic.color.HColor; -public class DriverUTextTikz implements UDriver { +public class DriverTextTikz implements UDriver { - public void draw(UShape ushape, double x, double y, ColorMapper mapper, UParam param, TikzGraphics tikz) { - final UText shape = (UText) ushape; + public void draw(UText shape, double x, double y, ColorMapper mapper, UParam param, TikzGraphics tikz) { final FontConfiguration fontConfiguration = shape.getFontConfiguration(); final UFont font = fontConfiguration.getFont(); final HColor col = fontConfiguration.getColor(); diff --git a/src/net/sourceforge/plantuml/ugraphic/tikz/UGraphicTikz.java b/src/net/sourceforge/plantuml/ugraphic/tikz/UGraphicTikz.java index 57a3b2b68..c3c6a94fd 100644 --- a/src/net/sourceforge/plantuml/ugraphic/tikz/UGraphicTikz.java +++ b/src/net/sourceforge/plantuml/ugraphic/tikz/UGraphicTikz.java @@ -76,14 +76,14 @@ public class UGraphicTikz extends AbstractUGraphic implements Clip private void register() { registerDriver(URectangle.class, new DriverRectangleTikz()); - registerDriver(UText.class, new DriverUTextTikz()); + registerDriver(UText.class, new DriverTextTikz()); registerDriver(AtomText.class, new DriverAtomTextTikz()); registerDriver(ULine.class, new DriverLineTikz()); registerDriver(UPolygon.class, new DriverPolygonTikz()); registerDriver(UEllipse.class, new DriverEllipseTikz()); registerDriver(UImage.class, new DriverImageTikz()); - registerDriver(UImageSvg.class, new DriverNoneTikz()); - registerDriver(UPath.class, new DriverUPathTikz()); + ignoreShape(UImageSvg.class); + registerDriver(UPath.class, new DriverPathTikz()); registerDriver(DotPath.class, new DriverDotPathTikz()); // registerDriver(UCenteredCharacter.class, new DriverCenteredCharacterTikz()); registerDriver(UCenteredCharacter.class, new DriverCenteredCharacterTikz2()); diff --git a/src/net/sourceforge/plantuml/ugraphic/visio/DriverDotPathVdx.java b/src/net/sourceforge/plantuml/ugraphic/visio/DriverDotPathVdx.java index 5f0b0aee9..d05e35cd8 100644 --- a/src/net/sourceforge/plantuml/ugraphic/visio/DriverDotPathVdx.java +++ b/src/net/sourceforge/plantuml/ugraphic/visio/DriverDotPathVdx.java @@ -37,13 +37,11 @@ package net.sourceforge.plantuml.ugraphic.visio; import net.sourceforge.plantuml.posimo.DotPath; import net.sourceforge.plantuml.ugraphic.UDriver; import net.sourceforge.plantuml.ugraphic.UParam; -import net.sourceforge.plantuml.ugraphic.UShape; import net.sourceforge.plantuml.ugraphic.color.ColorMapper; -public class DriverDotPathVdx implements UDriver { +public class DriverDotPathVdx implements UDriver { - public void draw(UShape shape, double x, double y, ColorMapper mapper, UParam param, VisioGraphics visio) { - final DotPath path = (DotPath) shape; + public void draw(DotPath path, double x, double y, ColorMapper mapper, UParam param, VisioGraphics visio) { visio.upath(x, y, path.toUPath()); } diff --git a/src/net/sourceforge/plantuml/ugraphic/visio/DriverLineVdx.java b/src/net/sourceforge/plantuml/ugraphic/visio/DriverLineVdx.java index e7a529555..2af8b40d1 100644 --- a/src/net/sourceforge/plantuml/ugraphic/visio/DriverLineVdx.java +++ b/src/net/sourceforge/plantuml/ugraphic/visio/DriverLineVdx.java @@ -37,19 +37,14 @@ package net.sourceforge.plantuml.ugraphic.visio; import net.sourceforge.plantuml.ugraphic.UDriver; import net.sourceforge.plantuml.ugraphic.ULine; import net.sourceforge.plantuml.ugraphic.UParam; -import net.sourceforge.plantuml.ugraphic.UShape; import net.sourceforge.plantuml.ugraphic.color.ColorMapper; -public class DriverLineVdx implements UDriver { - - public void draw(UShape shape, double x, double y, ColorMapper mapper, UParam param, VisioGraphics visio) { - final ULine line = (ULine) shape; +public class DriverLineVdx implements UDriver { + public void draw(ULine line, double x, double y, ColorMapper mapper, UParam param, VisioGraphics visio) { final double dx = line.getDX(); final double dy = line.getDY(); - visio.line(x, y, x + dx, y + dy); - } } diff --git a/src/net/sourceforge/plantuml/ugraphic/visio/DriverNoneVdx.java b/src/net/sourceforge/plantuml/ugraphic/visio/DriverNoneVdx.java deleted file mode 100644 index 28bd8d340..000000000 --- a/src/net/sourceforge/plantuml/ugraphic/visio/DriverNoneVdx.java +++ /dev/null @@ -1,47 +0,0 @@ -/* ======================================================================== - * PlantUML : a free UML diagram generator - * ======================================================================== - * - * (C) Copyright 2009-2020, Arnaud Roques - * - * Project Info: http://plantuml.com - * - * If you like this project or if you find it useful, you can support us at: - * - * http://plantuml.com/patreon (only 1$ per month!) - * http://plantuml.com/paypal - * - * This file is part of PlantUML. - * - * PlantUML is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * PlantUML distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public - * License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, - * USA. - * - * - * Original Author: Arnaud Roques - * - */ -package net.sourceforge.plantuml.ugraphic.visio; - -import net.sourceforge.plantuml.ugraphic.UDriver; -import net.sourceforge.plantuml.ugraphic.UParam; -import net.sourceforge.plantuml.ugraphic.UShape; -import net.sourceforge.plantuml.ugraphic.color.ColorMapper; - -public class DriverNoneVdx implements UDriver { - - public void draw(UShape shape, double x, double y, ColorMapper mapper, UParam param, VisioGraphics object) { - } - -} diff --git a/src/net/sourceforge/plantuml/ugraphic/visio/DriverUPathVdx.java b/src/net/sourceforge/plantuml/ugraphic/visio/DriverPathVdx.java similarity index 85% rename from src/net/sourceforge/plantuml/ugraphic/visio/DriverUPathVdx.java rename to src/net/sourceforge/plantuml/ugraphic/visio/DriverPathVdx.java index 9e74e6230..cc967f80d 100644 --- a/src/net/sourceforge/plantuml/ugraphic/visio/DriverUPathVdx.java +++ b/src/net/sourceforge/plantuml/ugraphic/visio/DriverPathVdx.java @@ -37,16 +37,12 @@ package net.sourceforge.plantuml.ugraphic.visio; import net.sourceforge.plantuml.ugraphic.UDriver; import net.sourceforge.plantuml.ugraphic.UParam; import net.sourceforge.plantuml.ugraphic.UPath; -import net.sourceforge.plantuml.ugraphic.UShape; import net.sourceforge.plantuml.ugraphic.color.ColorMapper; -public class DriverUPathVdx implements UDriver { - - public void draw(UShape shape, double x, double y, ColorMapper mapper, UParam param, VisioGraphics visio) { - final UPath path = (UPath) shape; +public class DriverPathVdx implements UDriver { + public void draw(UPath path, double x, double y, ColorMapper mapper, UParam param, VisioGraphics visio) { visio.upath(x, y, path); - } } diff --git a/src/net/sourceforge/plantuml/ugraphic/visio/DriverPolygonVdx.java b/src/net/sourceforge/plantuml/ugraphic/visio/DriverPolygonVdx.java index 24ddd4223..e80ce356e 100644 --- a/src/net/sourceforge/plantuml/ugraphic/visio/DriverPolygonVdx.java +++ b/src/net/sourceforge/plantuml/ugraphic/visio/DriverPolygonVdx.java @@ -37,13 +37,11 @@ package net.sourceforge.plantuml.ugraphic.visio; import net.sourceforge.plantuml.ugraphic.UDriver; import net.sourceforge.plantuml.ugraphic.UParam; import net.sourceforge.plantuml.ugraphic.UPolygon; -import net.sourceforge.plantuml.ugraphic.UShape; import net.sourceforge.plantuml.ugraphic.color.ColorMapper; -public class DriverPolygonVdx implements UDriver { +public class DriverPolygonVdx implements UDriver { - public void draw(UShape shape, double x, double y, ColorMapper mapper, UParam param, VisioGraphics visio) { - final UPolygon poly = (UPolygon) shape; + public void draw(UPolygon poly, double x, double y, ColorMapper mapper, UParam param, VisioGraphics visio) { visio.polygon(poly.translate(x, y)); } diff --git a/src/net/sourceforge/plantuml/ugraphic/visio/DriverRectangleVdx.java b/src/net/sourceforge/plantuml/ugraphic/visio/DriverRectangleVdx.java index c3bb4486b..90ae4efe9 100644 --- a/src/net/sourceforge/plantuml/ugraphic/visio/DriverRectangleVdx.java +++ b/src/net/sourceforge/plantuml/ugraphic/visio/DriverRectangleVdx.java @@ -37,19 +37,14 @@ package net.sourceforge.plantuml.ugraphic.visio; import net.sourceforge.plantuml.ugraphic.UDriver; import net.sourceforge.plantuml.ugraphic.UParam; import net.sourceforge.plantuml.ugraphic.URectangle; -import net.sourceforge.plantuml.ugraphic.UShape; import net.sourceforge.plantuml.ugraphic.color.ColorMapper; -public class DriverRectangleVdx implements UDriver { - - public void draw(UShape shape, double x, double y, ColorMapper mapper, UParam param, VisioGraphics visio) { - final URectangle rect = (URectangle) shape; +public class DriverRectangleVdx implements UDriver { + public void draw(URectangle rect, double x, double y, ColorMapper mapper, UParam param, VisioGraphics visio) { final double width = rect.getWidth(); final double height = rect.getHeight(); - visio.rectangle(x, y, width, height); - } } diff --git a/src/net/sourceforge/plantuml/ugraphic/visio/DriverTextVdx.java b/src/net/sourceforge/plantuml/ugraphic/visio/DriverTextVdx.java index 21f8a6b1a..15c3de828 100644 --- a/src/net/sourceforge/plantuml/ugraphic/visio/DriverTextVdx.java +++ b/src/net/sourceforge/plantuml/ugraphic/visio/DriverTextVdx.java @@ -43,11 +43,10 @@ import net.sourceforge.plantuml.ugraphic.UDriver; import net.sourceforge.plantuml.ugraphic.UFont; import net.sourceforge.plantuml.ugraphic.UFontContext; import net.sourceforge.plantuml.ugraphic.UParam; -import net.sourceforge.plantuml.ugraphic.UShape; import net.sourceforge.plantuml.ugraphic.UText; import net.sourceforge.plantuml.ugraphic.color.ColorMapper; -public class DriverTextVdx implements UDriver { +public class DriverTextVdx implements UDriver { private final StringBounder stringBounder; @@ -55,8 +54,7 @@ public class DriverTextVdx implements UDriver { this.stringBounder = stringBounder; } - public void draw(UShape ushape, double x, double y, ColorMapper mapper, UParam param, VisioGraphics visio) { - final UText shape = (UText) ushape; + public void draw(UText shape, double x, double y, ColorMapper mapper, UParam param, VisioGraphics visio) { Thread.dumpStack(); final FontConfiguration fontConfiguration = shape.getFontConfiguration(); diff --git a/src/net/sourceforge/plantuml/ugraphic/visio/UGraphicVdx.java b/src/net/sourceforge/plantuml/ugraphic/visio/UGraphicVdx.java index 7355f04c2..fdb6605c4 100644 --- a/src/net/sourceforge/plantuml/ugraphic/visio/UGraphicVdx.java +++ b/src/net/sourceforge/plantuml/ugraphic/visio/UGraphicVdx.java @@ -85,15 +85,15 @@ public class UGraphicVdx extends AbstractUGraphic implements Clip private void register() { registerDriver(URectangle.class, new DriverRectangleVdx()); registerDriver(UText.class, new DriverTextVdx(getStringBounder())); - registerDriver(AtomText.class, new DriverNoneVdx()); + ignoreShape(AtomText.class); registerDriver(ULine.class, new DriverLineVdx()); registerDriver(UPolygon.class, new DriverPolygonVdx()); - registerDriver(UEllipse.class, new DriverNoneVdx()); - registerDriver(UImage.class, new DriverNoneVdx()); - registerDriver(UImageSvg.class, new DriverNoneVdx()); - registerDriver(UPath.class, new DriverUPathVdx()); + ignoreShape(UEllipse.class); + ignoreShape(UImage.class); + ignoreShape(UImageSvg.class); + registerDriver(UPath.class, new DriverPathVdx()); registerDriver(DotPath.class, new DriverDotPathVdx()); - registerDriver(UCenteredCharacter.class, new DriverNoneVdx()); + ignoreShape(UCenteredCharacter.class); } @Override