diff --git a/app/display/model/src/main/java/org/csstudio/display/builder/model/persist/NamedWidgetColors.java b/app/display/model/src/main/java/org/csstudio/display/builder/model/persist/NamedWidgetColors.java index 35a099e660..72ad51fa37 100644 --- a/app/display/model/src/main/java/org/csstudio/display/builder/model/persist/NamedWidgetColors.java +++ b/app/display/model/src/main/java/org/csstudio/display/builder/model/persist/NamedWidgetColors.java @@ -9,6 +9,7 @@ import java.util.Collection; import java.util.Collections; +import java.util.HashSet; import java.util.LinkedHashMap; import java.util.Map; import java.util.Optional; @@ -133,6 +134,15 @@ void define(final NamedWidgetColor color) colors.put(color.getName(), color); } + /** Define a name to point to a named color + * @param name Name of the color + * @param color Named color + */ + void define(String name, final NamedWidgetColor color) + { + colors.put(name, color); + } + /** Get named color * @param name Name of the color * @return Named color, if known @@ -156,7 +166,7 @@ public NamedWidgetColor resolve(final NamedWidgetColor color) */ public Collection getColors() { - return Collections.unmodifiableCollection(colors.values()); + return Collections.unmodifiableSet(new HashSet<>(colors.values())); } @Override @@ -168,7 +178,7 @@ protected void parse ( final String name, final String value ) throws Exception NamedWidgetColor namedColor = optionalColor.get(); - define(new NamedWidgetColor(name, namedColor.getRed(), namedColor.getGreen(), namedColor.getBlue(), namedColor.getAlpha())); + define(name, namedColor); } else {