Skip to content

Commit 2735128

Browse files
committed
added group fallback to stereotype icon identification mechanism
1 parent 298b8f4 commit 2735128

File tree

1 file changed

+16
-2
lines changed
  • headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/commands

1 file changed

+16
-2
lines changed

headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/commands/ToolsJsonNodeHandler.java

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import java.util.LinkedHashMap;
2121
import java.util.List;
2222
import java.util.Map;
23+
import java.util.Optional;
2324
import java.util.function.BiConsumer;
2425
import java.util.function.Consumer;
2526

@@ -60,12 +61,25 @@ public ToolsJsonNodeHandler(LabelProvider<StereotypePackageElement, StereotypePa
6061
@Override
6162
public void handleStereotype(Stereotype stereotype, NodeContext context) {
6263

64+
// icon for concrete stereotype
6365
String stereotypeID = stereotype.getIdentifier();
64-
String icon = StereotypeIcons.ICONS.containsKey(stereotypeID) ? StereotypeIcons.ICONS.get(stereotypeID) : StereotypeIcons.ICONS.get("Stereotype");
66+
67+
String icon = StereotypeIcons.ICONS.get(stereotypeID);
68+
69+
// group fallback
70+
if (icon == null) {
71+
Optional<String> groupIcon = stereotype.getGroups().stream()
72+
.filter(group -> StereotypeIcons.ICONS.containsKey(group))
73+
.map(group -> StereotypeIcons.ICONS.get(group))
74+
.findFirst();
75+
76+
icon = groupIcon.isPresent() ? icon = groupIcon.get() : StereotypeIcons.ICONS.get("Stereotype");
77+
}
6578

79+
String finalIcon = icon;
6680
addChild(node -> node
6781
.withAttribute(TEXT, labels.getSterotypeLabel(stereotype))
68-
.withAttribute(ICON, icon)
82+
.withAttribute(ICON, finalIcon)
6983
);
7084
}
7185

0 commit comments

Comments
 (0)