From 0618e6ce36e299b03babb718461aa6f909cd19ae Mon Sep 17 00:00:00 2001 From: Soeren Domroes Date: Mon, 22 Aug 2022 13:29:07 +0200 Subject: [PATCH 1/3] Remove decorator of empty label. Needs https://github.com/kieler/KLighD/pull/139 to work. Signed-off-by: Soeren Domroes --- .../ui/synthesis/labels/TransitionPriorityLabelManager.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/plugins/de.cau.cs.kieler.sccharts.ui/src/de/cau/cs/kieler/sccharts/ui/synthesis/labels/TransitionPriorityLabelManager.java b/plugins/de.cau.cs.kieler.sccharts.ui/src/de/cau/cs/kieler/sccharts/ui/synthesis/labels/TransitionPriorityLabelManager.java index 5680ddff55..2df77c9ab9 100644 --- a/plugins/de.cau.cs.kieler.sccharts.ui/src/de/cau/cs/kieler/sccharts/ui/synthesis/labels/TransitionPriorityLabelManager.java +++ b/plugins/de.cau.cs.kieler.sccharts.ui/src/de/cau/cs/kieler/sccharts/ui/synthesis/labels/TransitionPriorityLabelManager.java @@ -24,6 +24,7 @@ import de.cau.cs.kieler.klighd.kgraph.KLabel; import de.cau.cs.kieler.klighd.krendering.KRendering; import de.cau.cs.kieler.klighd.krendering.KRenderingRef; +import de.cau.cs.kieler.klighd.labels.decoration.LabelDecorationConfigurator; import de.cau.cs.kieler.klighd.labels.management.AbstractKlighdLabelManager; import de.cau.cs.kieler.sccharts.Transition; @@ -67,7 +68,9 @@ public Result doResizeLabel(ElkLabel label, double targetWidth) { // The new label is the priority followed by a period return Result.modified(matcher.group(1) + "."); } else { - // If no priority available + // If no priority available + kLabel.setText(""); + LabelDecorationConfigurator.create().applyTo(kLabel); return Result.modified(""); } } From 25f6147c3e67145967309a9a901f1d0a4aa0e0ac Mon Sep 17 00:00:00 2001 From: Soeren Domroes Date: Tue, 23 Aug 2022 09:16:10 +0200 Subject: [PATCH 2/3] Remove rendering of empty label. Signed-off-by: Soeren Domroes --- .../ui/synthesis/labels/TransitionPriorityLabelManager.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/plugins/de.cau.cs.kieler.sccharts.ui/src/de/cau/cs/kieler/sccharts/ui/synthesis/labels/TransitionPriorityLabelManager.java b/plugins/de.cau.cs.kieler.sccharts.ui/src/de/cau/cs/kieler/sccharts/ui/synthesis/labels/TransitionPriorityLabelManager.java index 2df77c9ab9..6f08ef5da7 100644 --- a/plugins/de.cau.cs.kieler.sccharts.ui/src/de/cau/cs/kieler/sccharts/ui/synthesis/labels/TransitionPriorityLabelManager.java +++ b/plugins/de.cau.cs.kieler.sccharts.ui/src/de/cau/cs/kieler/sccharts/ui/synthesis/labels/TransitionPriorityLabelManager.java @@ -69,8 +69,10 @@ public Result doResizeLabel(ElkLabel label, double targetWidth) { return Result.modified(matcher.group(1) + "."); } else { // If no priority available - kLabel.setText(""); - LabelDecorationConfigurator.create().applyTo(kLabel); +// String text = kLabel.getText(); +// kLabel.setText(""); +// LabelDecorationConfigurator.create().applyTo(kLabel); + label.setProperty(KRenderingOptions.K_RENDERING, null); return Result.modified(""); } } From 353dcb1ddb17125f1ee7fd4e5d04690349cbb82b Mon Sep 17 00:00:00 2001 From: Soeren Domroes Date: Tue, 23 Aug 2022 14:40:56 +0200 Subject: [PATCH 3/3] Try out label management solution. Signed-off-by: Soeren Domroes --- .../synthesis/hooks/LabelShorteningHook.xtend | 20 +++++++++++++++---- .../TransitionPriorityLabelManager.java | 2 +- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/plugins/de.cau.cs.kieler.sccharts.ui/src/de/cau/cs/kieler/sccharts/ui/synthesis/hooks/LabelShorteningHook.xtend b/plugins/de.cau.cs.kieler.sccharts.ui/src/de/cau/cs/kieler/sccharts/ui/synthesis/hooks/LabelShorteningHook.xtend index 2b13b90e66..a9681fc57b 100644 --- a/plugins/de.cau.cs.kieler.sccharts.ui/src/de/cau/cs/kieler/sccharts/ui/synthesis/hooks/LabelShorteningHook.xtend +++ b/plugins/de.cau.cs.kieler.sccharts.ui/src/de/cau/cs/kieler/sccharts/ui/synthesis/hooks/LabelShorteningHook.xtend @@ -28,6 +28,7 @@ import org.eclipse.elk.core.labels.LabelManagementOptions import static extension de.cau.cs.kieler.klighd.syntheses.DiagramSyntheses.* import static extension de.cau.cs.kieler.klighd.util.ModelingUtil.* +import java.util.Iterator /** * Shows or hides or shortens transition labels. @@ -78,15 +79,25 @@ class LabelShorteningHook extends SynthesisActionHook { } override processTransition(Transition transition, KEdge edge) { - if (HIDE_LABELS.booleanValue) { - edge.eContents.filter(KLabel).forEach[initiallyHide] + if (SHORTEN_LABEL_STRATEGY.objectValue.equals(LabelShorteningStrategies.PRIORITIES) + && edge.source.outgoingEdges.length == 1) { + edge.labels.forEach[initiallyHide] + } else if (HIDE_LABELS.booleanValue) { + edge.labels.forEach[initiallyHide] } } override executeAction(KNode rootNode) { val viewer = usedContext.viewer - - if (HIDE_LABELS.booleanValue) { + if (SHORTEN_LABEL_STRATEGY.objectValue.equals(LabelShorteningStrategies.PRIORITIES)) { + rootNode.eAllContentsOfType(KEdge).forEach[edge | + if (edge.source.outgoingEdges.length == 1) { + edge.labels.forEach[label | viewer.hide(label)] + } else { + edge.labels.forEach[label | viewer.show(label)] + } + ] + } else if (HIDE_LABELS.booleanValue) { rootNode.eAllContentsOfType(KNode, KEdge, KLabel).filter(KLabel).forEach[viewer.hide(it)] } else { rootNode.eAllContentsOfType(KNode, KEdge, KLabel).filter(KLabel).forEach[viewer.show(it)] @@ -102,6 +113,7 @@ class LabelShorteningHook extends SynthesisActionHook { if (labelManager !== null) { labelManager.fixedTargetWidth = SHORTEN_LABEL_WIDTH.intValue } + rootNode.setLayoutOption(LabelManagementOptions.LABEL_MANAGER, labelManager) } } \ No newline at end of file diff --git a/plugins/de.cau.cs.kieler.sccharts.ui/src/de/cau/cs/kieler/sccharts/ui/synthesis/labels/TransitionPriorityLabelManager.java b/plugins/de.cau.cs.kieler.sccharts.ui/src/de/cau/cs/kieler/sccharts/ui/synthesis/labels/TransitionPriorityLabelManager.java index 6f08ef5da7..f905054b7a 100644 --- a/plugins/de.cau.cs.kieler.sccharts.ui/src/de/cau/cs/kieler/sccharts/ui/synthesis/labels/TransitionPriorityLabelManager.java +++ b/plugins/de.cau.cs.kieler.sccharts.ui/src/de/cau/cs/kieler/sccharts/ui/synthesis/labels/TransitionPriorityLabelManager.java @@ -72,7 +72,7 @@ public Result doResizeLabel(ElkLabel label, double targetWidth) { // String text = kLabel.getText(); // kLabel.setText(""); // LabelDecorationConfigurator.create().applyTo(kLabel); - label.setProperty(KRenderingOptions.K_RENDERING, null); +// label.setProperty(KRenderingOptions.K_RENDERING, null); return Result.modified(""); } }