org.pushingpixels.substance.internal.utils
Class SubstanceCoreUtilities

java.lang.Object
  extended by org.pushingpixels.substance.internal.utils.SubstanceCoreUtilities

public class SubstanceCoreUtilities
extends java.lang.Object

Various utility functions. This class is for internal use only.


Nested Class Summary
static interface SubstanceCoreUtilities.TextComponentAware<T>
           
 
Field Summary
static java.lang.String IS_COVERED_BY_LIGHTWEIGHT_POPUPS
          Client property name for marking components covered by lightweight popups.
static boolean reallyPrint
           
static boolean reallyThrow
           
static java.lang.String TEXT_COMPONENT_AWARE
           
 
Method Summary
static java.awt.image.BufferedImage blendImagesHorizontal(java.awt.image.BufferedImage imageLeft, java.awt.image.BufferedImage imageRight, double start, double end)
          Blends two images along X-axis.
static java.awt.image.BufferedImage blendImagesVertical(java.awt.image.BufferedImage imageTop, java.awt.image.BufferedImage imageBottom, double start, double end)
          Blends two images along Y-axis.
static boolean canReplaceChildBackgroundColor(java.awt.Color background)
           
static java.lang.String clipString(java.awt.FontMetrics metrics, int availableWidth, java.lang.String fullText)
          Clips string based on specified font metrics and available width (in pixels).
static java.awt.image.BufferedImage createCompatibleImage(java.awt.image.BufferedImage image)
          Creates a compatible image (for efficient processing and drawing).
static javax.swing.Icon getArrowIcon(javax.swing.AbstractButton button, int orientation)
          Returns the arrow icon.
static javax.swing.Icon getArrowIcon(javax.swing.JComponent comp, TransitionAwareIcon.TransitionAwareUIDelegate transitionAwareUIDelegate, int orientation)
          Returns the arrow icon.
static java.awt.image.BufferedImage getBlankImage(int width, int height)
          Retrieves transparent image of specified dimension.
static java.awt.image.VolatileImage getBlankVolatileImage(int width, int height)
          Retrieves transparent image of specified dimension.
static SubstanceBorderPainter getBorderPainter(java.awt.Component comp)
          Returns the border painter for the specified component.
static SubstanceButtonShaper getButtonShaper(java.awt.Component comp)
          Returns the button shaper of the specified button.
static java.lang.ClassLoader getClassLoaderForResources()
          Returns the class loader for loading the resource files.
static int getCloseButtonSize(javax.swing.JTabbedPane tabbedPane, int tabIndex)
          Returns the size of the close button for a tab in the specified tabbed pane.
static double getColorizationFactor(java.awt.Component c)
          Returns the colorization factor for the specified component.
static java.lang.Object getComboPopupPrototypeDisplayValue(javax.swing.JComboBox combo)
          Returns the popup prototype display value for the specified combo box.
static SubstanceConstants.TabContentPaneBorderKind getContentBorderKind(javax.swing.JTabbedPane tabbedPane)
          Returns the content border kind of the specified tabbed pane.
static int getEchoPerChar(javax.swing.JPasswordField jpf)
          Returns the number of echo characters per each password chanaracter.
static SubstanceFillPainter getFillPainter(java.awt.Component comp)
          Returns the fill painter of the specified component.
static SubstanceConstants.FocusKind getFocusKind(java.awt.Component component)
          Returns the focus ring kind of the specified component.
static HashMapKey getHashKey(java.lang.Object... objects)
          Returns a hash key for the specified parameters.
static java.awt.Container getHeaderParent(java.awt.Component c)
          Given a component, returns the parent for computing the SubstanceDecorationPainter.
static java.lang.String getHierarchy(java.awt.Component comp)
          Returns the component hierarchy.
static void getHierarchy(java.awt.Component comp, java.lang.StringBuffer buffer, int level)
          Computes the component hierarchy.
static SubstanceBorderPainter getHighlightBorderPainter(java.awt.Component comp)
          Returns the highlight border painter for the specified component.
static javax.swing.Icon getIcon(java.lang.String iconResource)
          Returns an icon pointed to by the specified string.
static SubstanceConstants.MenuGutterFillKind getMenuGutterFillKind()
          Returns the global menu gutter fill kind.
static SubstanceColorScheme getOptionPaneColorScheme(int messageType, SubstanceColorScheme mainScheme)
          Returns the color scheme for the icon of option panes with the specified message type.
static javax.swing.Icon getOriginalIcon(javax.swing.AbstractButton b, javax.swing.Icon defaultIcon)
           
static int getPopupFlyoutOrientation(javax.swing.JComboBox combobox)
          Returns the popup flyout orientation for the specified combobox.
static int getPopupParentIndexOf(java.awt.Component comp, java.awt.Component[] popups)
          Gets a component and a list of popups and returns the index of the popup that is a parent of the specified component.
static java.util.ResourceBundle getResourceBundle(javax.swing.JComponent jcomp)
          Returns the resource bundle for the specified component.
static java.awt.image.BufferedImage getScaledIconImage(java.util.List<java.awt.Image> imageList, int width, int height)
          Scans imageList for best-looking image of specified dimensions.
static SubstanceConstants.ScrollPaneButtonPolicyKind getScrollPaneButtonsPolicyKind(javax.swing.JScrollBar scrollBar)
          Returns the scroll bar buttons kind of the specified scroll bar.
static java.util.Set<SubstanceConstants.Side> getSides(javax.swing.JComponent component, java.lang.String propertyName)
          Returns the set of sides registered on the specified button.
static SubstanceSkin getSkin(java.awt.Component c)
          Returns the skin of the specified component.
static TabCloseCallback getTabCloseCallback(java.awt.event.MouseEvent me, javax.swing.JTabbedPane tabbedPane, int tabIndex)
          Returns the callback to be called upon tab closing (using the tab close button).
static javax.swing.text.JTextComponent getTextComponentForTransitions(java.awt.Component c)
           
static org.pushingpixels.trident.swing.SwingRepaintCallback getTextComponentRepaintCallback(javax.swing.text.JTextComponent textComponent)
           
static javax.swing.Icon getThemedIcon(java.awt.Component comp, javax.swing.Icon orig)
           
static javax.swing.Icon getThemedIcon(javax.swing.JTabbedPane tab, int tabIndex, javax.swing.Icon orig)
           
static javax.swing.JComponent getTitlePane(javax.swing.JRootPane rootPane)
          Returns the title pane of the specified root pane.
static float getToolbarButtonCornerRadius(javax.swing.JComponent button, java.awt.Insets insets)
          Returns the corner radius of the specified toolbar button.
static java.lang.String getVmParameter(java.lang.String parameterName)
          Retrieves a single parameter from the VM flags.
static boolean hasCloseButton(javax.swing.JTabbedPane tabbedPane, int tabIndex)
          Checks whether the specified tab has a close button.
static boolean hasFlatAppearance(javax.swing.AbstractButton button)
          Computes whether the specified button has flat appearance.
static boolean hasFlatAppearance(java.awt.Component comp, boolean defaultValue)
          Checks whether the specified component is flat.
static boolean hasIcon(javax.swing.AbstractButton button)
          Checks whether the specified button has associated icon.
static boolean hasNoMinSizeProperty(javax.swing.AbstractButton button)
          Checks whether the specified button should have minimal size.
static boolean hasText(javax.swing.AbstractButton button)
          Checks whether the specified button has associated text.
static boolean isButtonNeverPainted(javax.swing.JComponent button)
          Checks whether the specified button never paints its background.
static boolean isComboBoxButton(javax.swing.AbstractButton button)
          Checks and answers if the specified button is in a combo box.
static boolean isCoveredByLightweightPopups(java.awt.Component comp)
           
static boolean isInternalFrameModified(javax.swing.JInternalFrame internalFrame)
          Retrieves the modified state for the specified internal frame.
static boolean isOpaque(java.awt.Component c)
           
static boolean isPaintRootPaneActivated(javax.swing.JRootPane rp)
           
static boolean isRootPaneModified(javax.swing.JRootPane rootPane)
          Retrieves the modified state for the specified root pane.
static boolean isScrollBarButton(javax.swing.AbstractButton button)
          Checks and answers if the specified button is in a scroll bar.
static boolean isScrollButton(javax.swing.JComponent comp)
          Checks answers if the specified component is a button in a scroll control, such as scroll bar or tabbed pane (as tab scroller).
static boolean isSecondaryWindow(javax.swing.JRootPane rp)
           
static boolean isSpinnerButton(javax.swing.AbstractButton button)
          Checks and answers if the specified button is in a spinner.
static boolean isTabModified(java.awt.Component tabComponent)
          Retrieves the modified state for the specified component in a tabbed pane.
static boolean isTitleCloseButton(javax.swing.JComponent ab)
          Returns indication whether the specified button is a close button on some title pane.
static boolean isToolBarButton(javax.swing.JComponent component)
          Checks and answers if the specified button is in a toolbar.
static void makeNonOpaque(java.awt.Component comp, java.util.Map<java.awt.Component,java.lang.Boolean> opacitySnapshot)
          Makes the specified component and all its descendants non-opaque.
static void paintFocus(java.awt.Graphics g, java.awt.Component mainComp, java.awt.Component focusedComp, TransitionAwareUI transitionAwareUI, java.awt.Shape focusShape, java.awt.Rectangle textRect, float maxAlphaCoef, int extraPadding)
          Paints the focus ring on the specified component.
static boolean reallyPrintThreadingExceptions()
           
static boolean reallyThrowThreadingExceptions()
           
static void restoreOpaque(java.awt.Component comp, java.util.Map<java.awt.Component,java.lang.Boolean> opacitySnapshot)
          Restores the opacity of the specified component and all its descendants.
static java.awt.image.BufferedImage softClip(int width, int height, java.awt.image.BufferedImage source, java.awt.Shape clipShape)
          Creates a soft-clipped image.
static void stopThreads()
          Stops all Substance threads.
static void testComponentCreationThreadingViolation(java.awt.Component comp)
          Tests UI threading violations on creating the specified component.
static void testComponentStateChangeThreadingViolation(java.awt.Component comp)
          Tests UI threading violations on changing the state the specified component.
static void testWindowCloseThreadingViolation(java.awt.Window w)
          Tests UI threading violations on closing the specified window.
static boolean toAnimateCloseIconOfModifiedTab(javax.swing.JTabbedPane tabbedPane, int tabIndex)
          Checks whether the specified tab should show modified animation only on its close button.
static boolean toDrawWatermark(java.awt.Component component)
          Returns indication whether the watermark should be drawn on the specified component.
static boolean toShowExtraWidgets(java.awt.Component component)
          Checks whether the specified component has extra Substance-specific UI elements.
static void traceSubstanceApiUsage(java.awt.Component comp, java.lang.String message)
           
static void uninstallMenu(javax.swing.JMenuItem menuItem)
          Uninstalls the specified menu item.
static boolean useThemedDefaultIcon(javax.swing.JComponent comp)
          Checks whether the specified component will show scheme-colorized icon in the default state.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

IS_COVERED_BY_LIGHTWEIGHT_POPUPS

public static final java.lang.String IS_COVERED_BY_LIGHTWEIGHT_POPUPS
Client property name for marking components covered by lightweight popups. This is tracking the fix for issue 297. The client property value should be an instance of Boolean.

See Also:
Constant Field Values

TEXT_COMPONENT_AWARE

public static final java.lang.String TEXT_COMPONENT_AWARE
See Also:
Constant Field Values

reallyThrow

public static final boolean reallyThrow

reallyPrint

public static final boolean reallyPrint
Method Detail

clipString

public static java.lang.String clipString(java.awt.FontMetrics metrics,
                                          int availableWidth,
                                          java.lang.String fullText)
Clips string based on specified font metrics and available width (in pixels). Returns the clipped string, which contains the beginning and the end of the input string separated by ellipses (...) in case the string is too long to fit into the specified width, and the origianl string otherwise.

Parameters:
metrics - Font metrics.
availableWidth - Available width in pixels.
fullText - String to clip.
Returns:
The clipped string, which contains the beginning and the end of the input string separated by ellipses (...) in case the string is too long to fit into the specified width, and the origianl string otherwise.

hasIcon

public static boolean hasIcon(javax.swing.AbstractButton button)
Checks whether the specified button has associated icon.

Parameters:
button - Button.
Returns:
If the button has associated icon, true is returned, otherwise false.

hasText

public static boolean hasText(javax.swing.AbstractButton button)
Checks whether the specified button has associated text.

Parameters:
button - Button.
Returns:
If the button has associated text, true is returned, otherwise false.

isComboBoxButton

public static boolean isComboBoxButton(javax.swing.AbstractButton button)
Checks and answers if the specified button is in a combo box.

Parameters:
button - the button to check
Returns:
true if in combo box, false otherwise

isScrollBarButton

public static boolean isScrollBarButton(javax.swing.AbstractButton button)
Checks and answers if the specified button is in a scroll bar.

Parameters:
button - the button to check
Returns:
true if in scroll bar, false otherwise

isSpinnerButton

public static boolean isSpinnerButton(javax.swing.AbstractButton button)
Checks and answers if the specified button is in a spinner.

Parameters:
button - the button to check
Returns:
true if in spinner, false otherwise

isToolBarButton

public static boolean isToolBarButton(javax.swing.JComponent component)
Checks and answers if the specified button is in a toolbar.

Parameters:
component - the button to check
Returns:
true if in toolbar, false otherwise

isScrollButton

public static boolean isScrollButton(javax.swing.JComponent comp)
Checks answers if the specified component is a button in a scroll control, such as scroll bar or tabbed pane (as tab scroller).

Parameters:
comp - The component to check
Returns:
true if the specified component is a button in a scroll control, false otherwise

isButtonNeverPainted

public static boolean isButtonNeverPainted(javax.swing.JComponent button)
Checks whether the specified button never paints its background.

Parameters:
button - Button.
Returns:
true if the specified button never paints its background, false otherwise.
See Also:
SubstanceLookAndFeel.BUTTON_PAINT_NEVER_PROPERTY

getFocusKind

public static SubstanceConstants.FocusKind getFocusKind(java.awt.Component component)
Returns the focus ring kind of the specified component.

Parameters:
component - Component.
Returns:
The focus ring kind of the specified component.
See Also:
SubstanceLookAndFeel.FOCUS_KIND

toDrawWatermark

public static boolean toDrawWatermark(java.awt.Component component)
Returns indication whether the watermark should be drawn on the specified component.

Parameters:
component - Component.
Returns:
true if the watermark should be drawn on the specified component, false otherwise.
See Also:
SubstanceLookAndFeel.WATERMARK_VISIBLE

getButtonShaper

public static SubstanceButtonShaper getButtonShaper(java.awt.Component comp)
Returns the button shaper of the specified button.

Parameters:
comp - The button.
Returns:
The button shaper of the specified button.
See Also:
SubstanceLookAndFeel.BUTTON_SHAPER_PROPERTY, SubstanceSkin.getButtonShaper()

getFillPainter

public static SubstanceFillPainter getFillPainter(java.awt.Component comp)
Returns the fill painter of the specified component.

Parameters:
comp - Component.
Returns:
The fill painter of the specified component.
See Also:
SubstanceSkin.getFillPainter()

isTabModified

public static boolean isTabModified(java.awt.Component tabComponent)
Retrieves the modified state for the specified component in a tabbed pane.

Parameters:
tabComponent - The associated tab component.
Returns:
true if the specified component in a tabbed pane is marked as modified, false otherwise.
See Also:
SubstanceLookAndFeel.WINDOW_MODIFIED

isRootPaneModified

public static boolean isRootPaneModified(javax.swing.JRootPane rootPane)
Retrieves the modified state for the specified root pane.

Parameters:
rootPane - The root pane.
Returns:
true if the specified root pane is marked as modified, false otherwise.
See Also:
SubstanceLookAndFeel.WINDOW_MODIFIED

isInternalFrameModified

public static boolean isInternalFrameModified(javax.swing.JInternalFrame internalFrame)
Retrieves the modified state for the specified internal frame.

Parameters:
internalFrame - The internal frame.
Returns:
true if the specified internal frame is marked as modified, false otherwise.
See Also:
SubstanceLookAndFeel.WINDOW_MODIFIED

isPaintRootPaneActivated

public static boolean isPaintRootPaneActivated(javax.swing.JRootPane rp)

isSecondaryWindow

public static boolean isSecondaryWindow(javax.swing.JRootPane rp)

hasCloseButton

public static boolean hasCloseButton(javax.swing.JTabbedPane tabbedPane,
                                     int tabIndex)
Checks whether the specified tab has a close button.

Parameters:
tabbedPane - Tabbed pane.
tabIndex - Tab index.
Returns:
true if the specified tab has a close button, false otherwise.
See Also:
SubstanceLookAndFeel.TABBED_PANE_CLOSE_BUTTONS_PROPERTY

getCloseButtonSize

public static int getCloseButtonSize(javax.swing.JTabbedPane tabbedPane,
                                     int tabIndex)
Returns the size of the close button for a tab in the specified tabbed pane.

Parameters:
tabbedPane - Tabbed pane.
tabIndex - Tab index.
Returns:
The size of the close button for a tab in the specified tabbed pane.

getContentBorderKind

public static SubstanceConstants.TabContentPaneBorderKind getContentBorderKind(javax.swing.JTabbedPane tabbedPane)
Returns the content border kind of the specified tabbed pane.

Parameters:
tabbedPane - Tabbed pane.
Returns:
Content border kind of the specified tabbed pane.
See Also:
SubstanceLookAndFeel.TABBED_PANE_CONTENT_BORDER_KIND

toAnimateCloseIconOfModifiedTab

public static boolean toAnimateCloseIconOfModifiedTab(javax.swing.JTabbedPane tabbedPane,
                                                      int tabIndex)
Checks whether the specified tab should show modified animation only on its close button.

Parameters:
tabbedPane - Tabbed pane.
tabIndex - Tab index.
Returns:
true if the specified tab should show modified animation only on its close button, false otherwise.
See Also:
SubstanceLookAndFeel.TABBED_PANE_CLOSE_BUTTONS_MODIFIED_ANIMATION

getBlankImage

public static java.awt.image.BufferedImage getBlankImage(int width,
                                                         int height)
Retrieves transparent image of specified dimension.

Parameters:
width - Image width.
height - Image height.
Returns:
Transparent image of specified dimension.

getBlankVolatileImage

public static java.awt.image.VolatileImage getBlankVolatileImage(int width,
                                                                 int height)
Retrieves transparent image of specified dimension.

Parameters:
width - Image width.
height - Image height.
Returns:
Transparent image of specified dimension.

hasNoMinSizeProperty

public static boolean hasNoMinSizeProperty(javax.swing.AbstractButton button)
Checks whether the specified button should have minimal size.

Parameters:
button - Button.
Returns:
false if the specified button should have minimal size, true otherwise.
See Also:
SubstanceLookAndFeel.BUTTON_NO_MIN_SIZE_PROPERTY

hasFlatAppearance

public static boolean hasFlatAppearance(java.awt.Component comp,
                                        boolean defaultValue)
Checks whether the specified component is flat.

Parameters:
comp - Component.
defaultValue - The value to return if there is no SubstanceLookAndFeel.FLAT_PROPERTY defined on button hierarchy or UIManager.
Returns:
false if the specified button is flat, true otherwise.
See Also:
SubstanceLookAndFeel.FLAT_PROPERTY

hasFlatAppearance

public static boolean hasFlatAppearance(javax.swing.AbstractButton button)
Computes whether the specified button has flat appearance.

Parameters:
button - Button.
Returns:
true if the button has flat appearance, false otherwise.

getPopupFlyoutOrientation

public static int getPopupFlyoutOrientation(javax.swing.JComboBox combobox)
Returns the popup flyout orientation for the specified combobox.

Parameters:
combobox - Combobox.
Returns:
The popup flyout orientation for the specified combobox.
See Also:
SubstanceLookAndFeel.COMBO_BOX_POPUP_FLYOUT_ORIENTATION

makeNonOpaque

public static void makeNonOpaque(java.awt.Component comp,
                                 java.util.Map<java.awt.Component,java.lang.Boolean> opacitySnapshot)
Makes the specified component and all its descendants non-opaque.

Parameters:
comp - Component.
opacitySnapshot - The "snapshot" map that will contain the original opacity status of the specified component and all its descendants.

restoreOpaque

public static void restoreOpaque(java.awt.Component comp,
                                 java.util.Map<java.awt.Component,java.lang.Boolean> opacitySnapshot)
Restores the opacity of the specified component and all its descendants.

Parameters:
comp - Component.
opacitySnapshot - The "snapshot" map that contains the original opacity status of the specified component and all its descendants.

createCompatibleImage

public static java.awt.image.BufferedImage createCompatibleImage(java.awt.image.BufferedImage image)
Creates a compatible image (for efficient processing and drawing).

Parameters:
image - The original image.
Returns:
Compatible version of the original image.

useThemedDefaultIcon

public static boolean useThemedDefaultIcon(javax.swing.JComponent comp)
Checks whether the specified component will show scheme-colorized icon in the default state.

Parameters:
comp - Component.
Returns:
true if the specified component will show scheme-colorized icon in the default state, false otherwise.
See Also:
SubstanceLookAndFeel.USE_THEMED_DEFAULT_ICONS

getTabCloseCallback

public static TabCloseCallback getTabCloseCallback(java.awt.event.MouseEvent me,
                                                   javax.swing.JTabbedPane tabbedPane,
                                                   int tabIndex)
Returns the callback to be called upon tab closing (using the tab close button).

Parameters:
me - Mouse event.
tabbedPane - Tabbed pane.
tabIndex - Tab index.
Returns:
Callback to be called upon tab closing (using the tab close button).
See Also:
SubstanceLookAndFeel.TABBED_PANE_CLOSE_CALLBACK

blendImagesVertical

public static java.awt.image.BufferedImage blendImagesVertical(java.awt.image.BufferedImage imageTop,
                                                               java.awt.image.BufferedImage imageBottom,
                                                               double start,
                                                               double end)
Blends two images along Y-axis.

Parameters:
imageTop - The left image.
imageBottom - The right image.
start - Relative start of the blend area (in 0.0-1.0 range).
end - Relative end of the blend area (in 0.0-1.0 range).
Returns:
Blended image.

blendImagesHorizontal

public static java.awt.image.BufferedImage blendImagesHorizontal(java.awt.image.BufferedImage imageLeft,
                                                                 java.awt.image.BufferedImage imageRight,
                                                                 double start,
                                                                 double end)
Blends two images along X-axis.

Parameters:
imageLeft - The left image.
imageRight - The right image.
start - Relative start of the blend area (in 0.0-1.0 range).
end - Relative end of the blend area (in 0.0-1.0 range).
Returns:
Blended image.

getOptionPaneColorScheme

public static SubstanceColorScheme getOptionPaneColorScheme(int messageType,
                                                            SubstanceColorScheme mainScheme)
Returns the color scheme for the icon of option panes with the specified message type.

Parameters:
messageType - Option pane message type.
mainScheme - Main color scheme.
Returns:
Color scheme for the icon of option panes with the specified message type.

getComboPopupPrototypeDisplayValue

public static java.lang.Object getComboPopupPrototypeDisplayValue(javax.swing.JComboBox combo)
Returns the popup prototype display value for the specified combo box. This value is used to compute the width of the combo popup.

Parameters:
combo - Combo box.
Returns:
The popup prototype display value for the specified combo box.
See Also:
SubstanceLookAndFeel.COMBO_POPUP_PROTOTYPE

getScrollPaneButtonsPolicyKind

public static SubstanceConstants.ScrollPaneButtonPolicyKind getScrollPaneButtonsPolicyKind(javax.swing.JScrollBar scrollBar)
Returns the scroll bar buttons kind of the specified scroll bar.

Parameters:
scrollBar - Scroll bar.
Returns:
The scroll bar buttons kind of the specified scroll bar.
See Also:
SubstanceLookAndFeel.SCROLL_PANE_BUTTONS_POLICY

getSides

public static java.util.Set<SubstanceConstants.Side> getSides(javax.swing.JComponent component,
                                                              java.lang.String propertyName)
Returns the set of sides registered on the specified button.

Parameters:
component - Button.
propertyName - Client property name for retrieving the registered sides.
Returns:
Set of sides registered on the specified button.

getToolbarButtonCornerRadius

public static float getToolbarButtonCornerRadius(javax.swing.JComponent button,
                                                 java.awt.Insets insets)
Returns the corner radius of the specified toolbar button.

Parameters:
button - Toolbar button.
insets - Button insets.
Returns:
Corner radius of the specified toolbar button.
See Also:
SubstanceLookAndFeel.CORNER_RADIUS

getEchoPerChar

public static int getEchoPerChar(javax.swing.JPasswordField jpf)
Returns the number of echo characters per each password chanaracter.

Parameters:
jpf - Password field.
Returns:
The number of echo characters per each password chanaracter.
See Also:
SubstanceLookAndFeel.PASSWORD_ECHO_PER_CHAR

softClip

public static java.awt.image.BufferedImage softClip(int width,
                                                    int height,
                                                    java.awt.image.BufferedImage source,
                                                    java.awt.Shape clipShape)
Creates a soft-clipped image. Code taken from here.


toShowExtraWidgets

public static boolean toShowExtraWidgets(java.awt.Component component)
Checks whether the specified component has extra Substance-specific UI elements.

Parameters:
component - Component.
Returns:
true if the specified component has extra Substance-specific UI elements, false otherwise.
See Also:
SubstanceLookAndFeel.SHOW_EXTRA_WIDGETS

getThemedIcon

public static javax.swing.Icon getThemedIcon(java.awt.Component comp,
                                             javax.swing.Icon orig)

getThemedIcon

public static javax.swing.Icon getThemedIcon(javax.swing.JTabbedPane tab,
                                             int tabIndex,
                                             javax.swing.Icon orig)

getOriginalIcon

public static javax.swing.Icon getOriginalIcon(javax.swing.AbstractButton b,
                                               javax.swing.Icon defaultIcon)

getMenuGutterFillKind

public static SubstanceConstants.MenuGutterFillKind getMenuGutterFillKind()
Returns the global menu gutter fill kind.

Returns:
The global menu gutter fill kind.
See Also:
SubstanceLookAndFeel.MENU_GUTTER_FILL_KIND

getHeaderParent

public static java.awt.Container getHeaderParent(java.awt.Component c)
Given a component, returns the parent for computing the SubstanceDecorationPainter.

Parameters:
c - Component.
Returns:
The parent for computing the SubstanceDecorationPainter.

paintFocus

public static void paintFocus(java.awt.Graphics g,
                              java.awt.Component mainComp,
                              java.awt.Component focusedComp,
                              TransitionAwareUI transitionAwareUI,
                              java.awt.Shape focusShape,
                              java.awt.Rectangle textRect,
                              float maxAlphaCoef,
                              int extraPadding)
Paints the focus ring on the specified component.

Parameters:
g - Graphics context.
mainComp - The main component for the focus painting.
focusedComp - The actual component that has the focus. For example, the main component can be a JSpinner, while the focused component is a text field inside the the spinner editor.
focusShape - Focus shape. May be null - in this case, the bounds of mainComp will be used.
textRect - Text rectangle (if relevant).
maxAlphaCoef - Maximum alhpa coefficient for painting the focus. Values lower than 1.0 will result in a translucent focus ring (can be used to paint a focus ring that doesn't draw too much attention away from the content, for example on text components).
extraPadding - Extra padding between the component bounds and the focus ring painting.

isTitleCloseButton

public static boolean isTitleCloseButton(javax.swing.JComponent ab)
Returns indication whether the specified button is a close button on some title pane.

Parameters:
ab - Button.
Returns:
true if the specified button is a close button on some title pane, false otherwise.

uninstallMenu

public static void uninstallMenu(javax.swing.JMenuItem menuItem)
Uninstalls the specified menu item.

Parameters:
menuItem - Menu item.

getIcon

public static javax.swing.Icon getIcon(java.lang.String iconResource)
Returns an icon pointed to by the specified string.

Parameters:
iconResource - Resource location string.
Returns:
Icon.

getClassLoaderForResources

public static java.lang.ClassLoader getClassLoaderForResources()
Returns the class loader for loading the resource files. It is a fix by Dag Joar and Christian Schlichtherle for application running with -Xbootclasspath VM flag. In this case, the using MyClass.class.getClassLoader() would return null, but the context class loader will function properly that classes will be properly loaded regardless of whether the lib is added to the system class path, the extension class path and regardless of the class loader architecture set up by some frameworks.

Returns:
The class loader for loading the resource files.

isCoveredByLightweightPopups

public static boolean isCoveredByLightweightPopups(java.awt.Component comp)

getPopupParentIndexOf

public static int getPopupParentIndexOf(java.awt.Component comp,
                                        java.awt.Component[] popups)
Gets a component and a list of popups and returns the index of the popup that is a parent of the specified component. Is used to track issue 297 and prevent visual artifacts.

Parameters:
comp - Component.
popups - List of popups.
Returns:
Index of the popup which is component's parent if any, or the popup list length otherwise.

getResourceBundle

public static java.util.ResourceBundle getResourceBundle(javax.swing.JComponent jcomp)
Returns the resource bundle for the specified component.

Parameters:
jcomp - Component.
Returns:
Resource bundle for the specified component.

getBorderPainter

public static SubstanceBorderPainter getBorderPainter(java.awt.Component comp)
Returns the border painter for the specified component.

Parameters:
comp - Component.
Returns:
Border painter for the specified component.
See Also:
SubstanceSkin.getBorderPainter()

getHighlightBorderPainter

public static SubstanceBorderPainter getHighlightBorderPainter(java.awt.Component comp)
Returns the highlight border painter for the specified component.

Parameters:
comp - Component.
Returns:
Highlight border painter for the specified component.
See Also:
SubstanceSkin.getBorderPainter(), SubstanceSkin.getHighlightBorderPainter()

getHierarchy

public static java.lang.String getHierarchy(java.awt.Component comp)
Returns the component hierarchy.

Parameters:
comp - Component.
Returns:
Component hierarchy string.

getHierarchy

public static void getHierarchy(java.awt.Component comp,
                                java.lang.StringBuffer buffer,
                                int level)
Computes the component hierarchy.

Parameters:
comp - Component.
buffer - Hierarchy representation buffer.
level - Hierarchy level.

getTitlePane

public static javax.swing.JComponent getTitlePane(javax.swing.JRootPane rootPane)
Returns the title pane of the specified root pane.

Parameters:
rootPane - Root pane.
Returns:
The title pane of the specified root pane.

getArrowIcon

public static javax.swing.Icon getArrowIcon(javax.swing.AbstractButton button,
                                            int orientation)
Returns the arrow icon.

Parameters:
button - Button.
orientation - Arrow orientation.
Returns:
Arrow icon.

getArrowIcon

public static javax.swing.Icon getArrowIcon(javax.swing.JComponent comp,
                                            TransitionAwareIcon.TransitionAwareUIDelegate transitionAwareUIDelegate,
                                            int orientation)
Returns the arrow icon.

Parameters:
comp - Component.
orientation - Arrow orientation.
Returns:
Arrow icon.

getColorizationFactor

public static double getColorizationFactor(java.awt.Component c)
Returns the colorization factor for the specified component.

Parameters:
c - Component.
Returns:
The colorization factor for the specified component.
See Also:
SubstanceLookAndFeel.COLORIZATION_FACTOR

getSkin

public static SubstanceSkin getSkin(java.awt.Component c)
Returns the skin of the specified component.

Parameters:
c - Component.
Returns:
The skin of the specified component.
See Also:
SubstanceLookAndFeel.SKIN_PROPERTY

getHashKey

public static HashMapKey getHashKey(java.lang.Object... objects)
Returns a hash key for the specified parameters.

Parameters:
objects - Key components.
Returns:
Hash key.

stopThreads

public static void stopThreads()
Stops all Substance threads. Improper use may result in UI artifacts and runtime exceptions.


getVmParameter

public static java.lang.String getVmParameter(java.lang.String parameterName)
Retrieves a single parameter from the VM flags.

Parameters:
parameterName - Parameter name.
Returns:
Parameter value.

reallyPrintThreadingExceptions

public static boolean reallyPrintThreadingExceptions()

reallyThrowThreadingExceptions

public static boolean reallyThrowThreadingExceptions()

testComponentCreationThreadingViolation

public static void testComponentCreationThreadingViolation(java.awt.Component comp)
Tests UI threading violations on creating the specified component.

Parameters:
comp - Component.
Throws:
UiThreadingViolationException - If the component is created off Event Dispatch Thread.

testComponentStateChangeThreadingViolation

public static void testComponentStateChangeThreadingViolation(java.awt.Component comp)
Tests UI threading violations on changing the state the specified component.

Parameters:
comp - Component.
Throws:
UiThreadingViolationException - If the component is changing state off Event Dispatch Thread.

testWindowCloseThreadingViolation

public static void testWindowCloseThreadingViolation(java.awt.Window w)
Tests UI threading violations on closing the specified window.

Parameters:
w - Window.
Throws:
UiThreadingViolationException - If the window is closed off Event Dispatch Thread.

traceSubstanceApiUsage

public static void traceSubstanceApiUsage(java.awt.Component comp,
                                          java.lang.String message)

getScaledIconImage

public static java.awt.image.BufferedImage getScaledIconImage(java.util.List<java.awt.Image> imageList,
                                                              int width,
                                                              int height)
Scans imageList for best-looking image of specified dimensions. Image can be scaled and/or padded with transparency.


canReplaceChildBackgroundColor

public static boolean canReplaceChildBackgroundColor(java.awt.Color background)

getTextComponentForTransitions

public static javax.swing.text.JTextComponent getTextComponentForTransitions(java.awt.Component c)

getTextComponentRepaintCallback

public static org.pushingpixels.trident.swing.SwingRepaintCallback getTextComponentRepaintCallback(javax.swing.text.JTextComponent textComponent)

isOpaque

public static boolean isOpaque(java.awt.Component c)