Class FlatSVGIcon.ColorFilter
- java.lang.Object
-
- com.formdev.flatlaf.extras.FlatSVGIcon.ColorFilter
-
- Enclosing class:
- FlatSVGIcon
public static class FlatSVGIcon.ColorFilter extends java.lang.ObjectA 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
FlatSVGIconColorFilter can be retrieved using thegetInstance()method.
-
-
Field Summary
Fields Modifier and Type Field Description private java.awt.Componentcprivate java.util.Map<java.awt.Color,java.awt.Color>colorMapprivate java.util.Map<java.awt.Color,java.awt.Color>darkColorMapprivate static FlatSVGIcon.ColorFilterinstanceprivate java.util.function.Function<java.awt.Color,java.awt.Color>mapperprivate java.util.function.BiFunction<java.awt.Component,java.awt.Color,java.awt.Color>mapperExprivate 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.BiFunction<java.awt.Component,java.awt.Color,java.awt.Color> mapperEx)Creates a color modifying function that changes painted colors.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.ColorFilteradd(java.awt.Color from, java.awt.Color to)Adds a color mapping.FlatSVGIcon.ColorFilteradd(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.ColorFilteraddAll(java.util.Map<java.awt.Color,java.awt.Color> from2toMap)Adds color mappings.FlatSVGIcon.ColorFilteraddAll(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.ColorapplyMappings(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 voidensureColorMap()private voidensureDarkColorMap()java.awt.Colorfilter(java.awt.Color color)java.awt.Colorfilter(java.awt.Component c, java.awt.Color color)java.util.Map<java.awt.Color,java.awt.Color>getDarkColorMap()Returns the color mappings used for dark themes.static FlatSVGIcon.ColorFiltergetInstance()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 ornulljava.util.function.BiFunction<java.awt.Component,java.awt.Color,java.awt.Color>getMapperEx()Returns a color modifying function ornulljava.awt.ComponentgetPaintingComponent()Returns the component passed toFlatSVGIcon.paintIcon(Component, Graphics, int, int).FlatSVGIcon.ColorFilterremove(java.awt.Color from)Removes a specific color mapping.FlatSVGIcon.ColorFilterremoveAll()Removes all color mappings.voidsetMapper(java.util.function.Function<java.awt.Color,java.awt.Color> mapper)Sets a color modifying function that changes painted colors.voidsetMapperEx(java.util.function.BiFunction<java.awt.Component,java.awt.Color,java.awt.Color> mapperEx)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
-
mapperEx
private java.util.function.BiFunction<java.awt.Component,java.awt.Color,java.awt.Color> mapperEx
-
c
private java.awt.Component c
-
-
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. TheFunctiongets 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
-
ColorFilter
public ColorFilter(java.util.function.BiFunction<java.awt.Component,java.awt.Color,java.awt.Color> mapperEx)
Creates a color modifying function that changes painted colors. TheBiFunctiongets passed the component and the original color and returns a modified one.Examples: A ColorFilter can be used to brighten colors of the icon (depending on component state if desired):
new ColorFilter( (c, color) -> c.isEnabled() ? color.brighter() : color );
- Parameters:
mapperEx- The color mapper function- Since:
- 3.6
-
-
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. TheFunctiongets 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
- See Also:
setMapperEx(BiFunction)
-
getMapperEx
public java.util.function.BiFunction<java.awt.Component,java.awt.Color,java.awt.Color> getMapperEx()
Returns a color modifying function ornull- Since:
- 3.6
-
setMapperEx
public void setMapperEx(java.util.function.BiFunction<java.awt.Component,java.awt.Color,java.awt.Color> mapperEx)
Sets a color modifying function that changes painted colors. TheBiFunctiongets passed the component and the original color and returns a modified one.Examples: A ColorFilter can be used to brighten colors of the icon (depending on component state if desired):
filter.setMapperEx( (c, color) -> c.isEnabled() ? color.brighter() : color );
- Parameters:
mapperEx- The color mapper function- Since:
- 3.6
- See Also:
setMapper(Function)
-
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)
-
filter
public java.awt.Color filter(java.awt.Component c, java.awt.Color color)- Since:
- 3.6
-
applyMappings
private java.awt.Color applyMappings(java.awt.Color color)
-
getPaintingComponent
public java.awt.Component getPaintingComponent()
Returns the component passed toFlatSVGIcon.paintIcon(Component, Graphics, int, int). This allows color mapping depend on component state (e.g. enabled, selected, hover, etc).- Since:
- 3.6
-
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.ColorFilterusingsetMapper(Function).- Since:
- 1.2
- See Also:
GrayFilter
-
-