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)
This commit is contained in:
Karl Tauber
2019-11-15 22:48:44 +01:00
parent d72cfc37d6
commit 223af48c09
12 changed files with 67 additions and 32 deletions

View File

@@ -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<Class<?>> 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.
* <p>
* 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( ... );}.
* <p>
* The colors are based on IntelliJ Platform
* <a href="https://jetbrains.design/intellij/principles/icons/#action-icons">Action icons</a>
* and
* <a href="https://jetbrains.design/intellij/principles/icons/#noun-icons">Noun icons</a>
*/
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 {

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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 ) );
}
}

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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 ----