From aa033bc2c10daebf958ee795420a7881f5d73b02 Mon Sep 17 00:00:00 2001 From: Arnaud Roques Date: Wed, 8 Mar 2023 21:49:44 +0100 Subject: [PATCH] wip --- .../plantuml/com/ctreber/acearth/ACearth.java | 2 +- .../com/ctreber/aclib/gui/MOBoolean.java | 2 +- .../com/ctreber/aclib/sort/CTSort.java | 2 +- .../com/google/zxing/BarcodeFormat.java | 2 +- src/net/atmp/CucaDiagram.java | 26 ++---- src/net/atmp/PixelImage.java | 6 +- .../sourceforge/plantuml/AbstractPSystem.java | 10 ++ .../sourceforge/plantuml/PSystemUtils.java | 2 +- src/net/sourceforge/plantuml/ProgressBar.java | 2 +- src/net/sourceforge/plantuml/StringUtils.java | 16 +++- .../plantuml/abel/EntityFactory.java | 3 +- .../plantuml/acearth/PSystemXearth.java | 2 +- .../command/CommandEndif3.java | 4 +- .../activitydiagram3/ftile/BoxStyle.java | 4 +- .../ftile/vertical/FtileBox2.java | 2 +- .../activitydiagram3/gtile/GtileColumns.java | 2 +- .../gtile/GtileHexagonInsideLabelled.java | 2 +- .../activitydiagram3/gtile/GtileTopDown.java | 2 +- .../activitydiagram3/gtile/GtileTopDown3.java | 2 +- .../classdiagram/ClassDiagramFactory.java | 2 - .../command/CommandLinkClass.java | 24 +++-- .../command/CommandNamespaceSeparator.java | 16 ++-- .../plantuml/command/CommonCommands.java | 2 + .../compositediagram/CompositeDiagram.java | 2 +- .../DescriptionDiagramFactory.java | 1 - .../plantuml/dot/GraphvizUtils.java | 2 +- src/net/sourceforge/plantuml/emoji/Emoji.java | 2 +- .../plantuml/flashcode/FlashCodeFactory.java | 2 +- .../plantuml/jsondiagram/Arrow.java | 2 +- .../plantuml/klimt/UBackground.java | 1 - .../sourceforge/plantuml/klimt/UParam.java | 2 - .../plantuml/klimt/color/ColorHSB.java | 1 + .../plantuml/klimt/color/ColorMapper.java | 3 + .../plantuml/klimt/color/ColorOrder.java | 1 + .../plantuml/klimt/color/ColorParser.java | 1 + .../plantuml/klimt/color/ColorUtils.java | 30 +++--- .../plantuml/klimt/color/Colors.java | 1 + .../plantuml/klimt/color/HColor.java | 23 +++-- .../plantuml/klimt/color/HColorAutomagic.java | 1 + .../plantuml/klimt/color/HColorGradient.java | 1 + .../plantuml/klimt/color/HColorMiddle.java | 1 + .../plantuml/klimt/color/HColorSet.java | 59 +++++++----- .../plantuml/klimt/color/HColorSimple.java | 92 ++++++++++--------- .../plantuml/klimt/color/HColors.java | 25 ++--- .../plantuml/klimt/color/HSLColor.java | 1 + .../klimt/color/HUSLColorConverter.java | 1 + .../color/NoSuchColorRuntimeException.java | 1 + .../klimt/drawing/AbstractCommonUGraphic.java | 1 + .../klimt/drawing/AbstractUGraphic.java | 2 +- .../AbstractUGraphicHorizontalLine.java | 1 + .../plantuml/klimt/drawing/LimitFinder.java | 1 + .../klimt/drawing/TextLimitFinder.java | 1 + .../klimt/drawing/UGraphicDelegator.java | 1 + .../klimt/drawing/UGraphicFilter.java | 1 + .../drawing/UGraphicInterceptorUDrawable.java | 1 + .../plantuml/klimt/drawing/UGraphicNo.java | 1 + .../plantuml/klimt/drawing/UGraphicNull.java | 1 + .../klimt/drawing/UGraphicStencil.java | 1 + .../plantuml/klimt/font/FontStyle.java | 2 +- .../plantuml/klimt/geom/BezierUtils.java | 2 +- .../plantuml/klimt/geom/MagneticBorder.java | 2 +- .../klimt/geom/MagneticBorderNone.java | 2 +- .../plantuml/klimt/geom/MinMax.java | 3 +- .../klimt/geom/PlacementStrategy.java | 2 +- .../geom/PlacementStrategyVisibility.java | 2 +- .../klimt/geom/PlacementStrategyX1X2.java | 2 +- .../klimt/geom/PlacementStrategyX1Y2Y3.java | 2 +- .../klimt/geom/PlacementStrategyY1Y2.java | 2 +- .../geom/PlacementStrategyY1Y2Center.java | 2 +- .../klimt/geom/PlacementStrategyY1Y2Left.java | 2 +- .../geom/PlacementStrategyY1Y2Right.java | 2 +- .../plantuml/klimt/geom/PositionableImpl.java | 4 +- .../klimt/geom/PositionableUtils.java | 2 +- .../plantuml/klimt/geom/RectangleArea.java | 2 +- .../plantuml/klimt/geom/ULayoutGroup.java | 2 +- .../plantuml/klimt/geom/XCubicCurve2D.java | 2 +- .../plantuml/klimt/shape/TextBlockMarged.java | 4 +- .../plantuml/klimt/shape/TextBlockUtils.java | 6 +- .../plantuml/klimt/shape/UEmpty.java | 8 +- .../plantuml/klimt/shape/ULine.java | 4 +- .../AbstractClassOrObjectDiagram.java | 1 + .../sourceforge/plantuml/plasma/Plasma.java | 7 +- .../plantuml/statediagram/StateDiagram.java | 4 +- .../statediagram/StateDiagramFactory.java | 1 - .../svek/extremity/ExtremityArrow.java | 2 +- .../plantuml/swing/AboutWindow.java | 2 +- .../sourceforge/plantuml/url/CMapData.java | 1 + src/net/sourceforge/plantuml/url/Check.java | 1 + src/net/sourceforge/plantuml/url/Url.java | 33 +++---- .../sourceforge/plantuml/url/UrlBuilder.java | 1 + .../sourceforge/plantuml/utils/Inspector.java | 2 +- .../sourceforge/plantuml/utils/MathUtils.java | 16 ++-- .../sourceforge/plantuml/version/Version.java | 2 +- .../plantuml/wbs/WBSTextBlock.java | 2 +- src/smetana/core/debug/SmetanaDebug.java | 16 +++- 95 files changed, 328 insertions(+), 229 deletions(-) diff --git a/src/ext/plantuml/com/ctreber/acearth/ACearth.java b/src/ext/plantuml/com/ctreber/acearth/ACearth.java index 1f4f950f7..b9afb3dc9 100644 --- a/src/ext/plantuml/com/ctreber/acearth/ACearth.java +++ b/src/ext/plantuml/com/ctreber/acearth/ACearth.java @@ -97,7 +97,7 @@ import ext.plantuml.com.ctreber.aclib.sort.QuickSort; * @author Christian Treber, ct@ctreber.com */ public class ACearth { - // :: remove folder when __CORE__ + // ::remove folder when __CORE__ public static final String VERSION = "1.1"; public static final String BUILD = "22.11.2002 004"; diff --git a/src/ext/plantuml/com/ctreber/aclib/gui/MOBoolean.java b/src/ext/plantuml/com/ctreber/aclib/gui/MOBoolean.java index 67bc29544..952e0099b 100644 --- a/src/ext/plantuml/com/ctreber/aclib/gui/MOBoolean.java +++ b/src/ext/plantuml/com/ctreber/aclib/gui/MOBoolean.java @@ -9,7 +9,7 @@ package ext.plantuml.com.ctreber.aclib.gui; */ public class MOBoolean extends MonitoredObject { - // :: remove folder when __CORE__ + // ::remove folder when __CORE__ private boolean fBoolean; public MOBoolean() diff --git a/src/ext/plantuml/com/ctreber/aclib/sort/CTSort.java b/src/ext/plantuml/com/ctreber/aclib/sort/CTSort.java index 584f0ba2d..e169e0392 100644 --- a/src/ext/plantuml/com/ctreber/aclib/sort/CTSort.java +++ b/src/ext/plantuml/com/ctreber/aclib/sort/CTSort.java @@ -12,7 +12,7 @@ import java.util.Comparator; abstract public class CTSort { // ::remove folder when __HAXE__ - // :: remove folder when __CORE__ + // ::remove folder when __CORE__ public void sort(Object[] items) { sort(items, new DefaultComparator()); diff --git a/src/ext/plantuml/com/google/zxing/BarcodeFormat.java b/src/ext/plantuml/com/google/zxing/BarcodeFormat.java index 99ace745a..1dbd70fc4 100644 --- a/src/ext/plantuml/com/google/zxing/BarcodeFormat.java +++ b/src/ext/plantuml/com/google/zxing/BarcodeFormat.java @@ -25,7 +25,7 @@ import java.util.Hashtable; */ public final class BarcodeFormat { // ::remove folder when __HAXE__ - // :: remove folder when __CORE__ + // ::remove folder when __CORE__ // No, we can't use an enum here. J2ME doesn't support it. diff --git a/src/net/atmp/CucaDiagram.java b/src/net/atmp/CucaDiagram.java index 83cec53cb..13e76cd48 100644 --- a/src/net/atmp/CucaDiagram.java +++ b/src/net/atmp/CucaDiagram.java @@ -93,9 +93,6 @@ import net.sourceforge.plantuml.xmlsc.StateDiagramScxmlMaker; public abstract class CucaDiagram extends UmlDiagram implements GroupHierarchy, PortionShower, ICucaDiagram { - private String namespaceSeparator = null; - private boolean namespaceSeparatorHasBeenSet = false; - private final List hides2 = new ArrayList<>(); private final List removed = new ArrayList<>(); protected final EntityFactory entityFactory = new EntityFactory(hides2, removed, this); @@ -104,6 +101,12 @@ public abstract class CucaDiagram extends UmlDiagram implements GroupHierarchy, private boolean visibilityModifierPresent; + @Override + final public void setNamespaceSeparator(String namespaceSeparator) { + super.setNamespaceSeparator(namespaceSeparator); + entityFactory.setSeparator(namespaceSeparator); + } + public CucaDiagram(UmlSource source, UmlDiagramType type, Map orig) { super(source, type, orig); this.stacks.add(entityFactory.root().getData()); @@ -143,19 +146,6 @@ public abstract class CucaDiagram extends UmlDiagram implements GroupHierarchy, return StringUtils.eventuallyRemoveStartingAndEndingDoubleQuote(id); } - final public void setNamespaceSeparator(String namespaceSeparator) { - this.namespaceSeparatorHasBeenSet = true; - this.namespaceSeparator = namespaceSeparator; - entityFactory.setSeparator(namespaceSeparator); - } - - final public String getNamespaceSeparator() { - if (namespaceSeparatorHasBeenSet == false) - return "."; - - return namespaceSeparator; - } - @Override public boolean hasUrl() { for (Quark quark : entityFactory.quarks()) { @@ -233,7 +223,7 @@ public abstract class CucaDiagram extends UmlDiagram implements GroupHierarchy, public String removePortId(String id) { // To be kept - if ("::".equals(namespaceSeparator)) + if ("::".equals(getNamespaceSeparator())) return id; final int x = id.lastIndexOf("::"); if (x == -1) @@ -243,7 +233,7 @@ public abstract class CucaDiagram extends UmlDiagram implements GroupHierarchy, public String getPortId(String id) { // To be kept - if ("::".equals(namespaceSeparator)) + if ("::".equals(getNamespaceSeparator())) return null; final int x = id.lastIndexOf("::"); if (x == -1) diff --git a/src/net/atmp/PixelImage.java b/src/net/atmp/PixelImage.java index 7b35a256e..cecdfbcbd 100644 --- a/src/net/atmp/PixelImage.java +++ b/src/net/atmp/PixelImage.java @@ -91,7 +91,7 @@ public class PixelImage implements MutableImage { for (int j = 0; j < bufferedImageScale1.getHeight(); j++) { final int color = bufferedImageScale1.getRGB(i, j); final int rgb = getRgb(color); - final int grayScale = ColorUtils.getGrayScale(rgb); + final int grayScale = ColorUtils.getGrayScaleFromRGB(rgb); final int gray = grayScale + grayScale << 8 + grayScale << 16; final int a = getA(color); copy.setRGB(i, j, gray + a); @@ -150,8 +150,8 @@ public class PixelImage implements MutableImage { // if (isTransparent(color)) { // continue; // } - final int gray = ColorUtils.getGrayScale(rgb); - if (darkerRgb == -1 || gray < ColorUtils.getGrayScale(darkerRgb)) + final int gray = ColorUtils.getGrayScaleFromRGB(rgb); + if (darkerRgb == -1 || gray < ColorUtils.getGrayScaleFromRGB(darkerRgb)) darkerRgb = rgb; } diff --git a/src/net/sourceforge/plantuml/AbstractPSystem.java b/src/net/sourceforge/plantuml/AbstractPSystem.java index 447b56529..f9489030e 100644 --- a/src/net/sourceforge/plantuml/AbstractPSystem.java +++ b/src/net/sourceforge/plantuml/AbstractPSystem.java @@ -75,6 +75,16 @@ public abstract class AbstractPSystem implements Diagram { private int splitPagesHorizontal = 1; private int splitPagesVertical = 1; + private String namespaceSeparator = null; + + public void setNamespaceSeparator(String namespaceSeparator) { + this.namespaceSeparator = namespaceSeparator; + } + + final public String getNamespaceSeparator() { + return namespaceSeparator; + } + public AbstractPSystem(UmlSource source) { this.source = Objects.requireNonNull(source); } diff --git a/src/net/sourceforge/plantuml/PSystemUtils.java b/src/net/sourceforge/plantuml/PSystemUtils.java index fc1d81d6e..cdfbc9906 100644 --- a/src/net/sourceforge/plantuml/PSystemUtils.java +++ b/src/net/sourceforge/plantuml/PSystemUtils.java @@ -58,7 +58,7 @@ import net.sourceforge.plantuml.skin.SplitParam; import net.sourceforge.plantuml.utils.Log; public class PSystemUtils { - // :: remove file when __CORE__ + // ::remove file when __CORE__ // ::remove file when __HAXE__ public static List exportDiagrams(Diagram system, SuggestedFile suggested, diff --git a/src/net/sourceforge/plantuml/ProgressBar.java b/src/net/sourceforge/plantuml/ProgressBar.java index 9d83150ed..f84b72ba8 100644 --- a/src/net/sourceforge/plantuml/ProgressBar.java +++ b/src/net/sourceforge/plantuml/ProgressBar.java @@ -41,7 +41,7 @@ import java.util.logging.Level; import java.util.logging.LogRecord; public class ProgressBar { - // :: remove file when __CORE__ + // ::remove file when __CORE__ // ::remove file when __HAXE__ private static final java.util.logging.Logger logger; diff --git a/src/net/sourceforge/plantuml/StringUtils.java b/src/net/sourceforge/plantuml/StringUtils.java index 5b8589c7c..29ae48740 100644 --- a/src/net/sourceforge/plantuml/StringUtils.java +++ b/src/net/sourceforge/plantuml/StringUtils.java @@ -62,6 +62,15 @@ public class StringUtils { // ::done } + public static String goLowerCase(String s) { + // ::comment when __HAXE__ + return s.toLowerCase(Locale.ENGLISH); + // ::done + // ::uncomment when __HAXE__ + // return s.toLowerCase(); + // ::done + } + public static String eventuallyRemoveStartingAndEndingDoubleQuote(String s, String format) { if (s == null) return null; @@ -239,10 +248,6 @@ public class StringUtils { return goUpperCase("" + c).charAt(0); } - public static String goLowerCase(String s) { - return s.toLowerCase(Locale.ENGLISH); - } - public static char goLowerCase(char c) { return goLowerCase("" + c).charAt(0); } @@ -548,13 +553,14 @@ public class StringUtils { return h; } + // ::done + public static String sharp000000(int color) { final int v = 0xFFFFFF & color; String s = "000000" + Integer.toHexString(v).toUpperCase(); s = s.substring(s.length() - 6); return "#" + s; } - // ::done // ::comment when __CORE__ or __HAXE__ public static int getWcWidth(Display stringsToDisplay) { diff --git a/src/net/sourceforge/plantuml/abel/EntityFactory.java b/src/net/sourceforge/plantuml/abel/EntityFactory.java index 923f1c821..f8d826e11 100644 --- a/src/net/sourceforge/plantuml/abel/EntityFactory.java +++ b/src/net/sourceforge/plantuml/abel/EntityFactory.java @@ -73,8 +73,7 @@ public final class EntityFactory implements IEntityFactory { this.hides2 = hides2; this.removed = removed; this.diagram = diagram; - this.namespace = new Plasma("."); - // this.printspace = new Plasma("."); + this.namespace = new Plasma(); this.root = namespace.root(); this.rootGroup = new Entity(this.root, this, null, GroupType.ROOT, 0); } diff --git a/src/net/sourceforge/plantuml/acearth/PSystemXearth.java b/src/net/sourceforge/plantuml/acearth/PSystemXearth.java index 0d16655f9..d6c3ab0af 100644 --- a/src/net/sourceforge/plantuml/acearth/PSystemXearth.java +++ b/src/net/sourceforge/plantuml/acearth/PSystemXearth.java @@ -58,7 +58,7 @@ import net.sourceforge.plantuml.core.ImageData; import net.sourceforge.plantuml.core.UmlSource; public class PSystemXearth extends AbstractPSystem { - // :: remove folder when __CORE__ + // ::remove folder when __CORE__ final private int width; final private int height; diff --git a/src/net/sourceforge/plantuml/activitydiagram3/command/CommandEndif3.java b/src/net/sourceforge/plantuml/activitydiagram3/command/CommandEndif3.java index 4478c86b0..f07ce441c 100644 --- a/src/net/sourceforge/plantuml/activitydiagram3/command/CommandEndif3.java +++ b/src/net/sourceforge/plantuml/activitydiagram3/command/CommandEndif3.java @@ -53,7 +53,9 @@ public class CommandEndif3 extends SingleLineCommand2 { static IRegex getRegexConcat() { return RegexConcat.build(CommandEndif3.class.getName(), // RegexLeaf.start(), // - new RegexLeaf("endif"), // + new RegexLeaf("end"), // + RegexLeaf.spaceZeroOrMore(), // + new RegexLeaf("if"), // new RegexLeaf(";?"), // RegexLeaf.end()); } diff --git a/src/net/sourceforge/plantuml/activitydiagram3/ftile/BoxStyle.java b/src/net/sourceforge/plantuml/activitydiagram3/ftile/BoxStyle.java index b1ee9faca..72cea5694 100644 --- a/src/net/sourceforge/plantuml/activitydiagram3/ftile/BoxStyle.java +++ b/src/net/sourceforge/plantuml/activitydiagram3/ftile/BoxStyle.java @@ -88,7 +88,7 @@ public enum BoxStyle { ug.apply(UTranslate.dx(width - PADDING)).draw(vline); } }, - SDL_SAVE("save", '\\', 0) { + SDL_SAVE("load", '\\', 0) { @Override protected Shadowable getShape(double width, double height, double roundCorner) { final UPolygon result = new UPolygon(); @@ -99,7 +99,7 @@ public enum BoxStyle { return result; } }, - SDL_ANTISAVE("load", '/', 0) { + SDL_ANTISAVE("save", '/', 0) { @Override protected Shadowable getShape(double width, double height, double roundCorner) { final UPolygon result = new UPolygon(); diff --git a/src/net/sourceforge/plantuml/activitydiagram3/ftile/vertical/FtileBox2.java b/src/net/sourceforge/plantuml/activitydiagram3/ftile/vertical/FtileBox2.java index 0522c061e..c617f9681 100644 --- a/src/net/sourceforge/plantuml/activitydiagram3/ftile/vertical/FtileBox2.java +++ b/src/net/sourceforge/plantuml/activitydiagram3/ftile/vertical/FtileBox2.java @@ -192,7 +192,7 @@ public class FtileBox2 extends AbstractFtile { final UDrawable shape = boxStyle.getUDrawable(widthTotal, heightTotal, shadowing, roundCorner); final XDimension2D dimTotal = calculateDimension(ug.getStringBounder()); - ug.draw(new UEmpty(dimTotal)); + ug.draw(UEmpty.create(dimTotal)); final UStroke thickness = style.getStroke(); diff --git a/src/net/sourceforge/plantuml/activitydiagram3/gtile/GtileColumns.java b/src/net/sourceforge/plantuml/activitydiagram3/gtile/GtileColumns.java index 1050b90c4..0f999653e 100644 --- a/src/net/sourceforge/plantuml/activitydiagram3/gtile/GtileColumns.java +++ b/src/net/sourceforge/plantuml/activitydiagram3/gtile/GtileColumns.java @@ -104,7 +104,7 @@ public class GtileColumns extends AbstractGtile { final XDimension2D dim = gtiles.get(i).calculateDimension(stringBounder); final UTranslate pos = getPosition(i); final XDimension2D corner = dim.applyTranslate(pos); - result = MathUtils.max(result, corner); + result = MathUtils.maxDim(result, corner); } return result; } diff --git a/src/net/sourceforge/plantuml/activitydiagram3/gtile/GtileHexagonInsideLabelled.java b/src/net/sourceforge/plantuml/activitydiagram3/gtile/GtileHexagonInsideLabelled.java index 5600c6fba..540d9a7f8 100644 --- a/src/net/sourceforge/plantuml/activitydiagram3/gtile/GtileHexagonInsideLabelled.java +++ b/src/net/sourceforge/plantuml/activitydiagram3/gtile/GtileHexagonInsideLabelled.java @@ -107,7 +107,7 @@ public class GtileHexagonInsideLabelled extends GtileWithMargin { final UTranslate east = getCoord(GPoint.EAST_HOOK); final XDimension2D eastCorner = eastLabel.calculateDimension(stringBounder).applyTranslate(east); - return MathUtils.max(tmp, southCorner, eastCorner); + return MathUtils.maxDim(tmp, southCorner, eastCorner); } } diff --git a/src/net/sourceforge/plantuml/activitydiagram3/gtile/GtileTopDown.java b/src/net/sourceforge/plantuml/activitydiagram3/gtile/GtileTopDown.java index fe8581753..5ccc35642 100644 --- a/src/net/sourceforge/plantuml/activitydiagram3/gtile/GtileTopDown.java +++ b/src/net/sourceforge/plantuml/activitydiagram3/gtile/GtileTopDown.java @@ -118,7 +118,7 @@ public class GtileTopDown extends AbstractGtile { public XDimension2D calculateDimension(StringBounder stringBounder) { final XDimension2D corner1 = dim1.applyTranslate(getPos1()); final XDimension2D corner2 = dim2.applyTranslate(getPos2()); - return MathUtils.max(corner1, corner2); + return MathUtils.maxDim(corner1, corner2); } public Set getSwimlanes() { diff --git a/src/net/sourceforge/plantuml/activitydiagram3/gtile/GtileTopDown3.java b/src/net/sourceforge/plantuml/activitydiagram3/gtile/GtileTopDown3.java index 7410af7d7..f4c157b02 100644 --- a/src/net/sourceforge/plantuml/activitydiagram3/gtile/GtileTopDown3.java +++ b/src/net/sourceforge/plantuml/activitydiagram3/gtile/GtileTopDown3.java @@ -121,7 +121,7 @@ public class GtileTopDown3 extends AbstractGtile { final XDimension2D corner1 = dim1.applyTranslate(getPos1()); final XDimension2D corner2 = dim2.applyTranslate(getPos2()); final XDimension2D corner3 = dim3.applyTranslate(getPos3()); - return MathUtils.max(corner1, corner2, corner3); + return MathUtils.maxDim(corner1, corner2, corner3); } @Override diff --git a/src/net/sourceforge/plantuml/classdiagram/ClassDiagramFactory.java b/src/net/sourceforge/plantuml/classdiagram/ClassDiagramFactory.java index 2807439ae..4a9dd2148 100644 --- a/src/net/sourceforge/plantuml/classdiagram/ClassDiagramFactory.java +++ b/src/net/sourceforge/plantuml/classdiagram/ClassDiagramFactory.java @@ -155,8 +155,6 @@ public class ClassDiagramFactory extends PSystemCommandFactory { cmds.add(new CommandDiamondAssociation()); - cmds.add(new CommandNamespaceSeparator()); - cmds.add(new CommandCreateElementMultilines(0)); cmds.add(new CommandCreateElementMultilines(1)); CommonCommands.addTitleCommands(cmds); diff --git a/src/net/sourceforge/plantuml/classdiagram/command/CommandLinkClass.java b/src/net/sourceforge/plantuml/classdiagram/command/CommandLinkClass.java index 0ff4d83f9..4b6ffe2a8 100644 --- a/src/net/sourceforge/plantuml/classdiagram/command/CommandLinkClass.java +++ b/src/net/sourceforge/plantuml/classdiagram/command/CommandLinkClass.java @@ -53,6 +53,7 @@ import net.sourceforge.plantuml.klimt.color.NoSuchColorException; import net.sourceforge.plantuml.klimt.creole.Display; import net.sourceforge.plantuml.objectdiagram.AbstractClassOrObjectDiagram; import net.sourceforge.plantuml.plasma.Quark; +import net.sourceforge.plantuml.regex.IRegex; import net.sourceforge.plantuml.regex.RegexConcat; import net.sourceforge.plantuml.regex.RegexLeaf; import net.sourceforge.plantuml.regex.RegexOptional; @@ -101,16 +102,16 @@ final public class CommandLinkClass extends SingleLineCommand2\\>?|_\\>|[(#\\]>*+^\\{]|[\\|\\:]\\|\\>|\\|[>\\]]|o\\{|\\|\\{|o\\||\\|\\|)?")), // + optionalHead("ARROW_HEAD2", "[ox][%s]+", ":\\>\\>?", "_?\\>", "[(#\\]*+^\\{]", "[\\|:]\\|\\>", + "\\|[>\\]]", "o\\{", "\\|\\{", "o\\|", "\\|\\|")), // RegexLeaf.spaceZeroOrMore(), // @@ -141,6 +142,18 @@ final public class CommandLinkClass extends SingleLineCommand2 1) + sb.append("|"); + sb.append(s); + } + sb.append(")?"); + return new RegexLeaf(name, sb.toString()); + } + private static ColorParser color() { return ColorParser.simpleColor(ColorType.LINE); } @@ -156,7 +169,6 @@ final public class CommandLinkClass extends SingleLineCommand2 { +public class CommandNamespaceSeparator extends SingleLineCommand2 { - public CommandNamespaceSeparator() { + public static final CommandNamespaceSeparator ME = new CommandNamespaceSeparator(); + + private CommandNamespaceSeparator() { super(getRegexConcat()); } @@ -64,13 +66,13 @@ public class CommandNamespaceSeparator extends SingleLineCommand2 { } @Override - protected CommandExecutionResult executeArg(CucaDiagram diagram, LineLocation location, RegexResult arg) { + protected CommandExecutionResult executeArg(AbstractPSystem diagram, LineLocation location, RegexResult arg) { final String s = arg.get("SEPARATOR", 0); - if ("none".equalsIgnoreCase(s)) { + if ("none".equalsIgnoreCase(s)) diagram.setNamespaceSeparator(null); - } else { + else diagram.setNamespaceSeparator(s); - } + return CommandExecutionResult.ok(); } } diff --git a/src/net/sourceforge/plantuml/command/CommonCommands.java b/src/net/sourceforge/plantuml/command/CommonCommands.java index 155617519..707dd49b3 100644 --- a/src/net/sourceforge/plantuml/command/CommonCommands.java +++ b/src/net/sourceforge/plantuml/command/CommonCommands.java @@ -39,6 +39,7 @@ import java.util.List; import net.sourceforge.plantuml.classdiagram.command.CommandHideShowByGender; import net.sourceforge.plantuml.classdiagram.command.CommandHideShowByVisibility; +import net.sourceforge.plantuml.classdiagram.command.CommandNamespaceSeparator; import net.sourceforge.plantuml.sequencediagram.command.CommandSkin; import net.sourceforge.plantuml.statediagram.command.CommandHideEmptyDescription; import net.sourceforge.plantuml.style.CommandStyleImport; @@ -106,6 +107,7 @@ public final class CommonCommands { cmds.add(CommandHeader.ME); cmds.add(CommandMultilinesHeader.ME); + cmds.add(CommandNamespaceSeparator.ME); } } diff --git a/src/net/sourceforge/plantuml/compositediagram/CompositeDiagram.java b/src/net/sourceforge/plantuml/compositediagram/CompositeDiagram.java index 9a6f19dee..918aedda3 100644 --- a/src/net/sourceforge/plantuml/compositediagram/CompositeDiagram.java +++ b/src/net/sourceforge/plantuml/compositediagram/CompositeDiagram.java @@ -42,7 +42,7 @@ import net.sourceforge.plantuml.core.UmlSource; import net.sourceforge.plantuml.skin.UmlDiagramType; public class CompositeDiagram extends AbstractEntityDiagram { - // :: remove folder when __HAXE__ + // ::remove folder when __HAXE__ public CompositeDiagram(UmlSource source, Map skinParam) { super(source, UmlDiagramType.COMPOSITE, skinParam); diff --git a/src/net/sourceforge/plantuml/descdiagram/DescriptionDiagramFactory.java b/src/net/sourceforge/plantuml/descdiagram/DescriptionDiagramFactory.java index 69ebe6f3d..337f57f95 100644 --- a/src/net/sourceforge/plantuml/descdiagram/DescriptionDiagramFactory.java +++ b/src/net/sourceforge/plantuml/descdiagram/DescriptionDiagramFactory.java @@ -76,7 +76,6 @@ public class DescriptionDiagramFactory extends PSystemCommandFactory { @Override protected void initCommandsList(List cmds) { cmds.add(new CommandFootboxIgnored()); - cmds.add(new CommandNamespaceSeparator()); cmds.add(new CommandRankDir()); cmds.add(new CommandNewpage(this)); CommonCommands.addCommonCommands1(cmds); diff --git a/src/net/sourceforge/plantuml/dot/GraphvizUtils.java b/src/net/sourceforge/plantuml/dot/GraphvizUtils.java index a2f109c26..803023cbc 100644 --- a/src/net/sourceforge/plantuml/dot/GraphvizUtils.java +++ b/src/net/sourceforge/plantuml/dot/GraphvizUtils.java @@ -53,7 +53,7 @@ import net.sourceforge.plantuml.vizjs.GraphvizJs; import net.sourceforge.plantuml.vizjs.VizJsEngine; public class GraphvizUtils { - // :: remove file when __CORE__ + // ::remove file when __CORE__ public static final String VIZJS = "vizjs"; private static int DOT_VERSION_LIMIT = 226; diff --git a/src/net/sourceforge/plantuml/emoji/Emoji.java b/src/net/sourceforge/plantuml/emoji/Emoji.java index ea4bf3e65..bb20da1a6 100644 --- a/src/net/sourceforge/plantuml/emoji/Emoji.java +++ b/src/net/sourceforge/plantuml/emoji/Emoji.java @@ -60,7 +60,7 @@ import net.sourceforge.plantuml.log.Logme; // ::done public class Emoji { - // :: remove folder when __HAXE__ + // ::remove folder when __HAXE__ private final static Map ALL = new HashMap<>(); static { diff --git a/src/net/sourceforge/plantuml/flashcode/FlashCodeFactory.java b/src/net/sourceforge/plantuml/flashcode/FlashCodeFactory.java index 93fa825dc..e5d1ba8bf 100644 --- a/src/net/sourceforge/plantuml/flashcode/FlashCodeFactory.java +++ b/src/net/sourceforge/plantuml/flashcode/FlashCodeFactory.java @@ -36,7 +36,7 @@ package net.sourceforge.plantuml.flashcode; public class FlashCodeFactory { - // :: remove folder when __CORE__ + // ::remove folder when __CORE__ public static FlashCodeUtils getFlashCodeUtils() { final String name = "net.sourceforge.plantuml.flashcode.FlashCodeUtilsZxing"; diff --git a/src/net/sourceforge/plantuml/jsondiagram/Arrow.java b/src/net/sourceforge/plantuml/jsondiagram/Arrow.java index 681f61f39..6263cecab 100644 --- a/src/net/sourceforge/plantuml/jsondiagram/Arrow.java +++ b/src/net/sourceforge/plantuml/jsondiagram/Arrow.java @@ -49,7 +49,7 @@ public class Arrow { public void drawArrow(UGraphic ug) { ug = ug.apply(UStroke.simple()); - final ULine p1p2 = new ULine(p1, p2); + final ULine p1p2 = ULine.create(p1, p2); final double dist = p1.distance(p2); final double alpha = Math.atan2(p1p2.getDX(), p1p2.getDY()); diff --git a/src/net/sourceforge/plantuml/klimt/UBackground.java b/src/net/sourceforge/plantuml/klimt/UBackground.java index a4f803658..45d61ed2e 100644 --- a/src/net/sourceforge/plantuml/klimt/UBackground.java +++ b/src/net/sourceforge/plantuml/klimt/UBackground.java @@ -38,7 +38,6 @@ package net.sourceforge.plantuml.klimt; import net.sourceforge.plantuml.klimt.color.HColor; public interface UBackground extends UChange { - // ::remove file when __HAXE__ public HColor getBackColor(); diff --git a/src/net/sourceforge/plantuml/klimt/UParam.java b/src/net/sourceforge/plantuml/klimt/UParam.java index d0776cefc..fbe4dfce8 100644 --- a/src/net/sourceforge/plantuml/klimt/UParam.java +++ b/src/net/sourceforge/plantuml/klimt/UParam.java @@ -38,8 +38,6 @@ package net.sourceforge.plantuml.klimt; import net.sourceforge.plantuml.klimt.color.HColor; public interface UParam { - // ::remove file when __HAXE__ - public HColor getColor(); public HColor getBackcolor(); diff --git a/src/net/sourceforge/plantuml/klimt/color/ColorHSB.java b/src/net/sourceforge/plantuml/klimt/color/ColorHSB.java index 8b6433fa3..f1a8c883c 100644 --- a/src/net/sourceforge/plantuml/klimt/color/ColorHSB.java +++ b/src/net/sourceforge/plantuml/klimt/color/ColorHSB.java @@ -7,6 +7,7 @@ import java.util.Locale; * {@link Color} with hue, saturation and brightness. */ public class ColorHSB extends Color { + // ::remove file when __HAXE__ private final float hue; private final float saturation; private final float brightness; diff --git a/src/net/sourceforge/plantuml/klimt/color/ColorMapper.java b/src/net/sourceforge/plantuml/klimt/color/ColorMapper.java index 4dfbec249..542a7d870 100644 --- a/src/net/sourceforge/plantuml/klimt/color/ColorMapper.java +++ b/src/net/sourceforge/plantuml/klimt/color/ColorMapper.java @@ -50,6 +50,7 @@ public abstract class ColorMapper { return simple.getAwtColor(); } }; + // ::comment when __HAXE__ public final static ColorMapper DARK_MODE = new ColorMapper() { @Override public Color fromColorSimple(HColorSimple simple) { @@ -84,4 +85,6 @@ public abstract class ColorMapper { }; } + // ::done + } diff --git a/src/net/sourceforge/plantuml/klimt/color/ColorOrder.java b/src/net/sourceforge/plantuml/klimt/color/ColorOrder.java index 75a8a69cd..b2912af4f 100644 --- a/src/net/sourceforge/plantuml/klimt/color/ColorOrder.java +++ b/src/net/sourceforge/plantuml/klimt/color/ColorOrder.java @@ -38,6 +38,7 @@ package net.sourceforge.plantuml.klimt.color; import java.awt.Color; public enum ColorOrder { + // ::remove file when __HAXE__ RGB, RBG, GRB, GBR, BRG, BGR; public Color getColor(Color color) { diff --git a/src/net/sourceforge/plantuml/klimt/color/ColorParser.java b/src/net/sourceforge/plantuml/klimt/color/ColorParser.java index 5faa887be..27bf65169 100644 --- a/src/net/sourceforge/plantuml/klimt/color/ColorParser.java +++ b/src/net/sourceforge/plantuml/klimt/color/ColorParser.java @@ -39,6 +39,7 @@ import net.sourceforge.plantuml.regex.RegexLeaf; import net.sourceforge.plantuml.regex.RegexResult; public class ColorParser { + // ::remove file when __HAXE__ private static final String COLOR_REGEXP = "#\\w+[-\\\\|/]?\\w+"; diff --git a/src/net/sourceforge/plantuml/klimt/color/ColorUtils.java b/src/net/sourceforge/plantuml/klimt/color/ColorUtils.java index 112db68eb..4b800ff79 100644 --- a/src/net/sourceforge/plantuml/klimt/color/ColorUtils.java +++ b/src/net/sourceforge/plantuml/klimt/color/ColorUtils.java @@ -37,22 +37,18 @@ package net.sourceforge.plantuml.klimt.color; import java.awt.Color; +import net.sourceforge.plantuml.utils.MathUtils; + public class ColorUtils { public static int getGrayScale(Color color) { - return getGrayScale(color.getRed(), color.getGreen(), color.getBlue()); + return getGrayScaleInternalFromRGB(color.getRed(), color.getGreen(), color.getBlue()); } - public static int getGrayScale(int red, int green, int blue) { + private static int getGrayScaleInternalFromRGB(int red, int green, int blue) { // YIQ equation from http://24ways.org/2010/calculating-color-contrast - return getGrayScaleInternal(red, green, blue) / 1000; - } - - public static int distance(Color c1, Color c2) { - final int diffRed = Math.abs(c1.getRed() - c2.getRed()); - final int diffGreen = Math.abs(c1.getGreen() - c2.getGreen()); - final int diffBlue = Math.abs(c1.getBlue() - c2.getBlue()); - return getGrayScaleInternal(diffRed, diffGreen, diffBlue); + final int result = getGrayScaleInternal(red, green, blue) / 1000; + return result; } private static int getGrayScaleInternal(int red, int green, int blue) { @@ -60,11 +56,11 @@ public class ColorUtils { return red * 299 + green * 587 + blue * 114; } - public static int getGrayScale(int rgb) { + public static int getGrayScaleFromRGB(int rgb) { final int red = (rgb & 0x00FF0000) >> 16; final int green = (rgb & 0x0000FF00) >> 8; final int blue = (rgb & 0x000000FF); - return getGrayScale(red, green, blue); + return getGrayScaleInternalFromRGB(red, green, blue); } public static Color getGrayScaleColor(Color color) { @@ -77,6 +73,15 @@ public class ColorUtils { return new Color(grayScale, grayScale, grayScale); } + public static int distance(Color c1, Color c2) { + final int diffRed = MathUtils.abs(c1.getRed() - c2.getRed()); + final int diffGreen = MathUtils.abs(c1.getGreen() - c2.getGreen()); + final int diffBlue = MathUtils.abs(c1.getBlue() - c2.getBlue()); + return getGrayScaleInternal(diffRed, diffGreen, diffBlue); + } + + // ::comment when __HAXE__ + /* * This code is still experimental. If you can improve it, please go ahead :-) * @@ -170,5 +175,6 @@ public class ColorUtils { return result; } + // ::done } diff --git a/src/net/sourceforge/plantuml/klimt/color/Colors.java b/src/net/sourceforge/plantuml/klimt/color/Colors.java index 2a9096dfb..0c4f429fd 100644 --- a/src/net/sourceforge/plantuml/klimt/color/Colors.java +++ b/src/net/sourceforge/plantuml/klimt/color/Colors.java @@ -50,6 +50,7 @@ import net.sourceforge.plantuml.stereo.Stereotype; import net.sourceforge.plantuml.style.ISkinParam; public class Colors { + // ::remove file when __HAXE__ private final Map map = new EnumMap(ColorType.class); private LinkStyle lineStyle = null; diff --git a/src/net/sourceforge/plantuml/klimt/color/HColor.java b/src/net/sourceforge/plantuml/klimt/color/HColor.java index 261ec0b84..973c86895 100644 --- a/src/net/sourceforge/plantuml/klimt/color/HColor.java +++ b/src/net/sourceforge/plantuml/klimt/color/HColor.java @@ -40,15 +40,24 @@ import net.sourceforge.plantuml.StringUtils; import net.sourceforge.plantuml.klimt.UBackground; import net.sourceforge.plantuml.klimt.UChange; +class Back implements UBackground { + + private final HColor hColor; + + public Back(HColor hColor) { + this.hColor = hColor; + } + + @Override + public HColor getBackColor() { + return hColor; + } +} + public abstract class HColor implements UChange { - // ::remove folder when __HAXE__ public UBackground bg() { - return new UBackground() { - public HColor getBackColor() { - return HColor.this; - } - }; + return new Back(this); } public Color toColor(ColorMapper mapper) { @@ -94,9 +103,11 @@ public abstract class HColor implements UChange { return true; } + // ::comment when __HAXE__ public String asString() { return "?" + getClass().getSimpleName(); } + // ::done public HColor darkSchemeTheme() { return this; diff --git a/src/net/sourceforge/plantuml/klimt/color/HColorAutomagic.java b/src/net/sourceforge/plantuml/klimt/color/HColorAutomagic.java index ae097a42a..f84688144 100644 --- a/src/net/sourceforge/plantuml/klimt/color/HColorAutomagic.java +++ b/src/net/sourceforge/plantuml/klimt/color/HColorAutomagic.java @@ -35,6 +35,7 @@ package net.sourceforge.plantuml.klimt.color; class HColorAutomagic extends HColor { + // ::remove file when __HAXE__ @Override public HColor getAppropriateColor(HColor back) { diff --git a/src/net/sourceforge/plantuml/klimt/color/HColorGradient.java b/src/net/sourceforge/plantuml/klimt/color/HColorGradient.java index 0758be2da..a30f2ef9f 100644 --- a/src/net/sourceforge/plantuml/klimt/color/HColorGradient.java +++ b/src/net/sourceforge/plantuml/klimt/color/HColorGradient.java @@ -38,6 +38,7 @@ import java.awt.Color; import java.util.Objects; public class HColorGradient extends HColor { + // ::remove file when __HAXE__ private final HColor color1; private final HColor color2; diff --git a/src/net/sourceforge/plantuml/klimt/color/HColorMiddle.java b/src/net/sourceforge/plantuml/klimt/color/HColorMiddle.java index 1a3c5e767..e7a95edda 100644 --- a/src/net/sourceforge/plantuml/klimt/color/HColorMiddle.java +++ b/src/net/sourceforge/plantuml/klimt/color/HColorMiddle.java @@ -38,6 +38,7 @@ package net.sourceforge.plantuml.klimt.color; import java.awt.Color; public class HColorMiddle extends HColor { + // ::remove file when __HAXE__ private final HColor color1; private final HColor color2; diff --git a/src/net/sourceforge/plantuml/klimt/color/HColorSet.java b/src/net/sourceforge/plantuml/klimt/color/HColorSet.java index 39a5d87c9..c1b1a4eda 100644 --- a/src/net/sourceforge/plantuml/klimt/color/HColorSet.java +++ b/src/net/sourceforge/plantuml/klimt/color/HColorSet.java @@ -228,37 +228,55 @@ public class HColorSet { names.add(s); } - class Gradient { + public HColor getColorOrWhite(String s) { + if (isColorValid(Objects.requireNonNull(s)) == false) + return HColors.WHITE; + + try { + return getColor(s); + } catch (NoSuchColorException e) { + assert false; + return HColors.WHITE; + } + } + + static class Gradient { private final String s1; private final char sep; private final String s2; + private final HColorSet me; - Gradient(String s1, char sep, String s2) { + Gradient(HColorSet me, String s1, char sep, String s2) { + this.me = me; this.s1 = s1; this.sep = sep; this.s2 = s2; } boolean isValid() { - return isColorValid(s1) && isColorValid(s2); + return me.isColorValid(s1) && me.isColorValid(s2); } + // ::comment when __HAXE__ HColorGradient buildInternal() { - return HColors.gradient(build(s1), build(s2), sep); + return HColors.gradient(me.build(s1), me.build(s2), sep); } + // ::done } - class Automatic { + static class Automatic { private final String[] colors; + private final HColorSet me; - public Automatic(String[] colors) { + public Automatic(HColorSet me, String[] colors) { + this.me = me; this.colors = colors; } boolean isValid() { for (String color : colors) - if (isColorValid(color) == false) + if (me.isColorValid(color) == false) return false; return true; @@ -266,22 +284,24 @@ public class HColorSet { HColorScheme buildInternal() { if (colors.length == 2) - return new HColorScheme(build(colors[0]), build(colors[1]), null); + return new HColorScheme(me.build(colors[0]), me.build(colors[1]), null); - return new HColorScheme(build(colors[0]), build(colors[1]), build(colors[2])); + return new HColorScheme(me.build(colors[0]), me.build(colors[1]), me.build(colors[2])); } } private Gradient gradientFromString(String s) { + // ::comment when __HAXE__ final Matcher2 m = MyPattern.cmpile("[-\\\\|/]").matcher(s); if (m.find()) { final char sep = m.group(0).charAt(0); final int idx = s.indexOf(sep); final String s1 = s.substring(0, idx); final String s2 = s.substring(idx + 1); - return new Gradient(s1, sep, s2); + return new Gradient(this, s1, sep, s2); } + // ::done return null; } @@ -294,23 +314,11 @@ public class HColorSet { final int idx = s.indexOf(':'); if (idx != -1) - return new Automatic(s.substring(1).split(":")); + return new Automatic(this, s.substring(1).split(":")); return null; } - public HColor getColorOrWhite(String s) { - if (isColorValid(Objects.requireNonNull(s)) == false) - return HColors.WHITE; - - try { - return getColor(s); - } catch (NoSuchColorException e) { - assert false; - return HColors.WHITE; - } - } - public HColor getColorLEGACY(String s) throws NoSuchColorException { return getColor(s); } @@ -323,9 +331,11 @@ public class HColorSet { if (automatic != null) return automatic.buildInternal(); + // ::comment when __HAXE__ final Gradient gradient = gradientFromString(s); if (gradient != null) return gradient.buildInternal(); + // ::done if (s.equalsIgnoreCase("#transparent") || s.equalsIgnoreCase("transparent")) s = "#00000000"; @@ -358,8 +368,10 @@ public class HColorSet { final Color color; if (s.equalsIgnoreCase("transparent") || s.equalsIgnoreCase("background")) { return HColors.none(); + // ::comment when __HAXE__ } else if (s.equalsIgnoreCase("automatic")) { return new HColorAutomagic(); + // ::done } else if (s.matches("[0-9A-Fa-f]")) { s = "" + s.charAt(0) + s.charAt(0) + s.charAt(0) + s.charAt(0) + s.charAt(0) + s.charAt(0); color = new Color(Integer.parseInt(s, 16)); @@ -396,5 +408,4 @@ public class HColorSet { return s; } - } diff --git a/src/net/sourceforge/plantuml/klimt/color/HColorSimple.java b/src/net/sourceforge/plantuml/klimt/color/HColorSimple.java index a64130e66..9d817d100 100644 --- a/src/net/sourceforge/plantuml/klimt/color/HColorSimple.java +++ b/src/net/sourceforge/plantuml/klimt/color/HColorSimple.java @@ -44,15 +44,10 @@ public class HColorSimple extends HColor { private final Color color; private final HColor dark; - @Override - public int hashCode() { - return color.hashCode(); - } - @Override public String toString() { - final boolean withDark = this != dark; + final boolean withDark = dark != null; final StringBuilder sb = new StringBuilder(); if (withDark) @@ -65,6 +60,7 @@ public class HColorSimple extends HColor { return sb.toString(); } + // ::comment when __HAXE__ @Override public String asString() { if (isTransparent()) @@ -76,29 +72,43 @@ public class HColorSimple extends HColor { return "#" + Integer.toHexString(color.getRGB()); } + @Override + public boolean equals(Object other) { + if (other instanceof HColorSimple == false) + return false; + + return this.color.equals(((HColorSimple) other).color); + } + + @Override + public int hashCode() { + return color.hashCode(); + } + @Override public HColor lighten(int ratio) { final float[] hsl = new HSLColor(color).getHSL(); hsl[2] += hsl[2] * (ratio / 100.0); - return new HColorSimple(new HSLColor(hsl).getRGB()); + return HColorSimple.create(new HSLColor(hsl).getRGB()); } @Override public HColor darken(int ratio) { final float[] hsl = new HSLColor(color).getHSL(); hsl[2] -= hsl[2] * (ratio / 100.0); - return new HColorSimple(new HSLColor(hsl).getRGB()); + return HColorSimple.create(new HSLColor(hsl).getRGB()); } @Override public HColor reverseHsluv() { - return new HColorSimple(ColorUtils.reverseHsluv(color)); + return HColorSimple.create(ColorUtils.reverseHsluv(color)); } @Override public HColor reverse() { - return new HColorSimple(ColorOrder.RGB.getReverse(color)); + return HColorSimple.create(ColorOrder.RGB.getReverse(color)); } + // ::done @Override public boolean isDark() { @@ -110,17 +120,8 @@ public class HColorSimple extends HColor { return color.getAlpha() == 0; } - @Override - public boolean equals(Object other) { - if (other instanceof HColorSimple == false) - return false; - - return this.color.equals(((HColorSimple) other).color); - } - - HColorSimple(Color c) { - this.color = c; - this.dark = this; + public static HColorSimple create(Color c) { + return new HColorSimple(c, null); } private HColorSimple(Color c, HColor dark) { @@ -133,9 +134,10 @@ public class HColorSimple extends HColor { } public HColor asMonochrome() { - return new HColorSimple(ColorUtils.getGrayScaleColor(color)); + return HColorSimple.create(ColorUtils.getGrayScaleColor(color)); } + // ::comment when __HAXE__ public HColor asMonochrome(HColorSimple colorForMonochrome, double minGray, double maxGray) { final Color tmp = ColorUtils.getGrayScaleColor(color); final int gray = tmp.getGreen(); @@ -144,22 +146,14 @@ public class HColorSimple extends HColor { final double coef = (gray - minGray) / 256.0; final Color result = ColorUtils.grayToColor(coef, colorForMonochrome.color); - return new HColorSimple(result); + return HColorSimple.create(result); } @Override - public HColor opposite() { - final Color mono = ColorUtils.getGrayScaleColor(color); - final int grayScale = 255 - mono.getGreen() > 127 ? 255 : 0; - return new HColorSimple(new Color(grayScale, grayScale, grayScale)); - } - - public int distanceTo(HColorSimple other) { - return ColorUtils.distance(this.color, other.color); - } - - public boolean isGray() { - return color.getRed() == color.getGreen() && color.getGreen() == color.getBlue(); + public Color toColor(ColorMapper mapper) { + if (this.isTransparent()) + return getAwtColor(); + return mapper.fromColorSimple(this); } public static HColorSimple unlinear(HColorSimple color1, HColorSimple color2, int completionInt) { @@ -178,7 +172,7 @@ public class HColorSimple extends HColor { final HSLColor col = new HSLColor(hsl); - return new HColorSimple(col.getRGB()); + return HColorSimple.create(col.getRGB()); } private static float[] linear(float factor, float[] hsl1, float[] hsl2) { @@ -192,6 +186,23 @@ public class HColorSimple extends HColor { return x + (y - x) * factor; } + // ::done + + @Override + public HColor opposite() { + final Color mono = ColorUtils.getGrayScaleColor(color); + final int grayScale = 255 - mono.getGreen() > 127 ? 255 : 0; + return HColorSimple.create(new Color(grayScale, grayScale, grayScale)); + } + + public int distanceTo(HColorSimple other) { + return ColorUtils.distance(this.color, other.color); + } + + public boolean isGray() { + return color.getRed() == color.getGreen() && color.getGreen() == color.getBlue(); + } + @Override public HColor withDark(HColor dark) { return new HColorSimple(color, dark); @@ -199,14 +210,9 @@ public class HColorSimple extends HColor { @Override public HColor darkSchemeTheme() { + if (dark == null) + return this; return dark; } - @Override - public Color toColor(ColorMapper mapper) { - if (this.isTransparent()) - return getAwtColor(); - return mapper.fromColorSimple(this); - } - } diff --git a/src/net/sourceforge/plantuml/klimt/color/HColors.java b/src/net/sourceforge/plantuml/klimt/color/HColors.java index 82663923f..93d0d3a95 100644 --- a/src/net/sourceforge/plantuml/klimt/color/HColors.java +++ b/src/net/sourceforge/plantuml/klimt/color/HColors.java @@ -118,6 +118,18 @@ public class HColors { } + private static final HColorSimple TRANSPARENT = HColorSimple.create(new Color(0, 0, 0, 0)); + + public static HColor transparent() { + return TRANSPARENT; + } + + public static HColor none() { + return TRANSPARENT; + } + + // ::comment when __HAXE__ + public static HColor noGradient(HColor color) { if (color instanceof HColorGradient) return ((HColorGradient) color).getColor1(); @@ -133,16 +145,6 @@ public class HColors { return color.bg(); } - private static final HColorSimple TRANSPARENT = new HColorSimple(new Color(0, 0, 0, 0)); - - public static HColor transparent() { - return TRANSPARENT; - } - - public static HColor none() { - return TRANSPARENT; - } - public static HColor unlinear(HColor color1, HColor color2, int completion) { if (completion == 0) return color1; @@ -163,9 +165,10 @@ public class HColors { public static HColorGradient gradient(HColor color1, HColor color2, char policy) { return new HColorGradient(color1, color2, policy); } + // ::done public static HColor simple(Color c) { - return new HColorSimple(c); + return HColorSimple.create(c); } } diff --git a/src/net/sourceforge/plantuml/klimt/color/HSLColor.java b/src/net/sourceforge/plantuml/klimt/color/HSLColor.java index adbf66fca..3d2f31ade 100644 --- a/src/net/sourceforge/plantuml/klimt/color/HSLColor.java +++ b/src/net/sourceforge/plantuml/klimt/color/HSLColor.java @@ -23,6 +23,7 @@ import java.awt.Color; * a color by adjusting the luminance value. */ public class HSLColor { + // ::remove file when __HAXE__ private Color rgb; private float[] hsl; private float alpha; diff --git a/src/net/sourceforge/plantuml/klimt/color/HUSLColorConverter.java b/src/net/sourceforge/plantuml/klimt/color/HUSLColorConverter.java index b0dd1caad..18b39e84b 100644 --- a/src/net/sourceforge/plantuml/klimt/color/HUSLColorConverter.java +++ b/src/net/sourceforge/plantuml/klimt/color/HUSLColorConverter.java @@ -16,6 +16,7 @@ import java.util.List; * */ public class HUSLColorConverter { + // ::remove file when __HAXE__ private static double[][] m = new double[][] { new double[] { 3.240969941904521, -1.537383177570093, -0.498610760293 }, new double[] { -0.96924363628087, 1.87596750150772, 0.041555057407175 }, diff --git a/src/net/sourceforge/plantuml/klimt/color/NoSuchColorRuntimeException.java b/src/net/sourceforge/plantuml/klimt/color/NoSuchColorRuntimeException.java index 620d98086..f5c1f9b5c 100644 --- a/src/net/sourceforge/plantuml/klimt/color/NoSuchColorRuntimeException.java +++ b/src/net/sourceforge/plantuml/klimt/color/NoSuchColorRuntimeException.java @@ -36,5 +36,6 @@ package net.sourceforge.plantuml.klimt.color; public class NoSuchColorRuntimeException extends RuntimeException { + // ::remove file when __HAXE__ } diff --git a/src/net/sourceforge/plantuml/klimt/drawing/AbstractCommonUGraphic.java b/src/net/sourceforge/plantuml/klimt/drawing/AbstractCommonUGraphic.java index 315fec26e..4367e9a4b 100644 --- a/src/net/sourceforge/plantuml/klimt/drawing/AbstractCommonUGraphic.java +++ b/src/net/sourceforge/plantuml/klimt/drawing/AbstractCommonUGraphic.java @@ -55,6 +55,7 @@ import net.sourceforge.plantuml.klimt.shape.UHidden; import net.sourceforge.plantuml.url.Url; public abstract class AbstractCommonUGraphic implements UGraphic { + // ::remove file when __HAXE__ private UStroke stroke = UStroke.simple(); private UPattern pattern = UPattern.FULL; diff --git a/src/net/sourceforge/plantuml/klimt/drawing/AbstractUGraphic.java b/src/net/sourceforge/plantuml/klimt/drawing/AbstractUGraphic.java index f53bf2671..a476ef17c 100644 --- a/src/net/sourceforge/plantuml/klimt/drawing/AbstractUGraphic.java +++ b/src/net/sourceforge/plantuml/klimt/drawing/AbstractUGraphic.java @@ -67,7 +67,7 @@ import net.sourceforge.plantuml.klimt.shape.URectangle; import net.sourceforge.plantuml.klimt.shape.UText; public abstract class AbstractUGraphic extends AbstractCommonUGraphic { - // ::remove folder when __HAXE__ + // ::remove file when __HAXE__ private final O graphic; private final MinMaxMutable minmax; diff --git a/src/net/sourceforge/plantuml/klimt/drawing/AbstractUGraphicHorizontalLine.java b/src/net/sourceforge/plantuml/klimt/drawing/AbstractUGraphicHorizontalLine.java index 1632e0744..1e2d941cc 100644 --- a/src/net/sourceforge/plantuml/klimt/drawing/AbstractUGraphicHorizontalLine.java +++ b/src/net/sourceforge/plantuml/klimt/drawing/AbstractUGraphicHorizontalLine.java @@ -42,6 +42,7 @@ import net.sourceforge.plantuml.klimt.UTranslate; import net.sourceforge.plantuml.klimt.shape.UHorizontalLine; public abstract class AbstractUGraphicHorizontalLine extends UGraphicDelegator { + // ::remove file when __HAXE__ private UTranslate translate = UTranslate.none(); diff --git a/src/net/sourceforge/plantuml/klimt/drawing/LimitFinder.java b/src/net/sourceforge/plantuml/klimt/drawing/LimitFinder.java index 66cb85b9d..21b0380d4 100644 --- a/src/net/sourceforge/plantuml/klimt/drawing/LimitFinder.java +++ b/src/net/sourceforge/plantuml/klimt/drawing/LimitFinder.java @@ -70,6 +70,7 @@ import net.sourceforge.plantuml.klimt.shape.URectangle; import net.sourceforge.plantuml.klimt.shape.UText; public final class LimitFinder extends UGraphicNo { + // ::remove file when __HAXE__ @Override public UGraphic apply(UChange change) { diff --git a/src/net/sourceforge/plantuml/klimt/drawing/TextLimitFinder.java b/src/net/sourceforge/plantuml/klimt/drawing/TextLimitFinder.java index acd1c6d43..85bf6068f 100644 --- a/src/net/sourceforge/plantuml/klimt/drawing/TextLimitFinder.java +++ b/src/net/sourceforge/plantuml/klimt/drawing/TextLimitFinder.java @@ -49,6 +49,7 @@ import net.sourceforge.plantuml.klimt.geom.XDimension2D; import net.sourceforge.plantuml.klimt.shape.UText; public class TextLimitFinder extends UGraphicNo { + // ::remove file when __HAXE__ private final MinMaxMutable minmax; diff --git a/src/net/sourceforge/plantuml/klimt/drawing/UGraphicDelegator.java b/src/net/sourceforge/plantuml/klimt/drawing/UGraphicDelegator.java index c05e97fb1..0a56e993f 100644 --- a/src/net/sourceforge/plantuml/klimt/drawing/UGraphicDelegator.java +++ b/src/net/sourceforge/plantuml/klimt/drawing/UGraphicDelegator.java @@ -48,6 +48,7 @@ import net.sourceforge.plantuml.klimt.font.StringBounder; import net.sourceforge.plantuml.url.Url; public abstract class UGraphicDelegator implements UGraphic { + // ::remove file when __HAXE__ final private UGraphic ug; diff --git a/src/net/sourceforge/plantuml/klimt/drawing/UGraphicFilter.java b/src/net/sourceforge/plantuml/klimt/drawing/UGraphicFilter.java index 06ed98bcf..df7596435 100644 --- a/src/net/sourceforge/plantuml/klimt/drawing/UGraphicFilter.java +++ b/src/net/sourceforge/plantuml/klimt/drawing/UGraphicFilter.java @@ -42,6 +42,7 @@ import net.sourceforge.plantuml.klimt.UChange; import net.sourceforge.plantuml.klimt.UShape; public class UGraphicFilter extends UGraphicDelegator { + // ::remove file when __HAXE__ public UGraphic apply(UChange translate) { throw new UnsupportedOperationException(); diff --git a/src/net/sourceforge/plantuml/klimt/drawing/UGraphicInterceptorUDrawable.java b/src/net/sourceforge/plantuml/klimt/drawing/UGraphicInterceptorUDrawable.java index 612d00816..4d72decdf 100644 --- a/src/net/sourceforge/plantuml/klimt/drawing/UGraphicInterceptorUDrawable.java +++ b/src/net/sourceforge/plantuml/klimt/drawing/UGraphicInterceptorUDrawable.java @@ -40,6 +40,7 @@ import net.sourceforge.plantuml.klimt.UShape; import net.sourceforge.plantuml.klimt.shape.UDrawable; public class UGraphicInterceptorUDrawable extends UGraphicDelegator { + // ::remove file when __HAXE__ public UGraphicInterceptorUDrawable(UGraphic ug) { super(ug); diff --git a/src/net/sourceforge/plantuml/klimt/drawing/UGraphicNo.java b/src/net/sourceforge/plantuml/klimt/drawing/UGraphicNo.java index 0d18f9d7c..32b3f8625 100644 --- a/src/net/sourceforge/plantuml/klimt/drawing/UGraphicNo.java +++ b/src/net/sourceforge/plantuml/klimt/drawing/UGraphicNo.java @@ -50,6 +50,7 @@ import net.sourceforge.plantuml.klimt.font.StringBounder; import net.sourceforge.plantuml.url.Url; public abstract class UGraphicNo implements UGraphic { + // ::remove file when __HAXE__ private final StringBounder stringBounder; private final UTranslate translate; diff --git a/src/net/sourceforge/plantuml/klimt/drawing/UGraphicNull.java b/src/net/sourceforge/plantuml/klimt/drawing/UGraphicNull.java index 2b983bfe6..36f0c2d05 100644 --- a/src/net/sourceforge/plantuml/klimt/drawing/UGraphicNull.java +++ b/src/net/sourceforge/plantuml/klimt/drawing/UGraphicNull.java @@ -44,6 +44,7 @@ import net.sourceforge.plantuml.klimt.color.HColors; import net.sourceforge.plantuml.klimt.geom.EnsureVisible; public class UGraphicNull extends AbstractUGraphic implements EnsureVisible { + // ::remove file when __HAXE__ @Override protected AbstractCommonUGraphic copyUGraphic() { diff --git a/src/net/sourceforge/plantuml/klimt/drawing/UGraphicStencil.java b/src/net/sourceforge/plantuml/klimt/drawing/UGraphicStencil.java index b7f1ee491..dfc56f626 100644 --- a/src/net/sourceforge/plantuml/klimt/drawing/UGraphicStencil.java +++ b/src/net/sourceforge/plantuml/klimt/drawing/UGraphicStencil.java @@ -43,6 +43,7 @@ import net.sourceforge.plantuml.klimt.geom.XDimension2D; import net.sourceforge.plantuml.klimt.shape.UHorizontalLine; public class UGraphicStencil extends AbstractUGraphicHorizontalLine { + // ::remove file when __HAXE__ private final Stencil stencil; private final UStroke defaultStroke; diff --git a/src/net/sourceforge/plantuml/klimt/font/FontStyle.java b/src/net/sourceforge/plantuml/klimt/font/FontStyle.java index 7dbb01f34..a614bb704 100644 --- a/src/net/sourceforge/plantuml/klimt/font/FontStyle.java +++ b/src/net/sourceforge/plantuml/klimt/font/FontStyle.java @@ -44,7 +44,7 @@ import net.sourceforge.plantuml.regex.Matcher2; import net.sourceforge.plantuml.regex.MyPattern; public enum FontStyle { - // :: remove file when __HAXE__ + // ::remove file when __HAXE__ PLAIN, ITALIC, BOLD, UNDERLINE, STRIKE, WAVE, BACKCOLOR; public UFont mutateFont(UFont font) { diff --git a/src/net/sourceforge/plantuml/klimt/geom/BezierUtils.java b/src/net/sourceforge/plantuml/klimt/geom/BezierUtils.java index 1289bd581..5da2cb90f 100644 --- a/src/net/sourceforge/plantuml/klimt/geom/BezierUtils.java +++ b/src/net/sourceforge/plantuml/klimt/geom/BezierUtils.java @@ -36,7 +36,7 @@ package net.sourceforge.plantuml.klimt.geom; public class BezierUtils { - // :: remove file when __HAXE__ + // ::remove file when __HAXE__ static public double getEndingAngle(final XCubicCurve2D left) { if (left.getCtrlP2().equals(left.getP2())) { diff --git a/src/net/sourceforge/plantuml/klimt/geom/MagneticBorder.java b/src/net/sourceforge/plantuml/klimt/geom/MagneticBorder.java index a88c3bbc8..5f56a9f62 100644 --- a/src/net/sourceforge/plantuml/klimt/geom/MagneticBorder.java +++ b/src/net/sourceforge/plantuml/klimt/geom/MagneticBorder.java @@ -39,7 +39,7 @@ import net.sourceforge.plantuml.klimt.UTranslate; import net.sourceforge.plantuml.klimt.font.StringBounder; public interface MagneticBorder { - // :: remove file when __HAXE__ + // ::remove file when __HAXE__ public UTranslate getForceAt(StringBounder stringBounder, XPoint2D position); diff --git a/src/net/sourceforge/plantuml/klimt/geom/MagneticBorderNone.java b/src/net/sourceforge/plantuml/klimt/geom/MagneticBorderNone.java index 4f7bcdcb1..0b68143e2 100644 --- a/src/net/sourceforge/plantuml/klimt/geom/MagneticBorderNone.java +++ b/src/net/sourceforge/plantuml/klimt/geom/MagneticBorderNone.java @@ -39,7 +39,7 @@ import net.sourceforge.plantuml.klimt.UTranslate; import net.sourceforge.plantuml.klimt.font.StringBounder; public class MagneticBorderNone implements MagneticBorder { - // :: remove file when __HAXE__ + // ::remove file when __HAXE__ @Override public UTranslate getForceAt(StringBounder stringBounder, XPoint2D position) { diff --git a/src/net/sourceforge/plantuml/klimt/geom/MinMax.java b/src/net/sourceforge/plantuml/klimt/geom/MinMax.java index 820cb16c8..82e0de87d 100644 --- a/src/net/sourceforge/plantuml/klimt/geom/MinMax.java +++ b/src/net/sourceforge/plantuml/klimt/geom/MinMax.java @@ -42,7 +42,6 @@ import net.sourceforge.plantuml.klimt.drawing.UGraphic; import net.sourceforge.plantuml.klimt.shape.URectangle; public class MinMax { - // :: remove file when __HAXE__ private final double maxX; private final double maxY; @@ -153,6 +152,7 @@ public class MinMax { return new XDimension2D(maxX - minX, maxY - minY); } + // ::comment when __HAXE__ public void drawGray(UGraphic ug) { draw(ug, HColors.GRAY); } @@ -162,6 +162,7 @@ public class MinMax { ug = ug.apply(new UTranslate(minX, minY)); ug.draw(new URectangle(getWidth(), getHeight())); } + // ::done public MinMax translate(UTranslate translate) { final double dx = translate.getDx(); diff --git a/src/net/sourceforge/plantuml/klimt/geom/PlacementStrategy.java b/src/net/sourceforge/plantuml/klimt/geom/PlacementStrategy.java index 59deaca4d..46f0e3de2 100644 --- a/src/net/sourceforge/plantuml/klimt/geom/PlacementStrategy.java +++ b/src/net/sourceforge/plantuml/klimt/geom/PlacementStrategy.java @@ -40,7 +40,7 @@ import java.util.Map; import net.sourceforge.plantuml.klimt.shape.TextBlock; public interface PlacementStrategy { - // :: remove file when __HAXE__ + // ::remove file when __HAXE__ public void add(TextBlock block); diff --git a/src/net/sourceforge/plantuml/klimt/geom/PlacementStrategyVisibility.java b/src/net/sourceforge/plantuml/klimt/geom/PlacementStrategyVisibility.java index 84265e715..bd49cec4b 100644 --- a/src/net/sourceforge/plantuml/klimt/geom/PlacementStrategyVisibility.java +++ b/src/net/sourceforge/plantuml/klimt/geom/PlacementStrategyVisibility.java @@ -43,7 +43,7 @@ import net.sourceforge.plantuml.klimt.font.StringBounder; import net.sourceforge.plantuml.klimt.shape.TextBlock; public class PlacementStrategyVisibility extends AbstractPlacementStrategy { - // :: remove file when __HAXE__ + // ::remove file when __HAXE__ private final int col2; diff --git a/src/net/sourceforge/plantuml/klimt/geom/PlacementStrategyX1X2.java b/src/net/sourceforge/plantuml/klimt/geom/PlacementStrategyX1X2.java index 4e42cccf7..42de26566 100644 --- a/src/net/sourceforge/plantuml/klimt/geom/PlacementStrategyX1X2.java +++ b/src/net/sourceforge/plantuml/klimt/geom/PlacementStrategyX1X2.java @@ -42,7 +42,7 @@ import net.sourceforge.plantuml.klimt.font.StringBounder; import net.sourceforge.plantuml.klimt.shape.TextBlock; public class PlacementStrategyX1X2 extends AbstractPlacementStrategy { - // :: remove file when __HAXE__ + // ::remove file when __HAXE__ public PlacementStrategyX1X2(StringBounder stringBounder) { super(stringBounder); diff --git a/src/net/sourceforge/plantuml/klimt/geom/PlacementStrategyX1Y2Y3.java b/src/net/sourceforge/plantuml/klimt/geom/PlacementStrategyX1Y2Y3.java index bdb354a03..83f36c211 100644 --- a/src/net/sourceforge/plantuml/klimt/geom/PlacementStrategyX1Y2Y3.java +++ b/src/net/sourceforge/plantuml/klimt/geom/PlacementStrategyX1Y2Y3.java @@ -43,7 +43,7 @@ import net.sourceforge.plantuml.klimt.font.StringBounder; import net.sourceforge.plantuml.klimt.shape.TextBlock; public class PlacementStrategyX1Y2Y3 extends AbstractPlacementStrategy { - // :: remove file when __HAXE__ + // ::remove file when __HAXE__ public PlacementStrategyX1Y2Y3(StringBounder stringBounder) { super(stringBounder); diff --git a/src/net/sourceforge/plantuml/klimt/geom/PlacementStrategyY1Y2.java b/src/net/sourceforge/plantuml/klimt/geom/PlacementStrategyY1Y2.java index d8d4fc46b..40e7fc6e6 100644 --- a/src/net/sourceforge/plantuml/klimt/geom/PlacementStrategyY1Y2.java +++ b/src/net/sourceforge/plantuml/klimt/geom/PlacementStrategyY1Y2.java @@ -42,7 +42,7 @@ import net.sourceforge.plantuml.klimt.font.StringBounder; import net.sourceforge.plantuml.klimt.shape.TextBlock; public class PlacementStrategyY1Y2 extends AbstractPlacementStrategy { - // :: remove file when __HAXE__ + // ::remove file when __HAXE__ public PlacementStrategyY1Y2(StringBounder stringBounder) { super(stringBounder); diff --git a/src/net/sourceforge/plantuml/klimt/geom/PlacementStrategyY1Y2Center.java b/src/net/sourceforge/plantuml/klimt/geom/PlacementStrategyY1Y2Center.java index d5659cf1c..dde4f0807 100644 --- a/src/net/sourceforge/plantuml/klimt/geom/PlacementStrategyY1Y2Center.java +++ b/src/net/sourceforge/plantuml/klimt/geom/PlacementStrategyY1Y2Center.java @@ -42,7 +42,7 @@ import net.sourceforge.plantuml.klimt.font.StringBounder; import net.sourceforge.plantuml.klimt.shape.TextBlock; public class PlacementStrategyY1Y2Center extends AbstractPlacementStrategy { - // :: remove file when __HAXE__ + // ::remove file when __HAXE__ public PlacementStrategyY1Y2Center(StringBounder stringBounder) { super(stringBounder); diff --git a/src/net/sourceforge/plantuml/klimt/geom/PlacementStrategyY1Y2Left.java b/src/net/sourceforge/plantuml/klimt/geom/PlacementStrategyY1Y2Left.java index a2d556478..219e1ba0e 100644 --- a/src/net/sourceforge/plantuml/klimt/geom/PlacementStrategyY1Y2Left.java +++ b/src/net/sourceforge/plantuml/klimt/geom/PlacementStrategyY1Y2Left.java @@ -42,7 +42,7 @@ import net.sourceforge.plantuml.klimt.font.StringBounder; import net.sourceforge.plantuml.klimt.shape.TextBlock; public class PlacementStrategyY1Y2Left extends AbstractPlacementStrategy { - // :: remove file when __HAXE__ + // ::remove file when __HAXE__ public PlacementStrategyY1Y2Left(StringBounder stringBounder) { super(stringBounder); diff --git a/src/net/sourceforge/plantuml/klimt/geom/PlacementStrategyY1Y2Right.java b/src/net/sourceforge/plantuml/klimt/geom/PlacementStrategyY1Y2Right.java index ee93adb90..192882277 100644 --- a/src/net/sourceforge/plantuml/klimt/geom/PlacementStrategyY1Y2Right.java +++ b/src/net/sourceforge/plantuml/klimt/geom/PlacementStrategyY1Y2Right.java @@ -42,7 +42,7 @@ import net.sourceforge.plantuml.klimt.font.StringBounder; import net.sourceforge.plantuml.klimt.shape.TextBlock; public class PlacementStrategyY1Y2Right extends AbstractPlacementStrategy { - // :: remove file when __HAXE__ + // ::remove file when __HAXE__ public PlacementStrategyY1Y2Right(StringBounder stringBounder) { super(stringBounder); diff --git a/src/net/sourceforge/plantuml/klimt/geom/PositionableImpl.java b/src/net/sourceforge/plantuml/klimt/geom/PositionableImpl.java index d173854bd..2b3e50968 100644 --- a/src/net/sourceforge/plantuml/klimt/geom/PositionableImpl.java +++ b/src/net/sourceforge/plantuml/klimt/geom/PositionableImpl.java @@ -46,8 +46,8 @@ public final class PositionableImpl implements Positionable { this.dim = dim; } - public PositionableImpl(XPoint2D pt, XDimension2D dim) { - this(pt.getX(), pt.getY(), dim); + public static PositionableImpl create(XPoint2D pt, XDimension2D dim) { + return new PositionableImpl(pt.getX(), pt.getY(), dim); } public XPoint2D getPosition() { diff --git a/src/net/sourceforge/plantuml/klimt/geom/PositionableUtils.java b/src/net/sourceforge/plantuml/klimt/geom/PositionableUtils.java index ab52fccd4..edcac5837 100644 --- a/src/net/sourceforge/plantuml/klimt/geom/PositionableUtils.java +++ b/src/net/sourceforge/plantuml/klimt/geom/PositionableUtils.java @@ -36,7 +36,7 @@ package net.sourceforge.plantuml.klimt.geom; public class PositionableUtils { - // :: remove file when __HAXE__ + // ::remove file when __HAXE__ static private XRectangle2D convert(Positionable positionable) { final XPoint2D position = positionable.getPosition(); diff --git a/src/net/sourceforge/plantuml/klimt/geom/RectangleArea.java b/src/net/sourceforge/plantuml/klimt/geom/RectangleArea.java index e75b3f2b0..284a8c1b4 100644 --- a/src/net/sourceforge/plantuml/klimt/geom/RectangleArea.java +++ b/src/net/sourceforge/plantuml/klimt/geom/RectangleArea.java @@ -38,7 +38,7 @@ package net.sourceforge.plantuml.klimt.geom; import net.sourceforge.plantuml.klimt.UTranslate; public class RectangleArea { - // :: remove file when __HAXE__ + // ::remove file when __HAXE__ private final double minX; private final double minY; diff --git a/src/net/sourceforge/plantuml/klimt/geom/ULayoutGroup.java b/src/net/sourceforge/plantuml/klimt/geom/ULayoutGroup.java index 2e6c9fb2b..45d51cce2 100644 --- a/src/net/sourceforge/plantuml/klimt/geom/ULayoutGroup.java +++ b/src/net/sourceforge/plantuml/klimt/geom/ULayoutGroup.java @@ -46,7 +46,7 @@ import net.sourceforge.plantuml.klimt.font.StringBounder; import net.sourceforge.plantuml.klimt.shape.TextBlock; public class ULayoutGroup { - // :: remove file when __HAXE__ + // ::remove file when __HAXE__ private final PlacementStrategy placementStrategy; diff --git a/src/net/sourceforge/plantuml/klimt/geom/XCubicCurve2D.java b/src/net/sourceforge/plantuml/klimt/geom/XCubicCurve2D.java index a2d840cd3..d67626bfc 100644 --- a/src/net/sourceforge/plantuml/klimt/geom/XCubicCurve2D.java +++ b/src/net/sourceforge/plantuml/klimt/geom/XCubicCurve2D.java @@ -1,7 +1,7 @@ package net.sourceforge.plantuml.klimt.geom; public class XCubicCurve2D { - // :: remove file when __HAXE__ + // ::remove file when __HAXE__ public double x1; public double y1; diff --git a/src/net/sourceforge/plantuml/klimt/shape/TextBlockMarged.java b/src/net/sourceforge/plantuml/klimt/shape/TextBlockMarged.java index d7337bab7..6b7435e8d 100644 --- a/src/net/sourceforge/plantuml/klimt/shape/TextBlockMarged.java +++ b/src/net/sourceforge/plantuml/klimt/shape/TextBlockMarged.java @@ -46,7 +46,7 @@ import net.sourceforge.plantuml.svek.Ports; import net.sourceforge.plantuml.svek.WithPorts; class TextBlockMarged extends AbstractTextBlock implements TextBlock, WithPorts { - // ::remove file when __HAXE__ + // ::remove file when __HAXE__ private final TextBlock textBlock; private final double top; @@ -80,7 +80,7 @@ class TextBlockMarged extends AbstractTextBlock implements TextBlock, WithPorts // URectangle(calculateDimension(ug.getStringBounder()))); final XDimension2D dim = calculateDimension(ug.getStringBounder()); if (dim.getWidth() > 0) { - ug.draw(new UEmpty(dim)); + ug.draw(UEmpty.create(dim)); final UTranslate translate = new UTranslate(left, top); textBlock.drawU(ug.apply(translate)); } diff --git a/src/net/sourceforge/plantuml/klimt/shape/TextBlockUtils.java b/src/net/sourceforge/plantuml/klimt/shape/TextBlockUtils.java index 0a1a7b51c..2f1020d82 100644 --- a/src/net/sourceforge/plantuml/klimt/shape/TextBlockUtils.java +++ b/src/net/sourceforge/plantuml/klimt/shape/TextBlockUtils.java @@ -53,7 +53,7 @@ import net.sourceforge.plantuml.klimt.geom.XRectangle2D; import net.sourceforge.plantuml.style.ClockwiseTopRightBottomLeft; public class TextBlockUtils { - // ::remove file when __HAXE__ + // ::remove file when __HAXE__ public static final TextBlock EMPTY_TEXT_BLOCK = TextBlockUtils.empty(0, 0); @@ -100,11 +100,11 @@ public class TextBlockUtils { } public static Positionable asPositionable(TextBlock textBlock, StringBounder stringBounder, XPoint2D pt) { - return new PositionableImpl(pt, textBlock.calculateDimension(stringBounder)); + return PositionableImpl.create(pt, textBlock.calculateDimension(stringBounder)); } public static Positionable asPositionable(XDimension2D dim, StringBounder stringBounder, XPoint2D pt) { - return new PositionableImpl(pt, dim); + return PositionableImpl.create(pt, dim); } public static TextBlock mergeLR(TextBlock b1, TextBlock b2, VerticalAlignment verticallAlignment) { diff --git a/src/net/sourceforge/plantuml/klimt/shape/UEmpty.java b/src/net/sourceforge/plantuml/klimt/shape/UEmpty.java index 2f27a769c..d3ca94cec 100644 --- a/src/net/sourceforge/plantuml/klimt/shape/UEmpty.java +++ b/src/net/sourceforge/plantuml/klimt/shape/UEmpty.java @@ -43,15 +43,15 @@ public class UEmpty implements UShape { private final double height; public UEmpty(double width, double height) { - if (width == 0) { + if (width == 0) throw new IllegalArgumentException(); - } + this.width = width; this.height = height; } - public UEmpty(XDimension2D dim) { - this(dim.getWidth(), dim.getHeight()); + public static UEmpty create(XDimension2D dim) { + return new UEmpty(dim.getWidth(), dim.getHeight()); } public double getWidth() { diff --git a/src/net/sourceforge/plantuml/klimt/shape/ULine.java b/src/net/sourceforge/plantuml/klimt/shape/ULine.java index 3389a1f69..c3df05b33 100644 --- a/src/net/sourceforge/plantuml/klimt/shape/ULine.java +++ b/src/net/sourceforge/plantuml/klimt/shape/ULine.java @@ -48,8 +48,8 @@ public class ULine extends AbstractShadowable implements UShapeSized { private final double dx; private final double dy; - public ULine(XPoint2D p1, XPoint2D p2) { - this(p2.getX() - p1.getX(), p2.getY() - p1.getY()); + public static ULine create(XPoint2D p1, XPoint2D p2) { + return new ULine(p2.getX() - p1.getX(), p2.getY() - p1.getY()); } public ULine(double dx, double dy) { diff --git a/src/net/sourceforge/plantuml/objectdiagram/AbstractClassOrObjectDiagram.java b/src/net/sourceforge/plantuml/objectdiagram/AbstractClassOrObjectDiagram.java index 8c110b182..65b1be765 100644 --- a/src/net/sourceforge/plantuml/objectdiagram/AbstractClassOrObjectDiagram.java +++ b/src/net/sourceforge/plantuml/objectdiagram/AbstractClassOrObjectDiagram.java @@ -59,6 +59,7 @@ public abstract class AbstractClassOrObjectDiagram extends AbstractEntityDiagram public AbstractClassOrObjectDiagram(UmlSource source, UmlDiagramType type, Map orig) { super(source, type, orig); + setNamespaceSeparator("."); } final public boolean insertBetween(Entity entity1, Entity entity2, Entity node) { diff --git a/src/net/sourceforge/plantuml/plasma/Plasma.java b/src/net/sourceforge/plantuml/plasma/Plasma.java index 297c4cf23..b592d6221 100644 --- a/src/net/sourceforge/plantuml/plasma/Plasma.java +++ b/src/net/sourceforge/plantuml/plasma/Plasma.java @@ -44,13 +44,12 @@ import java.util.Map; public class Plasma { - private String separator; + private String separator = "\u0000"; private final Quark root; private final List> quarks = new ArrayList<>(); private final Map> stats = new HashMap>(); - public Plasma(String separator) { - this.separator = separator; + public Plasma() { this.root = new Quark(this, null, ""); } @@ -80,7 +79,7 @@ public class Plasma { } public final boolean hasSeparator() { - return this.separator != null && this.separator != "\u0000"; + return this.separator.equals("\u0000") == false; } public Collection> quarks() { diff --git a/src/net/sourceforge/plantuml/statediagram/StateDiagram.java b/src/net/sourceforge/plantuml/statediagram/StateDiagram.java index 257519959..7a6e2ea21 100644 --- a/src/net/sourceforge/plantuml/statediagram/StateDiagram.java +++ b/src/net/sourceforge/plantuml/statediagram/StateDiagram.java @@ -48,13 +48,13 @@ import net.sourceforge.plantuml.plasma.Quark; import net.sourceforge.plantuml.skin.UmlDiagramType; public class StateDiagram extends AbstractEntityDiagram { - // :: remove folder when __HAXE__ + // ::remove folder when __HAXE__ private static final String CONCURRENT_PREFIX = "CONC"; public StateDiagram(UmlSource source, Map skinParam) { super(source, UmlDiagramType.STATE, skinParam); - // setNamespaceSeparator(null); + setNamespaceSeparator("."); } public boolean checkConcurrentStateOk(Quark code) { diff --git a/src/net/sourceforge/plantuml/statediagram/StateDiagramFactory.java b/src/net/sourceforge/plantuml/statediagram/StateDiagramFactory.java index 9ea28d785..8685fd32a 100644 --- a/src/net/sourceforge/plantuml/statediagram/StateDiagramFactory.java +++ b/src/net/sourceforge/plantuml/statediagram/StateDiagramFactory.java @@ -109,7 +109,6 @@ public class StateDiagramFactory extends PSystemCommandFactory { CommonCommands.addCommonCommands1(cmds); cmds.add(new CommandHideShow2()); - cmds.add(new CommandNamespaceSeparator()); } } diff --git a/src/net/sourceforge/plantuml/svek/extremity/ExtremityArrow.java b/src/net/sourceforge/plantuml/svek/extremity/ExtremityArrow.java index 584cfd6f5..bfc8f6403 100644 --- a/src/net/sourceforge/plantuml/svek/extremity/ExtremityArrow.java +++ b/src/net/sourceforge/plantuml/svek/extremity/ExtremityArrow.java @@ -101,7 +101,7 @@ public class ExtremityArrow extends Extremity { public void drawLineIfTransparent(UGraphic ug) { final XPoint2D pt1 = polygon.getPoint(0); final XPoint2D pt2 = polygon.getPoint(2); - final ULine line = new ULine(pt1, pt2); + final ULine line = ULine.create(pt1, pt2); ug.apply(UTranslate.point(pt1)).draw(line); } diff --git a/src/net/sourceforge/plantuml/swing/AboutWindow.java b/src/net/sourceforge/plantuml/swing/AboutWindow.java index 378090898..b1defdd5b 100644 --- a/src/net/sourceforge/plantuml/swing/AboutWindow.java +++ b/src/net/sourceforge/plantuml/swing/AboutWindow.java @@ -61,7 +61,7 @@ import net.sourceforge.plantuml.version.PSystemVersion; import net.sourceforge.plantuml.version.Version; class AboutWindow extends JFrame { - // :: remove folder when __CORE__ + // ::remove folder when __CORE__ public AboutWindow() { super(); diff --git a/src/net/sourceforge/plantuml/url/CMapData.java b/src/net/sourceforge/plantuml/url/CMapData.java index 8e5a706d9..70afb711a 100644 --- a/src/net/sourceforge/plantuml/url/CMapData.java +++ b/src/net/sourceforge/plantuml/url/CMapData.java @@ -43,6 +43,7 @@ import java.util.Set; import net.sourceforge.plantuml.text.BackSlash; public class CMapData { + // ::remove file when __HAXE__ private final StringBuilder stringBuilder = new StringBuilder(); diff --git a/src/net/sourceforge/plantuml/url/Check.java b/src/net/sourceforge/plantuml/url/Check.java index c1465470d..ff5b2eace 100644 --- a/src/net/sourceforge/plantuml/url/Check.java +++ b/src/net/sourceforge/plantuml/url/Check.java @@ -37,6 +37,7 @@ package net.sourceforge.plantuml.url; final public class Check { // ::remove file when __CORE__ + // ::remove file when __HAXE__ private static boolean isJunit = false; diff --git a/src/net/sourceforge/plantuml/url/Url.java b/src/net/sourceforge/plantuml/url/Url.java index 72befd980..bf3f2c00e 100644 --- a/src/net/sourceforge/plantuml/url/Url.java +++ b/src/net/sourceforge/plantuml/url/Url.java @@ -43,30 +43,29 @@ import net.sourceforge.plantuml.klimt.geom.EnsureVisible; import net.sourceforge.plantuml.text.BackSlash; public class Url implements EnsureVisible { - // ::remove folder when __HAXE__ - private final String url; private final String tooltip; private final String label; private boolean member; - public Url(String url, String tooltip) { - this(url, tooltip, null); - } - public Url(String url, String tooltip, String label) { url = StringUtils.eventuallyRemoveStartingAndEndingDoubleQuote(url, "\""); this.url = url; - if (tooltip == null) { + // ::comment when __HAXE__ + if (tooltip == null) this.tooltip = url; - } else { + else this.tooltip = BackSlash.manageNewLine(tooltip); - } - if (label == null || label.length() == 0) { + // ::done + // ::uncomment when __HAXE__ + // this.tooltip = url; + // ::done + + if (label == null || label.length() == 0) this.label = url; - } else { + else this.label = label; - } + } public static boolean isLatex(String pendingUrl) { @@ -89,13 +88,15 @@ public class Url implements EnsureVisible { return label; } + // ::comment when __HAXE__ @Override public String toString() { return super.toString() + " " + url + " " + visible.getCoords(1.0); } + // ::done public String getCoords(double scale) { - // ::comment when __CORE__ + // ::comment when __CORE__ or __HAXE__ if (Check.isJunit() && visible.getCoords(1.0).contains("0,0,0,0")) throw new IllegalStateException(toString()); // ::done @@ -125,11 +126,11 @@ public class Url implements EnsureVisible { public int compare(Url url1, Url url2) { final double surface1 = url1.visible.getSurface(); final double surface2 = url2.visible.getSurface(); - if (surface1 > surface2) { + if (surface1 > surface2) return 1; - } else if (surface1 < surface2) { + else if (surface1 < surface2) return -1; - } + return 0; } }; diff --git a/src/net/sourceforge/plantuml/url/UrlBuilder.java b/src/net/sourceforge/plantuml/url/UrlBuilder.java index 3dc87a2d9..a778c1ae0 100644 --- a/src/net/sourceforge/plantuml/url/UrlBuilder.java +++ b/src/net/sourceforge/plantuml/url/UrlBuilder.java @@ -43,6 +43,7 @@ import net.sourceforge.plantuml.regex.RegexLeaf; import net.sourceforge.plantuml.regex.RegexOptional; public class UrlBuilder { + // ::remove file when __HAXE__ public static final IRegex MANDATORY = new RegexLeaf("URL", "(" + UrlBuilder.getRegexp() + ")"); public static final IRegex OPTIONAL = new RegexOptional(MANDATORY); diff --git a/src/net/sourceforge/plantuml/utils/Inspector.java b/src/net/sourceforge/plantuml/utils/Inspector.java index 2303f5217..40c16d91e 100644 --- a/src/net/sourceforge/plantuml/utils/Inspector.java +++ b/src/net/sourceforge/plantuml/utils/Inspector.java @@ -36,7 +36,7 @@ package net.sourceforge.plantuml.utils; public interface Inspector { - // :: remove file when __HAXE__ + // ::remove file when __HAXE__ O peek(int ahead); void jump(); diff --git a/src/net/sourceforge/plantuml/utils/MathUtils.java b/src/net/sourceforge/plantuml/utils/MathUtils.java index 73bbce8ba..ab9eeb1db 100644 --- a/src/net/sourceforge/plantuml/utils/MathUtils.java +++ b/src/net/sourceforge/plantuml/utils/MathUtils.java @@ -39,6 +39,10 @@ import net.sourceforge.plantuml.klimt.geom.XDimension2D; public class MathUtils { + public static int abs(int a) { + return (a < 0) ? -a : a; + } + public static double max(double a, double b) { return Math.max(a, b); } @@ -77,21 +81,21 @@ public class MathUtils { return v; // throw new IllegalArgumentException("min="+min+" max="+max+" v="+v); } - if (v < min) { + if (v < min) return min; - } - if (v > max) { + + if (v > max) return max; - } + return v; } - public static XDimension2D max(XDimension2D dim1, XDimension2D dim2) { + public static XDimension2D maxDim(XDimension2D dim1, XDimension2D dim2) { return new XDimension2D(Math.max(dim1.getWidth(), dim2.getWidth()), Math.max(dim1.getHeight(), dim2.getHeight())); } - public static XDimension2D max(XDimension2D dim1, XDimension2D dim2, XDimension2D dim3) { + public static XDimension2D maxDim(XDimension2D dim1, XDimension2D dim2, XDimension2D dim3) { return new XDimension2D(MathUtils.max(dim1.getWidth(), dim2.getWidth(), dim3.getWidth()), MathUtils.max(dim1.getHeight(), dim2.getHeight(), dim3.getHeight())); } diff --git a/src/net/sourceforge/plantuml/version/Version.java b/src/net/sourceforge/plantuml/version/Version.java index bbc1a2b5f..e4f311ae4 100644 --- a/src/net/sourceforge/plantuml/version/Version.java +++ b/src/net/sourceforge/plantuml/version/Version.java @@ -82,7 +82,7 @@ public class Version { } public static int beta() { - final int beta = 5; + final int beta = 7; return beta; } diff --git a/src/net/sourceforge/plantuml/wbs/WBSTextBlock.java b/src/net/sourceforge/plantuml/wbs/WBSTextBlock.java index 660b10316..18ed6eba2 100644 --- a/src/net/sourceforge/plantuml/wbs/WBSTextBlock.java +++ b/src/net/sourceforge/plantuml/wbs/WBSTextBlock.java @@ -65,7 +65,7 @@ abstract class WBSTextBlock extends AbstractTextBlock { } final protected void drawLine(UGraphic ug, XPoint2D p1, XPoint2D p2) { - final ULine line = new ULine(p1, p2); + final ULine line = ULine.create(p1, p2); getStyleUsed().applyStrokeAndLineColor(ug.apply(UTranslate.point(p1)), skinParam.getIHtmlColorSet()).draw(line); } diff --git a/src/smetana/core/debug/SmetanaDebug.java b/src/smetana/core/debug/SmetanaDebug.java index 7875edaae..c7e7c7f0d 100644 --- a/src/smetana/core/debug/SmetanaDebug.java +++ b/src/smetana/core/debug/SmetanaDebug.java @@ -36,14 +36,28 @@ package smetana.core.debug; +import java.util.LinkedHashMap; +import java.util.Map; + public final class SmetanaDebug { - // ::remove folder when __HAXE__ + // ::remove folder when __HAXE__ + static private final Map methods = new LinkedHashMap(); static public void LOG(String s) { } static public void ENTERING(String signature, String methodName) { +// if (methods.containsKey(methodName) == false) +// methods.put(methodName, methodName); + } + + static public void LIST_METHODS() { + int i = 0; + for (String s : methods.keySet()) { + System.err.println("i=" + i + " " + s); + i++; + } } static public void LEAVING(String signature, String methodName) {