Class ClassicButtonShaper
- java.lang.Object
-
- org.pushingpixels.radiance.theming.api.shaper.ClassicButtonShaper
-
- All Implemented Interfaces:
RadianceButtonShaper
,RectangularButtonShaper
,RadianceTrait
public class ClassicButtonShaper extends java.lang.Object implements RadianceButtonShaper, RectangularButtonShaper
Button shaper that returns rectangular buttons with slightly rounded corners (ala Windows XP). This class is part of officially supported API.
-
-
Field Summary
Fields Modifier and Type Field Description private static LazyResettableHashMap<java.awt.Shape>
contours
Cache of already computed contours.static ClassicButtonShaper
INSTANCE
Reusable instance of this shaper.
-
Constructor Summary
Constructors Constructor Description ClassicButtonShaper()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description javax.swing.border.Border
getButtonBorder(javax.swing.AbstractButton button)
Returns the border for the specified button.java.awt.Shape
getButtonOutline(javax.swing.AbstractButton button, float extraInsets, float width, float height, double scaleFactor, boolean isInner)
Returns the outline path for the specified button.float
getCornerRadius(javax.swing.AbstractButton button, float insets)
Returns the corner radius of the specified button.java.lang.String
getDisplayName()
Returns the display name ofthis
trait.java.awt.Dimension
getPreferredSize(javax.swing.AbstractButton button, java.awt.Dimension uiPreferredSize)
Returns the preferred size for the specified button.boolean
isProportionate()
Returns the boolean indication whether the shaper should maintain button proportions on the resize.
-
-
-
Field Detail
-
contours
private static final LazyResettableHashMap<java.awt.Shape> contours
Cache of already computed contours.
-
INSTANCE
public static final ClassicButtonShaper INSTANCE
Reusable instance of this shaper.
-
-
Method Detail
-
getDisplayName
public java.lang.String getDisplayName()
Description copied from interface:RadianceTrait
Returns the display name ofthis
trait. This method is part of officially supported API.- Specified by:
getDisplayName
in interfaceRadianceTrait
- Returns:
- The display name of
this
trait.
-
getButtonOutline
public java.awt.Shape getButtonOutline(javax.swing.AbstractButton button, float extraInsets, float width, float height, double scaleFactor, boolean isInner)
Description copied from interface:RadianceButtonShaper
Returns the outline path for the specified button.- Specified by:
getButtonOutline
in interfaceRadianceButtonShaper
- Parameters:
button
- A button.extraInsets
- Button insets.width
- Button width.height
- Button height.scaleFactor
- Scale factor.isInner
- Indication whether the returned outline is used for the inner contour.- Returns:
- The outline path for the specified button.
-
getButtonBorder
public javax.swing.border.Border getButtonBorder(javax.swing.AbstractButton button)
Description copied from interface:RadianceButtonShaper
Returns the border for the specified button.- Specified by:
getButtonBorder
in interfaceRadianceButtonShaper
- Parameters:
button
- A button.- Returns:
- The border for the specified button.
-
getPreferredSize
public java.awt.Dimension getPreferredSize(javax.swing.AbstractButton button, java.awt.Dimension uiPreferredSize)
Description copied from interface:RadianceButtonShaper
Returns the preferred size for the specified button.- Specified by:
getPreferredSize
in interfaceRadianceButtonShaper
- Parameters:
button
- A button.uiPreferredSize
- Preferred size of the button under the regular conditions (plain rectangular button).- Returns:
- The preferred size for the specified button.
-
isProportionate
public boolean isProportionate()
Description copied from interface:RadianceButtonShaper
Returns the boolean indication whether the shaper should maintain button proportions on the resize. This may be relevant for vector-based shapers (such as animals / other objects).- Specified by:
isProportionate
in interfaceRadianceButtonShaper
- Returns:
true
ifthis
shaper should maintain button proportions on the resize,false
otherwise.
-
getCornerRadius
public float getCornerRadius(javax.swing.AbstractButton button, float insets)
Description copied from interface:RectangularButtonShaper
Returns the corner radius of the specified button.- Specified by:
getCornerRadius
in interfaceRectangularButtonShaper
- Parameters:
button
- Button.insets
- Button insets.- Returns:
- Corner radius of the specified button.
-
-