Package com.formdev.flatlaf.extras
Class FlatSVGIcon.ColorFilter
- java.lang.Object
-
- com.formdev.flatlaf.extras.FlatSVGIcon.ColorFilter
-
- Enclosing class:
- FlatSVGIcon
public static class FlatSVGIcon.ColorFilter extends java.lang.Object
A color filter that can modify colors of a paintedFlatSVGIcon
.The ColorFilter modifies color in two ways. Either using a color map, where specific colors are mapped to different ones. And/or by modifying the colors in a mapper function.
When filtering a color, mappings are applied first, then the mapper function is applied.
Global
FlatSVGIcon
ColorFilter can be retrieved using thegetInstance()
method.
-
-
Field Summary
Fields Modifier and Type Field Description private java.util.Map<java.awt.Color,java.awt.Color>
colorMap
private java.util.Map<java.awt.Color,java.awt.Color>
darkColorMap
private static FlatSVGIcon.ColorFilter
instance
private java.util.function.Function<java.awt.Color,java.awt.Color>
mapper
private java.util.Map<java.lang.Integer,java.lang.String>
rgb2keyMap
-
Constructor Summary
Constructors Constructor Description ColorFilter()
Creates an empty color filter.ColorFilter(java.util.function.Function<java.awt.Color,java.awt.Color> mapper)
Creates a color filter with a color modifying function that changes painted colors.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description FlatSVGIcon.ColorFilter
add(java.awt.Color from, java.awt.Color to)
Adds a color mapping.FlatSVGIcon.ColorFilter
add(java.awt.Color from, java.awt.Color toLight, java.awt.Color toDark)
Adds a color mapping, which has different colors for light and dark themes.FlatSVGIcon.ColorFilter
addAll(java.util.Map<java.awt.Color,java.awt.Color> from2toMap)
Adds color mappings.FlatSVGIcon.ColorFilter
addAll(java.util.Map<java.awt.Color,java.awt.Color> from2toLightMap, java.util.Map<java.awt.Color,java.awt.Color> from2toDarkMap)
Adds a color mappings, which has different colors for light and dark themes.private java.awt.Color
applyMappings(java.awt.Color color)
static java.util.function.Function<java.awt.Color,java.awt.Color>
createRGBImageFilterFunction(java.awt.image.RGBImageFilter rgbImageFilter)
Creates a color modifying function that usesRGBImageFilter.filterRGB(int, int, int)
.private void
ensureColorMap()
private void
ensureDarkColorMap()
java.awt.Color
filter(java.awt.Color color)
java.util.Map<java.awt.Color,java.awt.Color>
getDarkColorMap()
Returns the color mappings used for dark themes.static FlatSVGIcon.ColorFilter
getInstance()
Returns the global ColorFilter that is applied to all icons.java.util.Map<java.awt.Color,java.awt.Color>
getLightColorMap()
Returns the color mappings used for light themes.java.util.function.Function<java.awt.Color,java.awt.Color>
getMapper()
Returns a color modifying function ornull
FlatSVGIcon.ColorFilter
remove(java.awt.Color from)
Removes a specific color mapping.FlatSVGIcon.ColorFilter
removeAll()
Removes all color mappings.void
setMapper(java.util.function.Function<java.awt.Color,java.awt.Color> mapper)
Sets a color modifying function that changes painted colors.
-
-
-
Field Detail
-
instance
private static FlatSVGIcon.ColorFilter instance
-
rgb2keyMap
private java.util.Map<java.lang.Integer,java.lang.String> rgb2keyMap
-
colorMap
private java.util.Map<java.awt.Color,java.awt.Color> colorMap
-
darkColorMap
private java.util.Map<java.awt.Color,java.awt.Color> darkColorMap
-
mapper
private java.util.function.Function<java.awt.Color,java.awt.Color> mapper
-
-
Constructor Detail
-
ColorFilter
public ColorFilter()
Creates an empty color filter.
-
ColorFilter
public ColorFilter(java.util.function.Function<java.awt.Color,java.awt.Color> mapper)
Creates a color filter with a color modifying function that changes painted colors. TheFunction
gets passed the original color and returns a modified one.Examples: A ColorFilter can be used to brighten colors of the icon:
new ColorFilter( color -> color.brighter() );
Using a ColorFilter, icons can also be turned monochrome (painted with a single color):
new ColorFilter( color -> Color.RED );
- Parameters:
mapper
- The color mapper function- Since:
- 1.2
-
-
Method Detail
-
getInstance
public static FlatSVGIcon.ColorFilter getInstance()
Returns the global ColorFilter that is applied to all icons.
-
getMapper
public java.util.function.Function<java.awt.Color,java.awt.Color> getMapper()
Returns a color modifying function ornull
- Since:
- 1.2
-
setMapper
public void setMapper(java.util.function.Function<java.awt.Color,java.awt.Color> mapper)
Sets a color modifying function that changes painted colors. TheFunction
gets passed the original color and returns a modified one.Examples: A ColorFilter can be used to brighten colors of the icon:
filter.setMapper( color -> color.brighter() );
Using a ColorFilter, icons can also be turned monochrome (painted with a single color):
filter.setMapper( color -> Color.RED );
- Parameters:
mapper
- The color mapper function- Since:
- 1.2
-
getLightColorMap
public java.util.Map<java.awt.Color,java.awt.Color> getLightColorMap()
Returns the color mappings used for light themes.- Since:
- 1.2
-
getDarkColorMap
public java.util.Map<java.awt.Color,java.awt.Color> getDarkColorMap()
Returns the color mappings used for dark themes.- Since:
- 1.2
-
addAll
public FlatSVGIcon.ColorFilter addAll(java.util.Map<java.awt.Color,java.awt.Color> from2toMap)
Adds color mappings. Used for light and dark themes.
-
addAll
public FlatSVGIcon.ColorFilter addAll(java.util.Map<java.awt.Color,java.awt.Color> from2toLightMap, java.util.Map<java.awt.Color,java.awt.Color> from2toDarkMap)
Adds a color mappings, which has different colors for light and dark themes.- Since:
- 1.2
-
add
public FlatSVGIcon.ColorFilter add(java.awt.Color from, java.awt.Color to)
Adds a color mapping. Used for light and dark themes.
-
add
public FlatSVGIcon.ColorFilter add(java.awt.Color from, java.awt.Color toLight, java.awt.Color toDark)
Adds a color mapping, which has different colors for light and dark themes.- Since:
- 1.2
-
remove
public FlatSVGIcon.ColorFilter remove(java.awt.Color from)
Removes a specific color mapping.
-
removeAll
public FlatSVGIcon.ColorFilter removeAll()
Removes all color mappings.- Since:
- 1.2
-
ensureColorMap
private void ensureColorMap()
-
ensureDarkColorMap
private void ensureDarkColorMap()
-
filter
public java.awt.Color filter(java.awt.Color color)
-
applyMappings
private java.awt.Color applyMappings(java.awt.Color color)
-
createRGBImageFilterFunction
public static java.util.function.Function<java.awt.Color,java.awt.Color> createRGBImageFilterFunction(java.awt.image.RGBImageFilter rgbImageFilter)
Creates a color modifying function that usesRGBImageFilter.filterRGB(int, int, int)
. Can be set to aFlatSVGIcon.ColorFilter
usingsetMapper(Function)
.- Since:
- 1.2
- See Also:
GrayFilter
-
-