diff --git a/src/gen/lib/dotgen/cluster__c.java b/src/gen/lib/dotgen/cluster__c.java index 76ab399bc..7c7f511f1 100644 --- a/src/gen/lib/dotgen/cluster__c.java +++ b/src/gen/lib/dotgen/cluster__c.java @@ -97,6 +97,7 @@ import static smetana.core.Macro.GD_n_nodes; import static smetana.core.Macro.GD_nlist; import static smetana.core.Macro.GD_rank; import static smetana.core.Macro.GD_rankleader; +import static smetana.core.Macro.N; import static smetana.core.Macro.ND_UF_size; import static smetana.core.Macro.ND_clust; import static smetana.core.Macro.ND_in; @@ -363,8 +364,8 @@ try { flat_edge(g, e); prev = e; } else if (NEQ(e, fe)) { - UNSUPPORTED("ckfinb4h4twp1ry02y9peyhz"); // safe_other_edge(e); - UNSUPPORTED("dg3e0udctqa7xtfynplc7wdpj"); // if (!ED_to_virt(e)) merge_oneway(e, fe); + safe_other_edge(e); + if (N(ED_to_virt(e))) merge_oneway(e, fe); } continue; } diff --git a/src/gen/lib/dotgen/fastgr__c.java b/src/gen/lib/dotgen/fastgr__c.java index d7dd462b0..1c039fd59 100644 --- a/src/gen/lib/dotgen/fastgr__c.java +++ b/src/gen/lib/dotgen/fastgr__c.java @@ -196,7 +196,7 @@ try { for (i = 0; i < L.size; i++) if (EQ(e, L.list.get_(i))) return; - UNSUPPORTED("cslejjtgepjdwlcykfas4fmvz"); // elist_append(e, (*L)); + elist_append(e, L); } finally { LEAVING("cttswsffgmw1g710jzvdd3wzn","safe_list_append"); } diff --git a/src/net/sourceforge/plantuml/AnnotatedWorker.java b/src/net/sourceforge/plantuml/AnnotatedWorker.java index 86e90150b..742e2464a 100644 --- a/src/net/sourceforge/plantuml/AnnotatedWorker.java +++ b/src/net/sourceforge/plantuml/AnnotatedWorker.java @@ -106,12 +106,12 @@ public class AnnotatedWorker { final Style style = StyleSignatureBasic.of(SName.root, SName.document, SName.frame) .getMergedStyle(skinParam.getCurrentStyleBuilder()); deltaShadow = style.value(PName.Shadowing).asDouble(); - fontConfiguration = new FontConfiguration(getSkinParam(), style); + fontConfiguration = FontConfiguration.create(getSkinParam(), style); stroke = style.getStroke(); borderColor = style.value(PName.LineColor).asColor(skinParam.getThemeStyle(), skinParam.getIHtmlColorSet()); } else { deltaShadow = getSkinParam().shadowing(null) ? 3 : 0; - fontConfiguration = new FontConfiguration(getSkinParam(), FontParam.CAPTION, null); + fontConfiguration = FontConfiguration.create(getSkinParam(), FontParam.CAPTION, null); stroke = new UStroke(); borderColor = HColorUtils.BLACK; } @@ -193,7 +193,7 @@ public class AnnotatedWorker { .getMergedStyle(skinParam.getCurrentStyleBuilder()); return style.createTextBlockBordered(caption.getDisplay(), skinParam.getIHtmlColorSet(), skinParam); } - return caption.getDisplay().create(new FontConfiguration(getSkinParam(), FontParam.CAPTION, null), + return caption.getDisplay().create(FontConfiguration.create(getSkinParam(), FontParam.CAPTION, null), HorizontalAlignment.CENTER, getSkinParam()); } @@ -209,7 +209,7 @@ public class AnnotatedWorker { block = style.createTextBlockBordered(title.getDisplay(), skinParam.getIHtmlColorSet(), skinParam); } else { final ISkinParam skinParam = getSkinParam(); - final FontConfiguration fontConfiguration = new FontConfiguration(skinParam, FontParam.TITLE, null); + final FontConfiguration fontConfiguration = FontConfiguration.create(skinParam, FontParam.TITLE, null); block = TextBlockUtils.title(fontConfiguration, title.getDisplay(), skinParam); } @@ -229,7 +229,7 @@ public class AnnotatedWorker { style = StyleSignatureBasic.of(SName.root, SName.document, SName.footer) .getMergedStyle(skinParam.getCurrentStyleBuilder()); } - textFooter = footer.createRibbon(new FontConfiguration(getSkinParam(), FontParam.FOOTER, null), + textFooter = footer.createRibbon(FontConfiguration.create(getSkinParam(), FontParam.FOOTER, null), getSkinParam(), style); } TextBlock textHeader = null; @@ -239,7 +239,7 @@ public class AnnotatedWorker { style = StyleSignatureBasic.of(SName.root, SName.document, SName.header) .getMergedStyle(skinParam.getCurrentStyleBuilder()); } - textHeader = header.createRibbon(new FontConfiguration(getSkinParam(), FontParam.HEADER, null), + textHeader = header.createRibbon(FontConfiguration.create(getSkinParam(), FontParam.HEADER, null), getSkinParam(), style); } diff --git a/src/net/sourceforge/plantuml/BaseFile.java b/src/net/sourceforge/plantuml/BaseFile.java index a6b447cc6..7c59a15eb 100644 --- a/src/net/sourceforge/plantuml/BaseFile.java +++ b/src/net/sourceforge/plantuml/BaseFile.java @@ -42,14 +42,14 @@ public class BaseFile { private final String basename; private final SFile basedir; - public BaseFile() { - this.basedir = null; - this.basename = null; - } - public BaseFile(SFile file) { - this.basedir = file.getParentFile(); - this.basename = extractBasename(file.getName()); + if (file == null) { + this.basedir = null; + this.basename = null; + } else { + this.basedir = file.getParentFile(); + this.basename = extractBasename(file.getName()); + } } private static String extractBasename(String name) { diff --git a/src/net/sourceforge/plantuml/BlockUml.java b/src/net/sourceforge/plantuml/BlockUml.java index e70f237e9..62992f1d3 100644 --- a/src/net/sourceforge/plantuml/BlockUml.java +++ b/src/net/sourceforge/plantuml/BlockUml.java @@ -77,6 +77,7 @@ public class BlockUml { return Collections.unmodifiableSet(included); } + @Deprecated BlockUml(ThemeStyle style, String... strings) { this(style, convert(strings), Defines.createEmpty(), null, null, null); } diff --git a/src/net/sourceforge/plantuml/ColorParam.java b/src/net/sourceforge/plantuml/ColorParam.java index e8da7d916..0ac7b1656 100644 --- a/src/net/sourceforge/plantuml/ColorParam.java +++ b/src/net/sourceforge/plantuml/ColorParam.java @@ -35,11 +35,13 @@ */ package net.sourceforge.plantuml; +import net.sourceforge.plantuml.annotation.HaxeIgnored; import net.sourceforge.plantuml.graphic.color.ColorType; import net.sourceforge.plantuml.ugraphic.color.HColor; import net.sourceforge.plantuml.ugraphic.color.HColorUtils; +@HaxeIgnored public enum ColorParam { background(HColorUtils.WHITE, true, ColorType.BACK), hyperlink(HColorUtils.BLUE), diff --git a/src/net/sourceforge/plantuml/Dimension2DDouble.java b/src/net/sourceforge/plantuml/Dimension2DDouble.java index e3095e8f0..4b0222e17 100644 --- a/src/net/sourceforge/plantuml/Dimension2DDouble.java +++ b/src/net/sourceforge/plantuml/Dimension2DDouble.java @@ -47,15 +47,15 @@ public class Dimension2DDouble extends Dimension2D { final private double height; public Dimension2DDouble(double width, double height) { - if (Double.isNaN(width) || Double.isNaN(height)) { + if (Double.isNaN(width) || Double.isNaN(height)) throw new IllegalArgumentException(); - } + this.width = width; this.height = height; } - public Dimension2DDouble(Point2D point) { - this(point.getX(), point.getY()); + private static Dimension2DDouble fromPoint(Point2D point) { + return new Dimension2DDouble(point.getX(), point.getY()); } @Override diff --git a/src/net/sourceforge/plantuml/EmptyImageBuilder.java b/src/net/sourceforge/plantuml/EmptyImageBuilder.java index 887907931..ed7e32d0a 100644 --- a/src/net/sourceforge/plantuml/EmptyImageBuilder.java +++ b/src/net/sourceforge/plantuml/EmptyImageBuilder.java @@ -60,9 +60,13 @@ public class EmptyImageBuilder { private final Color background; private final StringBounder stringBounder; - public EmptyImageBuilder(String watermark, double width, double height, Color background, - StringBounder stringBounder) { - this(watermark, (int) width, (int) height, background, stringBounder); + private static EmptyImageBuilder create(String watermark, int width, int height, Color background, + StringBounder stringBounder, double dpiFactor) { + EmptyImageBuilder result = new EmptyImageBuilder(watermark, (int) (width * dpiFactor), + (int) (height * dpiFactor), background, stringBounder); + if (dpiFactor != 1.0) + result.g2d.setTransform(AffineTransform.getScaleInstance(dpiFactor, dpiFactor)); + return result; } public EmptyImageBuilder(String watermark, int width, int height, Color background, StringBounder stringBounder) { @@ -156,14 +160,6 @@ public class EmptyImageBuilder { return result; } - public EmptyImageBuilder(String watermark, int width, int height, Color background, StringBounder stringBounder, - double dpiFactor) { - this(watermark, width * dpiFactor, height * dpiFactor, background, stringBounder); - if (dpiFactor != 1.0) { - g2d.setTransform(AffineTransform.getScaleInstance(dpiFactor, dpiFactor)); - } - } - public BufferedImage getBufferedImage() { return im; } diff --git a/src/net/sourceforge/plantuml/FileFormatOption.java b/src/net/sourceforge/plantuml/FileFormatOption.java index e466d380f..11b5712b2 100644 --- a/src/net/sourceforge/plantuml/FileFormatOption.java +++ b/src/net/sourceforge/plantuml/FileFormatOption.java @@ -39,6 +39,7 @@ import java.awt.geom.AffineTransform; import java.io.Serializable; import java.util.Objects; +import net.sourceforge.plantuml.annotation.HaxeIgnored; import net.sourceforge.plantuml.api.ThemeStyle; import net.sourceforge.plantuml.graphic.StringBounder; @@ -66,10 +67,12 @@ public final class FileFormatOption implements Serializable { return scale; } + @HaxeIgnored public FileFormatOption(FileFormat fileFormat) { this(fileFormat, true, false, null, false, null, TikzFontDistortion.getDefault(), 1.0, null, null, ThemeStyle.LIGHT_REGULAR); } + @HaxeIgnored public FileFormatOption(FileFormat fileFormat, boolean withMetadata) { this(fileFormat, withMetadata, false, null, false, null, TikzFontDistortion.getDefault(), 1.0, null, null, ThemeStyle.LIGHT_REGULAR); } diff --git a/src/net/sourceforge/plantuml/FontParam.java b/src/net/sourceforge/plantuml/FontParam.java index 351ecdb59..460596daf 100644 --- a/src/net/sourceforge/plantuml/FontParam.java +++ b/src/net/sourceforge/plantuml/FontParam.java @@ -37,6 +37,7 @@ package net.sourceforge.plantuml; import java.awt.Font; +import net.sourceforge.plantuml.annotation.HaxeIgnored; import net.sourceforge.plantuml.graphic.FontConfiguration; import net.sourceforge.plantuml.style.SName; import net.sourceforge.plantuml.style.StyleSignatureBasic; @@ -46,6 +47,7 @@ interface FontParamConstant { String COLOR = "black"; } +@HaxeIgnored public enum FontParam { TIMING(12, Font.PLAIN), // ACTIVITY(12, Font.PLAIN), // @@ -184,7 +186,7 @@ public enum FontParam { } public FontConfiguration getFontConfiguration(ISkinParam skinParam) { - return new FontConfiguration(skinParam, this, null); + return FontConfiguration.create(skinParam, this, null); } public StyleSignatureBasic getStyleDefinition(SName diagramType) { diff --git a/src/net/sourceforge/plantuml/LineLocationImpl.java b/src/net/sourceforge/plantuml/LineLocationImpl.java index 1ea05ce03..552832d65 100644 --- a/src/net/sourceforge/plantuml/LineLocationImpl.java +++ b/src/net/sourceforge/plantuml/LineLocationImpl.java @@ -37,6 +37,8 @@ package net.sourceforge.plantuml; import java.util.Objects; +import net.sourceforge.plantuml.annotation.HaxeIgnored; + public class LineLocationImpl implements LineLocation { private final String desc; @@ -52,6 +54,7 @@ public class LineLocationImpl implements LineLocation { this(desc, parent, -1); } + @HaxeIgnored private LineLocationImpl(String desc, LineLocation parent, int position) { this.parent = parent; this.desc = Objects.requireNonNull(desc); diff --git a/src/net/sourceforge/plantuml/Option.java b/src/net/sourceforge/plantuml/Option.java index 1a2b0d7a0..2cf81cbd7 100644 --- a/src/net/sourceforge/plantuml/Option.java +++ b/src/net/sourceforge/plantuml/Option.java @@ -46,6 +46,7 @@ import java.util.LinkedHashMap; import java.util.List; import java.util.Map; +import net.sourceforge.plantuml.annotation.HaxeIgnored; import net.sourceforge.plantuml.api.ApiWarning; import net.sourceforge.plantuml.command.regex.Matcher2; import net.sourceforge.plantuml.command.regex.MyPattern; @@ -55,6 +56,7 @@ import net.sourceforge.plantuml.preproc.Defines; import net.sourceforge.plantuml.security.SFile; import net.sourceforge.plantuml.stats.StatsUtils; +@HaxeIgnored public class Option { private final List excludes = new ArrayList<>(); diff --git a/src/net/sourceforge/plantuml/PSystemBuilder.java b/src/net/sourceforge/plantuml/PSystemBuilder.java index 9a3a81da1..80f1747e9 100644 --- a/src/net/sourceforge/plantuml/PSystemBuilder.java +++ b/src/net/sourceforge/plantuml/PSystemBuilder.java @@ -114,7 +114,7 @@ public class PSystemBuilder { Diagram result = null; try { final DiagramType type = DiagramType.getTypeFromArobaseStart(source.get(0).getString()); - final UmlSource umlSource = new UmlSource(source, type == DiagramType.UML, rawSource); + final UmlSource umlSource = UmlSource.createWithRaw(source, type == DiagramType.UML, rawSource); for (StringLocated s : source) { if (s.getPreprocessorError() != null) { diff --git a/src/net/sourceforge/plantuml/SkinParamBackcolored.java b/src/net/sourceforge/plantuml/SkinParamBackcolored.java index 70ae42f59..3eec4a269 100644 --- a/src/net/sourceforge/plantuml/SkinParamBackcolored.java +++ b/src/net/sourceforge/plantuml/SkinParamBackcolored.java @@ -38,9 +38,11 @@ package net.sourceforge.plantuml; import java.util.EnumMap; import java.util.Map; +import net.sourceforge.plantuml.annotation.HaxeIgnored; import net.sourceforge.plantuml.cucadiagram.Stereotype; import net.sourceforge.plantuml.ugraphic.color.HColor; +@HaxeIgnored public class SkinParamBackcolored extends SkinParamDelegator { final private HColor backColorElement; diff --git a/src/net/sourceforge/plantuml/SourceFileReader.java b/src/net/sourceforge/plantuml/SourceFileReader.java index 5db729e57..8ff17b8a2 100644 --- a/src/net/sourceforge/plantuml/SourceFileReader.java +++ b/src/net/sourceforge/plantuml/SourceFileReader.java @@ -41,9 +41,11 @@ import java.io.IOException; import java.util.Collections; import java.util.List; +import net.sourceforge.plantuml.annotation.HaxeIgnored; import net.sourceforge.plantuml.preproc.Defines; import net.sourceforge.plantuml.security.SFile; +@HaxeIgnored public class SourceFileReader extends SourceFileReaderAbstract implements ISourceFileReader { public SourceFileReader(File file) throws IOException { diff --git a/src/net/sourceforge/plantuml/SourceStringReader.java b/src/net/sourceforge/plantuml/SourceStringReader.java index 5021854c7..c3d1f0b56 100644 --- a/src/net/sourceforge/plantuml/SourceStringReader.java +++ b/src/net/sourceforge/plantuml/SourceStringReader.java @@ -47,6 +47,7 @@ import java.util.Arrays; import java.util.Collections; import java.util.List; +import net.sourceforge.plantuml.annotation.HaxeIgnored; import net.sourceforge.plantuml.api.ThemeStyle; import net.sourceforge.plantuml.core.Diagram; import net.sourceforge.plantuml.core.DiagramDescription; @@ -56,6 +57,7 @@ import net.sourceforge.plantuml.preproc.Defines; import net.sourceforge.plantuml.security.SFile; import net.sourceforge.plantuml.svek.TextBlockBackcolored; +@HaxeIgnored public class SourceStringReader { final private List blocks; diff --git a/src/net/sourceforge/plantuml/SplitParam.java b/src/net/sourceforge/plantuml/SplitParam.java index fa4174dcf..87c895f09 100644 --- a/src/net/sourceforge/plantuml/SplitParam.java +++ b/src/net/sourceforge/plantuml/SplitParam.java @@ -46,8 +46,8 @@ public class SplitParam { private final HColor externalColor; private final int externalMargin; - public SplitParam() { - this(null, null, 0); + private static SplitParam empty() { + return new SplitParam(null, null, 0); } public SplitParam(HColor borderColor, HColor externalColor, int externalMargin) { diff --git a/src/net/sourceforge/plantuml/StringLocated.java b/src/net/sourceforge/plantuml/StringLocated.java index 177ac5ed6..e264ca48a 100644 --- a/src/net/sourceforge/plantuml/StringLocated.java +++ b/src/net/sourceforge/plantuml/StringLocated.java @@ -37,6 +37,7 @@ package net.sourceforge.plantuml; import java.util.Objects; +import net.sourceforge.plantuml.annotation.HaxeIgnored; import net.sourceforge.plantuml.command.regex.FoxSignature; import net.sourceforge.plantuml.tim.TLineType; @@ -50,10 +51,17 @@ final public class StringLocated { private long fox = -1; private TLineType type; + @HaxeIgnored public StringLocated(String s, LineLocation location) { this(s, location, null); } + public StringLocated(String s, LineLocation location, String preprocessorError) { + this.s = Objects.requireNonNull(s); + this.location = location; + this.preprocessorError = preprocessorError; + } + @Override public String toString() { return s; @@ -70,12 +78,6 @@ final public class StringLocated { return new StringLocated(s.substring(0, s.length() - 1) + next.s, location, preprocessorError); } - public StringLocated(String s, LineLocation location, String preprocessorError) { - this.s = Objects.requireNonNull(s); - this.location = location; - this.preprocessorError = preprocessorError; - } - public StringLocated withErrorPreprocessor(String preprocessorError) { return new StringLocated(s, location, preprocessorError); } diff --git a/src/net/sourceforge/plantuml/TitledDiagram.java b/src/net/sourceforge/plantuml/TitledDiagram.java index 09c648f4d..98cd0ea05 100644 --- a/src/net/sourceforge/plantuml/TitledDiagram.java +++ b/src/net/sourceforge/plantuml/TitledDiagram.java @@ -87,23 +87,25 @@ public abstract class TitledDiagram extends AbstractPSystem implements Diagram, return pragma; } - public TitledDiagram(ThemeStyle style, UmlSource source, UmlDiagramType type) { +// public TitledDiagram(ThemeStyle style, UmlSource source, UmlDiagramType type) { +// super(source); +// this.type = type; +// this.skinParam = SkinParam.create(type, style); +// } + + public TitledDiagram(ThemeStyle style, UmlSource source, UmlDiagramType type, ISkinSimple orig) { super(source); this.type = type; this.skinParam = SkinParam.create(type, style); + if (orig != null) + this.skinParam.copyAllFrom(orig); + } public final StyleBuilder getCurrentStyleBuilder() { return skinParam.getCurrentStyleBuilder(); } - public TitledDiagram(ThemeStyle style, UmlSource source, UmlDiagramType type, ISkinSimple orig) { - this(style, source, type); - if (orig != null) { - this.skinParam.copyAllFrom(orig); - } - } - final public UmlDiagramType getUmlDiagramType() { return type; } @@ -274,7 +276,8 @@ public abstract class TitledDiagram extends AbstractPSystem implements Diagram, public HColor calculateBackColor() { if (UseStyle.useBetaStyle()) { - final Style style = StyleSignatureBasic.of(SName.root, SName.document, this.getUmlDiagramType().getStyleName()) + final Style style = StyleSignatureBasic + .of(SName.root, SName.document, this.getUmlDiagramType().getStyleName()) .getMergedStyle(this.getSkinParam().getCurrentStyleBuilder()); HColor backgroundColor = style.value(PName.BackGroundColor).asColor(this.getSkinParam().getThemeStyle(), diff --git a/src/net/sourceforge/plantuml/UmlDiagram.java b/src/net/sourceforge/plantuml/UmlDiagram.java index 3eaaca3d5..e2a717704 100644 --- a/src/net/sourceforge/plantuml/UmlDiagram.java +++ b/src/net/sourceforge/plantuml/UmlDiagram.java @@ -87,9 +87,9 @@ public abstract class UmlDiagram extends TitledDiagram implements Diagram, Annot private int minwidth = Integer.MAX_VALUE; - public UmlDiagram(ThemeStyle style, UmlSource source, UmlDiagramType type) { - super(style, source, type); - } +// public UmlDiagram(ThemeStyle style, UmlSource source, UmlDiagramType type) { +// super(style, source, type); +// } public UmlDiagram(ThemeStyle style, UmlSource source, UmlDiagramType type, ISkinSimple orig) { super(style, source, type, orig); diff --git a/src/net/sourceforge/plantuml/Url.java b/src/net/sourceforge/plantuml/Url.java index 0d1c1fedf..399c698ad 100644 --- a/src/net/sourceforge/plantuml/Url.java +++ b/src/net/sourceforge/plantuml/Url.java @@ -37,6 +37,7 @@ package net.sourceforge.plantuml; import java.util.Comparator; +import net.sourceforge.plantuml.annotation.HaxeIgnored; import net.sourceforge.plantuml.cucadiagram.dot.DotMaker2; public class Url implements EnsureVisible { @@ -46,6 +47,7 @@ public class Url implements EnsureVisible { private final String label; private boolean member; + @HaxeIgnored public Url(String url, String tooltip) { this(url, tooltip, null); } diff --git a/src/net/sourceforge/plantuml/activitydiagram3/ActivityDiagram3.java b/src/net/sourceforge/plantuml/activitydiagram3/ActivityDiagram3.java index 293facf6d..708126ea4 100644 --- a/src/net/sourceforge/plantuml/activitydiagram3/ActivityDiagram3.java +++ b/src/net/sourceforge/plantuml/activitydiagram3/ActivityDiagram3.java @@ -364,7 +364,7 @@ public class ActivityDiagram3 extends UmlDiagram { manageSwimlaneStrategy(); if (current() instanceof InstructionRepeat) { final InstructionRepeat instructionRepeat = (InstructionRepeat) current(); - final LinkRendering back = new LinkRendering(linkColor).withDisplay(linkLabel); + final LinkRendering back = LinkRendering.create(linkColor).withDisplay(linkLabel); instructionRepeat.setTest(label, yes, out, nextLinkRenderer(), back, swinlanes.getCurrentSwimlane()); setCurrent(instructionRepeat.getParent()); this.setNextLinkRendererInternal(LinkRendering.none()); @@ -471,7 +471,7 @@ public class ActivityDiagram3 extends UmlDiagram { if (color == null) return; - final LinkRendering link = new LinkRendering(color); + final LinkRendering link = LinkRendering.create(color); setNextLink(link); } diff --git a/src/net/sourceforge/plantuml/activitydiagram3/ActivityDiagramFactory3.java b/src/net/sourceforge/plantuml/activitydiagram3/ActivityDiagramFactory3.java index 0df187e56..d77578643 100644 --- a/src/net/sourceforge/plantuml/activitydiagram3/ActivityDiagramFactory3.java +++ b/src/net/sourceforge/plantuml/activitydiagram3/ActivityDiagramFactory3.java @@ -113,11 +113,11 @@ public class ActivityDiagramFactory3 extends PSystemCommandFactory { cmds.add(new CommandActivity3()); cmds.add(new CommandIf4()); cmds.add(new CommandIf2()); - cmds.add(new CommandDecoratorMultine(new CommandIf2(), 50)); + cmds.add(CommandDecoratorMultine.create(new CommandIf2(), 50)); cmds.add(new CommandIfLegacy1()); cmds.add(new CommandElseIf2()); cmds.add(new CommandElse3()); - cmds.add(new CommandDecoratorMultine(new CommandElse3(), 50)); + cmds.add(CommandDecoratorMultine.create(new CommandElse3(), 50)); cmds.add(new CommandElseLegacy1()); cmds.add(new CommandEndif3()); @@ -156,7 +156,7 @@ public class ActivityDiagramFactory3 extends PSystemCommandFactory { cmds.add(new CommandLabel()); cmds.add(new CommandGoto()); - cmds.add(new CommandDecoratorMultine(new CommandElseIf2(), 50)); + cmds.add(CommandDecoratorMultine.create(new CommandElseIf2(), 50)); return cmds; } diff --git a/src/net/sourceforge/plantuml/activitydiagram3/Branch.java b/src/net/sourceforge/plantuml/activitydiagram3/Branch.java index 4e27513e4..d55b8536b 100644 --- a/src/net/sourceforge/plantuml/activitydiagram3/Branch.java +++ b/src/net/sourceforge/plantuml/activitydiagram3/Branch.java @@ -255,7 +255,7 @@ public class Branch { lineBreak = style.wrapWidth(); fcArrow = style.getFontConfiguration(skinParam().getThemeStyle(), skinParam().getIHtmlColorSet()); } else { - fcArrow = new FontConfiguration(skinParam(), FontParam.ARROW, null); + fcArrow = FontConfiguration.create(skinParam(), FontParam.ARROW, null); } return display.create0(fcArrow, HorizontalAlignment.LEFT, skinParam(), lineBreak, CreoleMode.SIMPLE_LINE, null, diff --git a/src/net/sourceforge/plantuml/activitydiagram3/InstructionFork.java b/src/net/sourceforge/plantuml/activitydiagram3/InstructionFork.java index a613969a2..867e66364 100644 --- a/src/net/sourceforge/plantuml/activitydiagram3/InstructionFork.java +++ b/src/net/sourceforge/plantuml/activitydiagram3/InstructionFork.java @@ -85,7 +85,7 @@ public class InstructionFork extends WithNote implements Instruction { this.skinParam = skinParam; this.swimlaneIn = swimlane; this.swimlaneOut = swimlane; - this.forks.add(new InstructionList()); + this.forks.add(InstructionList.empty()); } private InstructionList getLastList() { @@ -109,14 +109,13 @@ public class InstructionFork extends WithNote implements Instruction { return new GtileSplit(all, swimlaneIn, getInLinkRenderingColor(skinParam).getColor()); } - + private Rainbow getInLinkRenderingColor(ISkinParam skinParam) { Rainbow color; color = Rainbow.build(skinParam); return color; } - @Override public Ftile createFtile(FtileFactory factory) { final List all = new ArrayList<>(); @@ -136,7 +135,7 @@ public class InstructionFork extends WithNote implements Instruction { public void forkAgain(Swimlane swimlane) { this.swimlaneOut = swimlane; - this.forks.add(new InstructionList()); + this.forks.add(InstructionList.empty()); } @Override diff --git a/src/net/sourceforge/plantuml/activitydiagram3/InstructionGroup.java b/src/net/sourceforge/plantuml/activitydiagram3/InstructionGroup.java index 120df27b2..604b58018 100644 --- a/src/net/sourceforge/plantuml/activitydiagram3/InstructionGroup.java +++ b/src/net/sourceforge/plantuml/activitydiagram3/InstructionGroup.java @@ -125,7 +125,7 @@ public class InstructionGroup extends AbstractInstruction implements Instruction @Override public boolean addNote(Display note, NotePosition position, NoteType type, Colors colors, Swimlane swimlaneNote) { if (list.isEmpty()) { - this.note = new PositionedNote(note, position, type, colors, swimlaneNote); + this.note = new PositionedNote(note, position, type, swimlaneNote, colors); return true; } return list.addNote(note, position, type, colors, swimlaneNote); diff --git a/src/net/sourceforge/plantuml/activitydiagram3/InstructionList.java b/src/net/sourceforge/plantuml/activitydiagram3/InstructionList.java index d610d22ff..8ac9ebbb7 100644 --- a/src/net/sourceforge/plantuml/activitydiagram3/InstructionList.java +++ b/src/net/sourceforge/plantuml/activitydiagram3/InstructionList.java @@ -73,8 +73,12 @@ public class InstructionList extends WithNote implements Instruction, Instructio return false; } - public InstructionList() { - this(null); + public static InstructionList empty() { + return new InstructionList(null); + } + + public InstructionList(Swimlane defaultSwimlane) { + this.defaultSwimlane = defaultSwimlane; } public boolean isEmpty() { @@ -91,10 +95,6 @@ public class InstructionList extends WithNote implements Instruction, Instructio return getLast() instanceof InstructionStop && ((InstructionStop) getLast()).hasNotes() == false; } - public InstructionList(Swimlane defaultSwimlane) { - this.defaultSwimlane = defaultSwimlane; - } - @Override public CommandExecutionResult add(Instruction ins) { all.add(ins); diff --git a/src/net/sourceforge/plantuml/activitydiagram3/InstructionPartition.java b/src/net/sourceforge/plantuml/activitydiagram3/InstructionPartition.java index 723d63e84..d6df32741 100644 --- a/src/net/sourceforge/plantuml/activitydiagram3/InstructionPartition.java +++ b/src/net/sourceforge/plantuml/activitydiagram3/InstructionPartition.java @@ -48,7 +48,7 @@ import net.sourceforge.plantuml.sequencediagram.NoteType; public class InstructionPartition extends AbstractInstruction implements Instruction { - private final InstructionList list = new InstructionList(); + private final InstructionList list = InstructionList.empty(); private final Instruction parent; public InstructionPartition(Instruction parent, String partitionTitle) { diff --git a/src/net/sourceforge/plantuml/activitydiagram3/InstructionRepeat.java b/src/net/sourceforge/plantuml/activitydiagram3/InstructionRepeat.java index d8586c88b..db7eee52b 100644 --- a/src/net/sourceforge/plantuml/activitydiagram3/InstructionRepeat.java +++ b/src/net/sourceforge/plantuml/activitydiagram3/InstructionRepeat.java @@ -204,7 +204,7 @@ public class InstructionRepeat extends AbstractInstruction implements Instructio if (Display.isNull(backward)) return repeatList.addNote(note, position, type, colors, swimlaneNote); - this.backwardNotes.add(new PositionedNote(note, position, type, colors, swimlaneNote)); + this.backwardNotes.add(new PositionedNote(note, position, type, swimlaneNote, colors)); return true; } diff --git a/src/net/sourceforge/plantuml/activitydiagram3/InstructionWhile.java b/src/net/sourceforge/plantuml/activitydiagram3/InstructionWhile.java index 3f58b6ce7..10f5a38ad 100644 --- a/src/net/sourceforge/plantuml/activitydiagram3/InstructionWhile.java +++ b/src/net/sourceforge/plantuml/activitydiagram3/InstructionWhile.java @@ -58,7 +58,7 @@ import net.sourceforge.plantuml.ugraphic.color.HColor; public class InstructionWhile extends WithNote implements Instruction, InstructionCollection { - private final InstructionList repeatList = new InstructionList(); + private final InstructionList repeatList = InstructionList.empty(); private final Instruction parent; private final LinkRendering nextLinkRenderer; private final HColor color; diff --git a/src/net/sourceforge/plantuml/activitydiagram3/LinkRendering.java b/src/net/sourceforge/plantuml/activitydiagram3/LinkRendering.java index 202ea46c3..4d4467387 100644 --- a/src/net/sourceforge/plantuml/activitydiagram3/LinkRendering.java +++ b/src/net/sourceforge/plantuml/activitydiagram3/LinkRendering.java @@ -45,8 +45,12 @@ public class LinkRendering { private final Rainbow rainbow; private final Display display; - public LinkRendering(Rainbow rainbow) { - this(rainbow, Display.NULL); + public static LinkRendering create(Rainbow rainbow) { + return new LinkRendering(rainbow, Display.NULL); + } + + public static LinkRendering none() { + return LinkRendering.create(Rainbow.none()); } private LinkRendering(Rainbow rainbow, Display display) { @@ -54,10 +58,6 @@ public class LinkRendering { this.display = display; } - public static LinkRendering none() { - return new LinkRendering(Rainbow.none()); - } - public LinkRendering withRainbow(Rainbow rainbow) { return new LinkRendering(rainbow, display); } diff --git a/src/net/sourceforge/plantuml/activitydiagram3/PositionedNote.java b/src/net/sourceforge/plantuml/activitydiagram3/PositionedNote.java index 813948fbb..1fabb8344 100644 --- a/src/net/sourceforge/plantuml/activitydiagram3/PositionedNote.java +++ b/src/net/sourceforge/plantuml/activitydiagram3/PositionedNote.java @@ -36,6 +36,7 @@ package net.sourceforge.plantuml.activitydiagram3; import net.sourceforge.plantuml.activitydiagram3.ftile.Swimlane; +import net.sourceforge.plantuml.annotation.HaxeIgnored; import net.sourceforge.plantuml.cucadiagram.Display; import net.sourceforge.plantuml.graphic.color.Colors; import net.sourceforge.plantuml.sequencediagram.NotePosition; @@ -49,7 +50,7 @@ public class PositionedNote { private final Colors colors; private final Swimlane swimlaneNote; - public PositionedNote(Display display, NotePosition position, NoteType type, Colors colors, Swimlane swimlaneNote) { + public PositionedNote(Display display, NotePosition position, NoteType type, Swimlane swimlaneNote, Colors colors) { this.display = display; this.notePosition = position; this.type = type; @@ -57,15 +58,16 @@ public class PositionedNote { this.swimlaneNote = swimlaneNote; } + @HaxeIgnored + public PositionedNote(Display note, NotePosition position, NoteType type, Swimlane swimlaneNote) { + this(note, position, type, swimlaneNote, null); + } + @Override public String toString() { return "type=" + type + " notePosition=" + notePosition + " " + display; } - public PositionedNote(Display note, NotePosition position, NoteType type, Swimlane swimlaneNote) { - this(note, position, type, null, swimlaneNote); - } - public Display getDisplay() { return display; } diff --git a/src/net/sourceforge/plantuml/activitydiagram3/WithNote.java b/src/net/sourceforge/plantuml/activitydiagram3/WithNote.java index 8351058c3..b490d4267 100644 --- a/src/net/sourceforge/plantuml/activitydiagram3/WithNote.java +++ b/src/net/sourceforge/plantuml/activitydiagram3/WithNote.java @@ -52,7 +52,7 @@ abstract class WithNote extends AbstractInstruction { private final Collection notes = new ArrayList<>(); public boolean addNote(Display note, NotePosition position, NoteType type, Colors colors, Swimlane swimlaneNote) { - this.notes.add(new PositionedNote(note, position, type, colors, swimlaneNote)); + this.notes.add(new PositionedNote(note, position, type, swimlaneNote, colors)); return true; } diff --git a/src/net/sourceforge/plantuml/activitydiagram3/command/CommandBackward3.java b/src/net/sourceforge/plantuml/activitydiagram3/command/CommandBackward3.java index c4d15a0f4..0914f23bb 100644 --- a/src/net/sourceforge/plantuml/activitydiagram3/command/CommandBackward3.java +++ b/src/net/sourceforge/plantuml/activitydiagram3/command/CommandBackward3.java @@ -110,7 +110,7 @@ public class CommandBackward3 extends SingleLineCommand2 { if (incomingColor == null) in = LinkRendering.none(); else - in = new LinkRendering(incomingColor); + in = LinkRendering.create(incomingColor); final String label = arg.get(name, 0); return in.withDisplay(Display.getWithNewlines(label)); } diff --git a/src/net/sourceforge/plantuml/activitydiagram3/ftile/CollisionDetector.java b/src/net/sourceforge/plantuml/activitydiagram3/ftile/CollisionDetector.java index fe5981af4..7e73b79bf 100644 --- a/src/net/sourceforge/plantuml/activitydiagram3/ftile/CollisionDetector.java +++ b/src/net/sourceforge/plantuml/activitydiagram3/ftile/CollisionDetector.java @@ -41,6 +41,7 @@ import java.awt.geom.Line2D; import java.util.ArrayList; import java.util.List; +import net.sourceforge.plantuml.annotation.HaxeIgnored; import net.sourceforge.plantuml.graphic.StringBounder; import net.sourceforge.plantuml.ugraphic.MinMax; import net.sourceforge.plantuml.ugraphic.UBackground; @@ -56,6 +57,7 @@ import net.sourceforge.plantuml.ugraphic.UTranslate; import net.sourceforge.plantuml.ugraphic.color.HColor; import net.sourceforge.plantuml.ugraphic.color.HColorUtils; +@HaxeIgnored public class CollisionDetector extends UGraphicNo { @Override @@ -65,16 +67,24 @@ public class CollisionDetector extends UGraphicNo { private final Context context; - public CollisionDetector(StringBounder stringBounder) { - super(stringBounder); - this.context = new Context(); + private static CollisionDetector create(StringBounder stringBounder) { + return new CollisionDetector(stringBounder, new UTranslate(), new Context()); + } + + private CollisionDetector(StringBounder stringBounder, UTranslate translate, Context context) { + super(stringBounder, translate); + this.context = context; } private CollisionDetector(CollisionDetector other, UChange change) { - super(other, change); - if (!instanceOfAny(change, UBackground.class, HColor.class, UStroke.class, UTranslate.class)) { + // this(other.stringBounder, + // change instanceof UTranslate ? other.translate.compose((UTranslate) change) : + // other.translate); + super(other.getStringBounder(), change instanceof UTranslate ? other.getTranslate().compose((UTranslate) change) + : other.getTranslate()); + if (!instanceOfAny(change, UBackground.class, HColor.class, UStroke.class, UTranslate.class)) throw new UnsupportedOperationException(change.getClass().toString()); - } + this.context = other.context; } diff --git a/src/net/sourceforge/plantuml/activitydiagram3/ftile/EntityImageLegend.java b/src/net/sourceforge/plantuml/activitydiagram3/ftile/EntityImageLegend.java index 6a85a230f..b96c73e1b 100644 --- a/src/net/sourceforge/plantuml/activitydiagram3/ftile/EntityImageLegend.java +++ b/src/net/sourceforge/plantuml/activitydiagram3/ftile/EntityImageLegend.java @@ -63,7 +63,7 @@ public class EntityImageLegend { return style.createTextBlockBordered(note, skinParam.getIHtmlColorSet(), skinParam); } - final TextBlock textBlock = note.create(new FontConfiguration(skinParam, FontParam.LEGEND, null), + final TextBlock textBlock = note.create(FontConfiguration.create(skinParam, FontParam.LEGEND, null), HorizontalAlignment.LEFT, skinParam); final Rose rose = new Rose(); final HColor legendBackgroundColor = rose.getHtmlColor(skinParam, ColorParam.legendBackground); diff --git a/src/net/sourceforge/plantuml/activitydiagram3/ftile/FtileFactoryDelegator.java b/src/net/sourceforge/plantuml/activitydiagram3/ftile/FtileFactoryDelegator.java index c739b039b..b1448a47a 100644 --- a/src/net/sourceforge/plantuml/activitydiagram3/ftile/FtileFactoryDelegator.java +++ b/src/net/sourceforge/plantuml/activitydiagram3/ftile/FtileFactoryDelegator.java @@ -118,7 +118,7 @@ public class FtileFactoryDelegator implements FtileFactory { final Style style = getDefaultStyleDefinitionArrow().getMergedStyle(skinParam().getCurrentStyleBuilder()); fontConfiguration = style.getFontConfiguration(skinParam().getThemeStyle(), skinParam().getIHtmlColorSet()); } else { - fontConfiguration = new FontConfiguration(skinParam(), FontParam.ARROW, null); + fontConfiguration = FontConfiguration.create(skinParam(), FontParam.ARROW, null); } return display.create7(fontConfiguration, HorizontalAlignment.LEFT, skinParam(), CreoleMode.SIMPLE_LINE); } diff --git a/src/net/sourceforge/plantuml/activitydiagram3/ftile/Swimlanes.java b/src/net/sourceforge/plantuml/activitydiagram3/ftile/Swimlanes.java index 378f4dabf..f25434dcd 100644 --- a/src/net/sourceforge/plantuml/activitydiagram3/ftile/Swimlanes.java +++ b/src/net/sourceforge/plantuml/activitydiagram3/ftile/Swimlanes.java @@ -100,7 +100,7 @@ public class Swimlanes extends AbstractTextBlock implements TextBlock, Styleable private final List dividers = new ArrayList<>(); private Swimlane currentSwimlane = null; - private final Instruction root = new InstructionList(); + private final Instruction root = InstructionList.empty(); private Instruction currentInstruction = root; private LinkRendering nextLinkRenderer = LinkRendering.none(); @@ -215,7 +215,7 @@ public class Swimlanes extends AbstractTextBlock implements TextBlock, Styleable } public final void computeSize(StringBounder stringBounder) { - final SlotFinder ug = new SlotFinder(CompressionMode.ON_Y, stringBounder); + final SlotFinder ug = SlotFinder.create(CompressionMode.ON_Y, stringBounder); if (swimlanes().size() > 1) { TextBlock full = root.createFtile(getFtileFactory(stringBounder)); computeSizeInternal(ug, full); @@ -258,7 +258,7 @@ public class Swimlanes extends AbstractTextBlock implements TextBlock, Styleable private TextBlock getTitle(Swimlane swimlane) { final HorizontalAlignment horizontalAlignment = HorizontalAlignment.LEFT; - FontConfiguration fontConfiguration = new FontConfiguration(skinParam, FontParam.SWIMLANE_TITLE, null); + FontConfiguration fontConfiguration = FontConfiguration.create(skinParam, FontParam.SWIMLANE_TITLE, null); if (UseStyle.useBetaStyle()) { fontConfiguration = getStyle().getFontConfiguration(skinParam.getThemeStyle(), skinParam.getIHtmlColorSet()); @@ -359,7 +359,7 @@ public class Swimlanes extends AbstractTextBlock implements TextBlock, Styleable private void computeDrawingWidths(UGraphic ug, TextBlock full) { final StringBounder stringBounder = ug.getStringBounder(); for (Swimlane swimlane : swimlanes()) { - final LimitFinder limitFinder = new LimitFinder(stringBounder, false); + final LimitFinder limitFinder = LimitFinder.create(stringBounder, false); final UGraphicInterceptorOneSwimlane interceptor = new UGraphicInterceptorOneSwimlane( new UGraphicForSnake(limitFinder), swimlane, swimlanes()); full.drawU(interceptor); diff --git a/src/net/sourceforge/plantuml/activitydiagram3/ftile/ZadBuilder.java b/src/net/sourceforge/plantuml/activitydiagram3/ftile/ZadBuilder.java index 9721529d5..ec904356a 100644 --- a/src/net/sourceforge/plantuml/activitydiagram3/ftile/ZadBuilder.java +++ b/src/net/sourceforge/plantuml/activitydiagram3/ftile/ZadBuilder.java @@ -37,6 +37,7 @@ package net.sourceforge.plantuml.activitydiagram3.ftile; import static net.sourceforge.plantuml.utils.ObjectUtils.instanceOfAny; +import net.sourceforge.plantuml.annotation.HaxeIgnored; import net.sourceforge.plantuml.graphic.StringBounder; import net.sourceforge.plantuml.ugraphic.MinMax; import net.sourceforge.plantuml.ugraphic.UBackground; @@ -49,6 +50,7 @@ import net.sourceforge.plantuml.ugraphic.UStroke; import net.sourceforge.plantuml.ugraphic.UTranslate; import net.sourceforge.plantuml.ugraphic.color.HColor; +@HaxeIgnored public class ZadBuilder extends UGraphicNo { @Override @@ -63,20 +65,17 @@ public class ZadBuilder extends UGraphicNo { } public ZadBuilder(StringBounder stringBounder) { - super(stringBounder); + super(stringBounder, new UTranslate()); this.context = new Context(); } private ZadBuilder(ZadBuilder other, UChange change) { - super(other, change); - if (!instanceOfAny(change, - UBackground.class, - HColor.class, - UStroke.class, - UTranslate.class - )) { + // super(other, change); + super(other.getStringBounder(), change instanceof UTranslate ? other.getTranslate().compose((UTranslate) change) + : other.getTranslate()); + if (!instanceOfAny(change, UBackground.class, HColor.class, UStroke.class, UTranslate.class)) throw new UnsupportedOperationException(change.getClass().toString()); - } + this.context = other.context; } diff --git a/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/AbstractParallelFtilesBuilder.java b/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/AbstractParallelFtilesBuilder.java index 453c7027f..bcfe9252d 100644 --- a/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/AbstractParallelFtilesBuilder.java +++ b/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/AbstractParallelFtilesBuilder.java @@ -139,7 +139,7 @@ public abstract class AbstractParallelFtilesBuilder { final Style style = getStyleSignatureArrow().getMergedStyle(skinParam().getCurrentStyleBuilder()); fontConfiguration = style.getFontConfiguration(skinParam().getThemeStyle(), skinParam().getIHtmlColorSet()); } else { - fontConfiguration = new FontConfiguration(skinParam(), FontParam.ARROW, null); + fontConfiguration = FontConfiguration.create(skinParam(), FontParam.ARROW, null); } return display.create7(fontConfiguration, HorizontalAlignment.LEFT, skinParam(), CreoleMode.SIMPLE_LINE); } diff --git a/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FloatingNote.java b/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FloatingNote.java index 4f7e17199..c8773e316 100644 --- a/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FloatingNote.java +++ b/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FloatingNote.java @@ -82,7 +82,7 @@ public class FloatingNote extends AbstractTextBlock implements Stencil, TextBloc final Style style = StyleSignatureBasic.of(SName.root, SName.element, SName.activityDiagram, SName.note) .getMergedStyle(skinParam.getCurrentStyleBuilder()); wrapWidth = style.wrapWidth(); - fc = new FontConfiguration(skinParam, style); + fc = FontConfiguration.create(skinParam, style); noteBackgroundColor = style.value(PName.BackGroundColor).asColor(skinParam.getThemeStyle(), skinParam.getIHtmlColorSet()); borderColor = style.value(PName.LineColor).asColor(skinParam.getThemeStyle(), skinParam.getIHtmlColorSet()); @@ -92,7 +92,7 @@ public class FloatingNote extends AbstractTextBlock implements Stencil, TextBloc shadowing = skinParam.shadowing(null) ? 4 : 0; noteBackgroundColor = rose.getHtmlColor(skinParam, ColorParam.noteBackground); borderColor = rose.getHtmlColor(skinParam, ColorParam.noteBorder); - fc = new FontConfiguration(skinParam, FontParam.NOTE, null); + fc = FontConfiguration.create(skinParam, FontParam.NOTE, null); wrapWidth = skinParam.wrapWidth(); } diff --git a/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileFactoryDelegatorIf.java b/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileFactoryDelegatorIf.java index 0edfce412..b0617e91d 100644 --- a/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileFactoryDelegatorIf.java +++ b/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileFactoryDelegatorIf.java @@ -99,9 +99,9 @@ public class FtileFactoryDelegatorIf extends FtileFactoryDelegator { ? getRose().getHtmlColor(skinParam(), ColorParam.activityDiamondBackground) : branch0.getColor(); arrowColor = Rainbow.build(skinParam()); - fcTest = new FontConfiguration(skinParam(), testParam, null) + fcTest = FontConfiguration.create(skinParam(), testParam, null) .changeColor(fontColor(FontParam.ACTIVITY_DIAMOND)); - fcArrow = new FontConfiguration(skinParam(), FontParam.ARROW, null); + fcArrow = FontConfiguration.create(skinParam(), FontParam.ARROW, null); } if (thens.size() > 1) { diff --git a/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileFactoryDelegatorRepeat.java b/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileFactoryDelegatorRepeat.java index 11b8bdd30..926209f5d 100644 --- a/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileFactoryDelegatorRepeat.java +++ b/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileFactoryDelegatorRepeat.java @@ -107,8 +107,8 @@ public class FtileFactoryDelegatorRepeat extends FtileFactoryDelegator { diamondColor = getRose().getHtmlColor(skinParam(), ColorParam.activityDiamondBackground); } arrowColor = Rainbow.build(skinParam()); - fcDiamond = new FontConfiguration(skinParam(), FontParam.ACTIVITY_DIAMOND, null); - fcArrow = new FontConfiguration(skinParam(), FontParam.ARROW, null); + fcDiamond = FontConfiguration.create(skinParam(), FontParam.ACTIVITY_DIAMOND, null); + fcArrow = FontConfiguration.create(skinParam(), FontParam.ARROW, null); } final LinkRendering endRepeatLinkRendering = repeat.getOutLinkRendering(); diff --git a/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileFactoryDelegatorSwitch.java b/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileFactoryDelegatorSwitch.java index f7fbbf223..55d4ad8e8 100644 --- a/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileFactoryDelegatorSwitch.java +++ b/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileFactoryDelegatorSwitch.java @@ -145,7 +145,7 @@ public class FtileFactoryDelegatorSwitch extends FtileFactoryDelegator { backColor = branch0.getColor() == null ? style.value(PName.BackGroundColor) .asColor(skinParam().getThemeStyle(), skinParam().getIHtmlColorSet()) : branch0.getColor(); } else { - fcDiamond = new FontConfiguration(skinParam(), FontParam.ACTIVITY_DIAMOND, null); + fcDiamond = FontConfiguration.create(skinParam(), FontParam.ACTIVITY_DIAMOND, null); borderColor = getRose().getHtmlColor(skinParam(), ColorParam.activityDiamondBorder); backColor = branch0.getColor() == null ? getRose().getHtmlColor(skinParam(), ColorParam.activityDiamondBackground) diff --git a/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileFactoryDelegatorWhile.java b/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileFactoryDelegatorWhile.java index 8e3ec250e..8fee45da6 100644 --- a/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileFactoryDelegatorWhile.java +++ b/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileFactoryDelegatorWhile.java @@ -99,8 +99,8 @@ public class FtileFactoryDelegatorWhile extends FtileFactoryDelegator { backColor = color == null ? getRose().getHtmlColor(skinParam(), ColorParam.activityDiamondBackground) : color; arrowColor = Rainbow.build(skinParam()); - fontArrow = new FontConfiguration(skinParam(), FontParam.ARROW, null); - fcTest = new FontConfiguration(skinParam(), testParam, null); + fontArrow = FontConfiguration.create(skinParam(), FontParam.ARROW, null); + fcTest = FontConfiguration.create(skinParam(), testParam, null); } incoming1 = ensureColor(incoming1, arrowColor); diff --git a/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileGroup.java b/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileGroup.java index e2721e141..89e2ee330 100644 --- a/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileGroup.java +++ b/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileGroup.java @@ -118,7 +118,7 @@ public class FtileGroup extends AbstractFtile { style = null; final UFont font = skinParam.getFont(null, false, FontParam.PARTITION); final HColor fontColor = skinParam.getFontHtmlColor(null, FontParam.PARTITION); - fc = new FontConfiguration(font, fontColor, skinParam.getHyperlinkColor(), + fc = FontConfiguration.create(font, fontColor, skinParam.getHyperlinkColor(), skinParam.useUnderlineForHyperlink(), skinParam.getTabSize()); this.shadowing = skinParam().shadowing(null) ? 3 : 0; thickness = skinParam.getThickness(LineParam.partitionBorder, null); @@ -169,7 +169,7 @@ public class FtileGroup extends AbstractFtile { } private MinMax getInnerMinMax(StringBounder stringBounder) { - final LimitFinder limitFinder = new LimitFinder(stringBounder, false); + final LimitFinder limitFinder = LimitFinder.create(stringBounder, false); final UGraphicForSnake interceptor = new UGraphicForSnake(limitFinder); final UGraphicInterceptorUDrawable interceptor2 = new UGraphicInterceptorUDrawable(interceptor); diff --git a/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileIfAndStop.java b/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileIfAndStop.java index 3fda6706a..f9e3cfbce 100644 --- a/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileIfAndStop.java +++ b/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileIfAndStop.java @@ -128,10 +128,10 @@ class FtileIfAndStop extends AbstractFtile { if (UseStyle.useBetaStyle()) { final Style style = StyleSignatureBasic.activityDiamond().getMergedStyle(skinParam.getCurrentStyleBuilder()); thickness = tileNonStop.getThickness(style); - fcTest = new FontConfiguration(skinParam, style); + fcTest = FontConfiguration.create(skinParam, style); } else { thickness = tileNonStop.getThickness(null); - fcTest = new FontConfiguration(skinParam, FontParam.ACTIVITY_DIAMOND, null); + fcTest = FontConfiguration.create(skinParam, FontParam.ACTIVITY_DIAMOND, null); } final Sheet sheet = Parser diff --git a/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileNoteAlone.java b/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileNoteAlone.java index a3fdd270e..f37bbff54 100644 --- a/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileNoteAlone.java +++ b/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileNoteAlone.java @@ -127,7 +127,7 @@ public class FtileNoteAlone extends AbstractFtile implements Stencil, Styleable wrapWidth = skinParam.wrapWidth(); } - final FontConfiguration fc = new FontConfiguration(skinParam, FontParam.NOTE, null); + final FontConfiguration fc = FontConfiguration.create(skinParam, FontParam.NOTE, null); final Sheet sheet = Parser .build(fc, skinParam.getDefaultTextAlignment(HorizontalAlignment.LEFT), skinParam, CreoleMode.FULL) diff --git a/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileWithNoteOpale.java b/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileWithNoteOpale.java index 5aea82f25..fa6d812f3 100644 --- a/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileWithNoteOpale.java +++ b/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileWithNoteOpale.java @@ -158,7 +158,7 @@ public class FtileWithNoteOpale extends AbstractFtile implements Stencil, Stylea } else { noteBackgroundColor = rose.getHtmlColor(skinParam, ColorParam.noteBackground); borderColor = rose.getHtmlColor(skinParam, ColorParam.noteBorder); - fc = new FontConfiguration(skinParam, FontParam.NOTE, null); + fc = FontConfiguration.create(skinParam, FontParam.NOTE, null); shadowing = skinParam.shadowing(null) ? 4 : 0; wrapWidth = skinParam.wrapWidth(); } diff --git a/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileWithNotes.java b/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileWithNotes.java index 62bc65a69..cbd213962 100644 --- a/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileWithNotes.java +++ b/src/net/sourceforge/plantuml/activitydiagram3/ftile/vcompact/FtileWithNotes.java @@ -130,7 +130,7 @@ public class FtileWithNotes extends AbstractFtile { } else { noteBackgroundColor = rose.getHtmlColor(skinParam2, ColorParam.noteBackground); borderColor = rose.getHtmlColor(skinParam2, ColorParam.noteBorder); - fc = new FontConfiguration(skinParam, FontParam.NOTE, null); + fc = FontConfiguration.create(skinParam, FontParam.NOTE, null); shadowing = skinParam.shadowing(null) ? 4 : 0; wrapWidth = skinParam.wrapWidth(); } diff --git a/src/net/sourceforge/plantuml/activitydiagram3/ftile/vertical/FtileBox.java b/src/net/sourceforge/plantuml/activitydiagram3/ftile/vertical/FtileBox.java index 0f941bd8e..e17a9d13f 100644 --- a/src/net/sourceforge/plantuml/activitydiagram3/ftile/vertical/FtileBox.java +++ b/src/net/sourceforge/plantuml/activitydiagram3/ftile/vertical/FtileBox.java @@ -160,7 +160,7 @@ public class FtileBox extends AbstractFtile { final FontConfiguration fc; final LineBreakStrategy wrapWidth; if (UseStyle.useBetaStyle()) { - this.inRendering = new LinkRendering( + this.inRendering = LinkRendering.create( Rainbow.build(styleArrow, getIHtmlColorSet(), skinParam.getThemeStyle())); Colors specBack = null; if (skinParam instanceof SkinParamColors) { @@ -180,10 +180,10 @@ public class FtileBox extends AbstractFtile { } else { this.padding = ClockwiseTopRightBottomLeft.same(10); this.margin = ClockwiseTopRightBottomLeft.same(0); - this.inRendering = new LinkRendering(Rainbow.build(skinParam)); + this.inRendering = LinkRendering.create(Rainbow.build(skinParam)); this.borderColor = SkinParamUtils.getColor(skinParam(), null, ColorParam.activityBorder); this.backColor = SkinParamUtils.getColor(skinParam(), null, ColorParam.activityBackground); - fc = new FontConfiguration(skinParam, FontParam.ACTIVITY, null); + fc = FontConfiguration.create(skinParam, FontParam.ACTIVITY, null); this.horizontalAlignment = HorizontalAlignment.LEFT; this.shadowing = skinParam().shadowing(null) ? 3.0 : 0.0; wrapWidth = skinParam.wrapWidth(); diff --git a/src/net/sourceforge/plantuml/activitydiagram3/ftile/vertical/FtileBox2.java b/src/net/sourceforge/plantuml/activitydiagram3/ftile/vertical/FtileBox2.java index 14bc0b6d7..1da173160 100644 --- a/src/net/sourceforge/plantuml/activitydiagram3/ftile/vertical/FtileBox2.java +++ b/src/net/sourceforge/plantuml/activitydiagram3/ftile/vertical/FtileBox2.java @@ -161,7 +161,7 @@ public class FtileBox2 extends AbstractFtile { final FontConfiguration fc; final LineBreakStrategy wrapWidth; if (UseStyle.useBetaStyle()) { - this.inRendering = new LinkRendering( + this.inRendering = LinkRendering.create( Rainbow.build(styleArrow, getIHtmlColorSet(), skinParam.getThemeStyle())); Colors specBack = null; if (skinParam instanceof SkinParamColors) { @@ -181,10 +181,10 @@ public class FtileBox2 extends AbstractFtile { } else { this.padding = ClockwiseTopRightBottomLeft.same(10); this.margin = ClockwiseTopRightBottomLeft.same(0); - this.inRendering = new LinkRendering(Rainbow.build(skinParam)); + this.inRendering = LinkRendering.create(Rainbow.build(skinParam)); this.borderColor = SkinParamUtils.getColor(skinParam(), null, ColorParam.activityBorder); this.backColor = SkinParamUtils.getColor(skinParam(), null, ColorParam.activityBackground); - fc = new FontConfiguration(skinParam, FontParam.ACTIVITY, null); + fc = FontConfiguration.create(skinParam, FontParam.ACTIVITY, null); this.horizontalAlignment = HorizontalAlignment.LEFT; this.shadowing = skinParam().shadowing(null) ? 3.0 : 0.0; wrapWidth = skinParam.wrapWidth(); diff --git a/src/net/sourceforge/plantuml/activitydiagram3/ftile/vertical/FtileBoxOld.java b/src/net/sourceforge/plantuml/activitydiagram3/ftile/vertical/FtileBoxOld.java index 46adcaa56..abba5eb76 100644 --- a/src/net/sourceforge/plantuml/activitydiagram3/ftile/vertical/FtileBoxOld.java +++ b/src/net/sourceforge/plantuml/activitydiagram3/ftile/vertical/FtileBoxOld.java @@ -186,7 +186,7 @@ public class FtileBoxOld extends AbstractFtile { final FontConfiguration fc; final LineBreakStrategy wrapWidth; if (UseStyle.useBetaStyle()) { - this.inRendering = new LinkRendering( + this.inRendering = LinkRendering.create( Rainbow.build(styleArrow, getIHtmlColorSet(), skinParam.getThemeStyle())); Colors specBack = null; if (skinParam instanceof SkinParamColors) @@ -204,10 +204,10 @@ public class FtileBoxOld extends AbstractFtile { this.minimumWidth = style.value(PName.MinimumWidth).asDouble(); } else { this.padding = ClockwiseTopRightBottomLeft.same(10); - this.inRendering = new LinkRendering(Rainbow.build(skinParam)); + this.inRendering = LinkRendering.create(Rainbow.build(skinParam)); this.borderColor = SkinParamUtils.getColor(skinParam(), null, ColorParam.activityBorder); this.backColor = SkinParamUtils.getColor(skinParam(), null, ColorParam.activityBackground); - fc = new FontConfiguration(skinParam, FontParam.ACTIVITY, null); + fc = FontConfiguration.create(skinParam, FontParam.ACTIVITY, null); this.horizontalAlignment = HorizontalAlignment.LEFT; this.shadowing = skinParam().shadowing(null) ? 3.0 : 0.0; wrapWidth = skinParam.wrapWidth(); diff --git a/src/net/sourceforge/plantuml/activitydiagram3/ftile/vertical/FtileCircleSpot.java b/src/net/sourceforge/plantuml/activitydiagram3/ftile/vertical/FtileCircleSpot.java index 854d7b00f..95ed6df77 100644 --- a/src/net/sourceforge/plantuml/activitydiagram3/ftile/vertical/FtileCircleSpot.java +++ b/src/net/sourceforge/plantuml/activitydiagram3/ftile/vertical/FtileCircleSpot.java @@ -77,9 +77,9 @@ public class FtileCircleSpot extends AbstractFtile { this.swimlane = swimlane; this.backColor = backColor; if (UseStyle.useBetaStyle()) - this.fc = new FontConfiguration(skinParam, FontParam.ACTIVITY, null); + this.fc = FontConfiguration.create(skinParam, FontParam.ACTIVITY, null); else - this.fc = new FontConfiguration(skinParam, style); + this.fc = FontConfiguration.create(skinParam, style); } @Override diff --git a/src/net/sourceforge/plantuml/activitydiagram3/gtile/GtileAssembly.java b/src/net/sourceforge/plantuml/activitydiagram3/gtile/GtileAssembly.java index ba12963bb..b5b0efdef 100644 --- a/src/net/sourceforge/plantuml/activitydiagram3/gtile/GtileAssembly.java +++ b/src/net/sourceforge/plantuml/activitydiagram3/gtile/GtileAssembly.java @@ -93,7 +93,7 @@ public class GtileAssembly extends GtileTopDown { final Style style = getDefaultStyleDefinitionArrow().getMergedStyle(skinParam().getCurrentStyleBuilder()); fontConfiguration = style.getFontConfiguration(skinParam().getThemeStyle(), skinParam().getIHtmlColorSet()); } else { - fontConfiguration = new FontConfiguration(skinParam(), FontParam.ARROW, null); + fontConfiguration = FontConfiguration.create(skinParam(), FontParam.ARROW, null); } return display.create7(fontConfiguration, HorizontalAlignment.LEFT, skinParam(), CreoleMode.SIMPLE_LINE); } diff --git a/src/net/sourceforge/plantuml/activitydiagram3/gtile/GtileBox.java b/src/net/sourceforge/plantuml/activitydiagram3/gtile/GtileBox.java index d712093cf..2ad4811fe 100644 --- a/src/net/sourceforge/plantuml/activitydiagram3/gtile/GtileBox.java +++ b/src/net/sourceforge/plantuml/activitydiagram3/gtile/GtileBox.java @@ -140,7 +140,7 @@ public class GtileBox extends AbstractGtile { final FontConfiguration fc; final LineBreakStrategy wrapWidth; if (UseStyle.useBetaStyle()) { - this.inRendering = new LinkRendering( + this.inRendering = LinkRendering.create( Rainbow.build(styleArrow, getIHtmlColorSet(), skinParam.getThemeStyle())); Colors specBack = null; if (skinParam instanceof SkinParamColors) { @@ -160,10 +160,10 @@ public class GtileBox extends AbstractGtile { } else { this.padding = ClockwiseTopRightBottomLeft.same(10); this.margin = ClockwiseTopRightBottomLeft.same(0); - this.inRendering = new LinkRendering(Rainbow.build(skinParam)); + this.inRendering = LinkRendering.create(Rainbow.build(skinParam)); this.borderColor = SkinParamUtils.getColor(skinParam(), null, ColorParam.activityBorder); this.backColor = SkinParamUtils.getColor(skinParam(), null, ColorParam.activityBackground); - fc = new FontConfiguration(skinParam, FontParam.ACTIVITY, null); + fc = FontConfiguration.create(skinParam, FontParam.ACTIVITY, null); this.horizontalAlignment = HorizontalAlignment.LEFT; this.shadowing = skinParam().shadowing(null) ? 3.0 : 0.0; wrapWidth = skinParam.wrapWidth(); diff --git a/src/net/sourceforge/plantuml/activitydiagram3/gtile/GtileCircleSpot.java b/src/net/sourceforge/plantuml/activitydiagram3/gtile/GtileCircleSpot.java index f6a9f916a..289afc552 100644 --- a/src/net/sourceforge/plantuml/activitydiagram3/gtile/GtileCircleSpot.java +++ b/src/net/sourceforge/plantuml/activitydiagram3/gtile/GtileCircleSpot.java @@ -75,7 +75,7 @@ public class GtileCircleSpot extends AbstractGtile { super(stringBounder, skinParam, swimlane); this.spot = spot; this.backColor = backColor; - this.fc = new FontConfiguration(skinParam, FontParam.ACTIVITY, null); + this.fc = FontConfiguration.create(skinParam, FontParam.ACTIVITY, null); if (UseStyle.useBetaStyle()) { final Style style = getDefaultStyleDefinitionCircle().getMergedStyle(skinParam().getCurrentStyleBuilder()); this.shadowing = style.value(PName.Shadowing).asDouble(); diff --git a/src/net/sourceforge/plantuml/activitydiagram3/gtile/GtileGroup.java b/src/net/sourceforge/plantuml/activitydiagram3/gtile/GtileGroup.java index 50ac1fee9..b60ee2553 100644 --- a/src/net/sourceforge/plantuml/activitydiagram3/gtile/GtileGroup.java +++ b/src/net/sourceforge/plantuml/activitydiagram3/gtile/GtileGroup.java @@ -114,7 +114,7 @@ public class GtileGroup extends AbstractGtileRoot { style = null; final UFont font = skinParam.getFont(null, false, FontParam.PARTITION); final HColor fontColor = skinParam.getFontHtmlColor(null, FontParam.PARTITION); - fc = new FontConfiguration(font, fontColor, skinParam.getHyperlinkColor(), + fc = FontConfiguration.create(font, fontColor, skinParam.getHyperlinkColor(), skinParam.useUnderlineForHyperlink(), skinParam.getTabSize()); this.shadowing = skinParam().shadowing(null) ? 3 : 0; } diff --git a/src/net/sourceforge/plantuml/activitydiagram3/gtile/GtileIfHexagon.java b/src/net/sourceforge/plantuml/activitydiagram3/gtile/GtileIfHexagon.java index 0f1374c22..4bf922d29 100644 --- a/src/net/sourceforge/plantuml/activitydiagram3/gtile/GtileIfHexagon.java +++ b/src/net/sourceforge/plantuml/activitydiagram3/gtile/GtileIfHexagon.java @@ -205,7 +205,7 @@ public class GtileIfHexagon extends GtileColumns { // final Style style = getDefaultStyleDefinitionArrow().getMergedStyle(skinParam().getCurrentStyleBuilder()); // fontConfiguration = style.getFontConfiguration(skinParam().getThemeStyle(), skinParam().getIHtmlColorSet()); // } else { -// fontConfiguration = new FontConfiguration(skinParam(), FontParam.ARROW, null); +// fontConfiguration = FontConfiguration.create(skinParam(), FontParam.ARROW, null); // } // // return branch.getDisplayPositive().create0(fontConfiguration, HorizontalAlignment.LEFT, skinParam(), diff --git a/src/net/sourceforge/plantuml/activitydiagram3/gtile/GtileWithNoteOpale.java b/src/net/sourceforge/plantuml/activitydiagram3/gtile/GtileWithNoteOpale.java index b79e90cae..28760aab8 100644 --- a/src/net/sourceforge/plantuml/activitydiagram3/gtile/GtileWithNoteOpale.java +++ b/src/net/sourceforge/plantuml/activitydiagram3/gtile/GtileWithNoteOpale.java @@ -133,7 +133,7 @@ public class GtileWithNoteOpale extends AbstractGtile implements Stencil, Stylea } else { noteBackgroundColor = rose.getHtmlColor(skinParam, ColorParam.noteBackground); borderColor = rose.getHtmlColor(skinParam, ColorParam.noteBorder); - fc = new FontConfiguration(skinParam, FontParam.NOTE, null); + fc = FontConfiguration.create(skinParam, FontParam.NOTE, null); shadowing = skinParam.shadowing(null) ? 4 : 0; wrapWidth = skinParam.wrapWidth(); } diff --git a/src/net/sourceforge/plantuml/activitydiagram3/gtile/GtileWithNotes.java b/src/net/sourceforge/plantuml/activitydiagram3/gtile/GtileWithNotes.java index 452564b77..42649892c 100644 --- a/src/net/sourceforge/plantuml/activitydiagram3/gtile/GtileWithNotes.java +++ b/src/net/sourceforge/plantuml/activitydiagram3/gtile/GtileWithNotes.java @@ -134,7 +134,7 @@ public class GtileWithNotes extends AbstractGtile { } else { noteBackgroundColor = rose.getHtmlColor(skinParam2, ColorParam.noteBackground); borderColor = rose.getHtmlColor(skinParam2, ColorParam.noteBorder); - fc = new FontConfiguration(skinParam, FontParam.NOTE, null); + fc = FontConfiguration.create(skinParam, FontParam.NOTE, null); shadowing = skinParam.shadowing(null) ? 4 : 0; wrapWidth = skinParam.wrapWidth(); } diff --git a/src/net/sourceforge/plantuml/activitydiagram3/gtile/Gtiles.java b/src/net/sourceforge/plantuml/activitydiagram3/gtile/Gtiles.java index 0364e9e8f..7d7db85b3 100644 --- a/src/net/sourceforge/plantuml/activitydiagram3/gtile/Gtiles.java +++ b/src/net/sourceforge/plantuml/activitydiagram3/gtile/Gtiles.java @@ -85,7 +85,7 @@ public class Gtiles { borderColor = rose.getHtmlColor(skinParam, ColorParam.activityDiamondBorder); backColor = color == null ? rose.getHtmlColor(skinParam, ColorParam.activityDiamondBackground) : color; - fcTest = new FontConfiguration(skinParam, testParam, null) + fcTest = FontConfiguration.create(skinParam, testParam, null) .changeColor(fontColor(skinParam, FontParam.ACTIVITY_DIAMOND)); } diff --git a/src/net/sourceforge/plantuml/annotation/HaxeIgnored.java b/src/net/sourceforge/plantuml/annotation/HaxeIgnored.java new file mode 100644 index 000000000..628fc7274 --- /dev/null +++ b/src/net/sourceforge/plantuml/annotation/HaxeIgnored.java @@ -0,0 +1,11 @@ +package net.sourceforge.plantuml.annotation; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Retention(RetentionPolicy.SOURCE) +@Target({ ElementType.CONSTRUCTOR, ElementType.METHOD, ElementType.TYPE }) +public @interface HaxeIgnored { +} diff --git a/src/net/sourceforge/plantuml/api/ImageDataAbstract.java b/src/net/sourceforge/plantuml/api/ImageDataAbstract.java index 07027f422..cf8138203 100644 --- a/src/net/sourceforge/plantuml/api/ImageDataAbstract.java +++ b/src/net/sourceforge/plantuml/api/ImageDataAbstract.java @@ -35,6 +35,7 @@ */ package net.sourceforge.plantuml.api; +import net.sourceforge.plantuml.annotation.HaxeIgnored; import net.sourceforge.plantuml.awt.geom.Dimension2D; import net.sourceforge.plantuml.core.ImageData; @@ -49,7 +50,8 @@ public abstract class ImageDataAbstract implements ImageData { this.width = width; this.height = height; } - + + @HaxeIgnored public ImageDataAbstract(Dimension2D dim) { this((int) dim.getWidth(), (int) dim.getHeight()); } diff --git a/src/net/sourceforge/plantuml/api/ImageDataComplex.java b/src/net/sourceforge/plantuml/api/ImageDataComplex.java index 96b8f8ca0..9f6bd4e12 100644 --- a/src/net/sourceforge/plantuml/api/ImageDataComplex.java +++ b/src/net/sourceforge/plantuml/api/ImageDataComplex.java @@ -38,6 +38,7 @@ package net.sourceforge.plantuml.api; import net.sourceforge.plantuml.awt.geom.Dimension2D; import net.sourceforge.plantuml.CMapData; +import net.sourceforge.plantuml.annotation.HaxeIgnored; public class ImageDataComplex extends ImageDataAbstract { @@ -45,6 +46,7 @@ public class ImageDataComplex extends ImageDataAbstract { private final String warningOrError; @SuppressWarnings("unused") // available publicly so retained for backwards compatibility + @HaxeIgnored public ImageDataComplex(Dimension2D info, CMapData cmap, String warningOrError) { super(info); this.cmap = cmap; diff --git a/src/net/sourceforge/plantuml/api/ImageDataSimple.java b/src/net/sourceforge/plantuml/api/ImageDataSimple.java index dcb419e31..659bfe1d5 100644 --- a/src/net/sourceforge/plantuml/api/ImageDataSimple.java +++ b/src/net/sourceforge/plantuml/api/ImageDataSimple.java @@ -35,16 +35,19 @@ */ package net.sourceforge.plantuml.api; +import net.sourceforge.plantuml.annotation.HaxeIgnored; import net.sourceforge.plantuml.awt.geom.Dimension2D; import net.sourceforge.plantuml.core.ImageData; public class ImageDataSimple extends ImageDataAbstract { + @HaxeIgnored public ImageDataSimple(int width, int height) { super(width, height); } + @HaxeIgnored public ImageDataSimple(Dimension2D dim) { super(dim); } @@ -54,6 +57,7 @@ public class ImageDataSimple extends ImageDataAbstract { setStatus(status); } + @HaxeIgnored private ImageDataSimple() { this(0, 0); } diff --git a/src/net/sourceforge/plantuml/api/NumberAnalyzed.java b/src/net/sourceforge/plantuml/api/NumberAnalyzed.java index 5ef7531cc..00dc6c846 100644 --- a/src/net/sourceforge/plantuml/api/NumberAnalyzed.java +++ b/src/net/sourceforge/plantuml/api/NumberAnalyzed.java @@ -34,7 +34,8 @@ import java.util.concurrent.locks.ReentrantLock; import java.util.prefs.Preferences; import net.sourceforge.plantuml.Log; - +import net.sourceforge.plantuml.annotation.HaxeIgnored; +@HaxeIgnored public class NumberAnalyzed implements INumberAnalyzed { private static final int SLIDING_WINDOW = 1024; diff --git a/src/net/sourceforge/plantuml/api/NumberAnalyzed2.java b/src/net/sourceforge/plantuml/api/NumberAnalyzed2.java index c27506697..3048c9adb 100644 --- a/src/net/sourceforge/plantuml/api/NumberAnalyzed2.java +++ b/src/net/sourceforge/plantuml/api/NumberAnalyzed2.java @@ -33,7 +33,9 @@ import java.util.concurrent.atomic.AtomicLong; import java.util.prefs.Preferences; import net.sourceforge.plantuml.Log; +import net.sourceforge.plantuml.annotation.HaxeIgnored; +@HaxeIgnored public class NumberAnalyzed2 implements INumberAnalyzed { private static final int SLIDING_WINDOW = 512; diff --git a/src/net/sourceforge/plantuml/api/NumberAnalyzedDated.java b/src/net/sourceforge/plantuml/api/NumberAnalyzedDated.java index 02a3b3e7e..19bc3aaf3 100644 --- a/src/net/sourceforge/plantuml/api/NumberAnalyzedDated.java +++ b/src/net/sourceforge/plantuml/api/NumberAnalyzedDated.java @@ -33,7 +33,9 @@ import java.util.concurrent.atomic.AtomicLong; import java.util.prefs.Preferences; import net.sourceforge.plantuml.Log; +import net.sourceforge.plantuml.annotation.HaxeIgnored; +@HaxeIgnored public class NumberAnalyzedDated extends NumberAnalyzed { private final AtomicLong created = new AtomicLong(); diff --git a/src/net/sourceforge/plantuml/board/BoardDiagram.java b/src/net/sourceforge/plantuml/board/BoardDiagram.java index 9a3a21cf3..e1da058c9 100644 --- a/src/net/sourceforge/plantuml/board/BoardDiagram.java +++ b/src/net/sourceforge/plantuml/board/BoardDiagram.java @@ -71,7 +71,7 @@ public class BoardDiagram extends UmlDiagram { } public BoardDiagram(ThemeStyle style, UmlSource source) { - super(style, source, UmlDiagramType.BOARD); + super(style, source, UmlDiagramType.BOARD, null); } @Override diff --git a/src/net/sourceforge/plantuml/bpm/BpmDiagram.java b/src/net/sourceforge/plantuml/bpm/BpmDiagram.java index 441a30805..68c582592 100644 --- a/src/net/sourceforge/plantuml/bpm/BpmDiagram.java +++ b/src/net/sourceforge/plantuml/bpm/BpmDiagram.java @@ -76,7 +76,7 @@ public class BpmDiagram extends UmlDiagram { } public BpmDiagram(ThemeStyle style, UmlSource source) { - super(style, source, UmlDiagramType.BPM); + super(style, source, UmlDiagramType.BPM, null); } @Override diff --git a/src/net/sourceforge/plantuml/bpm/BpmElement.java b/src/net/sourceforge/plantuml/bpm/BpmElement.java index da75a79cf..6f1b2b5c3 100644 --- a/src/net/sourceforge/plantuml/bpm/BpmElement.java +++ b/src/net/sourceforge/plantuml/bpm/BpmElement.java @@ -167,7 +167,7 @@ public class BpmElement extends AbstractConnectorPuzzle implements ConnectorPuzz return FtileBox.create(skinParam, display, null, BoxStyle.PLAIN, null); } final UFont font = UFont.serif(14); - final FontConfiguration fc = new FontConfiguration(font, HColorUtils.RED, HColorUtils.RED, false); + final FontConfiguration fc = FontConfiguration.create(font, HColorUtils.RED, HColorUtils.RED, false); if (Display.isNull(display)) { return Display.getWithNewlines(type.toString()).create(fc, HorizontalAlignment.LEFT, skinParam); } diff --git a/src/net/sourceforge/plantuml/command/BlocLines.java b/src/net/sourceforge/plantuml/command/BlocLines.java index b91a3e317..2feba8220 100644 --- a/src/net/sourceforge/plantuml/command/BlocLines.java +++ b/src/net/sourceforge/plantuml/command/BlocLines.java @@ -132,8 +132,8 @@ public class BlocLines implements Iterable { return new BlocLines(result); } - public BlocLines() { - this(new ArrayList()); + public static BlocLines create() { + return new BlocLines(new ArrayList()); } public BlocLines add(StringLocated s) { diff --git a/src/net/sourceforge/plantuml/command/CommandDecoratorMultine.java b/src/net/sourceforge/plantuml/command/CommandDecoratorMultine.java index 0ca389826..c20d48aae 100644 --- a/src/net/sourceforge/plantuml/command/CommandDecoratorMultine.java +++ b/src/net/sourceforge/plantuml/command/CommandDecoratorMultine.java @@ -42,40 +42,40 @@ public class CommandDecoratorMultine implements Command { private final SingleLineCommand2 cmd; private final boolean removeEmptyColumn; private final int nbMaxLines; - - public CommandDecoratorMultine(SingleLineCommand2 cmd, int nbMaxLines) { - this(cmd, false, nbMaxLines); + + public static CommandDecoratorMultine create(SingleLineCommand2 cmd, int nbMaxLines) { + return new CommandDecoratorMultine(cmd, false, nbMaxLines); } - public CommandDecoratorMultine(SingleLineCommand2 cmd, boolean removeEmptyColumn, int nbMaxLines) { + private CommandDecoratorMultine(SingleLineCommand2 cmd, boolean removeEmptyColumn, int nbMaxLines) { this.cmd = cmd; this.removeEmptyColumn = removeEmptyColumn; this.nbMaxLines = nbMaxLines; } public CommandExecutionResult execute(D diagram, BlocLines lines) { - if (removeEmptyColumn) { + if (removeEmptyColumn) lines = lines.removeEmptyColumns(); - } + lines = lines.toSingleLineWithHiddenNewLine(); return cmd.execute(diagram, lines); } public CommandControl isValid(BlocLines lines) { - if (cmd.isCommandForbidden()) { + if (cmd.isCommandForbidden()) return CommandControl.NOT_OK; - } + lines = lines.toSingleLineWithHiddenNewLine(); - if (cmd.isForbidden(lines.getFirst().getString())) { + if (cmd.isForbidden(lines.getFirst().getString())) return CommandControl.NOT_OK; - } + final CommandControl tmp = cmd.isValid(lines); - if (tmp == CommandControl.OK_PARTIAL) { + if (tmp == CommandControl.OK_PARTIAL) throw new IllegalStateException(); - } - if (tmp == CommandControl.OK) { + + if (tmp == CommandControl.OK) return tmp; - } + return CommandControl.OK_PARTIAL; } diff --git a/src/net/sourceforge/plantuml/command/PSystemBasicFactory.java b/src/net/sourceforge/plantuml/command/PSystemBasicFactory.java index 6ccd3dbbd..df0ab06ab 100644 --- a/src/net/sourceforge/plantuml/command/PSystemBasicFactory.java +++ b/src/net/sourceforge/plantuml/command/PSystemBasicFactory.java @@ -40,6 +40,7 @@ import net.sourceforge.plantuml.ErrorUml; import net.sourceforge.plantuml.ErrorUmlType; import net.sourceforge.plantuml.ISkinSimple; import net.sourceforge.plantuml.StringLocated; +import net.sourceforge.plantuml.annotation.HaxeIgnored; import net.sourceforge.plantuml.api.ThemeStyle; import net.sourceforge.plantuml.core.Diagram; import net.sourceforge.plantuml.core.DiagramType; @@ -54,6 +55,7 @@ public abstract class PSystemBasicFactory

extends PSy super(diagramType); } + @HaxeIgnored public PSystemBasicFactory() { this(DiagramType.UML); } diff --git a/src/net/sourceforge/plantuml/command/PSystemCommandFactory.java b/src/net/sourceforge/plantuml/command/PSystemCommandFactory.java index d454ffd52..610d6fc2f 100644 --- a/src/net/sourceforge/plantuml/command/PSystemCommandFactory.java +++ b/src/net/sourceforge/plantuml/command/PSystemCommandFactory.java @@ -43,6 +43,7 @@ import net.sourceforge.plantuml.ErrorUmlType; import net.sourceforge.plantuml.ISkinSimple; import net.sourceforge.plantuml.LineLocation; import net.sourceforge.plantuml.StringLocated; +import net.sourceforge.plantuml.annotation.HaxeIgnored; import net.sourceforge.plantuml.api.ThemeStyle; import net.sourceforge.plantuml.core.Diagram; import net.sourceforge.plantuml.core.DiagramType; @@ -60,6 +61,7 @@ public abstract class PSystemCommandFactory extends PSystemAbstractFactory { public abstract AbstractPSystem createEmptyDiagram(ThemeStyle style, UmlSource source, ISkinSimple skinParam); + @HaxeIgnored protected PSystemCommandFactory() { this(DiagramType.UML); } @@ -171,7 +173,7 @@ public abstract class PSystemCommandFactory extends PSystemAbstractFactory { } private BlocLines isMultilineCommandOk(IteratorCounter2 it, Command cmd) { - BlocLines lines = new BlocLines(); + BlocLines lines = BlocLines.create(); int nb = 0; while (it.hasNext()) { lines = addOneSingleLineManageEmbedded2(it, lines); diff --git a/src/net/sourceforge/plantuml/command/SingleLineCommand2.java b/src/net/sourceforge/plantuml/command/SingleLineCommand2.java index 29c0801dd..fbc264585 100644 --- a/src/net/sourceforge/plantuml/command/SingleLineCommand2.java +++ b/src/net/sourceforge/plantuml/command/SingleLineCommand2.java @@ -39,6 +39,7 @@ import java.util.Objects; import net.sourceforge.plantuml.LineLocation; import net.sourceforge.plantuml.StringLocated; +import net.sourceforge.plantuml.annotation.HaxeIgnored; import net.sourceforge.plantuml.command.regex.IRegex; import net.sourceforge.plantuml.command.regex.RegexResult; import net.sourceforge.plantuml.core.Diagram; @@ -50,6 +51,7 @@ public abstract class SingleLineCommand2 implements Command rawSource; public UmlSource removeInitialSkinparam() { - if (hasInitialSkinparam(source) == false) { + if (hasInitialSkinparam(source) == false) return this; - } + final List copy = new ArrayList<>(source); - while (hasInitialSkinparam(copy)) { + while (hasInitialSkinparam(copy)) copy.remove(1); - } + return new UmlSource(copy, rawSource); } public boolean containsIgnoreCase(String searched) { - for (StringLocated s : source) { - if (StringUtils.goLowerCase(s.getString()).contains(searched)) { + for (StringLocated s : source) + if (StringUtils.goLowerCase(s.getString()).contains(searched)) return true; - } - } + return false; } @@ -96,24 +95,29 @@ final public class UmlSource { this.rawSource = rawSource; } - public UmlSource(List data, boolean checkEndingBackslash) { - this(data, checkEndingBackslash, new ArrayList()); + public static UmlSource create(List source, boolean checkEndingBackslash) { + return createWithRaw(source, checkEndingBackslash, new ArrayList()); } /** * Build the source from a text. * - * @param data the source of the diagram + * @param source the source of the diagram * @param checkEndingBackslash true if an ending backslash means * that a line has to be collapsed with the * following one. */ - public UmlSource(List data, boolean checkEndingBackslash, List rawSource) { - this(new ArrayList(), rawSource); + public static UmlSource createWithRaw(List source, boolean checkEndingBackslash, + List rawSource) { + final UmlSource result = new UmlSource(new ArrayList(), rawSource); + result.loadInternal(source, checkEndingBackslash); + return result; + } + private void loadInternal(List source, boolean checkEndingBackslash) { if (checkEndingBackslash) { final StringBuilder pending = new StringBuilder(); - for (StringLocated cs : data) { + for (StringLocated cs : source) { final String s = cs.getString(); if (StringUtils.endsWithBackslash(s)) { pending.append(s.substring(0, s.length() - 1)); @@ -124,7 +128,7 @@ final public class UmlSource { } } } else { - this.source.addAll(data); + this.source.addAll(source); } } @@ -181,11 +185,10 @@ final public class UmlSource { } public String getLine(LineLocation n) { - for (StringLocated s : source) { - if (s.getLocation().compareTo(n) == 0) { + for (StringLocated s : source) + if (s.getLocation().compareTo(n) == 0) return s.getString(); - } - } + return null; } @@ -208,18 +211,18 @@ final public class UmlSource { */ public boolean isEmpty() { for (StringLocated s : source) { - if (StartUtils.isArobaseStartDiagram(s.getString())) { + if (StartUtils.isArobaseStartDiagram(s.getString())) continue; - } - if (StartUtils.isArobaseEndDiagram(s.getString())) { + + if (StartUtils.isArobaseEndDiagram(s.getString())) continue; - } - if (s.getString().matches("\\s*'.*")) { + + if (s.getString().matches("\\s*'.*")) continue; - } - if (StringUtils.trin(s.getString()).length() != 0) { + + if (StringUtils.trin(s.getString()).length() != 0) return false; - } + } return true; } @@ -233,9 +236,8 @@ final public class UmlSource { for (StringLocated s : source) { final Matcher2 m = p.matcher(s.getString()); final boolean ok = m.matches(); - if (ok) { + if (ok) return Display.create(m.group(1)); - } } return Display.empty(); } @@ -247,9 +249,9 @@ final public class UmlSource { public String getId() { final Pattern p = Pattern.compile("id=([\\w]+)\\b"); final Matcher m = p.matcher(source.get(0).getString()); - if (m.find()) { + if (m.find()) return m.group(1); - } + return null; } diff --git a/src/net/sourceforge/plantuml/creole/SheetBlock1.java b/src/net/sourceforge/plantuml/creole/SheetBlock1.java index 04a0ff5c7..f6daf7e40 100644 --- a/src/net/sourceforge/plantuml/creole/SheetBlock1.java +++ b/src/net/sourceforge/plantuml/creole/SheetBlock1.java @@ -45,6 +45,7 @@ import java.util.Objects; import net.sourceforge.plantuml.Dimension2DDouble; import net.sourceforge.plantuml.LineBreakStrategy; +import net.sourceforge.plantuml.annotation.HaxeIgnored; import net.sourceforge.plantuml.creole.atom.Atom; import net.sourceforge.plantuml.creole.legacy.StripeSimple; import net.sourceforge.plantuml.graphic.AbstractTextBlock; @@ -73,6 +74,7 @@ public class SheetBlock1 extends AbstractTextBlock implements TextBlock, Atom, S private final double marginX1; private final double marginX2; + @HaxeIgnored public SheetBlock1(Sheet sheet, LineBreakStrategy maxWidth, double padding) { this(sheet, maxWidth, padding, 0, 0); } diff --git a/src/net/sourceforge/plantuml/cucadiagram/Body3.java b/src/net/sourceforge/plantuml/cucadiagram/Body3.java index af20a6b3d..1bc87cef3 100644 --- a/src/net/sourceforge/plantuml/cucadiagram/Body3.java +++ b/src/net/sourceforge/plantuml/cucadiagram/Body3.java @@ -81,9 +81,9 @@ public class Body3 extends AbstractTextBlock implements TextBlock, WithPorts { FontConfiguration config; if (style != null) { - config = new FontConfiguration(skinParam, style); + config = FontConfiguration.create(skinParam, style); } else { - config = new FontConfiguration(skinParam, fontParam, stereotype); + config = FontConfiguration.create(skinParam, fontParam, stereotype); } TextBlock foo = display.create(config, HorizontalAlignment.LEFT, skinParam); diff --git a/src/net/sourceforge/plantuml/cucadiagram/BodyEnhanced1.java b/src/net/sourceforge/plantuml/cucadiagram/BodyEnhanced1.java index 144315baf..640043019 100644 --- a/src/net/sourceforge/plantuml/cucadiagram/BodyEnhanced1.java +++ b/src/net/sourceforge/plantuml/cucadiagram/BodyEnhanced1.java @@ -77,7 +77,7 @@ public class BodyEnhanced1 extends BodyEnhancedAbstract implements TextBlock, Wi BodyEnhanced1(HorizontalAlignment align, List rawBody, FontParam fontParam, ISkinParam skinParam, Stereotype stereotype, ILeaf entity, Style style) { - super(align, UseStyle.useBetaStyle() == false ? new FontConfiguration(skinParam, fontParam, stereotype) + super(align, UseStyle.useBetaStyle() == false ? FontConfiguration.create(skinParam, fontParam, stereotype) : style.getFontConfiguration(skinParam.getThemeStyle(), skinParam.getIHtmlColorSet()), style); this.style = style; this.rawBody2 = Display.create(rawBody); @@ -93,7 +93,7 @@ public class BodyEnhanced1 extends BodyEnhancedAbstract implements TextBlock, Wi BodyEnhanced1(HorizontalAlignment align, Display display, FontParam fontParam, ISkinParam skinParam, Stereotype stereotype, ILeaf entity, Style style) { - super(align, style == null ? new FontConfiguration(skinParam, fontParam, stereotype) + super(align, style == null ? FontConfiguration.create(skinParam, fontParam, stereotype) : style.getFontConfiguration(skinParam.getThemeStyle(), skinParam.getIHtmlColorSet()), style); this.style = style; diff --git a/src/net/sourceforge/plantuml/cucadiagram/LinkConstraint.java b/src/net/sourceforge/plantuml/cucadiagram/LinkConstraint.java index f4bc984ef..fa912b530 100644 --- a/src/net/sourceforge/plantuml/cucadiagram/LinkConstraint.java +++ b/src/net/sourceforge/plantuml/cucadiagram/LinkConstraint.java @@ -93,7 +93,7 @@ public class LinkConstraint { ug = ug.apply(new UStroke(3, 3, 1)); ug.apply(new UTranslate(x1, y1)).draw(line); - final TextBlock label = display.create(new FontConfiguration(skinParam, FontParam.ARROW, null), + final TextBlock label = display.create(FontConfiguration.create(skinParam, FontParam.ARROW, null), HorizontalAlignment.CENTER, skinParam); final Dimension2D dimLabel = label.calculateDimension(ug.getStringBounder()); final double x = (x1 + x2) / 2 - dimLabel.getWidth() / 2; diff --git a/src/net/sourceforge/plantuml/cucadiagram/MethodsOrFieldsArea.java b/src/net/sourceforge/plantuml/cucadiagram/MethodsOrFieldsArea.java index 4697846a9..03fa4c566 100644 --- a/src/net/sourceforge/plantuml/cucadiagram/MethodsOrFieldsArea.java +++ b/src/net/sourceforge/plantuml/cucadiagram/MethodsOrFieldsArea.java @@ -182,9 +182,9 @@ public class MethodsOrFieldsArea extends AbstractTextBlock implements TextBlock, FontConfiguration config; if (style != null) - config = new FontConfiguration(skinParam, style); + config = FontConfiguration.create(skinParam, style); else - config = new FontConfiguration(skinParam, fontParam, stereotype); + config = FontConfiguration.create(skinParam, fontParam, stereotype); if (cs instanceof Member) { final Member m = (Member) cs; diff --git a/src/net/sourceforge/plantuml/cucadiagram/TextBlockCucaJSon.java b/src/net/sourceforge/plantuml/cucadiagram/TextBlockCucaJSon.java index 524c7c569..eb08266da 100644 --- a/src/net/sourceforge/plantuml/cucadiagram/TextBlockCucaJSon.java +++ b/src/net/sourceforge/plantuml/cucadiagram/TextBlockCucaJSon.java @@ -226,7 +226,7 @@ public class TextBlockCucaJSon extends AbstractTextBlock implements WithPorts { private FontConfiguration getFontConfiguration() { if (fontConfiguration == null) - return new FontConfiguration(skinParam, fontParam, null); + return FontConfiguration.create(skinParam, fontParam, null); return fontConfiguration; } diff --git a/src/net/sourceforge/plantuml/cucadiagram/TextBlockMap.java b/src/net/sourceforge/plantuml/cucadiagram/TextBlockMap.java index 7df289860..9dc659273 100644 --- a/src/net/sourceforge/plantuml/cucadiagram/TextBlockMap.java +++ b/src/net/sourceforge/plantuml/cucadiagram/TextBlockMap.java @@ -203,7 +203,7 @@ public class TextBlockMap extends AbstractTextBlock implements WithPorts { private FontConfiguration getFontConfiguration() { if (fontConfiguration == null) - return new FontConfiguration(skinParam, fontParam, null); + return FontConfiguration.create(skinParam, fontParam, null); return fontConfiguration; } diff --git a/src/net/sourceforge/plantuml/cucadiagram/entity/EntityImpl.java b/src/net/sourceforge/plantuml/cucadiagram/entity/EntityImpl.java index e6c1df6ee..b1d4a9252 100644 --- a/src/net/sourceforge/plantuml/cucadiagram/entity/EntityImpl.java +++ b/src/net/sourceforge/plantuml/cucadiagram/entity/EntityImpl.java @@ -676,7 +676,7 @@ final public class EntityImpl implements ILeaf, IGroup { final FontParam fontParam = getTitleFontParam(); final HColor fontHtmlColor = skinParam.getFontHtmlColor(getStereotype(), fontParam, FontParam.PACKAGE); final UFont font = skinParam.getFont(getStereotype(), true, fontParam, FontParam.PACKAGE); - final FontConfiguration fontConfiguration = new FontConfiguration(font, fontHtmlColor, + final FontConfiguration fontConfiguration = FontConfiguration.create(font, fontHtmlColor, skinParam.getHyperlinkColor(), skinParam.useUnderlineForHyperlink(), skinParam.getTabSize()); return fontConfiguration; } diff --git a/src/net/sourceforge/plantuml/definition/PSystemDefinition.java b/src/net/sourceforge/plantuml/definition/PSystemDefinition.java index 9da8b06dd..1d8484a44 100644 --- a/src/net/sourceforge/plantuml/definition/PSystemDefinition.java +++ b/src/net/sourceforge/plantuml/definition/PSystemDefinition.java @@ -73,7 +73,7 @@ public class PSystemDefinition extends PlainDiagram implements UDrawable { public void drawU(UGraphic ug) { final UFont font = UFont.sansSerif(14); - final FontConfiguration fc = new FontConfiguration(font, HColorUtils.BLACK, HColorUtils.BLACK, false); + final FontConfiguration fc = FontConfiguration.create(font, HColorUtils.BLACK, HColorUtils.BLACK, false); Display.getWithNewlines(startLine).create(fc, HorizontalAlignment.LEFT, new SpriteContainerEmpty()).drawU(ug); } diff --git a/src/net/sourceforge/plantuml/descdiagram/EntityImageDesignedDomain.java b/src/net/sourceforge/plantuml/descdiagram/EntityImageDesignedDomain.java index badc5b021..acdb9993c 100644 --- a/src/net/sourceforge/plantuml/descdiagram/EntityImageDesignedDomain.java +++ b/src/net/sourceforge/plantuml/descdiagram/EntityImageDesignedDomain.java @@ -73,13 +73,13 @@ public class EntityImageDesignedDomain extends AbstractEntityImage { super(entity, skinParam); final Stereotype stereotype = entity.getStereotype(); this.name = TextBlockUtils.withMargin( - entity.getDisplay().create(new FontConfiguration(getSkinParam(), FontParam.DESIGNED_DOMAIN, stereotype), + entity.getDisplay().create(FontConfiguration.create(getSkinParam(), FontParam.DESIGNED_DOMAIN, stereotype), HorizontalAlignment.CENTER, skinParam), 2, 2); if (stereotype == null || stereotype.getLabel(Guillemet.DOUBLE_COMPARATOR) == null) { this.stereo = null; } else { this.stereo = Display.create(stereotype.getLabels(skinParam.guillemet())).create( - new FontConfiguration(getSkinParam(), FontParam.DESIGNED_DOMAIN_STEREOTYPE, stereotype), + FontConfiguration.create(getSkinParam(), FontParam.DESIGNED_DOMAIN_STEREOTYPE, stereotype), HorizontalAlignment.CENTER, skinParam); } this.url = entity.getUrl99(); diff --git a/src/net/sourceforge/plantuml/descdiagram/EntityImageDomain.java b/src/net/sourceforge/plantuml/descdiagram/EntityImageDomain.java index d72b6968d..4305bd35d 100644 --- a/src/net/sourceforge/plantuml/descdiagram/EntityImageDomain.java +++ b/src/net/sourceforge/plantuml/descdiagram/EntityImageDomain.java @@ -74,14 +74,14 @@ public class EntityImageDomain extends AbstractEntityImage { public EntityImageDomain(ILeaf entity, ISkinParam skinParam, char typeLetter) { super(entity, skinParam); final Stereotype stereotype = entity.getStereotype(); - FontConfiguration fc = new FontConfiguration(getSkinParam(), FontParam.DESIGNED_DOMAIN, stereotype); + FontConfiguration fc = FontConfiguration.create(getSkinParam(), FontParam.DESIGNED_DOMAIN, stereotype); this.name = TextBlockUtils.withMargin(entity.getDisplay().create(fc, HorizontalAlignment.CENTER, skinParam), 2, 2); if (stereotype == null || stereotype.getLabel(Guillemet.DOUBLE_COMPARATOR) == null) { this.stereo = null; } else { this.stereo = Display.create(stereotype.getLabels(skinParam.guillemet())).create( - new FontConfiguration(getSkinParam(), FontParam.DESIGNED_DOMAIN_STEREOTYPE, stereotype), + FontConfiguration.create(getSkinParam(), FontParam.DESIGNED_DOMAIN_STEREOTYPE, stereotype), HorizontalAlignment.CENTER, skinParam); } this.tag = new BoxedCharacter(typeLetter, 8, UFont.byDefault(8), stereotype.getHtmlColor(), null, fc.getColor()); diff --git a/src/net/sourceforge/plantuml/descdiagram/EntityImageMachine.java b/src/net/sourceforge/plantuml/descdiagram/EntityImageMachine.java index 81ec7a25e..5dbcece83 100644 --- a/src/net/sourceforge/plantuml/descdiagram/EntityImageMachine.java +++ b/src/net/sourceforge/plantuml/descdiagram/EntityImageMachine.java @@ -73,13 +73,13 @@ public class EntityImageMachine extends AbstractEntityImage { super(entity, skinParam); final Stereotype stereotype = entity.getStereotype(); this.name = TextBlockUtils.withMargin( - entity.getDisplay().create(new FontConfiguration(getSkinParam(), FontParam.MACHINE, stereotype), + entity.getDisplay().create(FontConfiguration.create(getSkinParam(), FontParam.MACHINE, stereotype), HorizontalAlignment.CENTER, skinParam), 2, 2); if (stereotype == null || stereotype.getLabel(Guillemet.DOUBLE_COMPARATOR) == null) { this.stereo = null; } else { this.stereo = Display.create(stereotype.getLabels(skinParam.guillemet())).create( - new FontConfiguration(getSkinParam(), FontParam.MACHINE_STEREOTYPE, stereotype), + FontConfiguration.create(getSkinParam(), FontParam.MACHINE_STEREOTYPE, stereotype), HorizontalAlignment.CENTER, skinParam); } this.url = entity.getUrl99(); diff --git a/src/net/sourceforge/plantuml/descdiagram/EntityImageRequirement.java b/src/net/sourceforge/plantuml/descdiagram/EntityImageRequirement.java index 0ca06b76d..70b852392 100644 --- a/src/net/sourceforge/plantuml/descdiagram/EntityImageRequirement.java +++ b/src/net/sourceforge/plantuml/descdiagram/EntityImageRequirement.java @@ -84,7 +84,7 @@ public class EntityImageRequirement extends AbstractEntityImage { this.desc = tmp; } else { final TextBlock stereo = Display.getWithNewlines(stereotype.getLabel(getSkinParam().guillemet())).create( - new FontConfiguration(getSkinParam(), FontParam.REQUIREMENT_STEREOTYPE, stereotype), + FontConfiguration.create(getSkinParam(), FontParam.REQUIREMENT_STEREOTYPE, stereotype), HorizontalAlignment.CENTER, skinParam); this.desc = TextBlockUtils.mergeTB(stereo, tmp, HorizontalAlignment.CENTER); } diff --git a/src/net/sourceforge/plantuml/eggs/PSystemColors.java b/src/net/sourceforge/plantuml/eggs/PSystemColors.java index a4a48e811..87d057733 100644 --- a/src/net/sourceforge/plantuml/eggs/PSystemColors.java +++ b/src/net/sourceforge/plantuml/eggs/PSystemColors.java @@ -260,7 +260,7 @@ public class PSystemColors extends PlainDiagram implements UDrawable { private TextBlock getTextName(final UFont font, String name, final HColorSimple color) { final HColorSimple opposite = color.opposite(); - final FontConfiguration fc = new FontConfiguration(font, opposite, HColorUtils.BLUE, true); + final FontConfiguration fc = FontConfiguration.create(font, opposite, HColorUtils.BLUE, true); final TextBlock tt = Display.getWithNewlines(name).create(fc, HorizontalAlignment.CENTER, new SpriteContainerEmpty()); return tt; diff --git a/src/net/sourceforge/plantuml/elk/CucaDiagramFileMakerElk.java b/src/net/sourceforge/plantuml/elk/CucaDiagramFileMakerElk.java index 32450b0bb..f4b29f2df 100644 --- a/src/net/sourceforge/plantuml/elk/CucaDiagramFileMakerElk.java +++ b/src/net/sourceforge/plantuml/elk/CucaDiagramFileMakerElk.java @@ -166,7 +166,7 @@ public class CucaDiagramFileMakerElk implements CucaDiagramFileMaker { return null; } final ISkinParam skinParam = diagram.getSkinParam(); - final FontConfiguration labelFont = new FontConfiguration(skinParam, FontParam.ARROW, null); + final FontConfiguration labelFont = FontConfiguration.create(skinParam, FontParam.ARROW, null); final TextBlock label = link.getLabel().create(labelFont, skinParam.getDefaultTextAlignment(HorizontalAlignment.CENTER), skinParam); if (TextBlockUtils.isEmpty(label, stringBounder)) { @@ -181,7 +181,7 @@ public class CucaDiagramFileMakerElk implements CucaDiagramFileMaker { return null; } final ISkinParam skinParam = diagram.getSkinParam(); - final FontConfiguration labelFont = new FontConfiguration(skinParam, FontParam.ARROW, null); + final FontConfiguration labelFont = FontConfiguration.create(skinParam, FontParam.ARROW, null); final TextBlock label = Display.getWithNewlines(tmp).create(labelFont, skinParam.getDefaultTextAlignment(HorizontalAlignment.CENTER), skinParam); if (TextBlockUtils.isEmpty(label, stringBounder)) { diff --git a/src/net/sourceforge/plantuml/error/PSystemError.java b/src/net/sourceforge/plantuml/error/PSystemError.java index d8e2d4220..e1fe1be13 100644 --- a/src/net/sourceforge/plantuml/error/PSystemError.java +++ b/src/net/sourceforge/plantuml/error/PSystemError.java @@ -353,7 +353,7 @@ public abstract class PSystemError extends PlainDiagram { "Details on [[https://plantuml.com/dedication]]"); final UFont font = UFont.sansSerif(14); - final FontConfiguration fc = new FontConfiguration(font, HColorUtils.BLACK, HColorUtils.BLACK, false); + final FontConfiguration fc = FontConfiguration.create(font, HColorUtils.BLACK, HColorUtils.BLACK, false); final TextBlock text = TextBlockUtils .withMargin(disp.create(fc, HorizontalAlignment.LEFT, new SpriteContainerEmpty()), 10, 0); final TextBlock result; @@ -374,7 +374,7 @@ public abstract class PSystemError extends PlainDiagram { "Details on [[http://plantuml.com/adopt]]", " "); final UFont font = UFont.sansSerif(14); - final FontConfiguration fc = new FontConfiguration(font, HColorUtils.BLACK, HColorUtils.BLACK, false); + final FontConfiguration fc = FontConfiguration.create(font, HColorUtils.BLACK, HColorUtils.BLACK, false); final TextBlock text = TextBlockUtils .withMargin(disp.create(fc, HorizontalAlignment.LEFT, new SpriteContainerEmpty()), 10, 0); final TextBlock result; diff --git a/src/net/sourceforge/plantuml/error/PSystemErrorPreprocessor.java b/src/net/sourceforge/plantuml/error/PSystemErrorPreprocessor.java index e0aec8477..fb7303c91 100644 --- a/src/net/sourceforge/plantuml/error/PSystemErrorPreprocessor.java +++ b/src/net/sourceforge/plantuml/error/PSystemErrorPreprocessor.java @@ -45,7 +45,7 @@ import net.sourceforge.plantuml.core.UmlSource; public class PSystemErrorPreprocessor extends PSystemError { public PSystemErrorPreprocessor(List input, List trace) { - super(new UmlSource(input, DiagramType.getTypeFromArobaseStart(input.get(0).getString()) == DiagramType.UML)); + super(UmlSource.create(input, DiagramType.getTypeFromArobaseStart(input.get(0).getString()) == DiagramType.UML)); this.trace = trace; this.singleError = new ErrorUml(ErrorUmlType.SYNTAX_ERROR, getLastLine().getPreprocessorError(), 0, getLastLine().getLocation()); diff --git a/src/net/sourceforge/plantuml/flowdiagram/FlowDiagram.java b/src/net/sourceforge/plantuml/flowdiagram/FlowDiagram.java index bb1156c3a..acac556c8 100644 --- a/src/net/sourceforge/plantuml/flowdiagram/FlowDiagram.java +++ b/src/net/sourceforge/plantuml/flowdiagram/FlowDiagram.java @@ -91,7 +91,7 @@ public class FlowDiagram extends UmlDiagram implements TextBlock { } public FlowDiagram(ThemeStyle style, UmlSource source) { - super(style, source, UmlDiagramType.FLOW); + super(style, source, UmlDiagramType.FLOW, null); } public void lineSimple(TileGeometry orientation, String idDest, String label) { diff --git a/src/net/sourceforge/plantuml/gitlog/GitDiagram.java b/src/net/sourceforge/plantuml/gitlog/GitDiagram.java index af085942a..6a7ff0a17 100644 --- a/src/net/sourceforge/plantuml/gitlog/GitDiagram.java +++ b/src/net/sourceforge/plantuml/gitlog/GitDiagram.java @@ -59,7 +59,7 @@ public class GitDiagram extends UmlDiagram { private final Collection gnodes; public GitDiagram(ThemeStyle style, UmlSource source, GitTextArea textArea) { - super(style, source, UmlDiagramType.GIT); + super(style, source, UmlDiagramType.GIT, null); this.gnodes = new GNodeBuilder(textArea.getAllCommits()).getAllNodes(); new GNodeBuilder(textArea.getAllCommits()); } diff --git a/src/net/sourceforge/plantuml/gitlog/MagicBox.java b/src/net/sourceforge/plantuml/gitlog/MagicBox.java index c9d82780a..3d980dfe0 100644 --- a/src/net/sourceforge/plantuml/gitlog/MagicBox.java +++ b/src/net/sourceforge/plantuml/gitlog/MagicBox.java @@ -70,13 +70,13 @@ public class MagicBox { } private TextBlock getSmallBlock() { - final FontConfiguration fc = new FontConfiguration(UFont.monospaced(15).bold(), fontColor, fontColor, false); + final FontConfiguration fc = FontConfiguration.create(UFont.monospaced(15).bold(), fontColor, fontColor, false); return node.getDisplay().create(fc, HorizontalAlignment.CENTER, skinParam); } private TextBlock getCommentBlock() { if (node.getComment() != null && node.isTop()) { - final FontConfiguration tag = new FontConfiguration(UFont.sansSerif(13), fontColor, fontColor, false); + final FontConfiguration tag = FontConfiguration.create(UFont.sansSerif(13), fontColor, fontColor, false); return Display.create(node.getComment()).create(tag, HorizontalAlignment.CENTER, skinParam); } return TextBlockUtils.empty(0, 0); diff --git a/src/net/sourceforge/plantuml/graphic/AddStyle.java b/src/net/sourceforge/plantuml/graphic/AddStyle.java index 8d662c52b..56654b375 100644 --- a/src/net/sourceforge/plantuml/graphic/AddStyle.java +++ b/src/net/sourceforge/plantuml/graphic/AddStyle.java @@ -47,8 +47,8 @@ public class AddStyle implements FontChange { this.extendedColor = extendedColor; } - public AddStyle(String s) { - this(FontStyle.getStyle(s), FontStyle.getStyle(s).getExtendedColor(s)); + public static AddStyle fromString(String s) { + return new AddStyle(FontStyle.getStyle(s), FontStyle.getStyle(s).getExtendedColor(s)); } public FontConfiguration apply(FontConfiguration initial) { diff --git a/src/net/sourceforge/plantuml/graphic/CoordinateChange.java b/src/net/sourceforge/plantuml/graphic/CoordinateChange.java index 1944412e5..9253b3a01 100644 --- a/src/net/sourceforge/plantuml/graphic/CoordinateChange.java +++ b/src/net/sourceforge/plantuml/graphic/CoordinateChange.java @@ -50,8 +50,8 @@ class CoordinateChange { private final double vect_v_y; private final double len; - public CoordinateChange(Point2D p1, Point2D p2) { - this(p1.getX(), p1.getY(), p2.getX(), p2.getY()); + public static CoordinateChange create(Point2D p1, Point2D p2) { + return new CoordinateChange(p1.getX(), p1.getY(), p2.getX(), p2.getY()); } public CoordinateChange(double x1, double y1, double x2, double y2) { diff --git a/src/net/sourceforge/plantuml/graphic/FontConfiguration.java b/src/net/sourceforge/plantuml/graphic/FontConfiguration.java index 2728b8a27..4d570325c 100644 --- a/src/net/sourceforge/plantuml/graphic/FontConfiguration.java +++ b/src/net/sourceforge/plantuml/graphic/FontConfiguration.java @@ -70,29 +70,29 @@ public class FontConfiguration { return getFont().toStringDebug() + " " + styles.toString(); } - public FontConfiguration(UFont font, HColor color, HColor hyperlinkColor, boolean useUnderlineForHyperlink) { - this(font, color, hyperlinkColor, useUnderlineForHyperlink, 8); + public static FontConfiguration create(UFont font, HColor color, HColor hyperlinkColor, boolean useUnderlineForHyperlink) { + return create(font, color, hyperlinkColor, useUnderlineForHyperlink, 8); } - public FontConfiguration(UFont font, HColor color, HColor hyperlinkColor, boolean useUnderlineForHyperlink, + public static FontConfiguration create(UFont font, HColor color, HColor hyperlinkColor, boolean useUnderlineForHyperlink, int tabSize) { - this(getStyles(font), font, color, font, color, null, FontPosition.NORMAL, new SvgAttributes(), false, + return new FontConfiguration(getStyles(font), font, color, font, color, null, FontPosition.NORMAL, new SvgAttributes(), false, hyperlinkColor, useUnderlineForHyperlink, tabSize); } public static FontConfiguration blackBlueTrue(UFont font) { - return new FontConfiguration(font, HColorUtils.BLACK.withDark(HColorUtils.WHITE), HColorUtils.BLUE, true, 8); + return create(font, HColorUtils.BLACK.withDark(HColorUtils.WHITE), HColorUtils.BLUE, true, 8); } - public FontConfiguration(ISkinParam skinParam, FontParam fontParam, Stereotype stereo) { - this(SkinParamUtils.getFont(skinParam, fontParam, stereo), + public static FontConfiguration create(ISkinParam skinParam, FontParam fontParam, Stereotype stereo) { + return create(SkinParamUtils.getFont(skinParam, fontParam, stereo), SkinParamUtils.getFontColor(skinParam, fontParam, stereo), skinParam.getHyperlinkColor(), skinParam.useUnderlineForHyperlink(), skinParam.getTabSize()); } - public FontConfiguration(ISkinParam skinParam, Style style) { + public static FontConfiguration create(ISkinParam skinParam, Style style) { // User getStyle().getFontConfiguration(skinParam.getIHtmlColorSet()) instead ? - this(style.getUFont(), + return create(style.getUFont(), style.value(PName.FontColor).asColor(skinParam.getThemeStyle(), skinParam.getIHtmlColorSet()), skinParam.getHyperlinkColor(), skinParam.useUnderlineForHyperlink(), skinParam.getTabSize()); } diff --git a/src/net/sourceforge/plantuml/graphic/GraphicStrings.java b/src/net/sourceforge/plantuml/graphic/GraphicStrings.java index a055eb6d8..1e5db5916 100644 --- a/src/net/sourceforge/plantuml/graphic/GraphicStrings.java +++ b/src/net/sourceforge/plantuml/graphic/GraphicStrings.java @@ -116,15 +116,15 @@ public class GraphicStrings extends AbstractTextBlock implements IEntityImage { } public static FontConfiguration sansSerif12(HColor color) { - return new FontConfiguration(UFont.sansSerif(12), color, hyperlinkColor, useUnderlineForHyperlink); + return FontConfiguration.create(UFont.sansSerif(12), color, hyperlinkColor, useUnderlineForHyperlink); } public static FontConfiguration sansSerif14(HColor color) { - return new FontConfiguration(UFont.sansSerif(14), color, hyperlinkColor, useUnderlineForHyperlink); + return FontConfiguration.create(UFont.sansSerif(14), color, hyperlinkColor, useUnderlineForHyperlink); } private static FontConfiguration monospaced14(HColor color) { - return new FontConfiguration(UFont.monospaced(14), color, hyperlinkColor, useUnderlineForHyperlink); + return FontConfiguration.create(UFont.monospaced(14), color, hyperlinkColor, useUnderlineForHyperlink); } private final CreoleMode mode; diff --git a/src/net/sourceforge/plantuml/graphic/HtmlCommandFactory.java b/src/net/sourceforge/plantuml/graphic/HtmlCommandFactory.java index 3accf7ad6..94ba9746d 100644 --- a/src/net/sourceforge/plantuml/graphic/HtmlCommandFactory.java +++ b/src/net/sourceforge/plantuml/graphic/HtmlCommandFactory.java @@ -81,7 +81,7 @@ class HtmlCommandFactory { } if (addStyle.matcher(s).matches()) { - return new AddStyle(s); + return AddStyle.fromString(s); } if (removeStyle.matcher(s).matches()) { return new RemoveStyle(FontStyle.getStyle(s)); diff --git a/src/net/sourceforge/plantuml/graphic/SingleLine.java b/src/net/sourceforge/plantuml/graphic/SingleLine.java index 35787fce7..3664f5737 100644 --- a/src/net/sourceforge/plantuml/graphic/SingleLine.java +++ b/src/net/sourceforge/plantuml/graphic/SingleLine.java @@ -53,49 +53,47 @@ class SingleLine extends AbstractTextBlock implements Line { public static SingleLine withSomeHtmlTag(String text, FontConfiguration fontConfiguration, HorizontalAlignment horizontalAlignment, SpriteContainer spriteContainer) { - return new SingleLine(text, fontConfiguration, horizontalAlignment, spriteContainer); - } + final SingleLine result = new SingleLine(horizontalAlignment); - public static SingleLine rawText(String text, FontConfiguration fontConfiguration) { - return new SingleLine(text, fontConfiguration); - } - - private SingleLine(String text, FontConfiguration fontConfiguration) { - if (text.length() == 0) { + if (text.length() == 0) text = " "; - } - this.horizontalAlignment = HorizontalAlignment.LEFT; - this.blocs.add(new TileText(text, fontConfiguration, null)); - } - private SingleLine(String text, FontConfiguration fontConfiguration, HorizontalAlignment horizontalAlignment, - SpriteContainer spriteContainer) { - if (text.length() == 0) { - text = " "; - } - this.horizontalAlignment = horizontalAlignment; final Splitter lineSplitter = new Splitter(text); for (HtmlCommand cmd : lineSplitter.getHtmlCommands(spriteContainer.getThemeStyle(), false)) { if (cmd instanceof Text) { final String s = ((Text) cmd).getText(); - blocs.add(new TileText(s, fontConfiguration, null)); + result.blocs.add(new TileText(s, fontConfiguration, null)); } else if (cmd instanceof TextLink) { final String s = ((TextLink) cmd).getText(); final Url url = ((TextLink) cmd).getUrl(); // blocs.add(new TileText(s, fontConfiguration.add(FontStyle.UNDERLINE), url)); - blocs.add(new TileText(s, fontConfiguration, url)); + result.blocs.add(new TileText(s, fontConfiguration, url)); } else if (cmd instanceof Img) { - blocs.add(((Img) cmd).createMonoImage()); + result.blocs.add(((Img) cmd).createMonoImage()); } else if (cmd instanceof SpriteCommand) { final Sprite sprite = spriteContainer.getSprite(((SpriteCommand) cmd).getSprite()); - if (sprite != null) { - blocs.add(sprite.asTextBlock(fontConfiguration.getColor(), 1)); - } + if (sprite != null) + result.blocs.add(sprite.asTextBlock(fontConfiguration.getColor(), 1)); + } else if (cmd instanceof FontChange) { fontConfiguration = ((FontChange) cmd).apply(fontConfiguration); } } + return result; + } + + public static SingleLine rawText(String text, FontConfiguration fontConfiguration) { + final SingleLine result = new SingleLine(HorizontalAlignment.LEFT); + if (text.length() == 0) + text = " "; + + result.blocs.add(new TileText(text, fontConfiguration, null)); + return result; + } + + private SingleLine(HorizontalAlignment horizontalAlignment) { + this.horizontalAlignment = horizontalAlignment; } public Dimension2D calculateDimension(StringBounder stringBounder) { @@ -130,9 +128,9 @@ class SingleLine extends AbstractTextBlock implements Line { double result = 0; final Dimension2D dim = calculateDimension(ug.getStringBounder()); for (TextBlock b : blocs) { - if (b instanceof TileText == false) { + if (b instanceof TileText == false) continue; - } + final Dimension2D dimBloc = b.calculateDimension(ug.getStringBounder()); final double deltaY = dim.getHeight() - dimBloc.getHeight() + ((TileText) b).getFontSize2D(); result = Math.max(result, deltaY); diff --git a/src/net/sourceforge/plantuml/graphic/TextBlockUtils.java b/src/net/sourceforge/plantuml/graphic/TextBlockUtils.java index d6166e774..14e1bfa05 100644 --- a/src/net/sourceforge/plantuml/graphic/TextBlockUtils.java +++ b/src/net/sourceforge/plantuml/graphic/TextBlockUtils.java @@ -184,7 +184,7 @@ public class TextBlockUtils { // } public static MinMax getMinMax(UDrawable tb, StringBounder stringBounder, boolean initToZero) { - final LimitFinder limitFinder = new LimitFinder(stringBounder, initToZero); + final LimitFinder limitFinder = LimitFinder.create(stringBounder, initToZero); tb.drawU(limitFinder); return limitFinder.getMinMax(); } diff --git a/src/net/sourceforge/plantuml/graphic/USymbolCloud.java b/src/net/sourceforge/plantuml/graphic/USymbolCloud.java index c05ec9f78..30c7257ad 100644 --- a/src/net/sourceforge/plantuml/graphic/USymbolCloud.java +++ b/src/net/sourceforge/plantuml/graphic/USymbolCloud.java @@ -141,7 +141,7 @@ class USymbolCloud extends USymbol { } private void specialLine(double bubbleSize, Random rnd, List points, Point2D p1, Point2D p2) { - final CoordinateChange change = new CoordinateChange(p1, p2); + final CoordinateChange change = CoordinateChange.create(p1, p2); final double length = change.getLength(); final Point2D middle = change.getTrueCoordinate(length / 2, -rnd(rnd, 1, 1 + Math.min(12, bubbleSize * 0.8))); // final Point2D middle = change.getTrueCoordinate(length / 2, -13); @@ -155,7 +155,7 @@ class USymbolCloud extends USymbol { } private void bubbleLine(Random rnd, List points, Point2D p1, Point2D p2, double bubbleSize) { - final CoordinateChange change = new CoordinateChange(p1, p2); + final CoordinateChange change = CoordinateChange.create(p1, p2); final double length = change.getLength(); int nb = (int) (length / bubbleSize); if (nb == 0) { @@ -168,7 +168,7 @@ class USymbolCloud extends USymbol { } private void addCurve(Random rnd, UPath path, Point2D p1, Point2D p2) { - final CoordinateChange change = new CoordinateChange(p1, p2); + final CoordinateChange change = CoordinateChange.create(p1, p2); final double length = change.getLength(); final double coef = rnd(rnd, .25, .35); final Point2D middle = change.getTrueCoordinate(length * coef, -length * rnd(rnd, .4, .55)); diff --git a/src/net/sourceforge/plantuml/help/Help.java b/src/net/sourceforge/plantuml/help/Help.java index bb2eb2127..b089c0973 100644 --- a/src/net/sourceforge/plantuml/help/Help.java +++ b/src/net/sourceforge/plantuml/help/Help.java @@ -67,7 +67,7 @@ public class Help extends UmlDiagram { } public Help(ThemeStyle style, UmlSource source) { - super(style, source, UmlDiagramType.HELP); + super(style, source, UmlDiagramType.HELP, null); } @Override diff --git a/src/net/sourceforge/plantuml/jsondiagram/JsonDiagram.java b/src/net/sourceforge/plantuml/jsondiagram/JsonDiagram.java index bea7ef09a..c019e1476 100644 --- a/src/net/sourceforge/plantuml/jsondiagram/JsonDiagram.java +++ b/src/net/sourceforge/plantuml/jsondiagram/JsonDiagram.java @@ -69,7 +69,7 @@ public class JsonDiagram extends TitledDiagram { public JsonDiagram(ThemeStyle style, UmlSource source, UmlDiagramType type, JsonValue json, List highlighted) { - super(style, source, type); + super(style, source, type, null); if (json != null && (json.isString() || json.isBoolean() || json.isNumber())) { this.root = new JsonArray(); ((JsonArray) this.root).add(json); diff --git a/src/net/sourceforge/plantuml/mindmap/MindMapDiagram.java b/src/net/sourceforge/plantuml/mindmap/MindMapDiagram.java index b764ebd3e..8a0e8271e 100644 --- a/src/net/sourceforge/plantuml/mindmap/MindMapDiagram.java +++ b/src/net/sourceforge/plantuml/mindmap/MindMapDiagram.java @@ -76,7 +76,7 @@ public class MindMapDiagram extends UmlDiagram { } public MindMapDiagram(ThemeStyle style, UmlSource source) { - super(style, source, UmlDiagramType.MINDMAP); + super(style, source, UmlDiagramType.MINDMAP, null); this.mindmaps.add(new MindMap(getSkinParam())); } diff --git a/src/net/sourceforge/plantuml/mindmap/SymetricalTeePositioned.java b/src/net/sourceforge/plantuml/mindmap/SymetricalTeePositioned.java index 9a8f4cf04..92f8eaa01 100644 --- a/src/net/sourceforge/plantuml/mindmap/SymetricalTeePositioned.java +++ b/src/net/sourceforge/plantuml/mindmap/SymetricalTeePositioned.java @@ -37,6 +37,8 @@ package net.sourceforge.plantuml.mindmap; import java.awt.geom.Line2D; +import net.sourceforge.plantuml.annotation.HaxeIgnored; + public class SymetricalTeePositioned { private final SymetricalTee tee; @@ -47,6 +49,7 @@ public class SymetricalTeePositioned { return "y=" + y + " " + tee; } + @HaxeIgnored public SymetricalTeePositioned(SymetricalTee tee) { this(tee, 0); } diff --git a/src/net/sourceforge/plantuml/nwdiag/NwDiagram.java b/src/net/sourceforge/plantuml/nwdiag/NwDiagram.java index 543fb1aa4..64a826fac 100644 --- a/src/net/sourceforge/plantuml/nwdiag/NwDiagram.java +++ b/src/net/sourceforge/plantuml/nwdiag/NwDiagram.java @@ -98,7 +98,7 @@ public class NwDiagram extends UmlDiagram { } public NwDiagram(ThemeStyle style, UmlSource source) { - super(style, source, UmlDiagramType.NWDIAG); + super(style, source, UmlDiagramType.NWDIAG, null); } public void init() { @@ -178,7 +178,7 @@ public class NwDiagram extends UmlDiagram { final NServer server2; if (lastNetwork() == null) { createNetwork(name1); - server2 = new NServer(name2); + server2 = NServer.create(name2); } else { final NServer server1 = servers.get(name1); final Network network1 = createNetwork(""); @@ -209,13 +209,13 @@ public class NwDiagram extends UmlDiagram { assert currentGroup == null; final Network network1 = createNetwork(""); network1.goInvisible(); - server = new NServer(name); + server = NServer.create(name); servers.put(name, server); server.doNotPrintFirstLink(); } else { server = servers.get(name); if (server == null) { - server = new NServer(name); + server = NServer.create(name); servers.put(name, server); } } diff --git a/src/net/sourceforge/plantuml/nwdiag/core/NServer.java b/src/net/sourceforge/plantuml/nwdiag/core/NServer.java index 1a4b4acc8..88c297161 100644 --- a/src/net/sourceforge/plantuml/nwdiag/core/NServer.java +++ b/src/net/sourceforge/plantuml/nwdiag/core/NServer.java @@ -157,8 +157,8 @@ public class NServer { return name; } - public NServer(String name) { - this(name, new NBar()); + public static NServer create(String name) { + return new NServer(name, new NBar()); } public NServer(String name, NBar bar) { diff --git a/src/net/sourceforge/plantuml/png/PngTitler.java b/src/net/sourceforge/plantuml/png/PngTitler.java index 1035b81ca..26e25d42d 100644 --- a/src/net/sourceforge/plantuml/png/PngTitler.java +++ b/src/net/sourceforge/plantuml/png/PngTitler.java @@ -102,7 +102,7 @@ public class PngTitler { return style.createTextBlockBordered(display, set, spriteContainer); } final UFont normalFont = new UFont(fontFamily, Font.PLAIN, fontSize); - return text.createRibbon(new FontConfiguration(normalFont, textColor, hyperlinkColor, useUnderlineForHyperlink), + return text.createRibbon(FontConfiguration.create(normalFont, textColor, hyperlinkColor, useUnderlineForHyperlink), new SpriteContainerEmpty(), null); } } diff --git a/src/net/sourceforge/plantuml/posimo/Frame.java b/src/net/sourceforge/plantuml/posimo/Frame.java index 06248895b..840059256 100644 --- a/src/net/sourceforge/plantuml/posimo/Frame.java +++ b/src/net/sourceforge/plantuml/posimo/Frame.java @@ -120,7 +120,7 @@ public class Frame implements Component { private TextBlock createTextBloc() { final UFont font = skinParam.getFont(null, false, FontParam.PACKAGE); final HColor textColor = skinParam.getFontHtmlColor(null, FontParam.PACKAGE); - // final TextBlock bloc = Display.create(name).create(new FontConfiguration(font, textColor, + // final TextBlock bloc = Display.create(name).create(FontConfiguration.create(font, textColor, // skinParam.getHyperlinkColor(), skinParam.useUnderlineForHyperlink()), HorizontalAlignment.LEFT, new // SpriteContainerEmpty()); // return bloc; diff --git a/src/net/sourceforge/plantuml/posimo/LabelImage.java b/src/net/sourceforge/plantuml/posimo/LabelImage.java index d810a0d80..7a1c7fe68 100644 --- a/src/net/sourceforge/plantuml/posimo/LabelImage.java +++ b/src/net/sourceforge/plantuml/posimo/LabelImage.java @@ -59,7 +59,7 @@ public class LabelImage { this.param = param; this.rose = rose; // this.name = link.getLabel().create( -// new FontConfiguration(param.getFont(FontParam.CLASS, null, false), HtmlColorUtils.BLACK, +// FontConfiguration.create(param.getFont(FontParam.CLASS, null, false), HtmlColorUtils.BLACK, // param.getHyperlinkColor(), param.useUnderlineForHyperlink()), HorizontalAlignment.CENTER, // new SpriteContainerEmpty()); throw new UnsupportedOperationException(); diff --git a/src/net/sourceforge/plantuml/project/GanttDiagram.java b/src/net/sourceforge/plantuml/project/GanttDiagram.java index cd5f9e7be..24b3fcd1b 100644 --- a/src/net/sourceforge/plantuml/project/GanttDiagram.java +++ b/src/net/sourceforge/plantuml/project/GanttDiagram.java @@ -160,7 +160,7 @@ public class GanttDiagram extends TitledDiagram implements ToTaskDraw, WithSprit } public GanttDiagram(ThemeStyle style, UmlSource source) { - super(style, source, UmlDiagramType.GANTT); + super(style, source, UmlDiagramType.GANTT, null); } public final int getDpi(FileFormatOption fileFormatOption) { diff --git a/src/net/sourceforge/plantuml/project/draw/ResourceDraw.java b/src/net/sourceforge/plantuml/project/draw/ResourceDraw.java index 5ea3f6f7b..9bb90526a 100644 --- a/src/net/sourceforge/plantuml/project/draw/ResourceDraw.java +++ b/src/net/sourceforge/plantuml/project/draw/ResourceDraw.java @@ -116,7 +116,7 @@ public class ResourceDraw implements UDrawable { private FontConfiguration getFontConfiguration(int size, HColor color) { final UFont font = UFont.serif(size); - return new FontConfiguration(font, color, color, false); + return FontConfiguration.create(font, color, color, false); } public double getHeight() { diff --git a/src/net/sourceforge/plantuml/project/draw/TimeHeader.java b/src/net/sourceforge/plantuml/project/draw/TimeHeader.java index 7967b0f3d..154f7d116 100644 --- a/src/net/sourceforge/plantuml/project/draw/TimeHeader.java +++ b/src/net/sourceforge/plantuml/project/draw/TimeHeader.java @@ -130,7 +130,7 @@ public abstract class TimeHeader { if (bold) font = font.bold(); - return new FontConfiguration(font, color, color, false); + return FontConfiguration.create(font, color, color, false); } public final TimeScale getTimeScale() { diff --git a/src/net/sourceforge/plantuml/real/RealMiddle.java b/src/net/sourceforge/plantuml/real/RealMiddle.java index 0f88685bb..ba6f1f040 100644 --- a/src/net/sourceforge/plantuml/real/RealMiddle.java +++ b/src/net/sourceforge/plantuml/real/RealMiddle.java @@ -48,8 +48,8 @@ class RealMiddle extends AbstractReal implements Real { this.delta = delta; } - RealMiddle(RealMoveable p1, RealMoveable p2) { - this(p1, p2, 0); + private static RealMiddle create(RealMoveable p1, RealMoveable p2) { + return new RealMiddle(p1, p2, 0); } @Override diff --git a/src/net/sourceforge/plantuml/salt/PSystemSalt.java b/src/net/sourceforge/plantuml/salt/PSystemSalt.java index 44a8436e8..775a87035 100644 --- a/src/net/sourceforge/plantuml/salt/PSystemSalt.java +++ b/src/net/sourceforge/plantuml/salt/PSystemSalt.java @@ -99,7 +99,7 @@ public class PSystemSalt extends TitledDiagram implements WithSprite { @Deprecated public PSystemSalt(ThemeStyle style, UmlSource source, List data) { - super(style, source, UmlDiagramType.SALT); + super(style, source, UmlDiagramType.SALT, null); this.data = data; } diff --git a/src/net/sourceforge/plantuml/sdot/CucaDiagramFileMakerSmetana.java b/src/net/sourceforge/plantuml/sdot/CucaDiagramFileMakerSmetana.java index 3dd058fbe..12ad2632b 100644 --- a/src/net/sourceforge/plantuml/sdot/CucaDiagramFileMakerSmetana.java +++ b/src/net/sourceforge/plantuml/sdot/CucaDiagramFileMakerSmetana.java @@ -360,7 +360,7 @@ public class CucaDiagramFileMakerSmetana implements CucaDiagramFileMaker { } final FontParam fontParam = FontParam.PACKAGE_STEREOTYPE; - return Display.create(stereos).create(new FontConfiguration(diagram.getSkinParam(), fontParam, stereotype), + return Display.create(stereos).create(FontConfiguration.create(diagram.getSkinParam(), fontParam, stereotype), HorizontalAlignment.CENTER, diagram.getSkinParam()); } @@ -500,7 +500,7 @@ public class CucaDiagramFileMakerSmetana implements CucaDiagramFileMaker { private TextBlock getLabel(Link link) { final double marginLabel = 1; // startUid.equals(endUid) ? 6 : 1; ISkinParam skinParam = diagram.getSkinParam(); - final FontConfiguration labelFont = new FontConfiguration(skinParam, FontParam.ARROW, null); + final FontConfiguration labelFont = FontConfiguration.create(skinParam, FontParam.ARROW, null); final TextBlock label = link.getLabel().create(labelFont, skinParam.getDefaultTextAlignment(HorizontalAlignment.CENTER), skinParam); if (TextBlockUtils.isEmpty(label, stringBounder)) { @@ -516,7 +516,7 @@ public class CucaDiagramFileMakerSmetana implements CucaDiagramFileMaker { } final double marginLabel = 1; // startUid.equals(endUid) ? 6 : 1; ISkinParam skinParam = diagram.getSkinParam(); - final FontConfiguration labelFont = new FontConfiguration(skinParam, FontParam.ARROW, null); + final FontConfiguration labelFont = FontConfiguration.create(skinParam, FontParam.ARROW, null); final TextBlock label = Display.getWithNewlines(tmp).create(labelFont, skinParam.getDefaultTextAlignment(HorizontalAlignment.CENTER), skinParam); if (TextBlockUtils.isEmpty(label, stringBounder)) { diff --git a/src/net/sourceforge/plantuml/sequencediagram/HSpace.java b/src/net/sourceforge/plantuml/sequencediagram/HSpace.java index e09099686..b9db25574 100644 --- a/src/net/sourceforge/plantuml/sequencediagram/HSpace.java +++ b/src/net/sourceforge/plantuml/sequencediagram/HSpace.java @@ -39,10 +39,6 @@ public class HSpace extends AbstractEvent implements Event { private final int pixel; - public HSpace() { - this(25); - } - public HSpace(int pixel) { this.pixel = pixel; } diff --git a/src/net/sourceforge/plantuml/sequencediagram/LinkAnchor.java b/src/net/sourceforge/plantuml/sequencediagram/LinkAnchor.java index 66586f665..47c4b22d2 100644 --- a/src/net/sourceforge/plantuml/sequencediagram/LinkAnchor.java +++ b/src/net/sourceforge/plantuml/sequencediagram/LinkAnchor.java @@ -102,10 +102,10 @@ public class LinkAnchor { final Style style = signature.getMergedStyle(skinParam.getCurrentStyleBuilder()); color = style.value(PName.LineColor).asColor(skinParam.getThemeStyle(), skinParam.getIHtmlColorSet()); - fontConfiguration = new FontConfiguration(skinParam, style); + fontConfiguration = FontConfiguration.create(skinParam, style); } else { color = new Rose().getHtmlColor(skinParam, ColorParam.arrow); - fontConfiguration = new FontConfiguration(skinParam, FontParam.ARROW, null); + fontConfiguration = FontConfiguration.create(skinParam, FontParam.ARROW, null); } final Rainbow rainbow = Rainbow.fromColor(color, null); diff --git a/src/net/sourceforge/plantuml/sequencediagram/SequenceDiagram.java b/src/net/sourceforge/plantuml/sequencediagram/SequenceDiagram.java index 794087838..10e02d5bd 100644 --- a/src/net/sourceforge/plantuml/sequencediagram/SequenceDiagram.java +++ b/src/net/sourceforge/plantuml/sequencediagram/SequenceDiagram.java @@ -231,7 +231,7 @@ public class SequenceDiagram extends UmlDiagram { } public void hspace() { - events.add(new HSpace()); + events.add(new HSpace(25)); } public void hspace(int pixel) { diff --git a/src/net/sourceforge/plantuml/sequencediagram/graphic/FrontierComplex.java b/src/net/sourceforge/plantuml/sequencediagram/graphic/FrontierComplex.java index 9c2676ab6..e4f8c437b 100644 --- a/src/net/sourceforge/plantuml/sequencediagram/graphic/FrontierComplex.java +++ b/src/net/sourceforge/plantuml/sequencediagram/graphic/FrontierComplex.java @@ -42,33 +42,25 @@ class FrontierComplex implements Frontier { private final double freeY[]; - public FrontierComplex(double freeY, int rangeEnd) { - this.freeY = new double[rangeEnd + 1]; - for (int i = 0; i <= rangeEnd; i++) { - this.freeY[i] = freeY; - } + public static FrontierComplex create(double freeY, int rangeEnd) { + final FrontierComplex result = new FrontierComplex(new double[rangeEnd + 1]); + for (int i = 0; i <= rangeEnd; i++) + result.freeY[i] = freeY; + + return result; } private FrontierComplex(double freeY[]) { this.freeY = freeY; } - private FrontierComplex(double freeY[], double delta, ParticipantRange range) { - this(freeY.clone()); - final double newV = getFreeY(range) + delta; - for (int i = range.start(); i <= range.end(); i++) { - this.freeY[i] = newV; - } - } - public double getFreeY(ParticipantRange range) { Objects.requireNonNull(range); double result = freeY[range.start()]; - for (int i = range.start(); i <= range.end(); i++) { - if (freeY[i] > result) { + for (int i = range.start(); i <= range.end(); i++) + if (freeY[i] > result) result = freeY[i]; - } - } + return result; } @@ -78,21 +70,26 @@ class FrontierComplex implements Frontier { } public FrontierComplex add(double delta, ParticipantRange range) { - return new FrontierComplex(freeY, delta, Objects.requireNonNull(range)); + Objects.requireNonNull(range); + final FrontierComplex result = new FrontierComplex(freeY.clone()); + final double newV = result.getFreeY(range) + delta; + for (int i = range.start(); i <= range.end(); i++) + result.freeY[i] = newV; + return result; } FrontierComplex copy() { return new FrontierComplex(freeY.clone()); } - + FrontierComplex mergeMax(FrontierComplex other) { - if (this.freeY.length != other.freeY.length) { + if (this.freeY.length != other.freeY.length) throw new IllegalArgumentException(); - } + final FrontierComplex result = new FrontierComplex(new double[freeY.length]); - for (int i=0; i all; public FrontierStackImpl(double freeY, int rangeEnd) { - final Stack s = new Stack(new FrontierComplex(freeY, rangeEnd)); + final Stack s = new Stack(FrontierComplex.create(freeY, rangeEnd)); all = Collections.singletonList(s); } diff --git a/src/net/sourceforge/plantuml/sequencediagram/graphic/LifeLine.java b/src/net/sourceforge/plantuml/sequencediagram/graphic/LifeLine.java index 94bf0a250..c6bf729a9 100644 --- a/src/net/sourceforge/plantuml/sequencediagram/graphic/LifeLine.java +++ b/src/net/sourceforge/plantuml/sequencediagram/graphic/LifeLine.java @@ -186,10 +186,10 @@ public class LifeLine { if (level == 0) { final double y1 = events.get(i).y; final double y2 = events.get(j).y; - return new SegmentColored(y1, y2, events.get(i).colors, shadowing); + return SegmentColored.create(y1, y2, events.get(i).colors, shadowing); } } - return new SegmentColored(events.get(i).y, events.get(events.size() - 1).y, events.get(i).colors, shadowing); + return SegmentColored.create(events.get(i).y, events.get(events.size() - 1).y, events.get(i).colors, shadowing); } private Collection getSegmentsCutted(StringBounder stringBounder, int i) { @@ -225,8 +225,8 @@ public class LifeLine { style = style.eventuallyOverride(PName.BackGroundColor, specificBackColor); style = style.eventuallyOverride(PName.LineColor, specificLineColor); } - final Component compAliveBox = skin - .createComponent(new Style[] { style }, type, null, skinParam2, null); + final Component compAliveBox = skin.createComponent(new Style[] { style }, type, null, skinParam2, + null); type = ComponentType.ALIVE_BOX_OPEN_OPEN; final int currentLevel = getLevel(seg.getPos1Initial()); seg.drawU(ug, compAliveBox, currentLevel); diff --git a/src/net/sourceforge/plantuml/sequencediagram/graphic/LivingParticipantBox.java b/src/net/sourceforge/plantuml/sequencediagram/graphic/LivingParticipantBox.java index b29aa1287..64ae78b62 100644 --- a/src/net/sourceforge/plantuml/sequencediagram/graphic/LivingParticipantBox.java +++ b/src/net/sourceforge/plantuml/sequencediagram/graphic/LivingParticipantBox.java @@ -75,7 +75,7 @@ public class LivingParticipantBox implements InGroupable { // Log.println("AZERTY " + y + " centerX=" + centerX + " left=" + left + " right=" + right); // Log.println("Attention, null for segment"); final SymbolContext colors = lifeLine.getColors(); - return new SegmentColored(centerX - left, centerX + right, colors, lifeLine.shadowing()); + return SegmentColored.create(centerX - left, centerX + right, colors, lifeLine.shadowing()); } public void drawLineU22(UGraphic ug, double startingY, double endingY, boolean showTail, double myDelta) { diff --git a/src/net/sourceforge/plantuml/sequencediagram/graphic/ParticipantBoxSimple.java b/src/net/sourceforge/plantuml/sequencediagram/graphic/ParticipantBoxSimple.java index 94ec31812..619dbcd87 100644 --- a/src/net/sourceforge/plantuml/sequencediagram/graphic/ParticipantBoxSimple.java +++ b/src/net/sourceforge/plantuml/sequencediagram/graphic/ParticipantBoxSimple.java @@ -38,6 +38,7 @@ package net.sourceforge.plantuml.sequencediagram.graphic; import java.util.Collection; import java.util.Collections; +import net.sourceforge.plantuml.annotation.HaxeIgnored; import net.sourceforge.plantuml.graphic.StringBounder; public class ParticipantBoxSimple implements Pushable { @@ -45,6 +46,7 @@ public class ParticipantBoxSimple implements Pushable { private double pos = 0; private final String name; + @HaxeIgnored public ParticipantBoxSimple(double pos) { this(pos, null); } diff --git a/src/net/sourceforge/plantuml/sequencediagram/graphic/SegmentColored.java b/src/net/sourceforge/plantuml/sequencediagram/graphic/SegmentColored.java index 7e91ec265..43d8b6868 100644 --- a/src/net/sourceforge/plantuml/sequencediagram/graphic/SegmentColored.java +++ b/src/net/sourceforge/plantuml/sequencediagram/graphic/SegmentColored.java @@ -57,8 +57,8 @@ class SegmentColored { final private boolean shadowing; final private double pos1Initial; - SegmentColored(double pos1, double pos2, SymbolContext colors, boolean shadowing) { - this(new Segment(pos1, pos2), colors, shadowing, pos1); + public static SegmentColored create(double pos1, double pos2, SymbolContext colors, boolean shadowing) { + return new SegmentColored(new Segment(pos1, pos2), colors, shadowing, pos1); } private SegmentColored(Segment segment, SymbolContext colors, boolean shadowing, double pos1Initial) { @@ -100,9 +100,10 @@ class SegmentColored { public void drawU(UGraphic ug, Component compAliveBox, int level) { final StringBounder stringBounder = ug.getStringBounder(); - ug = ug.apply(new UTranslate((level - 1) * compAliveBox.getPreferredWidth(stringBounder) / 2, segment.getPos1())); - final Dimension2D dim = new Dimension2DDouble(compAliveBox.getPreferredWidth(stringBounder), segment.getPos2() - - segment.getPos1()); + ug = ug.apply( + new UTranslate((level - 1) * compAliveBox.getPreferredWidth(stringBounder) / 2, segment.getPos1())); + final Dimension2D dim = new Dimension2DDouble(compAliveBox.getPreferredWidth(stringBounder), + segment.getPos2() - segment.getPos1()); compAliveBox.drawU(ug, new Area(dim), new SimpleContext2D(false)); } diff --git a/src/net/sourceforge/plantuml/sequencediagram/graphic/SequenceDiagramFileMakerPuma2.java b/src/net/sourceforge/plantuml/sequencediagram/graphic/SequenceDiagramFileMakerPuma2.java index b82c1d180..535770c05 100644 --- a/src/net/sourceforge/plantuml/sequencediagram/graphic/SequenceDiagramFileMakerPuma2.java +++ b/src/net/sourceforge/plantuml/sequencediagram/graphic/SequenceDiagramFileMakerPuma2.java @@ -158,7 +158,7 @@ public class SequenceDiagramFileMakerPuma2 implements FileMaker { diagram.getSkinParam()); } else { compTitle = TextBlockUtils.withMargin( - TextBlockUtils.title(new FontConfiguration(drawableSet.getSkinParam(), FontParam.TITLE, null), + TextBlockUtils.title(FontConfiguration.create(drawableSet.getSkinParam(), FontParam.TITLE, null), page.getTitle(), drawableSet.getSkinParam()), 7, 7); } diff --git a/src/net/sourceforge/plantuml/sequencediagram/teoz/CommunicationExoTile.java b/src/net/sourceforge/plantuml/sequencediagram/teoz/CommunicationExoTile.java index e26c4bf68..8f1791145 100644 --- a/src/net/sourceforge/plantuml/sequencediagram/teoz/CommunicationExoTile.java +++ b/src/net/sourceforge/plantuml/sequencediagram/teoz/CommunicationExoTile.java @@ -121,7 +121,7 @@ public class CommunicationExoTile extends AbstractTile { x2 -= ComponentRoseArrow.diamCircle / 2 + 2; } - final Area area = new Area(x2 - x1, dim.getHeight()); + final Area area = Area.create(x2 - x1, dim.getHeight()); ug = ug.apply(UTranslate.dx(x1)); comp.drawU(ug, area, (Context2D) ug); } diff --git a/src/net/sourceforge/plantuml/sequencediagram/teoz/CommunicationTile.java b/src/net/sourceforge/plantuml/sequencediagram/teoz/CommunicationTile.java index 9779699fd..1636a84f6 100644 --- a/src/net/sourceforge/plantuml/sequencediagram/teoz/CommunicationTile.java +++ b/src/net/sourceforge/plantuml/sequencediagram/teoz/CommunicationTile.java @@ -176,7 +176,7 @@ public class CommunicationTile extends AbstractTile { x1 -= LIVE_DELTA_SIZE; } x2 += LIVE_DELTA_SIZE * level2; - area = new Area(x1 - x2, dim.getHeight()); + area = Area.create(x1 - x2, dim.getHeight()); ug = ug.apply(UTranslate.dx(x2)); if (isCreate()) { livingSpace2.drawHead(ug, (Context2D) ug, VerticalAlignment.TOP, HorizontalAlignment.RIGHT); @@ -189,7 +189,7 @@ public class CommunicationTile extends AbstractTile { } x1 += LIVE_DELTA_SIZE * level1; x2 += LIVE_DELTA_SIZE * level2; - area = new Area(x2 - x1, dim.getHeight()); + area = Area.create(x2 - x1, dim.getHeight()); ug = ug.apply(UTranslate.dx(x1)); if (isCreate()) { livingSpace2.drawHead(ug.apply(UTranslate.dx(area.getDimensionToUse().getWidth())), (Context2D) ug, @@ -212,7 +212,7 @@ public class CommunicationTile extends AbstractTile { final boolean reverse = x2 < x1; final ArrowComponent comp = getComponentMulticast(stringBounder, reverse); final Dimension2D dim = comp.getPreferredDimension(stringBounder); - final Area area = new Area(Math.abs(x2 - x1), dim.getHeight()); + final Area area = Area.create(Math.abs(x2 - x1), dim.getHeight()); final UGraphic ug2 = ug.apply(UTranslate.dx(Math.min(x1, x2))).apply(UTranslate.dy(dy)); dy += 2; comp.drawU(ug2, area, (Context2D) ug2); diff --git a/src/net/sourceforge/plantuml/sequencediagram/teoz/CommunicationTileNoteBottom.java b/src/net/sourceforge/plantuml/sequencediagram/teoz/CommunicationTileNoteBottom.java index 04336d7e0..017cefa4d 100644 --- a/src/net/sourceforge/plantuml/sequencediagram/teoz/CommunicationTileNoteBottom.java +++ b/src/net/sourceforge/plantuml/sequencediagram/teoz/CommunicationTileNoteBottom.java @@ -60,7 +60,7 @@ public class CommunicationTileNoteBottom extends CommunicationTileNoteBottomTopA final StringBounder stringBounder = ug.getStringBounder(); final Component comp = getComponent(stringBounder); final Dimension2D dim = comp.getPreferredDimension(stringBounder); - final Area area = new Area(dim.getWidth(), dim.getHeight()); + final Area area = Area.create(dim.getWidth(), dim.getHeight()); ((UDrawable) tile).drawU(ug); final double middleMsg = (tile.getMinX().getCurrentValue() + tile.getMaxX().getCurrentValue()) / 2; diff --git a/src/net/sourceforge/plantuml/sequencediagram/teoz/CommunicationTileNoteBottomTopAbstract.java b/src/net/sourceforge/plantuml/sequencediagram/teoz/CommunicationTileNoteBottomTopAbstract.java index 3fe7475c8..672819ea0 100644 --- a/src/net/sourceforge/plantuml/sequencediagram/teoz/CommunicationTileNoteBottomTopAbstract.java +++ b/src/net/sourceforge/plantuml/sequencediagram/teoz/CommunicationTileNoteBottomTopAbstract.java @@ -108,7 +108,7 @@ public abstract class CommunicationTileNoteBottomTopAbstract extends AbstractTil final StringBounder stringBounder = ug.getStringBounder(); final Component comp = getComponent(stringBounder); final Dimension2D dim = comp.getPreferredDimension(stringBounder); - final Area area = new Area(dim.getWidth(), dim.getHeight()); + final Area area = Area.create(dim.getWidth(), dim.getHeight()); ((UDrawable) tile).drawU(ug); final double middleMsg = (tile.getMinX().getCurrentValue() + tile.getMaxX().getCurrentValue()) / 2; diff --git a/src/net/sourceforge/plantuml/sequencediagram/teoz/CommunicationTileNoteLeft.java b/src/net/sourceforge/plantuml/sequencediagram/teoz/CommunicationTileNoteLeft.java index 51328103a..38728cd9c 100644 --- a/src/net/sourceforge/plantuml/sequencediagram/teoz/CommunicationTileNoteLeft.java +++ b/src/net/sourceforge/plantuml/sequencediagram/teoz/CommunicationTileNoteLeft.java @@ -102,7 +102,7 @@ public class CommunicationTileNoteLeft extends AbstractTile { final StringBounder stringBounder = ug.getStringBounder(); final Component comp = getComponent(stringBounder); final Dimension2D dim = comp.getPreferredDimension(stringBounder); - final Area area = new Area(dim.getWidth(), dim.getHeight()); + final Area area = Area.create(dim.getWidth(), dim.getHeight()); ((UDrawable) tile).drawU(ug); final Real p = getNotePosition(stringBounder); diff --git a/src/net/sourceforge/plantuml/sequencediagram/teoz/CommunicationTileNoteRight.java b/src/net/sourceforge/plantuml/sequencediagram/teoz/CommunicationTileNoteRight.java index 2dc1c780b..508dc50ef 100644 --- a/src/net/sourceforge/plantuml/sequencediagram/teoz/CommunicationTileNoteRight.java +++ b/src/net/sourceforge/plantuml/sequencediagram/teoz/CommunicationTileNoteRight.java @@ -110,7 +110,7 @@ public class CommunicationTileNoteRight extends AbstractTile { final StringBounder stringBounder = ug.getStringBounder(); final Component comp = getComponent(stringBounder); final Dimension2D dim = comp.getPreferredDimension(stringBounder); - final Area area = new Area(dim.getWidth(), dim.getHeight()); + final Area area = Area.create(dim.getWidth(), dim.getHeight()); ((UDrawable) tile).drawU(ug); final Real p = getNotePosition(stringBounder); diff --git a/src/net/sourceforge/plantuml/sequencediagram/teoz/CommunicationTileNoteTop.java b/src/net/sourceforge/plantuml/sequencediagram/teoz/CommunicationTileNoteTop.java index 2c986ac25..8e46f2ddf 100644 --- a/src/net/sourceforge/plantuml/sequencediagram/teoz/CommunicationTileNoteTop.java +++ b/src/net/sourceforge/plantuml/sequencediagram/teoz/CommunicationTileNoteTop.java @@ -60,7 +60,7 @@ public class CommunicationTileNoteTop extends CommunicationTileNoteBottomTopAbst final StringBounder stringBounder = ug.getStringBounder(); final Component comp = getComponent(stringBounder); final Dimension2D dim = comp.getPreferredDimension(stringBounder); - final Area area = new Area(dim.getWidth(), dim.getHeight()); + final Area area = Area.create(dim.getWidth(), dim.getHeight()); ((UDrawable) tile).drawU(ug.apply(UTranslate.dy(dim.getHeight() + spacey))); diff --git a/src/net/sourceforge/plantuml/sequencediagram/teoz/CommunicationTileSelf.java b/src/net/sourceforge/plantuml/sequencediagram/teoz/CommunicationTileSelf.java index 1db1da0ec..1782fc10c 100644 --- a/src/net/sourceforge/plantuml/sequencediagram/teoz/CommunicationTileSelf.java +++ b/src/net/sourceforge/plantuml/sequencediagram/teoz/CommunicationTileSelf.java @@ -129,7 +129,7 @@ public class CommunicationTileSelf extends AbstractTile { x1 += CommunicationTile.LIVE_DELTA_SIZE; } - final Area area = new Area(dim.getWidth(), dim.getHeight()); + final Area area = Area.create(dim.getWidth(), dim.getHeight()); // if (message.isActivate()) { // area.setDeltaX1(CommunicationTile.LIVE_DELTA_SIZE); // } else if (message.isDeactivate()) { diff --git a/src/net/sourceforge/plantuml/sequencediagram/teoz/CommunicationTileSelfNoteRight.java b/src/net/sourceforge/plantuml/sequencediagram/teoz/CommunicationTileSelfNoteRight.java index fadc4cdeb..686dc2742 100644 --- a/src/net/sourceforge/plantuml/sequencediagram/teoz/CommunicationTileSelfNoteRight.java +++ b/src/net/sourceforge/plantuml/sequencediagram/teoz/CommunicationTileSelfNoteRight.java @@ -97,7 +97,7 @@ public class CommunicationTileSelfNoteRight extends AbstractTile { final StringBounder stringBounder = ug.getStringBounder(); final Component comp = getComponent(stringBounder); final Dimension2D dim = comp.getPreferredDimension(stringBounder); - final Area area = new Area(dim.getWidth(), dim.getHeight()); + final Area area = Area.create(dim.getWidth(), dim.getHeight()); tile.drawU(ug); final Real p = getNotePosition(stringBounder); diff --git a/src/net/sourceforge/plantuml/sequencediagram/teoz/DelayTile.java b/src/net/sourceforge/plantuml/sequencediagram/teoz/DelayTile.java index e54c0c6a6..d495ea7ab 100644 --- a/src/net/sourceforge/plantuml/sequencediagram/teoz/DelayTile.java +++ b/src/net/sourceforge/plantuml/sequencediagram/teoz/DelayTile.java @@ -95,7 +95,7 @@ public class DelayTile extends AbstractTile implements Tile { init(stringBounder); final Component comp = getComponent(stringBounder); final Dimension2D dim = comp.getPreferredDimension(stringBounder); - final Area area = new Area(getPreferredWidth(stringBounder), dim.getHeight()); + final Area area = Area.create(getPreferredWidth(stringBounder), dim.getHeight()); tileArguments.getLivingSpaces().delayOn(getY(), dim.getHeight()); ug = ug.apply(UTranslate.dx(getMinX().getCurrentValue())); diff --git a/src/net/sourceforge/plantuml/sequencediagram/teoz/DividerTile.java b/src/net/sourceforge/plantuml/sequencediagram/teoz/DividerTile.java index 7dd1ec40c..1f12ed14b 100644 --- a/src/net/sourceforge/plantuml/sequencediagram/teoz/DividerTile.java +++ b/src/net/sourceforge/plantuml/sequencediagram/teoz/DividerTile.java @@ -81,7 +81,7 @@ public class DividerTile extends AbstractTile implements Tile { final StringBounder stringBounder = ug.getStringBounder(); final Component comp = getComponent(stringBounder); final Dimension2D dim = comp.getPreferredDimension(stringBounder); - final Area area = new Area(tileArguments.getBorder2() - tileArguments.getBorder1() - origin.getCurrentValue(), + final Area area = Area.create(tileArguments.getBorder2() - tileArguments.getBorder1() - origin.getCurrentValue(), dim.getHeight()); ug = ug.apply(UTranslate.dx(tileArguments.getBorder1())); diff --git a/src/net/sourceforge/plantuml/sequencediagram/teoz/GroupingTile.java b/src/net/sourceforge/plantuml/sequencediagram/teoz/GroupingTile.java index ae1b75833..787ba637a 100644 --- a/src/net/sourceforge/plantuml/sequencediagram/teoz/GroupingTile.java +++ b/src/net/sourceforge/plantuml/sequencediagram/teoz/GroupingTile.java @@ -157,7 +157,7 @@ public class GroupingTile extends AbstractTile { final Component comp = getComponent(stringBounder); final Dimension2D dim1 = getPreferredDimensionIfEmpty(stringBounder); - final Area area = new Area(max.getCurrentValue() - min.getCurrentValue(), getTotalHeight(stringBounder)); + final Area area = Area.create(max.getCurrentValue() - min.getCurrentValue(), getTotalHeight(stringBounder)); comp.drawU(ug.apply(UTranslate.dx(min.getCurrentValue())), area, (Context2D) ug); drawAllElses(ug); @@ -192,7 +192,7 @@ public class GroupingTile extends AbstractTile { if (tile instanceof ElseTile) { final ElseTile elseTile = (ElseTile) tile; final Component comp = elseTile.getComponent(stringBounder); - final Area area = new Area(max.getCurrentValue() - min.getCurrentValue(), ys.get(i + 1) - ys.get(i)); + final Area area = Area.create(max.getCurrentValue() - min.getCurrentValue(), ys.get(i + 1) - ys.get(i)); comp.drawU(ug.apply(new UTranslate(min.getCurrentValue(), ys.get(i))), area, (Context2D) ug); i++; } diff --git a/src/net/sourceforge/plantuml/sequencediagram/teoz/LiveBoxesDrawer.java b/src/net/sourceforge/plantuml/sequencediagram/teoz/LiveBoxesDrawer.java index c70abc864..fe941035e 100644 --- a/src/net/sourceforge/plantuml/sequencediagram/teoz/LiveBoxesDrawer.java +++ b/src/net/sourceforge/plantuml/sequencediagram/teoz/LiveBoxesDrawer.java @@ -123,7 +123,7 @@ public class LiveBoxesDrawer { private void drawInternal(UGraphic ug, double ya, double yb, ComponentType type) { final double width = getWidth(ug.getStringBounder()); - final Area area = new Area(width, yb - ya); + final Area area = Area.create(width, yb - ya); SkinParamBackcolored skinParam2 = new SkinParamBackcolored(skinParam, symbolContext == null ? null : symbolContext.getBackColor()); Style style = type.getStyleSignature().getMergedStyle(skinParam.getCurrentStyleBuilder()); diff --git a/src/net/sourceforge/plantuml/sequencediagram/teoz/MutingLine.java b/src/net/sourceforge/plantuml/sequencediagram/teoz/MutingLine.java index df8e431e9..b2ff2f28e 100644 --- a/src/net/sourceforge/plantuml/sequencediagram/teoz/MutingLine.java +++ b/src/net/sourceforge/plantuml/sequencediagram/teoz/MutingLine.java @@ -114,7 +114,7 @@ public class MutingLine { final Component comp = skin.createComponent(new Style[] { style }, defaultLineType, null, skinParam, participant.getDisplay(skinParam.forceSequenceParticipantUnderlined())); final Dimension2D dim = comp.getPreferredDimension(ug.getStringBounder()); - final Area area = new Area(dim.getWidth(), y2 - y1); + final Area area = Area.create(dim.getWidth(), y2 - y1); comp.drawU(ug.apply(UTranslate.dy(y1)), area, context); } diff --git a/src/net/sourceforge/plantuml/sequencediagram/teoz/NoteTile.java b/src/net/sourceforge/plantuml/sequencediagram/teoz/NoteTile.java index cc7472d6f..60e0dd244 100644 --- a/src/net/sourceforge/plantuml/sequencediagram/teoz/NoteTile.java +++ b/src/net/sourceforge/plantuml/sequencediagram/teoz/NoteTile.java @@ -101,7 +101,7 @@ public class NoteTile extends AbstractTile implements Tile { final Component comp = getComponent(stringBounder); final Dimension2D dim = comp.getPreferredDimension(stringBounder); final double x = getX(stringBounder).getCurrentValue(); - final Area area = new Area(getUsedWidth(stringBounder), dim.getHeight()); + final Area area = Area.create(getUsedWidth(stringBounder), dim.getHeight()); ug = ug.apply(UTranslate.dx(x)); comp.drawU(ug, area, (Context2D) ug); diff --git a/src/net/sourceforge/plantuml/sequencediagram/teoz/NotesTile.java b/src/net/sourceforge/plantuml/sequencediagram/teoz/NotesTile.java index 9a90cfe1c..3039dbe67 100644 --- a/src/net/sourceforge/plantuml/sequencediagram/teoz/NotesTile.java +++ b/src/net/sourceforge/plantuml/sequencediagram/teoz/NotesTile.java @@ -99,7 +99,7 @@ public class NotesTile extends AbstractTile implements Tile { final Component comp = getComponent(stringBounder, note); final Dimension2D dim = comp.getPreferredDimension(stringBounder); final double x = getX(stringBounder, note).getCurrentValue(); - final Area area = new Area(getUsedWidth(stringBounder, note), dim.getHeight()); + final Area area = Area.create(getUsedWidth(stringBounder, note), dim.getHeight()); final UGraphic ug2 = ug.apply(UTranslate.dx(x)); comp.drawU(ug2, area, (Context2D) ug2); diff --git a/src/net/sourceforge/plantuml/sequencediagram/teoz/PlayingSpace.java b/src/net/sourceforge/plantuml/sequencediagram/teoz/PlayingSpace.java index b43850472..fe9e22e2d 100644 --- a/src/net/sourceforge/plantuml/sequencediagram/teoz/PlayingSpace.java +++ b/src/net/sourceforge/plantuml/sequencediagram/teoz/PlayingSpace.java @@ -135,7 +135,7 @@ public class PlayingSpace implements Bordered { } public double getPreferredHeight(StringBounder stringBounder) { - final LimitFinder limitFinder = new LimitFinder(stringBounder, true); + final LimitFinder limitFinder = LimitFinder.create(stringBounder, true); final UGraphicInterceptorTile interceptor = new UGraphicInterceptorTile(limitFinder, false); final double finalY = drawUInternal(interceptor, false); final double result = Math.max(limitFinder.getMinMax().getDimension().getHeight(), finalY) + 10; diff --git a/src/net/sourceforge/plantuml/sequencediagram/teoz/ReferenceTile.java b/src/net/sourceforge/plantuml/sequencediagram/teoz/ReferenceTile.java index c46b31a2f..5f832bf9d 100644 --- a/src/net/sourceforge/plantuml/sequencediagram/teoz/ReferenceTile.java +++ b/src/net/sourceforge/plantuml/sequencediagram/teoz/ReferenceTile.java @@ -105,7 +105,7 @@ public class ReferenceTile extends AbstractTile implements Tile { init(stringBounder); final Component comp = getComponent(stringBounder); final Dimension2D dim = comp.getPreferredDimension(stringBounder); - final Area area = new Area(last.getCurrentValue() - first.getCurrentValue(), dim.getHeight()); + final Area area = Area.create(last.getCurrentValue() - first.getCurrentValue(), dim.getHeight()); ug = ug.apply(UTranslate.dx(first.getCurrentValue())); comp.drawU(ug, area, (Context2D) ug); diff --git a/src/net/sourceforge/plantuml/sequencediagram/teoz/SequenceDiagramFileMakerTeoz.java b/src/net/sourceforge/plantuml/sequencediagram/teoz/SequenceDiagramFileMakerTeoz.java index beeecda19..6be3eb325 100644 --- a/src/net/sourceforge/plantuml/sequencediagram/teoz/SequenceDiagramFileMakerTeoz.java +++ b/src/net/sourceforge/plantuml/sequencediagram/teoz/SequenceDiagramFileMakerTeoz.java @@ -219,7 +219,7 @@ public class SequenceDiagramFileMakerTeoz implements FileMaker { diagram.getSkinParam().getIHtmlColorSet(), diagram.getSkinParam()); return compTitle; } else { - compTitle = TextBlockUtils.title(new FontConfiguration(getSkinParam(), FontParam.TITLE, null), + compTitle = TextBlockUtils.title(FontConfiguration.create(getSkinParam(), FontParam.TITLE, null), diagram.getTitle().getDisplay(), getSkinParam()); return TextBlockUtils.withMargin(compTitle, 7, 7); } diff --git a/src/net/sourceforge/plantuml/sequencediagram/teoz/UGraphicNewpages.java b/src/net/sourceforge/plantuml/sequencediagram/teoz/UGraphicNewpages.java index 9ed6180c3..ee235af29 100644 --- a/src/net/sourceforge/plantuml/sequencediagram/teoz/UGraphicNewpages.java +++ b/src/net/sourceforge/plantuml/sequencediagram/teoz/UGraphicNewpages.java @@ -47,8 +47,8 @@ public class UGraphicNewpages extends UGraphicDelegator { private final double ymax; private final double dy; - public UGraphicNewpages(UGraphic ug, double ymin, double ymax) { - this(ug, ymin, ymax, 0); + private UGraphicNewpages create(UGraphic ug, double ymin, double ymax) { + return new UGraphicNewpages(ug, ymin, ymax, 0); } private UGraphicNewpages(UGraphic ug, double ymin, double ymax, double dy) { diff --git a/src/net/sourceforge/plantuml/skin/Area.java b/src/net/sourceforge/plantuml/skin/Area.java index c49320488..c4c9e6367 100644 --- a/src/net/sourceforge/plantuml/skin/Area.java +++ b/src/net/sourceforge/plantuml/skin/Area.java @@ -53,8 +53,8 @@ public class Area { this.dimensionToUse = dimensionToUse; } - public Area(double with, double height) { - this(new Dimension2DDouble(with, height)); + public static Area create(double with, double height) { + return new Area(new Dimension2DDouble(with, height)); } public Dimension2D getDimensionToUse() { diff --git a/src/net/sourceforge/plantuml/skin/CircleInterface.java b/src/net/sourceforge/plantuml/skin/CircleInterface.java index eadfbdd08..b8a9c5019 100644 --- a/src/net/sourceforge/plantuml/skin/CircleInterface.java +++ b/src/net/sourceforge/plantuml/skin/CircleInterface.java @@ -50,10 +50,6 @@ public class CircleInterface implements UDrawable { private final HColor backgroundColor; private final HColor foregroundColor; - public CircleInterface(HColor backgroundColor, HColor foregroundColor) { - this(backgroundColor, foregroundColor, 16, 2); - } - public CircleInterface(HColor backgroundColor, HColor foregroundColor, double headDiam, float thickness) { this.backgroundColor = backgroundColor; this.foregroundColor = foregroundColor; diff --git a/src/net/sourceforge/plantuml/skin/rose/Rose.java b/src/net/sourceforge/plantuml/skin/rose/Rose.java index 33855a3d8..1261e2546 100644 --- a/src/net/sourceforge/plantuml/skin/rose/Rose.java +++ b/src/net/sourceforge/plantuml/skin/rose/Rose.java @@ -88,7 +88,7 @@ public class Rose { } private FontConfiguration getUFont2(ISkinParam skinParam, FontParam fontParam) { - return new FontConfiguration(skinParam, fontParam, null); + return FontConfiguration.create(skinParam, fontParam, null); } public Component createComponentNote(Style[] styles, ComponentType type, ISkinParam param, diff --git a/src/net/sourceforge/plantuml/style/Style.java b/src/net/sourceforge/plantuml/style/Style.java index da8cb8f65..01940babf 100644 --- a/src/net/sourceforge/plantuml/style/Style.java +++ b/src/net/sourceforge/plantuml/style/Style.java @@ -190,7 +190,7 @@ public class Style { final UFont font = getUFont(); final HColor color = value(PName.FontColor).asColor(themeStyle, set); final HColor hyperlinkColor = value(PName.HyperLinkColor).asColor(themeStyle, set); - return new FontConfiguration(font, color, hyperlinkColor, true); + return FontConfiguration.create(font, color, hyperlinkColor, true); } public SymbolContext getSymbolContext(ThemeStyle themeStyle, HColorSet set) { diff --git a/src/net/sourceforge/plantuml/svek/GeneralImageBuilder.java b/src/net/sourceforge/plantuml/svek/GeneralImageBuilder.java index 8ded3afca..fb22a5c05 100644 --- a/src/net/sourceforge/plantuml/svek/GeneralImageBuilder.java +++ b/src/net/sourceforge/plantuml/svek/GeneralImageBuilder.java @@ -463,7 +463,7 @@ public final class GeneralImageBuilder { return error(dotStringFactory.getDotExe()); if (basefile == null && isSvekTrace()) - basefile = new BaseFile(); + basefile = new BaseFile(null); final String svg; try { @@ -495,7 +495,7 @@ public final class GeneralImageBuilder { .getMergedStyle(link.getStyleBuilder()); labelFont = style.getFontConfiguration(skinParam.getThemeStyle(), skinParam.getIHtmlColorSet()); } else { - labelFont = new FontConfiguration(skinParam, FontParam.ARROW, null); + labelFont = FontConfiguration.create(skinParam, FontParam.ARROW, null); } return labelFont; } @@ -677,9 +677,9 @@ public final class GeneralImageBuilder { final FontConfiguration fontConfiguration; if (style == null) - fontConfiguration = new FontConfiguration(skinParam, FontParam.STATE_ATTRIBUTE, null); + fontConfiguration = FontConfiguration.create(skinParam, FontParam.STATE_ATTRIBUTE, null); else - fontConfiguration = new FontConfiguration(skinParam, style); + fontConfiguration = FontConfiguration.create(skinParam, style); Display display = null; for (CharSequence s : details) @@ -769,7 +769,7 @@ public final class GeneralImageBuilder { dotData.getSkinParam()); } final FontParam fontParam = FontParam.PACKAGE_STEREOTYPE; - return Display.create(stereos).create(new FontConfiguration(dotData.getSkinParam(), fontParam, stereotype), + return Display.create(stereos).create(FontConfiguration.create(dotData.getSkinParam(), fontParam, stereotype), HorizontalAlignment.CENTER, dotData.getSkinParam()); } diff --git a/src/net/sourceforge/plantuml/svek/GroupPngMakerState.java b/src/net/sourceforge/plantuml/svek/GroupPngMakerState.java index 29d0005a6..08435e54b 100644 --- a/src/net/sourceforge/plantuml/svek/GroupPngMakerState.java +++ b/src/net/sourceforge/plantuml/svek/GroupPngMakerState.java @@ -147,7 +147,7 @@ public final class GroupPngMakerState { skinParam.getIHtmlColorSet()); } else { rounded = IEntityImage.CORNER; - fontConfiguration = new FontConfiguration(skinParam, FontParam.STATE, group.getStereotype()); + fontConfiguration = FontConfiguration.create(skinParam, FontParam.STATE, group.getStereotype()); if (skinParam.shadowing(group.getStereotype())) shadowing = 3.0; } diff --git a/src/net/sourceforge/plantuml/svek/image/AbstractEntityImageBorder.java b/src/net/sourceforge/plantuml/svek/image/AbstractEntityImageBorder.java index 8aa18af1c..bedb3db33 100644 --- a/src/net/sourceforge/plantuml/svek/image/AbstractEntityImageBorder.java +++ b/src/net/sourceforge/plantuml/svek/image/AbstractEntityImageBorder.java @@ -75,7 +75,7 @@ public abstract class AbstractEntityImageBorder extends AbstractEntityImage { } final Stereotype stereotype = leaf.getStereotype(); - final FontConfiguration fc = new FontConfiguration(skinParam, fontParam, stereotype); + final FontConfiguration fc = FontConfiguration.create(skinParam, fontParam, stereotype); this.desc = leaf.getDisplay().create(fc, HorizontalAlignment.CENTER, skinParam); } diff --git a/src/net/sourceforge/plantuml/svek/image/EntityImageActivity.java b/src/net/sourceforge/plantuml/svek/image/EntityImageActivity.java index 86b56c439..28939ad90 100644 --- a/src/net/sourceforge/plantuml/svek/image/EntityImageActivity.java +++ b/src/net/sourceforge/plantuml/svek/image/EntityImageActivity.java @@ -88,7 +88,7 @@ public class EntityImageActivity extends AbstractEntityImage { horizontalAlignment = style.getHorizontalAlignment(); shadowing = style.value(PName.Shadowing).asDouble(); } else { - fontConfiguration = new FontConfiguration(getSkinParam(), FontParam.ACTIVITY, stereotype); + fontConfiguration = FontConfiguration.create(getSkinParam(), FontParam.ACTIVITY, stereotype); horizontalAlignment = HorizontalAlignment.CENTER; if (getSkinParam().shadowing(getEntity().getStereotype())) { shadowing = 4; diff --git a/src/net/sourceforge/plantuml/svek/image/EntityImageArcCircle.java b/src/net/sourceforge/plantuml/svek/image/EntityImageArcCircle.java index 9bb6422d4..8b68df81f 100644 --- a/src/net/sourceforge/plantuml/svek/image/EntityImageArcCircle.java +++ b/src/net/sourceforge/plantuml/svek/image/EntityImageArcCircle.java @@ -65,14 +65,14 @@ public class EntityImageArcCircle extends AbstractEntityImage { final Stereotype stereotype = entity.getStereotype(); - this.name = entity.getDisplay().create(new FontConfiguration(getSkinParam(), FontParam.COMPONENT, stereotype), + this.name = entity.getDisplay().create(FontConfiguration.create(getSkinParam(), FontParam.COMPONENT, stereotype), HorizontalAlignment.CENTER, skinParam); if (stereotype == null || stereotype.getLabel(Guillemet.DOUBLE_COMPARATOR) == null) { this.stereo = null; } else { this.stereo = Display.getWithNewlines(stereotype.getLabel(getSkinParam().guillemet())).create( - new FontConfiguration(getSkinParam(), FontParam.COMPONENT_STEREOTYPE, stereotype), + FontConfiguration.create(getSkinParam(), FontParam.COMPONENT_STEREOTYPE, stereotype), HorizontalAlignment.CENTER, skinParam); } diff --git a/src/net/sourceforge/plantuml/svek/image/EntityImageClassHeader.java b/src/net/sourceforge/plantuml/svek/image/EntityImageClassHeader.java index 0bf02017b..7ff4b2d00 100644 --- a/src/net/sourceforge/plantuml/svek/image/EntityImageClassHeader.java +++ b/src/net/sourceforge/plantuml/svek/image/EntityImageClassHeader.java @@ -91,9 +91,9 @@ public class EntityImageClassHeader extends AbstractEntityImage { .withTOBECHANGED(stereotype) // .with(entity.getStereostyles()) // .getMergedStyle(skinParam.getCurrentStyleBuilder()); - fontConfigurationName = new FontConfiguration(skinParam, style); + fontConfigurationName = FontConfiguration.create(skinParam, style); } else { - fontConfigurationName = new FontConfiguration(getSkinParam(), FontParam.CLASS, stereotype); + fontConfigurationName = FontConfiguration.create(getSkinParam(), FontParam.CLASS, stereotype); } if (italic) @@ -123,7 +123,7 @@ public class EntityImageClassHeader extends AbstractEntityImage { stereo = null; else stereo = TextBlockUtils.withMargin(Display.create(stereotype.getLabels(skinParam.guillemet())).create( - new FontConfiguration(getSkinParam(), FontParam.CLASS_STEREOTYPE, stereotype), + FontConfiguration.create(getSkinParam(), FontParam.CLASS_STEREOTYPE, stereotype), HorizontalAlignment.CENTER, skinParam), 1, 0); TextBlock genericBlock; @@ -131,7 +131,7 @@ public class EntityImageClassHeader extends AbstractEntityImage { genericBlock = null; } else { genericBlock = Display.getWithNewlines(generic).create( - new FontConfiguration(getSkinParam(), FontParam.CLASS_STEREOTYPE, stereotype), + FontConfiguration.create(getSkinParam(), FontParam.CLASS_STEREOTYPE, stereotype), HorizontalAlignment.CENTER, skinParam); genericBlock = TextBlockUtils.withMargin(genericBlock, 1, 1); final HColor classBackground = SkinParamUtils.getColor(getSkinParam(), stereotype, ColorParam.background); diff --git a/src/net/sourceforge/plantuml/svek/image/EntityImageDescription.java b/src/net/sourceforge/plantuml/svek/image/EntityImageDescription.java index 2b8c964d7..a0acabb5b 100644 --- a/src/net/sourceforge/plantuml/svek/image/EntityImageDescription.java +++ b/src/net/sourceforge/plantuml/svek/image/EntityImageDescription.java @@ -174,8 +174,8 @@ public class EntityImageDescription extends AbstractEntityImage { diagonalCorner = symbol.getSkinParameter().getDiagonalCorner(getSkinParam(), stereotype); deltaShadow = getSkinParam().shadowing2(getEntity().getStereotype(), symbol.getSkinParameter()) ? 3 : 0; stroke = colors.muteStroke(symbol.getSkinParameter().getStroke(getSkinParam(), stereotype)); - fcTitle = new FontConfiguration(getSkinParam(), symbol.getFontParam(), stereotype); - fcStereo = new FontConfiguration(getSkinParam(), symbol.getFontParamStereotype(), stereotype); + fcTitle = FontConfiguration.create(getSkinParam(), symbol.getFontParam(), stereotype); + fcStereo = FontConfiguration.create(getSkinParam(), symbol.getFontParamStereotype(), stereotype); defaultAlign = HorizontalAlignment.LEFT; } diff --git a/src/net/sourceforge/plantuml/svek/image/EntityImageEmptyPackage.java b/src/net/sourceforge/plantuml/svek/image/EntityImageEmptyPackage.java index c4ac6577d..e0e0b256d 100644 --- a/src/net/sourceforge/plantuml/svek/image/EntityImageEmptyPackage.java +++ b/src/net/sourceforge/plantuml/svek/image/EntityImageEmptyPackage.java @@ -135,7 +135,7 @@ public class EntityImageEmptyPackage extends AbstractEntityImage { this.stroke = GeneralImageBuilder.getForcedStroke(getEntity().getStereotype(), getSkinParam()); this.roundCorner = 0; this.back = Cluster.getBackColor(specificBackColor, skinParam, stereotype, sname, USymbols.PACKAGE); - titleFontConfiguration = new FontConfiguration(getSkinParam(), FontParam.PACKAGE, stereotype); + titleFontConfiguration = FontConfiguration.create(getSkinParam(), FontParam.PACKAGE, stereotype); titleHorizontalAlignment = HorizontalAlignment.CENTER; } @@ -151,7 +151,7 @@ public class EntityImageEmptyPackage extends AbstractEntityImage { stereoBlock = TextBlockUtils.empty(0, 0); } else { stereoBlock = TextBlockUtils.withMargin(Display.create(stereotype.getLabels(skinParam.guillemet())) - .create(new FontConfiguration(getSkinParam(), FontParam.PACKAGE_STEREOTYPE, stereotype), + .create(FontConfiguration.create(getSkinParam(), FontParam.PACKAGE_STEREOTYPE, stereotype), titleHorizontalAlignment, skinParam), 1, 0); } diff --git a/src/net/sourceforge/plantuml/svek/image/EntityImageGroup.java b/src/net/sourceforge/plantuml/svek/image/EntityImageGroup.java index b86538106..93b27e76f 100644 --- a/src/net/sourceforge/plantuml/svek/image/EntityImageGroup.java +++ b/src/net/sourceforge/plantuml/svek/image/EntityImageGroup.java @@ -53,7 +53,7 @@ public class EntityImageGroup extends AbstractEntityImage { public EntityImageGroup(ILeaf entity, ISkinParam skinParam) { super(entity, skinParam); // this.desc = Display.create(StringUtils.getWithNewlines(entity.getDisplay()), - // new FontConfiguration( + // FontConfiguration.create( // getFont(FontParam.ACTIVITY), HtmlColorUtils.BLACK), // HorizontalAlignment.CENTER); } diff --git a/src/net/sourceforge/plantuml/svek/image/EntityImageJson.java b/src/net/sourceforge/plantuml/svek/image/EntityImageJson.java index 8c16c9c51..67272b501 100644 --- a/src/net/sourceforge/plantuml/svek/image/EntityImageJson.java +++ b/src/net/sourceforge/plantuml/svek/image/EntityImageJson.java @@ -104,7 +104,7 @@ public class EntityImageJson extends AbstractEntityImage implements Stencil, Wit fcHeader = getStyleHeader().getFontConfiguration(getSkinParam().getThemeStyle(), getSkinParam().getIHtmlColorSet()); else - fcHeader = new FontConfiguration(getSkinParam(), FontParam.OBJECT, stereotype); + fcHeader = FontConfiguration.create(getSkinParam(), FontParam.OBJECT, stereotype); this.name = TextBlockUtils .withMargin(entity.getDisplay().create(fcHeader, HorizontalAlignment.CENTER, skinParam), 2, 2); @@ -114,7 +114,7 @@ public class EntityImageJson extends AbstractEntityImage implements Stencil, Wit this.stereo = null; else this.stereo = Display.create(stereotype.getLabels(skinParam.guillemet())).create( - new FontConfiguration(getSkinParam(), FontParam.OBJECT_STEREOTYPE, stereotype), + FontConfiguration.create(getSkinParam(), FontParam.OBJECT_STEREOTYPE, stereotype), HorizontalAlignment.CENTER, skinParam); if (UseStyle.useBetaStyle()) { diff --git a/src/net/sourceforge/plantuml/svek/image/EntityImageLollipopInterface.java b/src/net/sourceforge/plantuml/svek/image/EntityImageLollipopInterface.java index c5f0f6ba4..d6c2e5435 100644 --- a/src/net/sourceforge/plantuml/svek/image/EntityImageLollipopInterface.java +++ b/src/net/sourceforge/plantuml/svek/image/EntityImageLollipopInterface.java @@ -88,10 +88,10 @@ public class EntityImageLollipopInterface extends AbstractEntityImage { final Stereotype stereotype = entity.getStereotype(); final FontConfiguration fc; if (UseStyle.useBetaStyle()) - fc = new FontConfiguration(getSkinParam(), + fc = FontConfiguration.create(getSkinParam(), getSignature().getMergedStyle(skinParam.getCurrentStyleBuilder())); else - fc = new FontConfiguration(getSkinParam(), FontParam.CLASS, stereotype); + fc = FontConfiguration.create(getSkinParam(), FontParam.CLASS, stereotype); this.desc = entity.getDisplay().create(fc, HorizontalAlignment.CENTER, skinParam); this.url = entity.getUrl99(); diff --git a/src/net/sourceforge/plantuml/svek/image/EntityImageLollipopInterfaceEye1.java b/src/net/sourceforge/plantuml/svek/image/EntityImageLollipopInterfaceEye1.java index 3c0e681f2..08a57e3cd 100644 --- a/src/net/sourceforge/plantuml/svek/image/EntityImageLollipopInterfaceEye1.java +++ b/src/net/sourceforge/plantuml/svek/image/EntityImageLollipopInterfaceEye1.java @@ -72,7 +72,7 @@ public class EntityImageLollipopInterfaceEye1 extends AbstractEntityImage { super(entity, skinParam); this.bibliotekon = bibliotekon; final Stereotype stereotype = entity.getStereotype(); - this.desc = entity.getDisplay().create(new FontConfiguration(getSkinParam(), FontParam.CLASS, stereotype), + this.desc = entity.getDisplay().create(FontConfiguration.create(getSkinParam(), FontParam.CLASS, stereotype), HorizontalAlignment.CENTER, skinParam); this.url = entity.getUrl99(); diff --git a/src/net/sourceforge/plantuml/svek/image/EntityImageLollipopInterfaceEye2.java b/src/net/sourceforge/plantuml/svek/image/EntityImageLollipopInterfaceEye2.java index dc8dfa1b3..9fba7efe6 100644 --- a/src/net/sourceforge/plantuml/svek/image/EntityImageLollipopInterfaceEye2.java +++ b/src/net/sourceforge/plantuml/svek/image/EntityImageLollipopInterfaceEye2.java @@ -101,7 +101,7 @@ public class EntityImageLollipopInterfaceEye2 extends AbstractEntityImage { if (stereotype != null && stereotype.getLabel(Guillemet.DOUBLE_COMPARATOR) != null && portionShower.showPortion(EntityPortion.STEREOTYPE, entity)) { stereo = Display.getWithNewlines(stereotype.getLabel(getSkinParam().guillemet())).create( - new FontConfiguration(getSkinParam(), symbol.getFontParamStereotype(), stereotype), + FontConfiguration.create(getSkinParam(), symbol.getFontParamStereotype(), stereotype), HorizontalAlignment.CENTER, skinParam); } else { stereo = TextBlockUtils.empty(0, 0); diff --git a/src/net/sourceforge/plantuml/svek/image/EntityImageMap.java b/src/net/sourceforge/plantuml/svek/image/EntityImageMap.java index 8ba42b6a7..42fc5ab37 100644 --- a/src/net/sourceforge/plantuml/svek/image/EntityImageMap.java +++ b/src/net/sourceforge/plantuml/svek/image/EntityImageMap.java @@ -104,7 +104,7 @@ public class EntityImageMap extends AbstractEntityImage implements Stencil, With fcHeader = getStyleHeader().getFontConfiguration(getSkinParam().getThemeStyle(), getSkinParam().getIHtmlColorSet()); else - fcHeader = new FontConfiguration(getSkinParam(), FontParam.OBJECT, stereotype); + fcHeader = FontConfiguration.create(getSkinParam(), FontParam.OBJECT, stereotype); this.name = TextBlockUtils .withMargin(entity.getDisplay().create(fcHeader, HorizontalAlignment.CENTER, skinParam), 2, 2); @@ -114,7 +114,7 @@ public class EntityImageMap extends AbstractEntityImage implements Stencil, With this.stereo = null; else this.stereo = Display.create(stereotype.getLabels(skinParam.guillemet())).create( - new FontConfiguration(getSkinParam(), FontParam.OBJECT_STEREOTYPE, stereotype), + FontConfiguration.create(getSkinParam(), FontParam.OBJECT_STEREOTYPE, stereotype), HorizontalAlignment.CENTER, skinParam); if (UseStyle.useBetaStyle()) { diff --git a/src/net/sourceforge/plantuml/svek/image/EntityImageNote.java b/src/net/sourceforge/plantuml/svek/image/EntityImageNote.java index 55944bbfc..d09d00060 100644 --- a/src/net/sourceforge/plantuml/svek/image/EntityImageNote.java +++ b/src/net/sourceforge/plantuml/svek/image/EntityImageNote.java @@ -136,7 +136,7 @@ public class EntityImageNote extends AbstractEntityImage implements Stencil { this.borderColor = SkinParamUtils.getColor(getSkinParam(), null, ColorParam.noteBorder); - fontConfiguration = new FontConfiguration(getSkinParam(), FontParam.NOTE, null); + fontConfiguration = FontConfiguration.create(getSkinParam(), FontParam.NOTE, null); horizontalAlignment = skinParam.getHorizontalAlignment(AlignmentParam.noteTextAlignment, null, false, null); } diff --git a/src/net/sourceforge/plantuml/svek/image/EntityImageObject.java b/src/net/sourceforge/plantuml/svek/image/EntityImageObject.java index e645d1ca4..0b9093b88 100644 --- a/src/net/sourceforge/plantuml/svek/image/EntityImageObject.java +++ b/src/net/sourceforge/plantuml/svek/image/EntityImageObject.java @@ -108,7 +108,7 @@ public class EntityImageObject extends AbstractEntityImage implements Stencil, W fcHeader = getStyleHeader().getFontConfiguration(getSkinParam().getThemeStyle(), getSkinParam().getIHtmlColorSet()); else - fcHeader = new FontConfiguration(getSkinParam(), FontParam.OBJECT, stereotype); + fcHeader = FontConfiguration.create(getSkinParam(), FontParam.OBJECT, stereotype); final TextBlock tmp = getUnderlinedName(entity).create(fcHeader, HorizontalAlignment.CENTER, skinParam); this.name = TextBlockUtils.withMargin(tmp, 2, 2); @@ -117,7 +117,7 @@ public class EntityImageObject extends AbstractEntityImage implements Stencil, W this.stereo = null; else this.stereo = Display.create(stereotype.getLabels(skinParam.guillemet())).create( - new FontConfiguration(getSkinParam(), FontParam.OBJECT_STEREOTYPE, stereotype), + FontConfiguration.create(getSkinParam(), FontParam.OBJECT_STEREOTYPE, stereotype), HorizontalAlignment.CENTER, skinParam); final boolean showFields = portionShower.showPortion(EntityPortion.FIELD, entity); diff --git a/src/net/sourceforge/plantuml/svek/image/EntityImagePseudoState.java b/src/net/sourceforge/plantuml/svek/image/EntityImagePseudoState.java index 695678b31..05baae928 100644 --- a/src/net/sourceforge/plantuml/svek/image/EntityImagePseudoState.java +++ b/src/net/sourceforge/plantuml/svek/image/EntityImagePseudoState.java @@ -87,9 +87,9 @@ public class EntityImagePseudoState extends AbstractEntityImage { final FontConfiguration fontConfiguration; if (UseStyle.useBetaStyle()) - fontConfiguration = new FontConfiguration(getSkinParam(), FontParam.STATE, stereotype); + fontConfiguration = FontConfiguration.create(getSkinParam(), FontParam.STATE, stereotype); else - fontConfiguration = new FontConfiguration(getSkinParam(), getStyle()); + fontConfiguration = FontConfiguration.create(getSkinParam(), getStyle()); this.desc = Display.create(historyText).create(fontConfiguration, HorizontalAlignment.CENTER, skinParam); } diff --git a/src/net/sourceforge/plantuml/svek/image/EntityImageState.java b/src/net/sourceforge/plantuml/svek/image/EntityImageState.java index 723976dcd..3b4bb61b1 100644 --- a/src/net/sourceforge/plantuml/svek/image/EntityImageState.java +++ b/src/net/sourceforge/plantuml/svek/image/EntityImageState.java @@ -84,7 +84,7 @@ public class EntityImageState extends EntityImageStateCommon { fontConfiguration = getStyleState().getFontConfiguration(getSkinParam().getThemeStyle(), getSkinParam().getIHtmlColorSet()); else - fontConfiguration = new FontConfiguration(getSkinParam(), FontParam.STATE_ATTRIBUTE, stereotype); + fontConfiguration = FontConfiguration.create(getSkinParam(), FontParam.STATE_ATTRIBUTE, stereotype); this.fields = list.create8(fontConfiguration, HorizontalAlignment.LEFT, skinParam, CreoleMode.FULL, skinParam.wrapWidth()); diff --git a/src/net/sourceforge/plantuml/svek/image/EntityImageStateCommon.java b/src/net/sourceforge/plantuml/svek/image/EntityImageStateCommon.java index f175d62bb..06b540764 100644 --- a/src/net/sourceforge/plantuml/svek/image/EntityImageStateCommon.java +++ b/src/net/sourceforge/plantuml/svek/image/EntityImageStateCommon.java @@ -81,7 +81,7 @@ public abstract class EntityImageStateCommon extends AbstractEntityImage { fontConfiguration = getStyleStateHeader().getFontConfiguration(getSkinParam().getThemeStyle(), getSkinParam().getIHtmlColorSet()); else - fontConfiguration = new FontConfiguration(getSkinParam(), FontParam.STATE, stereotype); + fontConfiguration = FontConfiguration.create(getSkinParam(), FontParam.STATE, stereotype); this.desc = entity.getDisplay().create8(fontConfiguration, HorizontalAlignment.CENTER, skinParam, CreoleMode.FULL, skinParam.wrapWidth()); diff --git a/src/net/sourceforge/plantuml/svek/image/EntityImageTips.java b/src/net/sourceforge/plantuml/svek/image/EntityImageTips.java index e19a27083..8dadb5e7b 100644 --- a/src/net/sourceforge/plantuml/svek/image/EntityImageTips.java +++ b/src/net/sourceforge/plantuml/svek/image/EntityImageTips.java @@ -201,7 +201,7 @@ public class EntityImageTips extends AbstractEntityImage { stroke = style.getStroke(); } else { shadowing = skinParam.shadowing(getEntity().getStereotype()) ? 4 : 0; - fc = new FontConfiguration(skinParam, FontParam.NOTE, null); + fc = FontConfiguration.create(skinParam, FontParam.NOTE, null); } final TextBlock textBlock = BodyFactory.create3(display, FontParam.NOTE, skinParam, HorizontalAlignment.LEFT, diff --git a/src/net/sourceforge/plantuml/svek/image/EntityImageUseCase.java b/src/net/sourceforge/plantuml/svek/image/EntityImageUseCase.java index 17bbb3bc4..af584a470 100644 --- a/src/net/sourceforge/plantuml/svek/image/EntityImageUseCase.java +++ b/src/net/sourceforge/plantuml/svek/image/EntityImageUseCase.java @@ -111,7 +111,7 @@ public class EntityImageUseCase extends AbstractEntityImage { stereo = stereotype.getSprite(getSkinParam()); } else { stereo = Display.getWithNewlines(stereotype.getLabel(getSkinParam().guillemet())).create( - new FontConfiguration(getSkinParam(), FontParam.USECASE_STEREOTYPE, stereotype), + FontConfiguration.create(getSkinParam(), FontParam.USECASE_STEREOTYPE, stereotype), HorizontalAlignment.CENTER, getSkinParam()); } this.desc = TextBlockUtils.mergeTB(stereo, tmp, HorizontalAlignment.CENTER); diff --git a/src/net/sourceforge/plantuml/svek/image/Footprint.java b/src/net/sourceforge/plantuml/svek/image/Footprint.java index c62ad3c6d..1600ccb1d 100644 --- a/src/net/sourceforge/plantuml/svek/image/Footprint.java +++ b/src/net/sourceforge/plantuml/svek/image/Footprint.java @@ -76,15 +76,18 @@ public class Footprint { private final List all; public MyUGraphic() { - super(stringBounder); + super(stringBounder, new UTranslate()); this.all = new ArrayList<>(); } private MyUGraphic(MyUGraphic other, UChange change) { - super(other, change); - if (!instanceOfAny(change, UBackground.class, HColor.class, UStroke.class, UTranslate.class)) { + // super(other, change); + super(other.getStringBounder(), + change instanceof UTranslate ? other.getTranslate().compose((UTranslate) change) + : other.getTranslate()); + if (!instanceOfAny(change, UBackground.class, HColor.class, UStroke.class, UTranslate.class)) throw new UnsupportedOperationException(change.getClass().toString()); - } + this.all = other.all; } diff --git a/src/net/sourceforge/plantuml/swing/AboutWindow.java b/src/net/sourceforge/plantuml/swing/AboutWindow.java index 8207f0f49..5be433203 100644 --- a/src/net/sourceforge/plantuml/swing/AboutWindow.java +++ b/src/net/sourceforge/plantuml/swing/AboutWindow.java @@ -121,12 +121,12 @@ class AboutWindow extends JFrame { } private JComponent getInfoVersion() { - final PSystemVersion p1 = PSystemVersion.createShowVersion2(new UmlSource(new ArrayList(), false)); + final PSystemVersion p1 = PSystemVersion.createShowVersion2(UmlSource.create(new ArrayList(), false)); return getJComponent(skip(p1.getLines())); } private JComponent getInfoAuthors() { - final PSystemVersion p1 = PSystemVersion.createShowAuthors2(new UmlSource(new ArrayList(), false)); + final PSystemVersion p1 = PSystemVersion.createShowAuthors2(UmlSource.create(new ArrayList(), false)); return getJComponent(skip(p1.getLines())); } diff --git a/src/net/sourceforge/plantuml/timingdiagram/Highlight.java b/src/net/sourceforge/plantuml/timingdiagram/Highlight.java index 7cc6e9320..9d275d4dc 100644 --- a/src/net/sourceforge/plantuml/timingdiagram/Highlight.java +++ b/src/net/sourceforge/plantuml/timingdiagram/Highlight.java @@ -121,7 +121,7 @@ public class Highlight { } public TextBlock getCaption(ISkinParam skinParam) { - final FontConfiguration fc = new FontConfiguration(skinParam, FontParam.TIMING, null); + final FontConfiguration fc = FontConfiguration.create(skinParam, FontParam.TIMING, null); return caption.create(fc, HorizontalAlignment.LEFT, skinParam); } diff --git a/src/net/sourceforge/plantuml/timingdiagram/Player.java b/src/net/sourceforge/plantuml/timingdiagram/Player.java index 90755534e..3461942d8 100644 --- a/src/net/sourceforge/plantuml/timingdiagram/Player.java +++ b/src/net/sourceforge/plantuml/timingdiagram/Player.java @@ -87,8 +87,8 @@ public abstract class Player implements TimeProjected { final protected FontConfiguration getFontConfiguration() { if (UseStyle.useBetaStyle() == false) - return new FontConfiguration(skinParam, FontParam.TIMING, null); - return new FontConfiguration(skinParam, StyleSignatureBasic.of(SName.root, SName.element, SName.timingDiagram) + return FontConfiguration.create(skinParam, FontParam.TIMING, null); + return FontConfiguration.create(skinParam, StyleSignatureBasic.of(SName.root, SName.element, SName.timingDiagram) .getMergedStyle(skinParam.getCurrentStyleBuilder())); } diff --git a/src/net/sourceforge/plantuml/timingdiagram/TimeConstraint.java b/src/net/sourceforge/plantuml/timingdiagram/TimeConstraint.java index e78f4a053..bb68132c2 100644 --- a/src/net/sourceforge/plantuml/timingdiagram/TimeConstraint.java +++ b/src/net/sourceforge/plantuml/timingdiagram/TimeConstraint.java @@ -100,7 +100,7 @@ public class TimeConstraint { private FontConfiguration getFontConfiguration() { if (UseStyle.useBetaStyle() == false) { final UFont font = UFont.serif(14); - return new FontConfiguration(font, HColorUtils.BLACK, HColorUtils.BLUE, false); + return FontConfiguration.create(font, HColorUtils.BLACK, HColorUtils.BLUE, false); } return getStyle().getFontConfiguration(skinParam.getThemeStyle(), skinParam.getIHtmlColorSet()); } diff --git a/src/net/sourceforge/plantuml/timingdiagram/TimingDiagram.java b/src/net/sourceforge/plantuml/timingdiagram/TimingDiagram.java index 3b17f37a2..ae5ac0c8c 100644 --- a/src/net/sourceforge/plantuml/timingdiagram/TimingDiagram.java +++ b/src/net/sourceforge/plantuml/timingdiagram/TimingDiagram.java @@ -96,7 +96,7 @@ public class TimingDiagram extends UmlDiagram implements Clocks { } public TimingDiagram(ThemeStyle style, UmlSource source) { - super(style, source, UmlDiagramType.TIMING); + super(style, source, UmlDiagramType.TIMING, null); } @Override diff --git a/src/net/sourceforge/plantuml/timingdiagram/TimingNote.java b/src/net/sourceforge/plantuml/timingdiagram/TimingNote.java index ccd7ced8c..5c0604e1d 100644 --- a/src/net/sourceforge/plantuml/timingdiagram/TimingNote.java +++ b/src/net/sourceforge/plantuml/timingdiagram/TimingNote.java @@ -92,7 +92,7 @@ public class TimingNote { final HColor borderColor; UStroke stroke = new UStroke(); if (UseStyle.useBetaStyle()) { - fc = new FontConfiguration(skinParam, style); + fc = FontConfiguration.create(skinParam, style); shadowing = style.value(PName.Shadowing).asDouble(); borderColor = style.value(PName.LineColor).asColor(skinParam.getThemeStyle(), skinParam.getIHtmlColorSet()); noteBackgroundColor = style.value(PName.BackGroundColor).asColor(skinParam.getThemeStyle(), @@ -100,7 +100,7 @@ public class TimingNote { stroke = style.getStroke(); } else { shadowing = skinParam.shadowing(null) ? 4 : 0; - fc = new FontConfiguration(skinParam, FontParam.NOTE, null); + fc = FontConfiguration.create(skinParam, FontParam.NOTE, null); final Rose rose = new Rose(); noteBackgroundColor = rose.getHtmlColor(skinParam, ColorParam.noteBackground); borderColor = rose.getHtmlColor(skinParam, ColorParam.noteBorder); diff --git a/src/net/sourceforge/plantuml/timingdiagram/TimingRuler.java b/src/net/sourceforge/plantuml/timingdiagram/TimingRuler.java index 03b0652c5..900a16212 100644 --- a/src/net/sourceforge/plantuml/timingdiagram/TimingRuler.java +++ b/src/net/sourceforge/plantuml/timingdiagram/TimingRuler.java @@ -187,9 +187,9 @@ public class TimingRuler { private FontConfiguration getFontConfiguration() { if (UseStyle.useBetaStyle() == false) - return new FontConfiguration(skinParam, FontParam.TIMING, null); + return FontConfiguration.create(skinParam, FontParam.TIMING, null); - return new FontConfiguration(skinParam, getStyle()); + return FontConfiguration.create(skinParam, getStyle()); } private Style getStyle() { diff --git a/src/net/sourceforge/plantuml/timingdiagram/graphic/Histogram.java b/src/net/sourceforge/plantuml/timingdiagram/graphic/Histogram.java index e400465b8..31977064c 100644 --- a/src/net/sourceforge/plantuml/timingdiagram/graphic/Histogram.java +++ b/src/net/sourceforge/plantuml/timingdiagram/graphic/Histogram.java @@ -195,9 +195,9 @@ public class Histogram implements PDrawing { private FontConfiguration getFontConfiguration() { if (UseStyle.useBetaStyle() == false) - return new FontConfiguration(skinParam, FontParam.TIMING, null); + return FontConfiguration.create(skinParam, FontParam.TIMING, null); - return new FontConfiguration(skinParam, style); + return FontConfiguration.create(skinParam, style); } private UStroke getStroke() { diff --git a/src/net/sourceforge/plantuml/timingdiagram/graphic/Ribbon.java b/src/net/sourceforge/plantuml/timingdiagram/graphic/Ribbon.java index ab98fd45f..c43e80050 100644 --- a/src/net/sourceforge/plantuml/timingdiagram/graphic/Ribbon.java +++ b/src/net/sourceforge/plantuml/timingdiagram/graphic/Ribbon.java @@ -114,8 +114,8 @@ public class Ribbon implements PDrawing { private FontConfiguration getFontConfiguration() { if (UseStyle.useBetaStyle() == false) - return new FontConfiguration(skinParam, FontParam.TIMING, null); - return new FontConfiguration(skinParam, style); + return FontConfiguration.create(skinParam, FontParam.TIMING, null); + return FontConfiguration.create(skinParam, style); } diff --git a/src/net/sourceforge/plantuml/timingdiagram/graphic/TimeArrow.java b/src/net/sourceforge/plantuml/timingdiagram/graphic/TimeArrow.java index 15f5646ef..f3e5d958b 100644 --- a/src/net/sourceforge/plantuml/timingdiagram/graphic/TimeArrow.java +++ b/src/net/sourceforge/plantuml/timingdiagram/graphic/TimeArrow.java @@ -111,7 +111,7 @@ public class TimeArrow implements UDrawable { final UFont font = UFont.serif(14); final HColor color = type.getSpecificColor(); - return new FontConfiguration(font, color, color, false); + return FontConfiguration.create(font, color, color, false); } public void drawU(UGraphic ug) { diff --git a/src/net/sourceforge/plantuml/ugraphic/FontChecker.java b/src/net/sourceforge/plantuml/ugraphic/FontChecker.java index d5ed56a21..530f1347c 100644 --- a/src/net/sourceforge/plantuml/ugraphic/FontChecker.java +++ b/src/net/sourceforge/plantuml/ugraphic/FontChecker.java @@ -194,7 +194,7 @@ public class FontChecker { // ug = (UGraphic2) ug.apply(UChangeColor.nnn(HtmlColorUtils.BLACK)); // ug.draw(new URectangle(dim - 1, dim - 1)); // ug = (UGraphic2) ug.apply(new UTranslate(dim / 3, 2 * dim / 3)); - // final UText text = new UText("" + c, new FontConfiguration(font, + // final UText text = new UText("" + c, FontConfiguration.create(font, // HtmlColorUtils.BLACK)); // ug.draw(text); // final ByteArrayOutputStream os = new ByteArrayOutputStream(); diff --git a/src/net/sourceforge/plantuml/ugraphic/ImageBuilder.java b/src/net/sourceforge/plantuml/ugraphic/ImageBuilder.java index 363035088..fb445cd2a 100644 --- a/src/net/sourceforge/plantuml/ugraphic/ImageBuilder.java +++ b/src/net/sourceforge/plantuml/ugraphic/ImageBuilder.java @@ -326,7 +326,7 @@ public class ImageBuilder { private Dimension2D getFinalDimension() { if (dimension == null) { - final LimitFinder limitFinder = new LimitFinder(stringBounder, true); + final LimitFinder limitFinder = LimitFinder.create(stringBounder, true); udrawable.drawU(limitFinder); dimension = new Dimension2DDouble(limitFinder.getMaxX() + 1 + margin.getLeft() + margin.getRight(), limitFinder.getMaxY() + 1 + margin.getTop() + margin.getBottom()); diff --git a/src/net/sourceforge/plantuml/ugraphic/LimitFinder.java b/src/net/sourceforge/plantuml/ugraphic/LimitFinder.java index f5aef2fdb..978e775ba 100644 --- a/src/net/sourceforge/plantuml/ugraphic/LimitFinder.java +++ b/src/net/sourceforge/plantuml/ugraphic/LimitFinder.java @@ -37,9 +37,8 @@ package net.sourceforge.plantuml.ugraphic; import static net.sourceforge.plantuml.utils.ObjectUtils.instanceOfAny; -import net.sourceforge.plantuml.awt.geom.Dimension2D; - import net.sourceforge.plantuml.activitydiagram3.ftile.CenteredText; +import net.sourceforge.plantuml.awt.geom.Dimension2D; import net.sourceforge.plantuml.graphic.SpecialText; import net.sourceforge.plantuml.graphic.StringBounder; import net.sourceforge.plantuml.graphic.TextBlock; @@ -52,39 +51,34 @@ public class LimitFinder extends UGraphicNo { @Override public UGraphic apply(UChange change) { - return new LimitFinder(this, change); + final UTranslate tmp = change instanceof UTranslate ? this.getTranslate().compose((UTranslate) change) + : this.getTranslate(); + final LimitFinder result = new LimitFinder(this.getStringBounder(), tmp, this.minmax); + if (!instanceOfAny(change, UAntiAliasing.class, UBackground.class, UClip.class, HColor.class, UHidden.class, + UStroke.class, UTranslate.class)) + throw new UnsupportedOperationException(change.getClass().toString()); + result.clip = change instanceof UClip ? ((UClip) change).translate(result.getTranslate()) : this.clip; + return result; } private final MinMaxMutable minmax; - private final UClip clip; + private UClip clip; - public LimitFinder(StringBounder stringBounder, boolean initToZero) { - super(stringBounder); - this.minmax = MinMaxMutable.getEmpty(initToZero); - this.clip = null; + public static LimitFinder create(StringBounder stringBounder, boolean initToZero) { + final LimitFinder result = new LimitFinder(stringBounder, new UTranslate(), MinMaxMutable.getEmpty(initToZero)); + result.clip = null; + return result; } - private LimitFinder(LimitFinder other, UChange change) { - super(other, change); - if (!instanceOfAny(change, - UAntiAliasing.class, - UBackground.class, - UClip.class, - HColor.class, - UHidden.class, - UStroke.class, - UTranslate.class - )) { - throw new UnsupportedOperationException(change.getClass().toString()); - } - this.clip = change instanceof UClip ? ((UClip) change).translate(getTranslate()) : other.clip; - this.minmax = other.minmax; + private LimitFinder(StringBounder stringBounder, UTranslate translate, MinMaxMutable minmax) { + super(stringBounder, translate); + this.minmax = minmax; } private void addPoint(double x, double y) { - if (clip == null || clip.isInside(x, y)) { + if (clip == null || clip.isInside(x, y)) minmax.addPoint(x, y); - } + } public void draw(UShape shape) { @@ -181,7 +175,8 @@ public class LimitFinder extends UGraphicNo { } private void drawText(double x, double y, UText text) { - final Dimension2D dim = getStringBounder().calculateDimension(text.getFontConfiguration().getFont(), text.getText()); + final Dimension2D dim = getStringBounder().calculateDimension(text.getFontConfiguration().getFont(), + text.getText()); y -= dim.getHeight() - 1.5; addPoint(x, y); addPoint(x, y + dim.getHeight()); diff --git a/src/net/sourceforge/plantuml/ugraphic/TextLimitFinder.java b/src/net/sourceforge/plantuml/ugraphic/TextLimitFinder.java index c23a8a2f6..1a311f19e 100644 --- a/src/net/sourceforge/plantuml/ugraphic/TextLimitFinder.java +++ b/src/net/sourceforge/plantuml/ugraphic/TextLimitFinder.java @@ -38,35 +38,29 @@ package net.sourceforge.plantuml.ugraphic; import static net.sourceforge.plantuml.utils.ObjectUtils.instanceOfAny; import net.sourceforge.plantuml.awt.geom.Dimension2D; - import net.sourceforge.plantuml.graphic.StringBounder; import net.sourceforge.plantuml.ugraphic.color.HColor; public class TextLimitFinder extends UGraphicNo { - @Override - public UGraphic apply(UChange change) { - return new TextLimitFinder(this, change); - } - private final MinMaxMutable minmax; - public TextLimitFinder(StringBounder stringBounder, boolean initToZero) { - super(stringBounder); - this.minmax = MinMaxMutable.getEmpty(initToZero); + @Override + public UGraphic apply(UChange change) { + if (!instanceOfAny(change, UBackground.class, HColor.class, UStroke.class, UTranslate.class)) + throw new UnsupportedOperationException(change.getClass().toString()); + final UTranslate tmp = change instanceof UTranslate ? this.getTranslate().compose((UTranslate) change) + : this.getTranslate(); + return new TextLimitFinder(this.getStringBounder(), tmp, this.minmax); } - private TextLimitFinder(TextLimitFinder other, UChange change) { - super(other, change); - if (!instanceOfAny(change, - UBackground.class, - HColor.class, - UStroke.class, - UTranslate.class - )) { - throw new UnsupportedOperationException(change.getClass().toString()); - } - this.minmax = other.minmax; + public static TextLimitFinder create(StringBounder stringBounder, boolean initToZero) { + return new TextLimitFinder(stringBounder, new UTranslate(), MinMaxMutable.getEmpty(initToZero)); + } + + private TextLimitFinder(StringBounder stringBounder, UTranslate translate, MinMaxMutable minmax) { + super(stringBounder, translate); + this.minmax = minmax; } public void draw(UShape shape) { @@ -78,7 +72,8 @@ public class TextLimitFinder extends UGraphicNo { } private void drawText(double x, double y, UText text) { - final Dimension2D dim = getStringBounder().calculateDimension(text.getFontConfiguration().getFont(), text.getText()); + final Dimension2D dim = getStringBounder().calculateDimension(text.getFontConfiguration().getFont(), + text.getText()); y -= dim.getHeight() - 1.5; minmax.addPoint(x, y); minmax.addPoint(x, y + dim.getHeight()); diff --git a/src/net/sourceforge/plantuml/ugraphic/UGraphicNo.java b/src/net/sourceforge/plantuml/ugraphic/UGraphicNo.java index 36fd04584..5747ec653 100644 --- a/src/net/sourceforge/plantuml/ugraphic/UGraphicNo.java +++ b/src/net/sourceforge/plantuml/ugraphic/UGraphicNo.java @@ -50,14 +50,14 @@ public abstract class UGraphicNo implements UGraphic { private final StringBounder stringBounder; private final UTranslate translate; - public UGraphicNo(StringBounder stringBounder) { - this.stringBounder = stringBounder; - this.translate = new UTranslate(); - } +// private UGraphicNo(UGraphicNo other, UChange change) { +// this(other.stringBounder, +// change instanceof UTranslate ? other.translate.compose((UTranslate) change) : other.translate); +// } - public UGraphicNo(UGraphicNo other, UChange change) { - this.stringBounder = other.stringBounder; - this.translate = change instanceof UTranslate ? other.translate.compose((UTranslate) change) : other.translate; + public UGraphicNo(StringBounder stringBounder, UTranslate translate) { + this.stringBounder = stringBounder; + this.translate = translate; } // @@ -118,7 +118,7 @@ public abstract class UGraphicNo implements UGraphic { // Internal things // - protected UTranslate getTranslate() { + protected final UTranslate getTranslate() { return translate; } } diff --git a/src/net/sourceforge/plantuml/ugraphic/comp/CompressionXorYBuilder.java b/src/net/sourceforge/plantuml/ugraphic/comp/CompressionXorYBuilder.java index ce8afcf16..537ded39a 100644 --- a/src/net/sourceforge/plantuml/ugraphic/comp/CompressionXorYBuilder.java +++ b/src/net/sourceforge/plantuml/ugraphic/comp/CompressionXorYBuilder.java @@ -47,7 +47,7 @@ public class CompressionXorYBuilder { private static PiecewiseAffineTransform getPiecewiseAffineTransform(CompressionMode mode, TextBlock textBlock, StringBounder stringBounder) { - final SlotFinder slotFinder = new SlotFinder(mode, stringBounder); + final SlotFinder slotFinder = SlotFinder.create(mode, stringBounder); textBlock.drawU(slotFinder); final SlotSet ysSlotSet = slotFinder.getSlotSet().reverse().smaller(5.0); return new CompressionTransform(ysSlotSet); diff --git a/src/net/sourceforge/plantuml/ugraphic/comp/PiecewiseAffineOnXorYBuilder.java b/src/net/sourceforge/plantuml/ugraphic/comp/PiecewiseAffineOnXorYBuilder.java index ddbc6f202..da8747dcd 100644 --- a/src/net/sourceforge/plantuml/ugraphic/comp/PiecewiseAffineOnXorYBuilder.java +++ b/src/net/sourceforge/plantuml/ugraphic/comp/PiecewiseAffineOnXorYBuilder.java @@ -35,9 +35,8 @@ */ package net.sourceforge.plantuml.ugraphic.comp; -import net.sourceforge.plantuml.awt.geom.Dimension2D; - import net.sourceforge.plantuml.Dimension2DDouble; +import net.sourceforge.plantuml.awt.geom.Dimension2D; import net.sourceforge.plantuml.graphic.AbstractTextBlock; import net.sourceforge.plantuml.graphic.StringBounder; import net.sourceforge.plantuml.graphic.TextBlock; @@ -66,7 +65,7 @@ public class PiecewiseAffineOnXorYBuilder extends AbstractTextBlock implements T } public void drawU(final UGraphic ug) { - textBlock.drawU(new UGraphicCompressOnXorY(mode, ug, piecewiseAffineTransform)); + textBlock.drawU(UGraphicCompressOnXorY.create(mode, ug, piecewiseAffineTransform)); } private MinMax cachedMinMax; diff --git a/src/net/sourceforge/plantuml/ugraphic/comp/SlotFinder.java b/src/net/sourceforge/plantuml/ugraphic/comp/SlotFinder.java index a2c74fe3b..d529968e5 100644 --- a/src/net/sourceforge/plantuml/ugraphic/comp/SlotFinder.java +++ b/src/net/sourceforge/plantuml/ugraphic/comp/SlotFinder.java @@ -36,6 +36,7 @@ package net.sourceforge.plantuml.ugraphic.comp; import static net.sourceforge.plantuml.utils.ObjectUtils.instanceOfAny; + import net.sourceforge.plantuml.graphic.StringBounder; import net.sourceforge.plantuml.ugraphic.TextLimitFinder; import net.sourceforge.plantuml.ugraphic.UBackground; @@ -60,31 +61,25 @@ public class SlotFinder extends UGraphicNo { @Override public UGraphic apply(UChange change) { - return new SlotFinder(this, change); + if (!instanceOfAny(change, UBackground.class, HColor.class, UStroke.class, UTranslate.class)) + throw new UnsupportedOperationException(change.getClass().toString()); + final UTranslate tmp = change instanceof UTranslate ? this.getTranslate().compose((UTranslate) change) + : this.getTranslate(); + SlotFinder result = new SlotFinder(this.getStringBounder(), tmp, this.slot, this.mode); + return result; } private final SlotSet slot; - private final CompressionMode mode; - public SlotFinder(CompressionMode mode, StringBounder stringBounder) { - super(stringBounder); - this.slot = new SlotSet(); - this.mode = mode; + public static SlotFinder create(CompressionMode mode, StringBounder stringBounder) { + return new SlotFinder(stringBounder, new UTranslate(), new SlotSet(), mode); } - private SlotFinder(SlotFinder other, UChange change) { - super(other, change); - if (!instanceOfAny(change, - UBackground.class, - HColor.class, - UStroke.class, - UTranslate.class - )) { - throw new UnsupportedOperationException(change.getClass().toString()); - } - this.mode = other.mode; - this.slot = other.slot; + private SlotFinder(StringBounder stringBounder, UTranslate translate, SlotSet slot, CompressionMode mode) { + super(stringBounder, translate); + this.slot = slot; + this.mode = mode; } public void draw(UShape sh) { @@ -115,57 +110,56 @@ public class SlotFinder extends UGraphicNo { } private void drawPath(double x, double y, UPath shape) { - if (mode == CompressionMode.ON_X) { + if (mode == CompressionMode.ON_X) slot.addSlot(x + shape.getMinX(), x + shape.getMaxX()); - } else { + else slot.addSlot(y + shape.getMinY(), y + shape.getMaxY()); - } } private void drawEmpty(double x, double y, UEmpty shape) { - if (mode == CompressionMode.ON_X) { + if (mode == CompressionMode.ON_X) slot.addSlot(x, x + shape.getWidth()); - } else { + else slot.addSlot(y, y + shape.getHeight()); - } + } private void drawText(double x, double y, UText shape) { - final TextLimitFinder finder = new TextLimitFinder(getStringBounder(), false); + final TextLimitFinder finder = TextLimitFinder.create(getStringBounder(), false); finder.apply(new UTranslate(x, y)).draw(shape); - if (mode == CompressionMode.ON_X) { + if (mode == CompressionMode.ON_X) slot.addSlot(finder.getMinX(), finder.getMaxX()); - } else { + else slot.addSlot(finder.getMinY(), finder.getMaxY()); - } + } private void drawEllipse(double x, double y, UEllipse shape) { - if (mode == CompressionMode.ON_X) { + if (mode == CompressionMode.ON_X) slot.addSlot(x, x + shape.getWidth()); - } else { + else slot.addSlot(y, y + shape.getHeight()); - } + } private void drawPolygon(double x, double y, UPolygon shape) { - if (mode == shape.getCompressionMode()) { + if (mode == shape.getCompressionMode()) return; - } - if (mode == CompressionMode.ON_X) { + + if (mode == CompressionMode.ON_X) slot.addSlot(x + shape.getMinX(), x + shape.getMaxX()); - } else { + else slot.addSlot(y + shape.getMinY(), y + shape.getMaxY()); - } + } private void drawRectangle(double x, double y, URectangle shape) { - if (mode == CompressionMode.ON_X) { + if (mode == CompressionMode.ON_X) slot.addSlot(x, x + shape.getWidth()); - } else { + else slot.addSlot(y, y + shape.getHeight()); - } + } public ColorMapper getColorMapper() { diff --git a/src/net/sourceforge/plantuml/ugraphic/comp/UGraphicCompressOnXorY.java b/src/net/sourceforge/plantuml/ugraphic/comp/UGraphicCompressOnXorY.java index d5f101e1e..b724f2e37 100644 --- a/src/net/sourceforge/plantuml/ugraphic/comp/UGraphicCompressOnXorY.java +++ b/src/net/sourceforge/plantuml/ugraphic/comp/UGraphicCompressOnXorY.java @@ -51,12 +51,12 @@ import net.sourceforge.plantuml.ugraphic.color.HColor; public class UGraphicCompressOnXorY extends UGraphicDelegator { public UGraphic apply(UChange change) { - if (change instanceof UTranslate) { + if (change instanceof UTranslate) return new UGraphicCompressOnXorY(mode, getUg(), compressionTransform, translate.compose((UTranslate) change)); - } else if (change instanceof UStroke || change instanceof UBackground || change instanceof HColor) { + else if (change instanceof UStroke || change instanceof UBackground || change instanceof HColor) return new UGraphicCompressOnXorY(mode, getUg().apply(change), compressionTransform, translate); - } + throw new UnsupportedOperationException(); } @@ -69,8 +69,9 @@ public class UGraphicCompressOnXorY extends UGraphicDelegator { return "UGraphicCompressOnXorY " + mode; } - public UGraphicCompressOnXorY(CompressionMode mode, UGraphic ug, PiecewiseAffineTransform compressionTransform) { - this(mode, ug, compressionTransform, new UTranslate()); + public static UGraphicCompressOnXorY create(CompressionMode mode, UGraphic ug, + PiecewiseAffineTransform compressionTransform) { + return new UGraphicCompressOnXorY(mode, ug, compressionTransform, new UTranslate()); } private UGraphicCompressOnXorY(CompressionMode mode, UGraphic ug, PiecewiseAffineTransform compressionTransform, @@ -99,37 +100,37 @@ public class UGraphicCompressOnXorY extends UGraphicDelegator { final TextBlock text = centeredText.getText(); final double totalWidth = centeredText.getTotalWidth(); final double realSpaceWidth; - if (mode == CompressionMode.ON_X) { + if (mode == CompressionMode.ON_X) realSpaceWidth = ct(x + totalWidth) - ct(x); - } else { + else realSpaceWidth = totalWidth; - } + final double textWidth = text.calculateDimension(getStringBounder()).getWidth(); final double pos = (realSpaceWidth - textWidth) / 2; text.drawU(getUg().apply(getTranslate(x, y)).apply(UTranslate.dx(pos))); return; } - if (shape instanceof ULine) { + if (shape instanceof ULine) drawLine(x, y, (ULine) shape); - } else { + else getUg().apply(getTranslate(x, y)).draw(shape); - } + } private UTranslate getTranslate(final double x, final double y) { - if (mode == CompressionMode.ON_X) { + if (mode == CompressionMode.ON_X) return new UTranslate(ct(x), y); - } else { + else return new UTranslate(x, ct(y)); - } + } private void drawLine(double x, double y, ULine shape) { - if (mode == CompressionMode.ON_X) { + if (mode == CompressionMode.ON_X) drawLine(ct(x), y, ct(x + shape.getDX()), y + shape.getDY()); - } else { + else drawLine(x, ct(y), x + shape.getDX(), ct(y + shape.getDY())); - } + } private double ct(double v) { diff --git a/src/net/sourceforge/plantuml/ugraphic/hand/HandJiggle.java b/src/net/sourceforge/plantuml/ugraphic/hand/HandJiggle.java index 3e6057b5c..85a6748a1 100644 --- a/src/net/sourceforge/plantuml/ugraphic/hand/HandJiggle.java +++ b/src/net/sourceforge/plantuml/ugraphic/hand/HandJiggle.java @@ -63,8 +63,8 @@ public class HandJiggle { points.add(new Point2D.Double(startX, startY)); } - public HandJiggle(Point2D start, double defaultVariation, Random rnd) { - this(start.getX(), start.getY(), defaultVariation, rnd); + public static HandJiggle create(Point2D start, double defaultVariation, Random rnd) { + return new HandJiggle(start.getX(), start.getY(), defaultVariation, rnd); } public void lineTo(Point2D end) { diff --git a/src/net/sourceforge/plantuml/ugraphic/hand/UDotPathHand.java b/src/net/sourceforge/plantuml/ugraphic/hand/UDotPathHand.java index f4218850e..36e4a971b 100644 --- a/src/net/sourceforge/plantuml/ugraphic/hand/UDotPathHand.java +++ b/src/net/sourceforge/plantuml/ugraphic/hand/UDotPathHand.java @@ -46,7 +46,7 @@ public class UDotPathHand { public UDotPathHand(DotPath source, Random rnd) { - final HandJiggle jiggle = new HandJiggle(source.getStartPoint(), 2.0, rnd); + final HandJiggle jiggle = HandJiggle.create(source.getStartPoint(), 2.0, rnd); for (CubicCurve2D curve : source.getBeziers()) { jiggle.curveTo(curve); } diff --git a/src/net/sourceforge/plantuml/ugraphic/hand/UPathHand.java b/src/net/sourceforge/plantuml/ugraphic/hand/UPathHand.java index 0869c3d41..f48f85c21 100644 --- a/src/net/sourceforge/plantuml/ugraphic/hand/UPathHand.java +++ b/src/net/sourceforge/plantuml/ugraphic/hand/UPathHand.java @@ -63,7 +63,7 @@ public class UPathHand { } else if (type == USegmentType.SEG_CUBICTO) { final double x2 = segment.getCoord()[4]; final double y2 = segment.getCoord()[5]; - final HandJiggle jiggle = new HandJiggle(last, 2.0, rnd); + final HandJiggle jiggle = HandJiggle.create(last, 2.0, rnd); final CubicCurve2D tmp = new CubicCurve2D.Double(last.getX(), last.getY(), segment.getCoord()[0], segment.getCoord()[1], segment.getCoord()[2], segment.getCoord()[3], x2, y2); diff --git a/src/net/sourceforge/plantuml/ugraphic/hand/UPolygonHand.java b/src/net/sourceforge/plantuml/ugraphic/hand/UPolygonHand.java index 849a54c5f..71a8c25cb 100644 --- a/src/net/sourceforge/plantuml/ugraphic/hand/UPolygonHand.java +++ b/src/net/sourceforge/plantuml/ugraphic/hand/UPolygonHand.java @@ -51,7 +51,7 @@ public class UPolygonHand { poly = new UPolygon(); return; } - final HandJiggle jiggle = new HandJiggle(pt.get(0), 1.5, rnd); + final HandJiggle jiggle = HandJiggle.create(pt.get(0), 1.5, rnd); for (int i = 1; i < pt.size(); i++) { jiggle.lineTo(pt.get(i)); } diff --git a/src/net/sourceforge/plantuml/utils/MTRandom.java b/src/net/sourceforge/plantuml/utils/MTRandom.java index f305166c4..f38b428d5 100644 --- a/src/net/sourceforge/plantuml/utils/MTRandom.java +++ b/src/net/sourceforge/plantuml/utils/MTRandom.java @@ -29,6 +29,8 @@ package net.sourceforge.plantuml.utils; import java.util.Random; +import net.sourceforge.plantuml.annotation.HaxeIgnored; + /** * @version 1.0 * @author David Beaumont, Copyright 2005 @@ -81,6 +83,7 @@ import java.util.Random; * --> * */ +@HaxeIgnored public class MTRandom extends Random { /** diff --git a/src/net/sourceforge/plantuml/version/Version.java b/src/net/sourceforge/plantuml/version/Version.java index b9361e0d8..62222406c 100644 --- a/src/net/sourceforge/plantuml/version/Version.java +++ b/src/net/sourceforge/plantuml/version/Version.java @@ -80,7 +80,7 @@ public class Version { } public static int beta() { - final int beta = 2; + final int beta = 3; return beta; } diff --git a/src/net/sourceforge/plantuml/wbs/WBSDiagram.java b/src/net/sourceforge/plantuml/wbs/WBSDiagram.java index 785abf3eb..76842c532 100644 --- a/src/net/sourceforge/plantuml/wbs/WBSDiagram.java +++ b/src/net/sourceforge/plantuml/wbs/WBSDiagram.java @@ -70,7 +70,7 @@ public class WBSDiagram extends UmlDiagram { } public WBSDiagram(ThemeStyle style, UmlSource source) { - super(style, source, UmlDiagramType.WBS); + super(style, source, UmlDiagramType.WBS, null); } @Override diff --git a/src/net/sourceforge/plantuml/wire/Block.java b/src/net/sourceforge/plantuml/wire/Block.java index d10929539..364a51413 100644 --- a/src/net/sourceforge/plantuml/wire/Block.java +++ b/src/net/sourceforge/plantuml/wire/Block.java @@ -127,7 +127,7 @@ public class Block extends AbstractTextBlock { public void drawU(UGraphic ug) { ug = ug.apply(getBlack()); if (children.size() == 0) { - final TextBlock label = display.create(new FontConfiguration(skinParam, FontParam.COMPONENT, null), + final TextBlock label = display.create(FontConfiguration.create(skinParam, FontParam.COMPONENT, null), HorizontalAlignment.CENTER, skinParam); label.drawU(ug.apply(new UTranslate(10, 10))); } else { diff --git a/src/net/sourceforge/plantuml/wire/WBlock.java b/src/net/sourceforge/plantuml/wire/WBlock.java index 75df87b14..b4cf5b15c 100644 --- a/src/net/sourceforge/plantuml/wire/WBlock.java +++ b/src/net/sourceforge/plantuml/wire/WBlock.java @@ -235,7 +235,7 @@ public class WBlock { public void drawMe(UGraphic ug) { drawBox(ug); final UFont font = UFont.sansSerif(12); - final FontConfiguration fc = new FontConfiguration(font, getBlack(), getBlack(), false); + final FontConfiguration fc = FontConfiguration.create(font, getBlack(), getBlack(), false); final Display display = Display.create(name.replace('_', ' ')); final TextBlock text = display.create(fc, HorizontalAlignment.LEFT, new SpriteContainerEmpty()); text.drawU(ug.apply(UTranslate.dx(5))); diff --git a/src/net/sourceforge/plantuml/wire/WireDiagram.java b/src/net/sourceforge/plantuml/wire/WireDiagram.java index cac664939..f14178e39 100644 --- a/src/net/sourceforge/plantuml/wire/WireDiagram.java +++ b/src/net/sourceforge/plantuml/wire/WireDiagram.java @@ -72,7 +72,7 @@ public class WireDiagram extends UmlDiagram { } public WireDiagram(ThemeStyle style, UmlSource source) { - super(style, source, UmlDiagramType.WIRE); + super(style, source, UmlDiagramType.WIRE, null); } @Override diff --git a/test/net/sourceforge/plantuml/ugraphic/ImageBuilderTest.java b/test/net/sourceforge/plantuml/ugraphic/ImageBuilderTest.java index 4c52094fb..65fcabfa5 100644 --- a/test/net/sourceforge/plantuml/ugraphic/ImageBuilderTest.java +++ b/test/net/sourceforge/plantuml/ugraphic/ImageBuilderTest.java @@ -27,7 +27,7 @@ class ImageBuilderTest { nullValues = {"NULL"} ) public void test_preserveAspectRatio_plainDiagram(String inFileFormatOption, String expected) throws Exception { - final PlainDiagram diagram = new PSystemCreole(new UmlSource(new ArrayList(), false)); + final PlainDiagram diagram = new PSystemCreole(UmlSource.create(new ArrayList(), false)); FileFormatOption fileFormatOption = new FileFormatOption(DEBUG); if (inFileFormatOption != null) fileFormatOption = fileFormatOption.withPreserveAspectRatio(inFileFormatOption); @@ -49,7 +49,7 @@ class ImageBuilderTest { nullValues = {"NULL"} ) public void test_preserveAspectRatio_styledDiagram(String inSkinParam, String inFileFormatOption, String expected) throws Exception { - final WBSDiagram diagram = new WBSDiagram(ThemeStyle.LIGHT_REGULAR, new UmlSource(new ArrayList(), false)); + final WBSDiagram diagram = new WBSDiagram(ThemeStyle.LIGHT_REGULAR, UmlSource.create(new ArrayList(), false)); FileFormatOption fileFormatOption = new FileFormatOption(DEBUG); if (inSkinParam != null) diagram.setParam("preserveAspectRatio", inSkinParam);