mirror of
https://github.com/octoleo/plantuml.git
synced 2024-11-22 04:55:10 +00:00
Import version 1.2020.15
This commit is contained in:
parent
a38685d3ba
commit
55ca84b7c1
3
pom.xml
3
pom.xml
@ -30,7 +30,8 @@
|
||||
Script Author: Julien Eluard
|
||||
|
||||
-->
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<groupId>net.sourceforge.plantuml</groupId>
|
||||
|
@ -311,34 +311,37 @@ public class StringUtils {
|
||||
}
|
||||
|
||||
public static boolean isDiagramCacheable(String uml) {
|
||||
uml = uml.toLowerCase();
|
||||
if (uml.startsWith("@startuml\nversion\n")) {
|
||||
if (uml.length() < 35) {
|
||||
return false;
|
||||
}
|
||||
if (uml.startsWith("@startuml\nlicense\n")) {
|
||||
return false;
|
||||
}
|
||||
if (uml.startsWith("@startuml\nlicence\n")) {
|
||||
return false;
|
||||
}
|
||||
if (uml.startsWith("@startuml\nauthor\n")) {
|
||||
return false;
|
||||
}
|
||||
if (uml.startsWith("@startuml\ndonors\n")) {
|
||||
return false;
|
||||
}
|
||||
// if (uml.startsWith("@startuml\ncheckversion")) {
|
||||
// uml = uml.toLowerCase();
|
||||
// if (uml.startsWith("@startuml\nversion\n")) {
|
||||
// return false;
|
||||
// }
|
||||
// if (uml.startsWith("@startuml\nlicense\n")) {
|
||||
// return false;
|
||||
// }
|
||||
// if (uml.startsWith("@startuml\nlicence\n")) {
|
||||
// return false;
|
||||
// }
|
||||
// if (uml.startsWith("@startuml\nauthor\n")) {
|
||||
// return false;
|
||||
// }
|
||||
// if (uml.startsWith("@startuml\ndonors\n")) {
|
||||
// return false;
|
||||
// }
|
||||
//// if (uml.startsWith("@startuml\ncheckversion")) {
|
||||
//// return false;
|
||||
//// }
|
||||
// if (uml.startsWith("@startuml\ntestdot\n")) {
|
||||
// return false;
|
||||
// }
|
||||
// if (uml.startsWith("@startuml\nsudoku\n")) {
|
||||
// return false;
|
||||
// }
|
||||
// if (uml.startsWith("@startuml\nstdlib\n")) {
|
||||
// return false;
|
||||
// }
|
||||
if (uml.startsWith("@startuml\ntestdot\n")) {
|
||||
return false;
|
||||
}
|
||||
if (uml.startsWith("@startuml\nsudoku\n")) {
|
||||
return false;
|
||||
}
|
||||
if (uml.startsWith("@startuml\nstdlib\n")) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -64,21 +64,18 @@ public class CommandHideShowByGender extends SingleLineCommand2<UmlDiagram> {
|
||||
}
|
||||
|
||||
static IRegex getRegexConcat() {
|
||||
return RegexConcat
|
||||
.build(CommandHideShowByGender.class.getName(),
|
||||
RegexLeaf.start(), //
|
||||
new RegexLeaf("COMMAND", "(hide|show)"), //
|
||||
RegexLeaf.spaceOneOrMore(), //
|
||||
new RegexLeaf("GENDER",
|
||||
"(?:(class|object|interface|enum|annotation|abstract|[\\p{L}0-9_.]+|[%g][^%g]+[%g]|\\<\\<.*\\>\\>)[%s]+)*?"), //
|
||||
new RegexOptional( //
|
||||
new RegexConcat( //
|
||||
new RegexLeaf("EMPTY", "(empty)"), //
|
||||
RegexLeaf.spaceOneOrMore()) //
|
||||
), //
|
||||
new RegexLeaf("PORTION",
|
||||
"(members?|attributes?|fields?|methods?|circles?|circled?|stereotypes?)"), //
|
||||
RegexLeaf.end());
|
||||
return RegexConcat.build(CommandHideShowByGender.class.getName(), RegexLeaf.start(), //
|
||||
new RegexLeaf("COMMAND", "(hide|show)"), //
|
||||
RegexLeaf.spaceOneOrMore(), //
|
||||
new RegexLeaf("GENDER",
|
||||
"(?:(class|object|interface|enum|annotation|abstract|[\\p{L}0-9_.]+|[%g][^%g]+[%g]|\\<\\<.*\\>\\>)[%s]+)*?"), //
|
||||
new RegexOptional( //
|
||||
new RegexConcat( //
|
||||
new RegexLeaf("EMPTY", "(empty)"), //
|
||||
RegexLeaf.spaceOneOrMore()) //
|
||||
), //
|
||||
new RegexLeaf("PORTION", "(members?|attributes?|fields?|methods?|circles?|circled?|stereotypes?)"), //
|
||||
RegexLeaf.end());
|
||||
}
|
||||
|
||||
private final EntityGender emptyByGender(EntityPortion portion) {
|
||||
@ -151,7 +148,7 @@ public class CommandHideShowByGender extends SingleLineCommand2<UmlDiagram> {
|
||||
final EntityPortion portion = getEntityPortion(arg.get("PORTION", 0));
|
||||
|
||||
EntityGender gender = null;
|
||||
final String arg1 = arg.get("GENDER", 0);
|
||||
String arg1 = arg.get("GENDER", 0);
|
||||
if (arg1 == null) {
|
||||
gender = EntityGenderUtils.all();
|
||||
} else if (arg1.equalsIgnoreCase("class")) {
|
||||
@ -169,6 +166,7 @@ public class CommandHideShowByGender extends SingleLineCommand2<UmlDiagram> {
|
||||
} else if (arg1.startsWith("<<")) {
|
||||
gender = EntityGenderUtils.byStereotype(arg1);
|
||||
} else {
|
||||
arg1 = StringUtils.eventuallyRemoveStartingAndEndingDoubleQuote(arg1);
|
||||
final Ident ident = diagram.buildLeafIdent(arg1);
|
||||
final Code code = diagram.V1972() ? ident : diagram.buildCode(arg1);
|
||||
final IEntity entity = diagram.getOrCreateLeaf(ident, code, null, null);
|
||||
|
@ -74,7 +74,7 @@ public class CompressionHuffman implements Compression {
|
||||
baos.close();
|
||||
return ByteArray.from(baos.toByteArray());
|
||||
} catch (IOException e) {
|
||||
System.err.println("Not Huffman");
|
||||
// System.err.println("Not Huffman");
|
||||
throw new NoPlantumlCompressionException(e);
|
||||
}
|
||||
}
|
||||
|
@ -75,8 +75,7 @@ public class CompressionZlib implements Compression {
|
||||
if (compresser.finished() == false) {
|
||||
return null;
|
||||
}
|
||||
final byte[] result = copyArray(output, compressedDataLength);
|
||||
return result;
|
||||
return copyArray(output, compressedDataLength);
|
||||
}
|
||||
|
||||
public ByteArray decompress(byte[] in) throws NoPlantumlCompressionException {
|
||||
@ -102,7 +101,7 @@ public class CompressionZlib implements Compression {
|
||||
// }
|
||||
return ByteArray.from(result);
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
// e.printStackTrace();
|
||||
throw new NoPlantumlCompressionException(e);
|
||||
}
|
||||
|
||||
|
@ -84,7 +84,7 @@ public class TranscoderImpl implements Transcoder {
|
||||
final String string = format == Format.UTF8 ? data.toUFT8String() : data.toUPF9String();
|
||||
return stringCompressor.decompress(string);
|
||||
} catch (Exception e) {
|
||||
System.err.println("Cannot decode string");
|
||||
// System.err.println("Cannot decode string");
|
||||
throw new NoPlantumlCompressionException(e);
|
||||
}
|
||||
}
|
||||
|
@ -74,26 +74,26 @@ public class PSystemDonors extends AbstractPSystem {
|
||||
private static final int COLS = 6;
|
||||
private static final int FREE_LINES = 6;
|
||||
|
||||
public static final String DONORS = "6xKB02mFkBap0p4nqLYNlhbPJVbOScQJ29Rd2SLXO15FTmFY3t3lzBZVI7yHNUdUDys8jcnDSPunH2m8"
|
||||
+ "UZnDhXcskRS7GbifBu8ZbU02Ka1y6oVdVUp8-_H9bI4bYAMIzTjKJ9zqAHiYuxFU2Ds0pdaRtdV6vjbf"
|
||||
+ "VF7gqGHj17uCxAl_DwULTVUgAin0bzMCcL7H4weOKYCYHVn_LEEoKnlVJNKQI08wTN45DzMfW5SdF0OM"
|
||||
+ "QGQtZFDgqcHKJ68JAQ7QA24a1ZEqvQJsEVAB31A_r1leqbfTGo9tGF6OAH9TZ-NsxJjeVhd4Y-0Flc2p"
|
||||
+ "m1nAEOelKFpSY97myw2XPHUziLL7bZmfWA4CMjYRFnJ9aTv3ChiCBH81DL0GyZOEI4QXDaquExOOK6KF"
|
||||
+ "jkZJ85MN-asuSnsMf_JSQ7WHM0HOS1PGGv3_GI_uZBxobiazDqKj8K-JU5LRZ_gLU2zjCw9l-j4aK3xR"
|
||||
+ "JyrSVkKfMm_fN7cVyw_E3ddNa9MhFumwCda4TpdCfM5-Qu7w4UYsEL59V4zPM4X0kAxK6-awDrwflGZ7"
|
||||
+ "R4YfMCTVOijh-X-w8fMDYULqiCXFzzUbfcImXQvCgg4tj2hJhFE9bjHGVt_9ewNpNN1DfTczW_GUQNEU"
|
||||
+ "_zzrIpD3SO2EJJ4BkaMW6AocLM-nWGXE2vqVSXCW6r2-J6xvo_9B_54V4BovH20A6v9syET7o4CkN9Y1"
|
||||
+ "LTsKOWGmUqevBn911oBKwX1qAwga8sNk-XacFTkMZPbbqWVNxGPZvCTqGd4HVfaBFCAmKYsQzTtQ9dO9"
|
||||
+ "hl8wpglkDTglujZUmdlAJMh_aW4_mvmHaN8ZYdrFkoKyr56OnLxoL1VVq-tauA4x5vp1ecNCQBCTCWqA"
|
||||
+ "Pv9nfZvYzA71y7SKifhT6vjw1U4xOIkucP46pvScrzJa4Wc_xIp7mnQ04dFnYbrHuP92rImxbQjh2PCZ"
|
||||
+ "Lez2XloEzGaibMdXnjFFvgw5PsIFWZgSTyUgexvDQTuMK5rC4wIbXJ9dI9E7hGKoi5QdPwaDiFkb7GlM"
|
||||
+ "DZzPiU9GVDj4suqR54o1wIBS1mqYKIvebEWb9ea1lklZL-h9VHriV7TFAyP1qa8I0rN8rLa_E3KDdbje"
|
||||
+ "6kir-d-ijSEoy-VVwyWcf_Quzrq4qNEG7Fzk2j1HJY22fu6ljtmoUIV1gh58JqhcoZLAJmC92tRIExEe"
|
||||
+ "HuSPhJjUB3SZ5xry-r2LFvrSWOlvu1jMNAJJvBClSTBQeHvKKTjtlh4uo67WxwBAX4okSlNQ60cTGIzE"
|
||||
+ "QkmsKt6NLGgmO7PS9h3tgy-QQRnap7t7KjtmE91lZiYGOlJGmfgQriQ5m4RfpEyjR4Coe_yBHlIBQgsV"
|
||||
+ "U_NGUr9-ZnI1Xczda75691WkaWuCZ9lxd6ZGpJSCyiBKdEXqiVZAHLSCEr-mmdvZFo8B2IziQwQ9iDVH"
|
||||
+ "hURKnrmyfnt8CRQGVMmscbx8gmWDP66nJgzEB9HoF90YAPYpjumNaNRI6rpQEu1EKJ3-VxSXd5veVaHc"
|
||||
+ "bNdrHZ6NS-x5FOXqk3-DnAPTDZEowLsdAt9Z10y0";
|
||||
public static final String DONORS = "6y8B02mFk3cOSJIBSEBLlhdPHgj_M8aA4IpF4uh3m2AUxWR47-3UwN6_aVuYkjAzRveHRVbhZfzd3DL0"
|
||||
+ "qEFnwshOvdzxy6_EaXV1DrE22qW1-V5gD_8XxyXnUgJAa1B4Kj7zbudRqwtZGcMSg4Oe1ufR6zvtnkRP"
|
||||
+ "QNpnwj44RGH-3Eoh_pTrbNLvLHMc1TsjC0QZeX4kOoh6dWhScl-V2gXm2lOT2lJqOpfrSHqELLIYkRcy"
|
||||
+ "LjAS3BZHDSwXmvAg6AE9b5njf90p1pFqv6JqK_gXZzw_j0leq5fTGpndGF6OAJssRdixikzW-hMAWqGw"
|
||||
+ "n8BD0dSevQWyGV5pqus7j0WIkdQHZMquyfidCHXgO8M--KCpET9xI6IN8SL3HWqKvBoD0TBer6C9Psk_"
|
||||
+ "1bJVWor6D0ZLvN7ZxhyEorDkDXfU0HOP7jG2MWZoFzW9dz5NNZ8vvwQ85V8snNFOLipNaW_JDXLzYu-c"
|
||||
+ "G3XjFpIBn5McR3saSUHrpBywEkHTGrPU_MQCKSWZcClBN0hkbnQe7u4UMXEHuckLNnOI4AuZzQ9tdTkl"
|
||||
+ "r2p2AHqg5UlqIsnvpVr3bpBOZ6Zk3XPp7_svt9K8zj2LIJNqXbPzcdK-KP8Qwk-7lBfqlWkkgLUxTvpM"
|
||||
+ "PzgSP_zttTBCK0xGcILcGRS21CBLj1ekDX31OQ7BG-u2j07bq-HMF2qVOeyyGV3cCeEki97I2_4y2Nd8"
|
||||
+ "HGWpqA4xKbG0iwUCUlAGTOE7PXk2RaMLV7gvktw6ISksPMDccRJ1Uhl36CKndT0ySR_C1HvXM6yMpUvk"
|
||||
+ "xIFi4jpcS9fFtRMQLmbjR-6zu2AqVyY0ds7EY4YbwPhxddQ9UwWZC4kmuAakjfVRmJyFtR_W58jMCADD"
|
||||
+ "EsGET2uaewRTelIXmV2t2bd7jkr5VO2juJe_X9cH1i-N9hUqv18FQTjPJe8l05NMuXExLE4y8PfMaCpH"
|
||||
+ "jOJ94Qid8KD-f_e4bgfoOUd6Z-cknZEcHq4UpdjarQs-JIbk2wWbfWdoia9OCwGemjO26RXMqhFS1zZz"
|
||||
+ "r8u5VvkV7DXoABvjekt63HQcm7GNxeq4aMXs92LwYIbHmFV-U4ezCzV1ndVtj68Sf1QI6AZ27Cx_mHXf"
|
||||
+ "l6vJqrYlqVzjhRqiEt_-lOviSkhrUrzT43q7cV4VfG0TvGHcy3RmDUGpoTiBArcX76IuSgtIqq1XmNvw"
|
||||
+ "vqVKrJAZVoUAvPRaebMq3rN_tOzo39oD3IikyYcAsPSOQUsb7bIgxVk_M2no4Folg38dawktRZL6GcUG"
|
||||
+ "nRaRkyrKp7sj3YnO7PC9WZtrsUaQJnbpRv4g3JU0VBz7GvBHGmjRQjeyJmIsg_Fpti8s93BwRp2Ydwgr"
|
||||
+ "UtohX-63z76g23HyXqCQ5ym4mqNoWGAvEUT4Wsw-yP0NrK8DBEsOOPSANkXlvaT48U6ORNmWo6qkbhkz"
|
||||
+ "a4Fsa7rcDOeEAAeB3RIms69d4WjLZWSgae8visKyZzf1ct1rxm0wHS7vVzw6S6wY-GMPLURP6ybSuRaN"
|
||||
+ "Pn3fS7ucYLrJjcwqOTzekMphYjoHjKY7jVzt0000";
|
||||
|
||||
/*
|
||||
* Special thanks to our sponsors and donors:
|
||||
|
@ -76,6 +76,7 @@ import net.sourceforge.plantuml.graphic.TextBlockRaw;
|
||||
import net.sourceforge.plantuml.graphic.TextBlockUtils;
|
||||
import net.sourceforge.plantuml.graphic.VerticalAlignment;
|
||||
import net.sourceforge.plantuml.security.SecurityUtils;
|
||||
import net.sourceforge.plantuml.svek.GraphvizCrash;
|
||||
import net.sourceforge.plantuml.svek.TextBlockBackcolored;
|
||||
import net.sourceforge.plantuml.ugraphic.AffineTransformType;
|
||||
import net.sourceforge.plantuml.ugraphic.PixelImage;
|
||||
@ -93,6 +94,7 @@ import net.sourceforge.plantuml.ugraphic.color.HColorUtils;
|
||||
import net.sourceforge.plantuml.ugraphic.txt.UGraphicTxt;
|
||||
import net.sourceforge.plantuml.version.LicenseInfo;
|
||||
import net.sourceforge.plantuml.version.PSystemVersion;
|
||||
import net.sourceforge.plantuml.version.Version;
|
||||
|
||||
public abstract class PSystemError extends AbstractPSystem {
|
||||
|
||||
@ -127,6 +129,7 @@ public abstract class PSystemError extends AbstractPSystem {
|
||||
final FontConfiguration fc0 = GraphicStrings.sansSerif14(HColorUtils.BLACK).bold();
|
||||
final FontConfiguration fc1 = GraphicStrings.sansSerif14(HColorUtils.MY_GREEN).bold();
|
||||
final FontConfiguration fc2 = GraphicStrings.sansSerif14(HColorUtils.RED).bold();
|
||||
final FontConfiguration fc4 = GraphicStrings.sansSerif12(HColorUtils.MY_GREEN).bold().italic();
|
||||
|
||||
final List<String> fullBody = getTextFullBody();
|
||||
final TextBlock result0 = TextBlockUtils.addBackcolor(
|
||||
@ -134,14 +137,23 @@ public abstract class PSystemError extends AbstractPSystem {
|
||||
final TextBlock result1 = new TextBlockRaw(allButLast(fullBody), fc1);
|
||||
final TextBlock result2 = new TextBlockRaw(onlyLast(fullBody), fc1.wave(HColorUtils.RED));
|
||||
final TextBlock result3 = new TextBlockRaw(getTextError(), fc2);
|
||||
final TextBlock result4 = TextBlockUtils.withMargin(new TextBlockRaw(header(), fc4), 0, 2, 0, 8);
|
||||
TextBlock result = result0;
|
||||
result = TextBlockUtils.mergeTB(result, result1, HorizontalAlignment.LEFT);
|
||||
result = TextBlockUtils.mergeTB(result, result2, HorizontalAlignment.LEFT);
|
||||
result = TextBlockUtils.mergeTB(result, result3, HorizontalAlignment.LEFT);
|
||||
result = TextBlockUtils.mergeTB(result4, result, HorizontalAlignment.LEFT);
|
||||
result = TextBlockUtils.withMargin(result, 5, 5);
|
||||
return TextBlockUtils.addBackcolor(result, HColorUtils.BLACK);
|
||||
}
|
||||
|
||||
private List<String> header() {
|
||||
final List<String> result = new ArrayList<String>();
|
||||
result.add("PlantUML " + Version.versionString());
|
||||
GraphvizCrash.checkOldVersionWarning(result);
|
||||
return result;
|
||||
}
|
||||
|
||||
private List<String> getPureAsciiFormatted() {
|
||||
final List<String> result = getTextFromStack();
|
||||
result.addAll(getTextFullBody());
|
||||
@ -326,8 +338,7 @@ public abstract class PSystemError extends AbstractPSystem {
|
||||
if (qrcode == null) {
|
||||
result = text;
|
||||
} else {
|
||||
final UImage qr = new UImage(
|
||||
new PixelImage(qrcode, AffineTransformType.TYPE_NEAREST_NEIGHBOR)).scale(3);
|
||||
final UImage qr = new UImage(new PixelImage(qrcode, AffineTransformType.TYPE_NEAREST_NEIGHBOR)).scale(3);
|
||||
result = TextBlockUtils.mergeLR(text, TextBlockUtils.fromUImage(qr), VerticalAlignment.CENTER);
|
||||
}
|
||||
return TextBlockUtils.addBackcolor(result, backColor);
|
||||
@ -371,9 +382,8 @@ public abstract class PSystemError extends AbstractPSystem {
|
||||
if (qrcode == null) {
|
||||
ug.apply(new UTranslate(1, 1)).draw(message);
|
||||
} else {
|
||||
final UImage qr = new UImage(
|
||||
new PixelImage(qrcode, AffineTransformType.TYPE_NEAREST_NEIGHBOR))
|
||||
.scale(scale);
|
||||
final UImage qr = new UImage(new PixelImage(qrcode, AffineTransformType.TYPE_NEAREST_NEIGHBOR))
|
||||
.scale(scale);
|
||||
ug.apply(new UTranslate(1, (imHeight - message.getHeight()) / 2)).draw(message);
|
||||
ug.apply(new UTranslate(1 + message.getWidth(), (imHeight - qr.getHeight()) / 2)).draw(qr);
|
||||
}
|
||||
@ -418,9 +428,8 @@ public abstract class PSystemError extends AbstractPSystem {
|
||||
if (qrcode == null) {
|
||||
ug.apply(new UTranslate(1, 1)).draw(message);
|
||||
} else {
|
||||
final UImage qr = new UImage(
|
||||
new PixelImage(qrcode, AffineTransformType.TYPE_NEAREST_NEIGHBOR))
|
||||
.scale(scale);
|
||||
final UImage qr = new UImage(new PixelImage(qrcode, AffineTransformType.TYPE_NEAREST_NEIGHBOR))
|
||||
.scale(scale);
|
||||
ug.apply(new UTranslate(1, (imHeight - message.getHeight()) / 2)).draw(message);
|
||||
ug.apply(new UTranslate(1 + message.getWidth(), (imHeight - qr.getHeight()) / 2)).draw(qr);
|
||||
}
|
||||
|
@ -115,7 +115,7 @@ public class GraphicStrings extends AbstractTextBlock implements IEntityImage {
|
||||
CreoleMode.FULL);
|
||||
}
|
||||
|
||||
private static FontConfiguration sansSerif12(HColor color) {
|
||||
public static FontConfiguration sansSerif12(HColor color) {
|
||||
return new FontConfiguration(UFont.sansSerif(12), color, hyperlinkColor, useUnderlineForHyperlink);
|
||||
}
|
||||
|
||||
|
@ -56,6 +56,10 @@ class USymbolStack extends USymbol {
|
||||
|
||||
private void drawQueue(UGraphic ug, double width, double height, boolean shadowing, double roundCorner) {
|
||||
final double border = 15;
|
||||
|
||||
final URectangle rect = new URectangle(width - 2 * border, height).rounded(roundCorner);
|
||||
ug.apply(new HColorNone()).apply(UTranslate.dx(border)).draw(rect);
|
||||
|
||||
final UPath path = new UPath();
|
||||
if (roundCorner == 0) {
|
||||
path.moveTo(0, 0);
|
||||
@ -80,8 +84,6 @@ class USymbolStack extends USymbol {
|
||||
path.setDeltaShadow(3.0);
|
||||
}
|
||||
ug.apply(new HColorNone().bg()).draw(path);
|
||||
final URectangle rect = new URectangle(width - 2 * border, height).rounded(roundCorner);
|
||||
ug.apply(new HColorNone()).apply(UTranslate.dx(border)).draw(rect);
|
||||
}
|
||||
|
||||
private Margin getMargin() {
|
||||
|
@ -49,6 +49,7 @@ import net.sourceforge.plantuml.cucadiagram.Stereotype;
|
||||
import net.sourceforge.plantuml.graphic.SymbolContext;
|
||||
import net.sourceforge.plantuml.graphic.color.ColorType;
|
||||
import net.sourceforge.plantuml.graphic.color.Colors;
|
||||
import net.sourceforge.plantuml.skin.ComponentType;
|
||||
import net.sourceforge.plantuml.style.Style;
|
||||
import net.sourceforge.plantuml.style.StyleBuilder;
|
||||
import net.sourceforge.plantuml.style.StyleSignature;
|
||||
@ -89,8 +90,8 @@ public class Participant implements SpecificBackcolorable, WithStyle {
|
||||
return new Style[] { tmp, stereo };
|
||||
}
|
||||
|
||||
public Participant(ParticipantType type, String code, Display display, Set<EntityPortion> hiddenPortions,
|
||||
int order, StyleBuilder styleBuilder) {
|
||||
public Participant(ParticipantType type, String code, Display display, Set<EntityPortion> hiddenPortions, int order,
|
||||
StyleBuilder styleBuilder) {
|
||||
this.hiddenPortions = hiddenPortions;
|
||||
this.styleBuilder = styleBuilder;
|
||||
this.order = order;
|
||||
@ -203,6 +204,7 @@ public class Participant implements SpecificBackcolorable, WithStyle {
|
||||
}
|
||||
|
||||
public SkinParamBackcolored getSkinParamBackcolored(ISkinParam skinParam) {
|
||||
final ColorParam param = getColorParam();
|
||||
HColor specificBackColor = getColors(skinParam).getColor(ColorType.BACK);
|
||||
final boolean clickable = getUrl() != null;
|
||||
final HColor stereoBackColor = skinParam.getHtmlColor(getBackgroundColorParam(), getStereotype(), clickable);
|
||||
@ -210,10 +212,9 @@ public class Participant implements SpecificBackcolorable, WithStyle {
|
||||
specificBackColor = stereoBackColor;
|
||||
}
|
||||
final SkinParamBackcolored result = new SkinParamBackcolored(skinParam, specificBackColor, clickable);
|
||||
final HColor stereoBorderColor = skinParam.getHtmlColor(ColorParam.participantBorder, getStereotype(),
|
||||
clickable);
|
||||
final HColor stereoBorderColor = skinParam.getHtmlColor(param, getStereotype(), clickable);
|
||||
if (stereoBorderColor != null) {
|
||||
result.forceColor(ColorParam.participantBorder, stereoBorderColor);
|
||||
result.forceColor(param, stereoBorderColor);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
@ -222,4 +223,25 @@ public class Participant implements SpecificBackcolorable, WithStyle {
|
||||
return order;
|
||||
}
|
||||
|
||||
private ColorParam getColorParam() {
|
||||
if (getType() == ParticipantType.PARTICIPANT) {
|
||||
return ColorParam.participantBorder;
|
||||
} else if (getType() == ParticipantType.ACTOR) {
|
||||
return ColorParam.actorBorder;
|
||||
} else if (getType() == ParticipantType.BOUNDARY) {
|
||||
return ColorParam.boundaryBorder;
|
||||
} else if (getType() == ParticipantType.CONTROL) {
|
||||
return ColorParam.controlBorder;
|
||||
} else if (getType() == ParticipantType.ENTITY) {
|
||||
return ColorParam.entityBorder;
|
||||
} else if (getType() == ParticipantType.QUEUE) {
|
||||
return ColorParam.queueBorder;
|
||||
} else if (getType() == ParticipantType.DATABASE) {
|
||||
return ColorParam.databaseBorder;
|
||||
} else if (getType() == ParticipantType.COLLECTIONS) {
|
||||
return ColorParam.collectionsBorder;
|
||||
}
|
||||
return ColorParam.participantBorder;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -38,6 +38,7 @@ package net.sourceforge.plantuml.sequencediagram.graphic;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import net.sourceforge.plantuml.ColorParam;
|
||||
import net.sourceforge.plantuml.Dimension2DDouble;
|
||||
import net.sourceforge.plantuml.ISkinParam;
|
||||
import net.sourceforge.plantuml.OptionFlags;
|
||||
|
@ -106,19 +106,19 @@ public class GraphvizCrash extends AbstractTextBlock implements IEntityImage {
|
||||
final long days = (System.currentTimeMillis() - Version.compileTime()) / 1000L / 3600 / 24;
|
||||
if (days >= 90) {
|
||||
strings.add("This version of PlantUML is " + days + " days old, so you should");
|
||||
strings.add(" consider upgrading from http://plantuml.com/download");
|
||||
strings.add(" consider upgrading from https://plantuml.com/download");
|
||||
}
|
||||
}
|
||||
|
||||
public static void pleaseGoTo(final List<String> strings) {
|
||||
strings.add(" ");
|
||||
strings.add("Please go to http://plantuml.com/graphviz-dot to check your GraphViz version.");
|
||||
strings.add("Please go to https://plantuml.com/graphviz-dot to check your GraphViz version.");
|
||||
strings.add(" ");
|
||||
}
|
||||
|
||||
public static void youShouldSendThisDiagram(final List<String> strings) {
|
||||
strings.add("You should send this diagram and this image to <b>plantuml@gmail.com</b> or");
|
||||
strings.add("post to <b>http://plantuml.com/qa</b> to solve this issue.");
|
||||
strings.add("post to <b>https://plantuml.com/qa</b> to solve this issue.");
|
||||
strings.add("You can try to turn arround this issue by simplifing your diagram.");
|
||||
}
|
||||
|
||||
|
@ -51,16 +51,12 @@ import net.sourceforge.plantuml.Log;
|
||||
public class DriverShadowedG2d {
|
||||
|
||||
private ConvolveOp getConvolveOp(int blurRadius, double dpiFactor) {
|
||||
blurRadius = (int) (blurRadius * dpiFactor);
|
||||
final int blurRadius2 = blurRadius * blurRadius;
|
||||
final float blurRadius2F = blurRadius2;
|
||||
// final float weight = (float) (1.0 / blurRadius2F / dpiFactor);
|
||||
final float weight = (float) (1.0 / blurRadius2F);
|
||||
final float[] elements = new float[blurRadius2];
|
||||
for (int k = 0; k < blurRadius2; k++) {
|
||||
elements[k] = weight;
|
||||
final float[] elements = new float[(int) (blurRadius * blurRadius * dpiFactor)];
|
||||
for (int k = 0; k < elements.length; k++) {
|
||||
elements[k] = (float) (1.0 / elements.length);
|
||||
}
|
||||
final Kernel myKernel = new Kernel(blurRadius, blurRadius, elements);
|
||||
final Kernel myKernel = new Kernel((int) (blurRadius * Math.sqrt(dpiFactor)),
|
||||
(int) (blurRadius * Math.sqrt(dpiFactor)), elements);
|
||||
|
||||
// if EDGE_NO_OP is not selected, EDGE_ZERO_FILL is the default which
|
||||
// creates a black border
|
||||
|
@ -60,6 +60,7 @@ import net.sourceforge.plantuml.security.ImageIO;
|
||||
import net.sourceforge.plantuml.security.SFile;
|
||||
import net.sourceforge.plantuml.security.SecurityProfile;
|
||||
import net.sourceforge.plantuml.security.SecurityUtils;
|
||||
import net.sourceforge.plantuml.svek.GraphvizCrash;
|
||||
import net.sourceforge.plantuml.svek.TextBlockBackcolored;
|
||||
import net.sourceforge.plantuml.ugraphic.ImageBuilder;
|
||||
import net.sourceforge.plantuml.ugraphic.color.ColorMapperIdentity;
|
||||
@ -170,6 +171,7 @@ public class PSystemVersion extends AbstractPSystem {
|
||||
final List<String> strings = new ArrayList<String>();
|
||||
strings.add("<b>PlantUML version " + Version.versionString() + "</b> (" + Version.compileTimeString() + ")");
|
||||
strings.add("(" + License.getCurrent() + " source distribution)");
|
||||
GraphvizCrash.checkOldVersionWarning(strings);
|
||||
if (OptionFlags.ALLOW_INCLUDE) {
|
||||
if (SecurityUtils.getSecurityProfile() == SecurityProfile.UNSECURE) {
|
||||
strings.add("Loaded from " + Version.getJarPath());
|
||||
|
@ -44,7 +44,7 @@ public class Version {
|
||||
private static final int MAJOR_SEPARATOR = 1000000;
|
||||
|
||||
public static int version() {
|
||||
return 1202014;
|
||||
return 1202015;
|
||||
}
|
||||
|
||||
public static int versionPatched() {
|
||||
@ -93,7 +93,7 @@ public class Version {
|
||||
}
|
||||
|
||||
public static long compileTime() {
|
||||
return 1592662474056L;
|
||||
return 1593344385646L;
|
||||
}
|
||||
|
||||
public static String compileTimeString() {
|
||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
Reference in New Issue
Block a user