summaryrefslogtreecommitdiff
path: root/src/net/sourceforge/plantuml/svek/Line.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/net/sourceforge/plantuml/svek/Line.java')
-rw-r--r--src/net/sourceforge/plantuml/svek/Line.java25
1 files changed, 21 insertions, 4 deletions
diff --git a/src/net/sourceforge/plantuml/svek/Line.java b/src/net/sourceforge/plantuml/svek/Line.java
index 5b31032..ba4fed8 100644
--- a/src/net/sourceforge/plantuml/svek/Line.java
+++ b/src/net/sourceforge/plantuml/svek/Line.java
@@ -80,6 +80,8 @@ import net.sourceforge.plantuml.posimo.DotPath;
import net.sourceforge.plantuml.posimo.Moveable;
import net.sourceforge.plantuml.posimo.Positionable;
import net.sourceforge.plantuml.posimo.PositionableUtils;
+import net.sourceforge.plantuml.skin.VisibilityModifier;
+import net.sourceforge.plantuml.skin.rose.Rose;
import net.sourceforge.plantuml.svek.extremity.Extremity;
import net.sourceforge.plantuml.svek.extremity.ExtremityFactory;
import net.sourceforge.plantuml.svek.extremity.ExtremityFactoryExtends;
@@ -264,10 +266,7 @@ public class Line implements Moveable, Hideable {
labelOnly = new DirectionalTextBlock(right, left, up, down);
}
} else {
- final double marginLabel = startUid.equalsId(endUid) ? 6 : 1;
- final TextBlock label = TextBlockUtils.withMargin(
- link.getLabel().create(labelFont, skinParam.getDefaultTextAlignment(HorizontalAlignment.CENTER),
- skinParam, skinParam.maxMessageSize()), marginLabel, marginLabel);
+ final TextBlock label = getLineLabel(link, skinParam, labelFont);
if (getLinkArrow() == LinkArrow.NONE) {
labelOnly = label;
} else {
@@ -328,6 +327,24 @@ public class Line implements Moveable, Hideable {
}
+ private TextBlock getLineLabel(Link link, ISkinParam skinParam, FontConfiguration labelFont) {
+ final double marginLabel = startUid.equalsId(endUid) ? 6 : 1;
+ TextBlock label = link.getLabel().create(labelFont,
+ skinParam.getDefaultTextAlignment(HorizontalAlignment.CENTER), skinParam, skinParam.maxMessageSize());
+ final VisibilityModifier visibilityModifier = link.getVisibilityModifier();
+ if (visibilityModifier != null) {
+ final Rose rose = new Rose();
+ // final HtmlColor back = visibilityModifier.getBackground() == null ? null : rose.getHtmlColor(skinParam,
+ // visibilityModifier.getBackground());
+ final HtmlColor fore = rose.getHtmlColor(skinParam, visibilityModifier.getForeground());
+ TextBlock visibility = visibilityModifier.getUBlock(skinParam.classAttributeIconSize(), fore, null, false);
+ visibility = TextBlockUtils.withMargin(visibility, 0, 1, 2, 0);
+ label = TextBlockUtils.mergeLR(visibility, label, VerticalAlignment.CENTER);
+ }
+ label = TextBlockUtils.withMargin(label, marginLabel, marginLabel);
+ return label;
+ }
+
public boolean hasNoteLabelText() {
return labelText != null;
}