mirror of
https://github.com/octoleo/plantuml.git
synced 2024-12-22 10:59:01 +00:00
Skinparam fix
This commit is contained in:
parent
e7785ff144
commit
90a19ab7e1
@ -206,7 +206,8 @@ public class SkinParam implements ISkinParam {
|
|||||||
|
|
||||||
if (UseStyle.useBetaStyle()) {
|
if (UseStyle.useBetaStyle()) {
|
||||||
applyPendingStyleMigration();
|
applyPendingStyleMigration();
|
||||||
final FromSkinparamToStyle convertor = new FromSkinparamToStyle(key2, value, getCurrentStyleBuilder());
|
final FromSkinparamToStyle convertor = new FromSkinparamToStyle(key2);
|
||||||
|
convertor.convertNow(value, getCurrentStyleBuilder());
|
||||||
for (Style style : convertor.getStyles())
|
for (Style style : convertor.getStyles())
|
||||||
muteStyle(style);
|
muteStyle(style);
|
||||||
} else {
|
} else {
|
||||||
@ -231,8 +232,8 @@ public class SkinParam implements ISkinParam {
|
|||||||
|
|
||||||
public void applyPendingStyleMigration() {
|
public void applyPendingStyleMigration() {
|
||||||
for (Entry<String, String> ent : paramsPendingForStyleMigration.entrySet()) {
|
for (Entry<String, String> ent : paramsPendingForStyleMigration.entrySet()) {
|
||||||
final FromSkinparamToStyle convertor = new FromSkinparamToStyle(ent.getKey(), ent.getValue(),
|
final FromSkinparamToStyle convertor = new FromSkinparamToStyle(ent.getKey());
|
||||||
getCurrentStyleBuilder());
|
convertor.convertNow(ent.getValue(), getCurrentStyleBuilder());
|
||||||
for (Style style : convertor.getStyles())
|
for (Style style : convertor.getStyles())
|
||||||
muteStyle(style);
|
muteStyle(style);
|
||||||
}
|
}
|
||||||
@ -726,7 +727,7 @@ public class SkinParam implements ISkinParam {
|
|||||||
public ColorMapper getColorMapper() {
|
public ColorMapper getColorMapper() {
|
||||||
if (themeStyle == ThemeStyle.DARK)
|
if (themeStyle == ThemeStyle.DARK)
|
||||||
return new ColorMapperForceDark();
|
return new ColorMapperForceDark();
|
||||||
|
|
||||||
final String monochrome = getValue("monochrome");
|
final String monochrome = getValue("monochrome");
|
||||||
if ("true".equals(monochrome))
|
if ("true".equals(monochrome))
|
||||||
return new ColorMapperMonochrome(false);
|
return new ColorMapperMonochrome(false);
|
||||||
|
@ -46,13 +46,27 @@ import java.util.StringTokenizer;
|
|||||||
public class FromSkinparamToStyle {
|
public class FromSkinparamToStyle {
|
||||||
|
|
||||||
static class Data {
|
static class Data {
|
||||||
final private PName propertyName;
|
|
||||||
final private SName[] styleNames;
|
final private SName[] styleNames;
|
||||||
|
final private PName propertyName;
|
||||||
|
|
||||||
Data(PName propertyName, SName[] styleNames) {
|
Data(SName[] styleNames, PName propertyName) {
|
||||||
this.propertyName = propertyName;
|
this.propertyName = propertyName;
|
||||||
this.styleNames = styleNames;
|
this.styleNames = styleNames;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
final StringBuilder sb = new StringBuilder();
|
||||||
|
sb.append("[");
|
||||||
|
for (SName s : styleNames) {
|
||||||
|
sb.append(s.toString());
|
||||||
|
sb.append(".");
|
||||||
|
}
|
||||||
|
sb.setLength(sb.length() - 1);
|
||||||
|
sb.append("]");
|
||||||
|
sb.append(propertyName.toString());
|
||||||
|
return sb.toString();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static final Map<String, List<Data>> knowlegde = new HashMap<String, List<Data>>();
|
private static final Map<String, List<Data>> knowlegde = new HashMap<String, List<Data>>();
|
||||||
@ -117,7 +131,7 @@ public class FromSkinparamToStyle {
|
|||||||
addConvert("activityStartColor", PName.BackGroundColor, SName.circle, SName.start);
|
addConvert("activityStartColor", PName.BackGroundColor, SName.circle, SName.start);
|
||||||
addConvert("activityEndColor", PName.LineColor, SName.circle, SName.end);
|
addConvert("activityEndColor", PName.LineColor, SName.circle, SName.end);
|
||||||
addConvert("activityStopColor", PName.LineColor, SName.circle, SName.stop);
|
addConvert("activityStopColor", PName.LineColor, SName.circle, SName.stop);
|
||||||
addConvert("activityBarColor", PName.LineColor, SName.activityBar);
|
addConvert("activityBarColor", PName.BackGroundColor, SName.activityBar);
|
||||||
addConvert("activityBorderColor", PName.LineColor, SName.activity);
|
addConvert("activityBorderColor", PName.LineColor, SName.activity);
|
||||||
addConvert("activityBorderThickness", PName.LineThickness, SName.activity);
|
addConvert("activityBorderThickness", PName.LineThickness, SName.activity);
|
||||||
addConvert("activityBackgroundColor", PName.BackGroundColor, SName.activity);
|
addConvert("activityBackgroundColor", PName.BackGroundColor, SName.activity);
|
||||||
@ -206,38 +220,70 @@ public class FromSkinparamToStyle {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private final List<Style> styles = new ArrayList<>();
|
private final List<Style> styles = new ArrayList<>();
|
||||||
private String stereo = null;
|
private final String stereo;
|
||||||
|
private final String key;
|
||||||
|
|
||||||
|
public FromSkinparamToStyle(String key) {
|
||||||
|
|
||||||
public FromSkinparamToStyle(String key, String value, final AutomaticCounter counter) {
|
|
||||||
if (value.equals("right:right")) {
|
|
||||||
value = "right";
|
|
||||||
}
|
|
||||||
if (key.contains("<<")) {
|
if (key.contains("<<")) {
|
||||||
final StringTokenizer st = new StringTokenizer(key, "<>");
|
final StringTokenizer st = new StringTokenizer(key, "<>");
|
||||||
key = st.nextToken();
|
this.key = st.nextToken();
|
||||||
stereo = st.nextToken();
|
this.stereo = st.nextToken();
|
||||||
|
} else {
|
||||||
|
this.key = key;
|
||||||
|
this.stereo = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public void convertNow(String value, final AutomaticCounter counter) {
|
||||||
|
if (value.equals("right:right"))
|
||||||
|
value = "right";
|
||||||
|
|
||||||
final List<Data> datas = knowlegde.get(key.toLowerCase());
|
final List<Data> datas = knowlegde.get(key.toLowerCase());
|
||||||
|
|
||||||
if (datas != null) {
|
if (datas == null) {
|
||||||
for (Data data : datas) {
|
if (key.equalsIgnoreCase("shadowing"))
|
||||||
addStyle(data.propertyName, ValueImpl.regular(value, counter), data.styleNames);
|
addStyle(PName.Shadowing, getShadowingValue(value, counter), SName.root);
|
||||||
}
|
else if (key.equalsIgnoreCase("noteshadowing"))
|
||||||
} else if (key.equalsIgnoreCase("shadowing")) {
|
addStyle(PName.Shadowing, getShadowingValue(value, counter), SName.root, SName.note);
|
||||||
addStyle(PName.Shadowing, getShadowingValue(value, counter), SName.root);
|
return;
|
||||||
} else if (key.equalsIgnoreCase("noteshadowing")) {
|
|
||||||
addStyle(PName.Shadowing, getShadowingValue(value, counter), SName.root, SName.note);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
final boolean complex = value.contains(";");
|
||||||
|
if (complex) {
|
||||||
|
// System.err.println("key=" + key + " value=" + value);
|
||||||
|
final StringTokenizer st = new StringTokenizer(value, ";");
|
||||||
|
value = st.nextToken();
|
||||||
|
while (st.hasMoreTokens()) {
|
||||||
|
final String read = st.nextToken();
|
||||||
|
// System.err.println("read:" + read);
|
||||||
|
if (read.startsWith("text:")) {
|
||||||
|
final String value2 = read.split(":")[1];
|
||||||
|
for (Data data : datas)
|
||||||
|
addStyle(PName.FontColor, ValueImpl.regular(value2, counter), data.styleNames);
|
||||||
|
} else if (read.startsWith("line.dotted")) {
|
||||||
|
for (Data data : datas)
|
||||||
|
addStyle(PName.LineStyle, ValueImpl.regular("1;3", counter), data.styleNames);
|
||||||
|
} else if (read.startsWith("line.dashed")) {
|
||||||
|
for (Data data : datas)
|
||||||
|
addStyle(PName.LineStyle, ValueImpl.regular("7;7", counter), data.styleNames);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for (Data data : datas)
|
||||||
|
addStyle(data.propertyName, ValueImpl.regular(value, counter), data.styleNames);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private ValueImpl getShadowingValue(final String value, final AutomaticCounter counter) {
|
private ValueImpl getShadowingValue(final String value, final AutomaticCounter counter) {
|
||||||
if (value.equalsIgnoreCase("false") || value.equalsIgnoreCase("no")) {
|
if (value.equalsIgnoreCase("false") || value.equalsIgnoreCase("no"))
|
||||||
return ValueImpl.regular("0", counter);
|
return ValueImpl.regular("0", counter);
|
||||||
}
|
|
||||||
if (value.equalsIgnoreCase("true") || value.equalsIgnoreCase("yes")) {
|
if (value.equalsIgnoreCase("true") || value.equalsIgnoreCase("yes"))
|
||||||
return ValueImpl.regular("3", counter);
|
return ValueImpl.regular("3", counter);
|
||||||
}
|
|
||||||
return ValueImpl.regular(value, counter);
|
return ValueImpl.regular(value, counter);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -263,7 +309,7 @@ public class FromSkinparamToStyle {
|
|||||||
datas = new ArrayList<>();
|
datas = new ArrayList<>();
|
||||||
knowlegde.put(skinparam, datas);
|
knowlegde.put(skinparam, datas);
|
||||||
}
|
}
|
||||||
datas.add(new Data(propertyName, styleNames));
|
datas.add(new Data(styleNames, propertyName));
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void addConFont(String skinparam, SName... styleNames) {
|
private static void addConFont(String skinparam, SName... styleNames) {
|
||||||
|
@ -207,8 +207,7 @@ public class HColorSimple extends HColorAbstract implements HColor {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public HColor withDark(HColor dark) {
|
public HColor withDark(HColor dark) {
|
||||||
return this;
|
return new HColorSimple(color, monochrome, dark);
|
||||||
// return new HColorSimple(color, monochrome, dark);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
Loading…
Reference in New Issue
Block a user