From b9bd26b2fb2d5cf2876518e275c26cda06f05038 Mon Sep 17 00:00:00 2001 From: Karl Tauber Date: Mon, 8 Jun 2020 14:11:06 +0200 Subject: [PATCH] FlatSVGIcon: support mapping custom colors --- .../formdev/flatlaf/extras/FlatSVGIcon.java | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/flatlaf-extras/src/main/java/com/formdev/flatlaf/extras/FlatSVGIcon.java b/flatlaf-extras/src/main/java/com/formdev/flatlaf/extras/FlatSVGIcon.java index f343b51a..d9c6ae81 100644 --- a/flatlaf-extras/src/main/java/com/formdev/flatlaf/extras/FlatSVGIcon.java +++ b/flatlaf-extras/src/main/java/com/formdev/flatlaf/extras/FlatSVGIcon.java @@ -175,6 +175,7 @@ public class FlatSVGIcon private static ColorFilter instance; private final Map rgb2keyMap = new HashMap<>(); + private final Map color2colorMap = new HashMap<>(); public static ColorFilter getInstance() { if( instance == null ) @@ -187,12 +188,28 @@ public class FlatSVGIcon rgb2keyMap.put( c.rgb, c.key ); } + public void addAll( Map from2toMap ) { + color2colorMap.putAll( from2toMap ); + } + + public void add( Color from, Color to ) { + color2colorMap.put( from, to ); + } + + public void remove( Color from ) { + color2colorMap.remove( from ); + } + public Color filter( Color color ) { + Color newColor = color2colorMap.get( color ); + if( newColor != null ) + return newColor; + String colorKey = rgb2keyMap.get( color.getRGB() & 0xffffff ); if( colorKey == null ) return color; - Color newColor = UIManager.getColor( colorKey ); + newColor = UIManager.getColor( colorKey ); if( newColor == null ) return color;