From b12c818862f8933422bdfc70ba1a6b8524e3dc21 Mon Sep 17 00:00:00 2001 From: Karl Tauber Date: Tue, 31 Aug 2021 16:12:03 +0200 Subject: [PATCH] Styling: support styling for recently merged changes --- .../formdev/flatlaf/icons/FlatClearIcon.java | 23 +++++++++++++-- .../formdev/flatlaf/icons/FlatSearchIcon.java | 23 +++++++++++++-- .../formdev/flatlaf/ui/TestFlatStyling.java | 29 +++++++++++++++++++ 3 files changed, 69 insertions(+), 6 deletions(-) diff --git a/flatlaf-core/src/main/java/com/formdev/flatlaf/icons/FlatClearIcon.java b/flatlaf-core/src/main/java/com/formdev/flatlaf/icons/FlatClearIcon.java index b756b509..e5790b41 100644 --- a/flatlaf-core/src/main/java/com/formdev/flatlaf/icons/FlatClearIcon.java +++ b/flatlaf-core/src/main/java/com/formdev/flatlaf/icons/FlatClearIcon.java @@ -22,10 +22,13 @@ import java.awt.Graphics2D; import java.awt.geom.Ellipse2D; import java.awt.geom.Line2D; import java.awt.geom.Path2D; +import java.util.Map; import javax.swing.AbstractButton; import javax.swing.ButtonModel; import javax.swing.UIManager; +import com.formdev.flatlaf.ui.FlatStyleSupport; import com.formdev.flatlaf.ui.FlatUIUtils; +import com.formdev.flatlaf.ui.FlatStyleSupport.Styleable; /** * "clear" icon for search fields. @@ -40,14 +43,28 @@ import com.formdev.flatlaf.ui.FlatUIUtils; public class FlatClearIcon extends FlatAbstractIcon { - protected Color clearIconColor = UIManager.getColor( "SearchField.clearIconColor" ); - protected Color clearIconHoverColor = UIManager.getColor( "SearchField.clearIconHoverColor" ); - protected Color clearIconPressedColor = UIManager.getColor( "SearchField.clearIconPressedColor" ); + @Styleable protected Color clearIconColor = UIManager.getColor( "SearchField.clearIconColor" ); + @Styleable protected Color clearIconHoverColor = UIManager.getColor( "SearchField.clearIconHoverColor" ); + @Styleable protected Color clearIconPressedColor = UIManager.getColor( "SearchField.clearIconPressedColor" ); public FlatClearIcon() { super( 16, 16, null ); } + /** + * @since TODO + */ + public Object applyStyleProperty( String key, Object value ) { + return FlatStyleSupport.applyToAnnotatedObject( this, key, value ); + } + + /** + * @since TODO + */ + public Map> getStyleableInfos() { + return FlatStyleSupport.getAnnotatedStyleableInfos( this ); + } + @Override protected void paintIcon( Component c, Graphics2D g ) { if( c instanceof AbstractButton ) { diff --git a/flatlaf-core/src/main/java/com/formdev/flatlaf/icons/FlatSearchIcon.java b/flatlaf-core/src/main/java/com/formdev/flatlaf/icons/FlatSearchIcon.java index 1bc726a6..f47a7839 100644 --- a/flatlaf-core/src/main/java/com/formdev/flatlaf/icons/FlatSearchIcon.java +++ b/flatlaf-core/src/main/java/com/formdev/flatlaf/icons/FlatSearchIcon.java @@ -21,9 +21,12 @@ import java.awt.Component; import java.awt.Graphics2D; import java.awt.geom.Area; import java.awt.geom.Ellipse2D; +import java.util.Map; import javax.swing.UIManager; import com.formdev.flatlaf.ui.FlatButtonUI; +import com.formdev.flatlaf.ui.FlatStyleSupport; import com.formdev.flatlaf.ui.FlatUIUtils; +import com.formdev.flatlaf.ui.FlatStyleSupport.Styleable; /** * "search" icon for search fields. @@ -38,14 +41,28 @@ import com.formdev.flatlaf.ui.FlatUIUtils; public class FlatSearchIcon extends FlatAbstractIcon { - protected Color searchIconColor = UIManager.getColor( "SearchField.searchIconColor" ); - protected Color searchIconHoverColor = UIManager.getColor( "SearchField.searchIconHoverColor" ); - protected Color searchIconPressedColor = UIManager.getColor( "SearchField.searchIconPressedColor" ); + @Styleable protected Color searchIconColor = UIManager.getColor( "SearchField.searchIconColor" ); + @Styleable protected Color searchIconHoverColor = UIManager.getColor( "SearchField.searchIconHoverColor" ); + @Styleable protected Color searchIconPressedColor = UIManager.getColor( "SearchField.searchIconPressedColor" ); public FlatSearchIcon() { super( 16, 16, null ); } + /** + * @since TODO + */ + public Object applyStyleProperty( String key, Object value ) { + return FlatStyleSupport.applyToAnnotatedObject( this, key, value ); + } + + /** + * @since TODO + */ + public Map> getStyleableInfos() { + return FlatStyleSupport.getAnnotatedStyleableInfos( this ); + } + @Override protected void paintIcon( Component c, Graphics2D g ) { /* diff --git a/flatlaf-core/src/test/java/com/formdev/flatlaf/ui/TestFlatStyling.java b/flatlaf-core/src/test/java/com/formdev/flatlaf/ui/TestFlatStyling.java index 4333d836..dc01e58a 100644 --- a/flatlaf-core/src/test/java/com/formdev/flatlaf/ui/TestFlatStyling.java +++ b/flatlaf-core/src/test/java/com/formdev/flatlaf/ui/TestFlatStyling.java @@ -976,4 +976,33 @@ public class TestFlatStyling icon.applyStyleProperty( "questionMarkColor", Color.WHITE ); icon.applyStyleProperty( "disabledQuestionMarkColor", Color.WHITE ); } + + @Test + void flatClearIcon() { + FlatClearIcon icon = new FlatClearIcon(); + + icon.applyStyleProperty( "clearIconColor", Color.WHITE ); + icon.applyStyleProperty( "clearIconHoverColor", Color.WHITE ); + icon.applyStyleProperty( "clearIconPressedColor", Color.WHITE ); + } + + @Test + void flatSearchIcon() { + FlatSearchIcon icon = new FlatSearchIcon(); + + flatSearchIcon( icon ); + } + + @Test + void flatSearchWithHistoryIcon() { + FlatSearchWithHistoryIcon icon = new FlatSearchWithHistoryIcon(); + + flatSearchIcon( icon ); + } + + private void flatSearchIcon( FlatSearchIcon icon ) { + icon.applyStyleProperty( "searchIconColor", Color.WHITE ); + icon.applyStyleProperty( "searchIconHoverColor", Color.WHITE ); + icon.applyStyleProperty( "searchIconPressedColor", Color.WHITE ); + } }