use chevron arrows for table header ascending/descending sort icons (#7)

This commit is contained in:
Karl Tauber
2019-11-15 23:41:26 +01:00
parent 223af48c09
commit a145673dd1
3 changed files with 27 additions and 3 deletions

View File

@@ -16,15 +16,18 @@
package com.formdev.flatlaf.icons; package com.formdev.flatlaf.icons;
import java.awt.BasicStroke;
import java.awt.Color; import java.awt.Color;
import java.awt.Component; import java.awt.Component;
import java.awt.Graphics2D; import java.awt.Graphics2D;
import java.awt.geom.Path2D;
import javax.swing.UIManager; import javax.swing.UIManager;
import com.formdev.flatlaf.ui.FlatUIUtils; import com.formdev.flatlaf.ui.FlatUIUtils;
/** /**
* "ascendingSort" icon for {@link javax.swing.table.JTableHeader}. * "ascendingSort" icon for {@link javax.swing.table.JTableHeader}.
* *
* @uiDefault Component.arrowType String triangle (default) or chevron
* @uiDefault Table.sortIconColor Color * @uiDefault Table.sortIconColor Color
* *
* @author Karl Tauber * @author Karl Tauber
@@ -32,6 +35,7 @@ import com.formdev.flatlaf.ui.FlatUIUtils;
public class FlatAscendingSortIcon public class FlatAscendingSortIcon
extends FlatAbstractIcon extends FlatAbstractIcon
{ {
protected final boolean chevron = "chevron".equals( UIManager.getString( "Component.arrowType" ) );
protected final Color sortIconColor = UIManager.getColor( "Table.sortIconColor" ); protected final Color sortIconColor = UIManager.getColor( "Table.sortIconColor" );
public FlatAscendingSortIcon() { public FlatAscendingSortIcon() {
@@ -41,6 +45,14 @@ public class FlatAscendingSortIcon
@Override @Override
protected void paintIcon( Component c, Graphics2D g ) { protected void paintIcon( Component c, Graphics2D g ) {
g.setColor( sortIconColor ); g.setColor( sortIconColor );
g.fill( FlatUIUtils.createPath( 0.5,5, 9.5,5, 5,0 ) ); if( chevron ) {
// chevron arrow
Path2D path = FlatUIUtils.createPath( false, 1,5, 5,1, 9,5 );
g.setStroke( new BasicStroke( 1f ) );
g.draw( path );
} else {
// triangle arrow
g.fill( FlatUIUtils.createPath( 0.5,5, 5,0, 9.5,5 ) );
}
} }
} }

View File

@@ -16,15 +16,18 @@
package com.formdev.flatlaf.icons; package com.formdev.flatlaf.icons;
import java.awt.BasicStroke;
import java.awt.Color; import java.awt.Color;
import java.awt.Component; import java.awt.Component;
import java.awt.Graphics2D; import java.awt.Graphics2D;
import java.awt.geom.Path2D;
import javax.swing.UIManager; import javax.swing.UIManager;
import com.formdev.flatlaf.ui.FlatUIUtils; import com.formdev.flatlaf.ui.FlatUIUtils;
/** /**
* "descendingSort" icon for {@link javax.swing.table.JTableHeader}. * "descendingSort" icon for {@link javax.swing.table.JTableHeader}.
* *
* @uiDefault Component.arrowType String triangle (default) or chevron
* @uiDefault Table.sortIconColor Color * @uiDefault Table.sortIconColor Color
* *
* @author Karl Tauber * @author Karl Tauber
@@ -32,6 +35,7 @@ import com.formdev.flatlaf.ui.FlatUIUtils;
public class FlatDescendingSortIcon public class FlatDescendingSortIcon
extends FlatAbstractIcon extends FlatAbstractIcon
{ {
protected final boolean chevron = "chevron".equals( UIManager.getString( "Component.arrowType" ) );
protected final Color sortIconColor = UIManager.getColor( "Table.sortIconColor" ); protected final Color sortIconColor = UIManager.getColor( "Table.sortIconColor" );
public FlatDescendingSortIcon() { public FlatDescendingSortIcon() {
@@ -41,6 +45,14 @@ public class FlatDescendingSortIcon
@Override @Override
protected void paintIcon( Component c, Graphics2D g ) { protected void paintIcon( Component c, Graphics2D g ) {
g.setColor( sortIconColor ); g.setColor( sortIconColor );
g.fill( FlatUIUtils.createPath( 0.5,0, 9.5,0, 5,5 ) ); if( chevron ) {
// chevron arrow
Path2D path = FlatUIUtils.createPath( false, 1,1, 5,5, 9,1 );
g.setStroke( new BasicStroke( 1f ) );
g.draw( path );
} else {
// triangle arrow
g.fill( FlatUIUtils.createPath( 0.5,0, 5,5, 9.5,0 ) );
}
} }
} }

View File

@@ -60,7 +60,7 @@ public class FlatMenuArrowIcon
g.draw( path ); g.draw( path );
} else { } else {
// triangle arrow // triangle arrow
g.fill( FlatUIUtils.createPath( 0,0.5, 0,9.5, 5,5 ) ); g.fill( FlatUIUtils.createPath( 0,0.5, 5,5, 0,9.5 ) );
} }
} }