From 488029b9b0fb637f6e9a191e61c44b628777c9af Mon Sep 17 00:00:00 2001 From: Arnaud Roques Date: Thu, 11 May 2023 21:06:04 +0200 Subject: [PATCH] fix: work in progress https://github.com/plantuml/plantuml/issues/1405 https://github.com/plantuml/plantuml/issues/1423 --- src/net/sourceforge/plantuml/abel/Link.java | 4 ++-- .../plantuml/command/note/CommandFactoryNote.java | 2 +- src/net/sourceforge/plantuml/klimt/color/Colors.java | 4 ++-- src/net/sourceforge/plantuml/klimt/color/HColorSet.java | 4 +++- src/net/sourceforge/plantuml/regex/MyPattern.java | 3 ++- src/net/sourceforge/plantuml/svek/SvekLine.java | 7 ++++--- .../sourceforge/plantuml/svek/image/EntityImageObject.java | 2 +- src/net/sourceforge/plantuml/version/Version.java | 2 +- 8 files changed, 16 insertions(+), 12 deletions(-) diff --git a/src/net/sourceforge/plantuml/abel/Link.java b/src/net/sourceforge/plantuml/abel/Link.java index 5f6ef4cf9..bffd58234 100644 --- a/src/net/sourceforge/plantuml/abel/Link.java +++ b/src/net/sourceforge/plantuml/abel/Link.java @@ -491,10 +491,10 @@ public class Link extends WithLinkType implements Hideable, Removeable { this.port1 = port1; this.port2 = port2; if (port1 != null) - ((Entity) cl1).addPortShortName(port1); + cl1.addPortShortName(port1); if (port2 != null) - ((Entity) cl2).addPortShortName(port2); + cl2.addPortShortName(port2); } diff --git a/src/net/sourceforge/plantuml/command/note/CommandFactoryNote.java b/src/net/sourceforge/plantuml/command/note/CommandFactoryNote.java index 2b0f5a9c1..65a763e9b 100644 --- a/src/net/sourceforge/plantuml/command/note/CommandFactoryNote.java +++ b/src/net/sourceforge/plantuml/command/note/CommandFactoryNote.java @@ -136,7 +136,7 @@ public final class CommandFactoryNote implements SingleMultiFactoryCommand quark = diagram.quarkInContext(true, diagram.cleanId(idShort)); + final Quark quark = diagram.quarkInContext(false, diagram.cleanId(idShort)); if (quark.getData() != null) return CommandExecutionResult.error("Note already created: " + quark.getName()); diff --git a/src/net/sourceforge/plantuml/klimt/color/Colors.java b/src/net/sourceforge/plantuml/klimt/color/Colors.java index 0c4f429fd..5f665338f 100644 --- a/src/net/sourceforge/plantuml/klimt/color/Colors.java +++ b/src/net/sourceforge/plantuml/klimt/color/Colors.java @@ -80,9 +80,9 @@ public class Colors { } public Colors(String data, HColorSet set, ColorType mainType) throws NoSuchColorException { - data = StringUtils.goLowerCase(data); + data = StringUtils.goLowerCase(data).replaceAll("#", ""); - for (final StringTokenizer st = new StringTokenizer(data, "#;"); st.hasMoreTokens();) { + for (final StringTokenizer st = new StringTokenizer(data, ";"); st.hasMoreTokens();) { final String s = st.nextToken(); final int x = s.indexOf(':'); if (x == -1) { diff --git a/src/net/sourceforge/plantuml/klimt/color/HColorSet.java b/src/net/sourceforge/plantuml/klimt/color/HColorSet.java index c1b1a4eda..14477165a 100644 --- a/src/net/sourceforge/plantuml/klimt/color/HColorSet.java +++ b/src/net/sourceforge/plantuml/klimt/color/HColorSet.java @@ -50,6 +50,8 @@ import net.sourceforge.plantuml.regex.MyPattern; public class HColorSet { + private static final String COLOR_GRADIENT_SEPARATOR = "[-\\\\|/]"; + private final static HColorSet singleton = new HColorSet(); private final Map htmlNames = new HashMap(); @@ -293,7 +295,7 @@ public class HColorSet { private Gradient gradientFromString(String s) { // ::comment when __HAXE__ - final Matcher2 m = MyPattern.cmpile("[-\\\\|/]").matcher(s); + final Matcher2 m = MyPattern.cmpile(COLOR_GRADIENT_SEPARATOR).matcher(s); if (m.find()) { final char sep = m.group(0).charAt(0); final int idx = s.indexOf(sep); diff --git a/src/net/sourceforge/plantuml/regex/MyPattern.java b/src/net/sourceforge/plantuml/regex/MyPattern.java index e219aa2de..fc6ac5fb2 100644 --- a/src/net/sourceforge/plantuml/regex/MyPattern.java +++ b/src/net/sourceforge/plantuml/regex/MyPattern.java @@ -88,7 +88,8 @@ public abstract class MyPattern { private static String transform(String p) { // Replace ReadLineReader.java - p = p.replace("%pLN", "\\p{L}0-9"); // Unicode Letter, digit + // p = p.replace("%pLN", "\\p{L}0-9"); // Unicode Letter, digit + p = p.replace("%pLN", "\\p{L}\\p{N}"); // Unicode Letter, digit p = p.replace("%s", "\\s\u00A0"); // space p = p.replace("%q", "'\u2018\u2019"); // quote p = p.replace("%g", "\"\u201c\u201d"); // double quote diff --git a/src/net/sourceforge/plantuml/svek/SvekLine.java b/src/net/sourceforge/plantuml/svek/SvekLine.java index 0897e536b..384d6a095 100644 --- a/src/net/sourceforge/plantuml/svek/SvekLine.java +++ b/src/net/sourceforge/plantuml/svek/SvekLine.java @@ -513,9 +513,10 @@ public class SvekLine implements Moveable, Hideable, GuideLine { if (extremityFactory != null) { final List points = pointListIterator.next(); - if (points.size() == 0) - throw new IllegalStateException(); - // return extremityFactory.createUDrawable(center, angle, null); + if (points.size() == 0) + return null; + // throw new IllegalStateException(); + // return extremityFactory.createUDrawable(center, angle, null); final XPoint2D p0 = points.get(0); final XPoint2D p1 = points.get(1); diff --git a/src/net/sourceforge/plantuml/svek/image/EntityImageObject.java b/src/net/sourceforge/plantuml/svek/image/EntityImageObject.java index 21b431c5e..92bb7c597 100644 --- a/src/net/sourceforge/plantuml/svek/image/EntityImageObject.java +++ b/src/net/sourceforge/plantuml/svek/image/EntityImageObject.java @@ -242,7 +242,7 @@ public class EntityImageObject extends AbstractEntityImage implements Stencil, W } public ShapeType getShapeType() { - if (((Entity) getEntity()).getPortShortNames().size() > 0) + if (getEntity().getPortShortNames().size() > 0) return ShapeType.RECTANGLE_HTML_FOR_PORTS; return ShapeType.RECTANGLE; diff --git a/src/net/sourceforge/plantuml/version/Version.java b/src/net/sourceforge/plantuml/version/Version.java index d70ce9826..ca0324d53 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 = 3; + final int beta = 4; return beta; }