From 223af48c0926418e1c1ea227dd60d8a8539c153b Mon Sep 17 00:00:00 2001 From: Karl Tauber Date: Fri, 15 Nov 2019 22:48:44 +0100 Subject: [PATCH] added default color palette for action icons and object icons (based on IntelliJ Platform colors) and use color palette for file chooser icons (issue #5) --- .../java/com/formdev/flatlaf/FlatLaf.java | 41 +++++++++++++++++++ .../icons/FlatFileChooserDetailsViewIcon.java | 4 +- .../icons/FlatFileChooserHomeFolderIcon.java | 4 +- .../icons/FlatFileChooserListViewIcon.java | 4 +- .../icons/FlatFileChooserNewFolderIcon.java | 4 +- .../icons/FlatFileChooserUpFolderIcon.java | 10 ++++- .../icons/FlatFileViewComputerIcon.java | 4 +- .../icons/FlatFileViewDirectoryIcon.java | 4 +- .../flatlaf/icons/FlatFileViewFileIcon.java | 4 +- .../icons/FlatFileViewFloppyDriveIcon.java | 4 +- .../icons/FlatFileViewHardDriveIcon.java | 4 +- .../com/formdev/flatlaf/FlatLaf.properties | 12 ------ 12 files changed, 67 insertions(+), 32 deletions(-) diff --git a/flatlaf-core/src/main/java/com/formdev/flatlaf/FlatLaf.java b/flatlaf-core/src/main/java/com/formdev/flatlaf/FlatLaf.java index 8463898b..53a8aebf 100644 --- a/flatlaf-core/src/main/java/com/formdev/flatlaf/FlatLaf.java +++ b/flatlaf-core/src/main/java/com/formdev/flatlaf/FlatLaf.java @@ -38,6 +38,7 @@ import javax.swing.SwingUtilities; import javax.swing.UIDefaults; import javax.swing.UIManager; import javax.swing.UnsupportedLookAndFeelException; +import javax.swing.plaf.ColorUIResource; import javax.swing.plaf.FontUIResource; import javax.swing.plaf.basic.BasicLookAndFeel; import javax.swing.plaf.metal.MetalLookAndFeel; @@ -192,6 +193,7 @@ public abstract class FlatLaf Object aquaMenuBarUI = useScreenMenuBar ? defaults.get( "MenuBarUI" ) : null; initFonts( defaults ); + initColorPalette( defaults, isDark() ); // load defaults from properties List> lafClassesForDefaultsLoading = getLafClassesForDefaultsLoading(); @@ -247,6 +249,45 @@ public abstract class FlatLaf defaults.put( "MenuItem.acceleratorFont", uiFont ); } + /** + * Adds the default color palette for action icons and object icons to the given UIDefaults. + *

+ * This method is public and static to allow using the color palette with + * other LaFs (e.g. Windows LaF). To do so invoke: + * {@code FlatLaf.initColorPalette( UIManager.getLookAndFeelDefaults(), false );} + * after + * {@code UIManager.setLookAndFeel( ... );}. + *

+ * The colors are based on IntelliJ Platform + * Action icons + * and + * Noun icons + */ + public static void initColorPalette( UIDefaults defaults, boolean dark ) { + // colors for actions + // see https://jetbrains.design/intellij/principles/icons/#action-icons + defaults.put( "Actions.Red", new ColorUIResource( !dark ? 0xDB5860 : 0xC75450 ) ); + defaults.put( "Actions.Yellow", new ColorUIResource( !dark ? 0xEDA200 : 0xF0A732 ) ); + defaults.put( "Actions.Green", new ColorUIResource( !dark ? 0x59A869 : 0x499C54 ) ); + defaults.put( "Actions.Blue", new ColorUIResource( !dark ? 0x389FD6 : 0x3592C4 ) ); + defaults.put( "Actions.Grey", new ColorUIResource( !dark ? 0x6E6E6E : 0xAFB1B3 ) ); + defaults.put( "Actions.GreyInline", new ColorUIResource( !dark ? 0x7F8B91 : 0x7F8B91 ) ); + + // colors for objects + // see https://jetbrains.design/intellij/principles/icons/#noun-icons + defaults.put( "Objects.Grey", new ColorUIResource( 0x9AA7B0 ) ); + defaults.put( "Objects.Blue", new ColorUIResource( 0x40B6E0 ) ); + defaults.put( "Objects.Green", new ColorUIResource( 0x62B543 ) ); + defaults.put( "Objects.Yellow", new ColorUIResource( 0xF4AF3D ) ); + defaults.put( "Objects.YellowDark", new ColorUIResource( 0xD9A343 ) ); + defaults.put( "Objects.Purple", new ColorUIResource( 0xB99BF8 ) ); + defaults.put( "Objects.Pink", new ColorUIResource( 0xF98B9E ) ); + defaults.put( "Objects.Red", new ColorUIResource( 0xF26522 ) ); + defaults.put( "Objects.RedStatus", new ColorUIResource( 0xE05555 ) ); + defaults.put( "Objects.GreenAndroid", new ColorUIResource( 0xA4C639 ) ); + defaults.put( "Objects.BlackText", new ColorUIResource( 0x231F20 ) ); + } + private static void reSetLookAndFeel() { EventQueue.invokeLater( () -> { try { diff --git a/flatlaf-core/src/main/java/com/formdev/flatlaf/icons/FlatFileChooserDetailsViewIcon.java b/flatlaf-core/src/main/java/com/formdev/flatlaf/icons/FlatFileChooserDetailsViewIcon.java index 78953301..0a208f69 100644 --- a/flatlaf-core/src/main/java/com/formdev/flatlaf/icons/FlatFileChooserDetailsViewIcon.java +++ b/flatlaf-core/src/main/java/com/formdev/flatlaf/icons/FlatFileChooserDetailsViewIcon.java @@ -23,7 +23,7 @@ import javax.swing.UIManager; /** * "details view" icon for {@link javax.swing.JFileChooser}. * - * @uiDefault FileChooser.icon.detailsViewColor Color + * @uiDefault Actions.Grey Color * * @author Karl Tauber */ @@ -31,7 +31,7 @@ public class FlatFileChooserDetailsViewIcon extends FlatAbstractIcon { public FlatFileChooserDetailsViewIcon() { - super( 16, 16, UIManager.getColor( "FileChooser.icon.detailsViewColor" ) ); + super( 16, 16, UIManager.getColor( "Actions.Grey" ) ); } @Override diff --git a/flatlaf-core/src/main/java/com/formdev/flatlaf/icons/FlatFileChooserHomeFolderIcon.java b/flatlaf-core/src/main/java/com/formdev/flatlaf/icons/FlatFileChooserHomeFolderIcon.java index 281870c7..7a2a80f2 100644 --- a/flatlaf-core/src/main/java/com/formdev/flatlaf/icons/FlatFileChooserHomeFolderIcon.java +++ b/flatlaf-core/src/main/java/com/formdev/flatlaf/icons/FlatFileChooserHomeFolderIcon.java @@ -24,7 +24,7 @@ import com.formdev.flatlaf.ui.FlatUIUtils; /** * "home folder" icon for {@link javax.swing.JFileChooser}. * - * @uiDefault FileChooser.icon.homeFolderColor Color + * @uiDefault Actions.Grey Color * * @author Karl Tauber */ @@ -32,7 +32,7 @@ public class FlatFileChooserHomeFolderIcon extends FlatAbstractIcon { public FlatFileChooserHomeFolderIcon() { - super( 16, 16, UIManager.getColor( "FileChooser.icon.homeFolderColor" ) ); + super( 16, 16, UIManager.getColor( "Actions.Grey" ) ); } @Override diff --git a/flatlaf-core/src/main/java/com/formdev/flatlaf/icons/FlatFileChooserListViewIcon.java b/flatlaf-core/src/main/java/com/formdev/flatlaf/icons/FlatFileChooserListViewIcon.java index d644f24a..9ae70b09 100644 --- a/flatlaf-core/src/main/java/com/formdev/flatlaf/icons/FlatFileChooserListViewIcon.java +++ b/flatlaf-core/src/main/java/com/formdev/flatlaf/icons/FlatFileChooserListViewIcon.java @@ -23,7 +23,7 @@ import javax.swing.UIManager; /** * "list view" icon for {@link javax.swing.JFileChooser}. * - * @uiDefault FileChooser.icon.listViewColor Color + * @uiDefault Actions.Grey Color * * @author Karl Tauber */ @@ -31,7 +31,7 @@ public class FlatFileChooserListViewIcon extends FlatAbstractIcon { public FlatFileChooserListViewIcon() { - super( 16, 16, UIManager.getColor( "FileChooser.icon.listViewColor" ) ); + super( 16, 16, UIManager.getColor( "Actions.Grey" ) ); } @Override diff --git a/flatlaf-core/src/main/java/com/formdev/flatlaf/icons/FlatFileChooserNewFolderIcon.java b/flatlaf-core/src/main/java/com/formdev/flatlaf/icons/FlatFileChooserNewFolderIcon.java index efcfaa61..a5718b0e 100644 --- a/flatlaf-core/src/main/java/com/formdev/flatlaf/icons/FlatFileChooserNewFolderIcon.java +++ b/flatlaf-core/src/main/java/com/formdev/flatlaf/icons/FlatFileChooserNewFolderIcon.java @@ -24,7 +24,7 @@ import com.formdev.flatlaf.ui.FlatUIUtils; /** * "new folder" icon for {@link javax.swing.JFileChooser}. * - * @uiDefault FileChooser.icon.newFolderColor Color + * @uiDefault Actions.Grey Color * * @author Karl Tauber */ @@ -32,7 +32,7 @@ public class FlatFileChooserNewFolderIcon extends FlatAbstractIcon { public FlatFileChooserNewFolderIcon() { - super( 16, 16, UIManager.getColor( "FileChooser.icon.newFolderColor" ) ); + super( 16, 16, UIManager.getColor( "Actions.Grey" ) ); } @Override diff --git a/flatlaf-core/src/main/java/com/formdev/flatlaf/icons/FlatFileChooserUpFolderIcon.java b/flatlaf-core/src/main/java/com/formdev/flatlaf/icons/FlatFileChooserUpFolderIcon.java index ecbfc647..0e7d7996 100644 --- a/flatlaf-core/src/main/java/com/formdev/flatlaf/icons/FlatFileChooserUpFolderIcon.java +++ b/flatlaf-core/src/main/java/com/formdev/flatlaf/icons/FlatFileChooserUpFolderIcon.java @@ -16,6 +16,7 @@ package com.formdev.flatlaf.icons; +import java.awt.Color; import java.awt.Component; import java.awt.Graphics2D; import javax.swing.UIManager; @@ -24,15 +25,18 @@ import com.formdev.flatlaf.ui.FlatUIUtils; /** * "up folder" icon for {@link javax.swing.JFileChooser}. * - * @uiDefault FileChooser.icon.upFolderColor Color + * @uiDefault Actions.Grey Color + * @uiDefault Actions.Blue Color * * @author Karl Tauber */ public class FlatFileChooserUpFolderIcon extends FlatAbstractIcon { + private final Color blueColor = UIManager.getColor( "Actions.Blue" ); + public FlatFileChooserUpFolderIcon() { - super( 16, 16, UIManager.getColor( "FileChooser.icon.upFolderColor" ) ); + super( 16, 16, UIManager.getColor( "Actions.Grey" ) ); } @Override @@ -47,6 +51,8 @@ public class FlatFileChooserUpFolderIcon */ g.fill( FlatUIUtils.createPath( 2,3, 5.5,3, 7,5, 9,5, 9,9, 13,9, 13,5, 14,5, 14,13, 2,13 ) ); + + g.setColor( blueColor ); g.fill( FlatUIUtils.createPath( 12,4, 12,8, 10,8, 10,4, 8,4, 11,1, 14,4, 12,4 ) ); } } diff --git a/flatlaf-core/src/main/java/com/formdev/flatlaf/icons/FlatFileViewComputerIcon.java b/flatlaf-core/src/main/java/com/formdev/flatlaf/icons/FlatFileViewComputerIcon.java index 48ae2fb2..0b7120f4 100644 --- a/flatlaf-core/src/main/java/com/formdev/flatlaf/icons/FlatFileViewComputerIcon.java +++ b/flatlaf-core/src/main/java/com/formdev/flatlaf/icons/FlatFileViewComputerIcon.java @@ -25,7 +25,7 @@ import javax.swing.UIManager; /** * "computer" icon for {@link javax.swing.JFileChooser}. * - * @uiDefault FileView.icon.computerColor Color + * @uiDefault Objects.Grey Color * * @author Karl Tauber */ @@ -33,7 +33,7 @@ public class FlatFileViewComputerIcon extends FlatAbstractIcon { public FlatFileViewComputerIcon() { - super( 16, 16, UIManager.getColor( "FileView.icon.computerColor" ) ); + super( 16, 16, UIManager.getColor( "Objects.Grey" ) ); } @Override diff --git a/flatlaf-core/src/main/java/com/formdev/flatlaf/icons/FlatFileViewDirectoryIcon.java b/flatlaf-core/src/main/java/com/formdev/flatlaf/icons/FlatFileViewDirectoryIcon.java index 6eea068d..85a59156 100644 --- a/flatlaf-core/src/main/java/com/formdev/flatlaf/icons/FlatFileViewDirectoryIcon.java +++ b/flatlaf-core/src/main/java/com/formdev/flatlaf/icons/FlatFileViewDirectoryIcon.java @@ -24,7 +24,7 @@ import com.formdev.flatlaf.ui.FlatUIUtils; /** * "directory" icon for {@link javax.swing.JFileChooser}. * - * @uiDefault FileView.icon.directoryColor Color + * @uiDefault Objects.Grey Color * * @author Karl Tauber */ @@ -32,7 +32,7 @@ public class FlatFileViewDirectoryIcon extends FlatAbstractIcon { public FlatFileViewDirectoryIcon() { - super( 16, 16, UIManager.getColor( "FileView.icon.directoryColor" ) ); + super( 16, 16, UIManager.getColor( "Objects.Grey" ) ); } @Override diff --git a/flatlaf-core/src/main/java/com/formdev/flatlaf/icons/FlatFileViewFileIcon.java b/flatlaf-core/src/main/java/com/formdev/flatlaf/icons/FlatFileViewFileIcon.java index fa9c1425..69dac58a 100644 --- a/flatlaf-core/src/main/java/com/formdev/flatlaf/icons/FlatFileViewFileIcon.java +++ b/flatlaf-core/src/main/java/com/formdev/flatlaf/icons/FlatFileViewFileIcon.java @@ -24,7 +24,7 @@ import com.formdev.flatlaf.ui.FlatUIUtils; /** * "file" icon for {@link javax.swing.JFileChooser}. * - * @uiDefault FileView.icon.fileColor Color + * @uiDefault Objects.Grey Color * * @author Karl Tauber */ @@ -32,7 +32,7 @@ public class FlatFileViewFileIcon extends FlatAbstractIcon { public FlatFileViewFileIcon() { - super( 16, 16, UIManager.getColor( "FileView.icon.fileColor" ) ); + super( 16, 16, UIManager.getColor( "Objects.Grey" ) ); } @Override diff --git a/flatlaf-core/src/main/java/com/formdev/flatlaf/icons/FlatFileViewFloppyDriveIcon.java b/flatlaf-core/src/main/java/com/formdev/flatlaf/icons/FlatFileViewFloppyDriveIcon.java index 02cbcf9d..94c58cf6 100644 --- a/flatlaf-core/src/main/java/com/formdev/flatlaf/icons/FlatFileViewFloppyDriveIcon.java +++ b/flatlaf-core/src/main/java/com/formdev/flatlaf/icons/FlatFileViewFloppyDriveIcon.java @@ -25,7 +25,7 @@ import com.formdev.flatlaf.ui.FlatUIUtils; /** * "floppy drive" icon for {@link javax.swing.JFileChooser}. * - * @uiDefault FileView.icon.floppyDriveColor Color + * @uiDefault Objects.Grey Color * * @author Karl Tauber */ @@ -33,7 +33,7 @@ public class FlatFileViewFloppyDriveIcon extends FlatAbstractIcon { public FlatFileViewFloppyDriveIcon() { - super( 16, 16, UIManager.getColor( "FileView.icon.floppyDriveColor" ) ); + super( 16, 16, UIManager.getColor( "Objects.Grey" ) ); } @Override diff --git a/flatlaf-core/src/main/java/com/formdev/flatlaf/icons/FlatFileViewHardDriveIcon.java b/flatlaf-core/src/main/java/com/formdev/flatlaf/icons/FlatFileViewHardDriveIcon.java index bc03c181..8f635ce9 100644 --- a/flatlaf-core/src/main/java/com/formdev/flatlaf/icons/FlatFileViewHardDriveIcon.java +++ b/flatlaf-core/src/main/java/com/formdev/flatlaf/icons/FlatFileViewHardDriveIcon.java @@ -25,7 +25,7 @@ import javax.swing.UIManager; /** * "hard drive" icon for {@link javax.swing.JFileChooser}. * - * @uiDefault FileView.icon.hardDriveColor Color + * @uiDefault Objects.Grey Color * * @author Karl Tauber */ @@ -33,7 +33,7 @@ public class FlatFileViewHardDriveIcon extends FlatAbstractIcon { public FlatFileViewHardDriveIcon() { - super( 16, 16, UIManager.getColor( "FileView.icon.hardDriveColor" ) ); + super( 16, 16, UIManager.getColor( "Objects.Grey" ) ); } @Override diff --git a/flatlaf-core/src/main/resources/com/formdev/flatlaf/FlatLaf.properties b/flatlaf-core/src/main/resources/com/formdev/flatlaf/FlatLaf.properties index 2d53dc66..37b069bf 100644 --- a/flatlaf-core/src/main/resources/com/formdev/flatlaf/FlatLaf.properties +++ b/flatlaf-core/src/main/resources/com/formdev/flatlaf/FlatLaf.properties @@ -128,12 +128,6 @@ FileChooser.homeFolderIcon=com.formdev.flatlaf.icons.FlatFileChooserHomeFolderIc FileChooser.detailsViewIcon=com.formdev.flatlaf.icons.FlatFileChooserDetailsViewIcon FileChooser.listViewIcon=com.formdev.flatlaf.icons.FlatFileChooserListViewIcon -FileChooser.icon.newFolderColor=@icon -FileChooser.icon.upFolderColor=@icon -FileChooser.icon.homeFolderColor=@icon -FileChooser.icon.detailsViewColor=@icon -FileChooser.icon.listViewColor=@icon - #---- FileView ---- @@ -143,12 +137,6 @@ FileView.computerIcon=com.formdev.flatlaf.icons.FlatFileViewComputerIcon FileView.hardDriveIcon=com.formdev.flatlaf.icons.FlatFileViewHardDriveIcon FileView.floppyDriveIcon=com.formdev.flatlaf.icons.FlatFileViewFloppyDriveIcon -FileView.icon.directoryColor=@icon -FileView.icon.fileColor=@icon -FileView.icon.computerColor=@icon -FileView.icon.hardDriveColor=@icon -FileView.icon.floppyDriveColor=@icon - #---- FormattedTextField ----