Extras: added support for JComponent.outline client property (issue #117)

This commit is contained in:
Karl Tauber
2020-12-12 13:59:58 +01:00
parent 42a91ba26c
commit 11f9740dbf
10 changed files with 219 additions and 9 deletions

View File

@@ -5,6 +5,9 @@ FlatLaf Change Log
#### New features and improvements
- Extras: Added standard component extension classes that provides easy access
to FlatLaf specific client properties (see package
`com.formdev.flatlaf.extras.components`).
- Extras: Renamed tri-state check box class from
`com.formdev.flatlaf.extras.TriStateCheckBox` to
`com.formdev.flatlaf.extras.components.FlatTriStateCheckBox`.

View File

@@ -130,6 +130,15 @@ public interface FlatClientProperties
*/
String MINIMUM_HEIGHT = "JComponent.minimumHeight";
/**
* Paint the component with round edges.
* <p>
* <strong>Components</strong> {@link javax.swing.JComboBox}, {@link javax.swing.JSpinner},
* {@link javax.swing.JTextField}, {@link javax.swing.JFormattedTextField} and {@link javax.swing.JPasswordField}<br>
* <strong>Value type</strong> {@link java.lang.Boolean}
*/
String COMPONENT_ROUND_RECT = "JComponent.roundRect";
/**
* Specifies the outline color of the component border.
* <p>
@@ -161,15 +170,6 @@ public interface FlatClientProperties
*/
String OUTLINE_WARNING = "warning";
/**
* Paint the component with round edges.
* <p>
* <strong>Components</strong> {@link javax.swing.JComboBox}, {@link javax.swing.JSpinner},
* {@link javax.swing.JTextField}, {@link javax.swing.JFormattedTextField} and {@link javax.swing.JPasswordField}<br>
* <strong>Value type</strong> {@link java.lang.Boolean}
*/
String COMPONENT_ROUND_RECT = "JComponent.roundRect";
//---- Popup --------------------------------------------------------------
/**

View File

@@ -17,6 +17,7 @@
package com.formdev.flatlaf.extras.components;
import static com.formdev.flatlaf.FlatClientProperties.*;
import java.awt.Color;
import javax.swing.JButton;
/**
@@ -91,4 +92,29 @@ public class FlatButton
public void setMinimumHeight( int minimumHeight ) {
putClientProperty( MINIMUM_HEIGHT, (minimumHeight >= 0) ? minimumHeight : null );
}
/**
* Returns the outline color of the component border.
*/
public Object getOutline() {
return getClientProperty( OUTLINE );
}
/**
* Specifies the outline color of the component border.
* <p>
* Allowed Values are:
* <ul>
* <li>{@code null}
* <li>string {@code "error"}
* <li>string {@code "warning"}
* <li>any color (type {@link Color})
* <li>an array of two colors (type {@link Color}[2]) where the first color
* is for focused state and the second for unfocused state
* </ul>
*/
public void setOutline( Object outline ) {
putClientProperty( OUTLINE, outline );
}
}

View File

@@ -17,6 +17,7 @@
package com.formdev.flatlaf.extras.components;
import static com.formdev.flatlaf.FlatClientProperties.*;
import java.awt.Color;
import javax.swing.JComboBox;
/**
@@ -71,4 +72,29 @@ public class FlatComboBox<E>
public void setRoundRect( boolean roundRect ) {
putClientPropertyBoolean( COMPONENT_ROUND_RECT, roundRect, false );
}
/**
* Returns the outline color of the component border.
*/
public Object getOutline() {
return getClientProperty( OUTLINE );
}
/**
* Specifies the outline color of the component border.
* <p>
* Allowed Values are:
* <ul>
* <li>{@code null}
* <li>string {@code "error"}
* <li>string {@code "warning"}
* <li>any color (type {@link Color})
* <li>an array of two colors (type {@link Color}[2]) where the first color
* is for focused state and the second for unfocused state
* </ul>
*/
public void setOutline( Object outline ) {
putClientProperty( OUTLINE, outline );
}
}

View File

@@ -17,6 +17,7 @@
package com.formdev.flatlaf.extras.components;
import static com.formdev.flatlaf.FlatClientProperties.*;
import java.awt.Color;
import javax.swing.JFormattedTextField;
import com.formdev.flatlaf.extras.components.FlatTextField.SelectAllOnFocusPolicy;
@@ -88,4 +89,29 @@ public class FlatFormattedTextField
public void setRoundRect( boolean roundRect ) {
putClientPropertyBoolean( COMPONENT_ROUND_RECT, roundRect, false );
}
/**
* Returns the outline color of the component border.
*/
public Object getOutline() {
return getClientProperty( OUTLINE );
}
/**
* Specifies the outline color of the component border.
* <p>
* Allowed Values are:
* <ul>
* <li>{@code null}
* <li>string {@code "error"}
* <li>string {@code "warning"}
* <li>any color (type {@link Color})
* <li>an array of two colors (type {@link Color}[2]) where the first color
* is for focused state and the second for unfocused state
* </ul>
*/
public void setOutline( Object outline ) {
putClientProperty( OUTLINE, outline );
}
}

View File

@@ -17,6 +17,7 @@
package com.formdev.flatlaf.extras.components;
import static com.formdev.flatlaf.FlatClientProperties.*;
import java.awt.Color;
import javax.swing.JPasswordField;
import com.formdev.flatlaf.extras.components.FlatTextField.SelectAllOnFocusPolicy;
@@ -88,4 +89,29 @@ public class FlatPasswordField
public void setRoundRect( boolean roundRect ) {
putClientPropertyBoolean( COMPONENT_ROUND_RECT, roundRect, false );
}
/**
* Returns the outline color of the component border.
*/
public Object getOutline() {
return getClientProperty( OUTLINE );
}
/**
* Specifies the outline color of the component border.
* <p>
* Allowed Values are:
* <ul>
* <li>{@code null}
* <li>string {@code "error"}
* <li>string {@code "warning"}
* <li>any color (type {@link Color})
* <li>an array of two colors (type {@link Color}[2]) where the first color
* is for focused state and the second for unfocused state
* </ul>
*/
public void setOutline( Object outline ) {
putClientProperty( OUTLINE, outline );
}
}

View File

@@ -17,6 +17,7 @@
package com.formdev.flatlaf.extras.components;
import static com.formdev.flatlaf.FlatClientProperties.*;
import java.awt.Color;
import javax.swing.JScrollPane;
/**
@@ -56,4 +57,29 @@ public class FlatScrollPane
public void setSmoothScrolling( boolean smoothScrolling ) {
putClientProperty( SCROLL_PANE_SMOOTH_SCROLLING, smoothScrolling );
}
/**
* Returns the outline color of the component border.
*/
public Object getOutline() {
return getClientProperty( OUTLINE );
}
/**
* Specifies the outline color of the component border.
* <p>
* Allowed Values are:
* <ul>
* <li>{@code null}
* <li>string {@code "error"}
* <li>string {@code "warning"}
* <li>any color (type {@link Color})
* <li>an array of two colors (type {@link Color}[2]) where the first color
* is for focused state and the second for unfocused state
* </ul>
*/
public void setOutline( Object outline ) {
putClientProperty( OUTLINE, outline );
}
}

View File

@@ -17,6 +17,7 @@
package com.formdev.flatlaf.extras.components;
import static com.formdev.flatlaf.FlatClientProperties.*;
import java.awt.Color;
import javax.swing.JSpinner;
/**
@@ -56,4 +57,29 @@ public class FlatSpinner
public void setRoundRect( boolean roundRect ) {
putClientPropertyBoolean( COMPONENT_ROUND_RECT, roundRect, false );
}
/**
* Returns the outline color of the component border.
*/
public Object getOutline() {
return getClientProperty( OUTLINE );
}
/**
* Specifies the outline color of the component border.
* <p>
* Allowed Values are:
* <ul>
* <li>{@code null}
* <li>string {@code "error"}
* <li>string {@code "warning"}
* <li>any color (type {@link Color})
* <li>an array of two colors (type {@link Color}[2]) where the first color
* is for focused state and the second for unfocused state
* </ul>
*/
public void setOutline( Object outline ) {
putClientProperty( OUTLINE, outline );
}
}

View File

@@ -17,6 +17,7 @@
package com.formdev.flatlaf.extras.components;
import static com.formdev.flatlaf.FlatClientProperties.*;
import java.awt.Color;
import javax.swing.JTextField;
/**
@@ -90,4 +91,29 @@ public class FlatTextField
public void setRoundRect( boolean roundRect ) {
putClientPropertyBoolean( COMPONENT_ROUND_RECT, roundRect, false );
}
/**
* Returns the outline color of the component border.
*/
public Object getOutline() {
return getClientProperty( OUTLINE );
}
/**
* Specifies the outline color of the component border.
* <p>
* Allowed Values are:
* <ul>
* <li>{@code null}
* <li>string {@code "error"}
* <li>string {@code "warning"}
* <li>any color (type {@link Color})
* <li>an array of two colors (type {@link Color}[2]) where the first color
* is for focused state and the second for unfocused state
* </ul>
*/
public void setOutline( Object outline ) {
putClientProperty( OUTLINE, outline );
}
}

View File

@@ -92,6 +92,31 @@ public class FlatToggleButton
}
/**
* Returns the outline color of the component border.
*/
public Object getOutline() {
return getClientProperty( OUTLINE );
}
/**
* Specifies the outline color of the component border.
* <p>
* Allowed Values are:
* <ul>
* <li>{@code null}
* <li>string {@code "error"}
* <li>string {@code "warning"}
* <li>any color (type {@link Color})
* <li>an array of two colors (type {@link Color}[2]) where the first color
* is for focused state and the second for unfocused state
* </ul>
*/
public void setOutline( Object outline ) {
putClientProperty( OUTLINE, outline );
}
/**
* Returns height of underline if toggle button type is {@link ButtonType#tab}.
*/