Overview | Package | Class | Use | Tree | Deprecated | Index | Help

PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.jvnet.substance.utils
Class SubstanceCoreUtilities

    java.lang.Object
      org.jvnet.substance.utils.SubstanceCoreUtilities

    public class SubstanceCoreUtilities

extends java.lang.Object

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

Author:
  Kirill Grouchnikov, Romain Guy

Field Summary
`static java.lang.String` | `IS_COVERED_BY_LIGHTWEIGHT_POPUPS` Client property name for marking components covered by lightweight popups.
`static java.lang.String` | `USE_HIGHLIGHT` Client property name to mark components that use highlights (such as lists, trees, menus, tables and table headers).

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 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` | `createClipImage(java.awt.Shape s, int width, int height)` Creates a clip image for soft-clipping.
`static java.awt.image.BufferedImage` | `createCompatibleImage(java.awt.image.BufferedImage image)` Creates a compatible image (for efficient processing and drawing).
`static javax.swing.Icon` | `getActiveIcon(javax.swing.Icon origIcon, javax.swing.AbstractButton button, javax.swing.Icon glowingIcon, boolean ignoreRolloverSetting)` Returns the active icon of the specified button.
`static javax.swing.Icon` | `getArrowIcon(javax.swing.AbstractButton button, 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 javax.swing.Icon` | `getDoubleArrowIcon(java.awt.Component comp, javax.swing.AbstractButton button, int orientation)` Returns the arrow icon.
`static int` | `getEchoPerChar(javax.swing.JPasswordField jpf)` Returns the number of echo characters per each password chanaracter.
`static org.jvnet.lafwidget.animation.FadeTrackerCallback` | `getFadeCallback(javax.swing.AbstractButton button, boolean toRepaintParent)` Returns the fade callback for the specified button.
`static org.jvnet.lafwidget.animation.FadeTrackerCallback` | `getFadeCallback(javax.swing.JComponent component, javax.swing.ButtonModel model, boolean toIgnoreSelection, boolean toRepaintParent, java.awt.Component componentToRepaint)` Returns the fade callback for the specified component.
`static org.jvnet.lafwidget.animation.FadeTrackerCallback` | `getFadeCallback(javax.swing.JComponent component, javax.swing.ButtonModel model, java.lang.String extraKey, boolean toIgnoreSelection, boolean toRepaintParent, java.awt.Component componentToRepaint)` Returns the fade callback for the specified component.
`static SubstanceConstants.FocusKind` | `getFocusKind(java.awt.Component component)` Returns the focus ring kind of the specified component.
`static SubstanceGradientPainter` | `getGradientPainter(java.awt.Component comp)` Returns the gradient painter 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 javax.swing.Icon` | `getIcon(javax.swing.AbstractButton b, javax.swing.Icon defaultIcon, javax.swing.Icon glowingIcon, boolean ignoreRolloverSetting)` Returns the current icon for the specified button.
`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 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 ComponentState` | `getPrevComponentState(javax.swing.JComponent comp)` Returns the previous state of the specified component.
`static ComponentState` | `getPrevComponentState(javax.swing.JComponent comp, java.lang.String extraKey)` Returns the previous state of the specified component.
`static ComponentState` | `getPrevSelComponentState(javax.swing.JComponent comp)` Returns the previous state of the specified component.
`static java.util.ResourceBundle` | `getResourceBundle(javax.swing.JComponent jcomp)` Returns the resource bundle for the specified component.
`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.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` | `hasPropertySetTo(java.awt.Component comp, java.lang.String propertyName, boolean expectedValue, boolean checkHierarchy)` Checks whether a component has the specified client property set to the specified value.
`static boolean` | `hasSubstanceBorder(javax.swing.JComponent c)` Returns indication whether the specified component's border is a Substance-specific border.
`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` | `isInternalFrameModified(javax.swing.JInternalFrame internalFrame)` Retrieves the `modified` state for the specified internal frame.
`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` | `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` | `makeNonDoubleBuffered(java.awt.Component comp, java.util.Map<java.awt.Component,java.lang.Boolean> dbSnapshot)` Makes the specified component and all its descendants non-double buffered.
`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, java.awt.Rectangle textRect)` Paints the focus ring on the specified component.
`static void` | `paintFocus(java.awt.Graphics g, java.awt.Component mainComp, java.awt.Component focusedComp, java.awt.Shape focusShape, java.awt.Rectangle textRect, float maxAlphaCoef, int extraPadding)` Paints the focus ring on the specified component.
`static void` | `resetCaches()` Resets all image caches.
`static void` | `restoreDoubleBuffered(java.awt.Component comp, java.util.Map<java.awt.Component,java.lang.Boolean> dbSnapshot)` Restores the double buffer of the specified component and all its descendants.
`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 void` | `stopThreads()` Stops all Substance threads.
`static void` | `testComponentCreationThreadingViolation(java.awt.Component comp)` Tests UI threading violations on creating the specified component.
`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 boolean` | `toUseHighlightColorScheme(java.awt.Component comp)` Checks whether the specified component uses highlights.
`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

### USE_HIGHLIGHT

    public static final java.lang.String USE_HIGHLIGHT

  Client property name to mark components that use highlights (such as lists, trees, menus, tables and table headers). The client property value should be an instance of `Boolean`.

  See Also:
    Constant Field Values

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()`

### getGradientPainter

    public static SubstanceGradientPainter getGradientPainter(java.awt.Component comp)

  Returns the gradient painter of the specified component.

  Parameters:
    `comp` - Component.
  Returns:
    The gradient painter of the specified component.
  See Also:
    `SubstanceSkin.getGradientPainter()`

### 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`

### 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.

### makeNonDoubleBuffered

    public static void makeNonDoubleBuffered(java.awt.Component comp,
                                             java.util.Map<java.awt.Component,java.lang.Boolean> dbSnapshot)

  Makes the specified component and all its descendants non-double buffered.

  Parameters:
    `comp` - Component.
    `dbSnapshot` - The "snapshot" map that will contain the original double buffer status of the specified component and all its descendants.

### restoreDoubleBuffered

    public static void restoreDoubleBuffered(java.awt.Component comp,
                                             java.util.Map<java.awt.Component,java.lang.Boolean> dbSnapshot)

  Restores the double buffer of the specified component and all its descendants.

  Parameters:
    `comp` - Component.
    `dbSnapshot` - The "snapshot" map that contains the original double buffer 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`

### createClipImage

    public static java.awt.image.BufferedImage createClipImage(java.awt.Shape s,
                                                               int width,
                                                               int height)

  Creates a clip image for soft-clipping. Code taken from here.

  Parameters:
    `s` - Clip shape.
    `width` - Image width.
    `height` - Image height.
  Returns:
    Clip image.

### 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`

### hasSubstanceBorder

    public static boolean hasSubstanceBorder(javax.swing.JComponent c)

  Returns indication whether the specified component's border is a Substance-specific border.

  Parameters:
    `c` - Component.
  Returns:
    `true` if the specified component's border is a Substance-specific border, `false` otherwise.

### getActiveIcon

    public static javax.swing.Icon getActiveIcon(javax.swing.Icon origIcon,
                                                 javax.swing.AbstractButton button,
                                                 javax.swing.Icon glowingIcon,
                                                 boolean ignoreRolloverSetting)

  Returns the active icon of the specified button.

  Parameters:
    `origIcon` - Original icon.
    `button` - Button.
    `glowingIcon` - Glowing icon.
    `ignoreRolloverSetting` - If `true`, the rollover status of the specified button is ignored.
  Returns:
    Active icon for the button.

### getIcon

    public static javax.swing.Icon getIcon(javax.swing.AbstractButton b,
                                           javax.swing.Icon defaultIcon,
                                           javax.swing.Icon glowingIcon,
                                           boolean ignoreRolloverSetting)

  Returns the current icon for the specified button.

  Parameters:
    `b` - Button.
    `defaultIcon` - The default icon.
    `glowingIcon` - The glowing icon.
    `ignoreRolloverSetting` - If `true`, the rollover status of the specified button is ignored.
  Returns:
    Icon for the specified button.

### 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,
                                  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.

### paintFocus

    public static void paintFocus(java.awt.Graphics g,
                                  java.awt.Component mainComp,
                                  java.awt.Component focusedComp,
                                  java.awt.Rectangle textRect)

  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.
    `textRect` - Text rectangle (if relevant).

### 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.

### getFadeCallback

    public static org.jvnet.lafwidget.animation.FadeTrackerCallback getFadeCallback(javax.swing.AbstractButton button,
                                                                                    boolean toRepaintParent)

  Returns the fade callback for the specified button.

  Parameters:
    `button` - Button.
    `toRepaintParent` - if `true`, button's parent will be repainted on each iteration cycle. Otherwise, the button itself will be repainted.
  Returns:
    Fade callback for the specified button.

### getFadeCallback

    public static org.jvnet.lafwidget.animation.FadeTrackerCallback getFadeCallback(javax.swing.JComponent component,
                                                                                    javax.swing.ButtonModel model,
                                                                                    boolean toIgnoreSelection,
                                                                                    boolean toRepaintParent,
                                                                                    java.awt.Component componentToRepaint)

  Returns the fade callback for the specified component.

  Parameters:
    `component` - Component.
    `model` - Model for tracking the transitions. For button components, pass the `AbstractButton.getModel()`, for other controls pass a dummy (synthesized) model.
    `toIgnoreSelection` - If `true`, the `ButtonModel.isSelected()` will not be checked. This can be used for tracking transitions on menu items that use `armed` state instead, when we don't want to use different rollover color schemes for selected and unselected checkbox and radio button menu items (to preserve consistent visual appearence of highlights).
    `toRepaintParent` - if `true`, component's parent will be repainted on each iteration cycle. Otherwise, the `componentToRepaint` will be repainted.
    `componentToRepaint` - If `toRepaintParent` is `false`, this component will be repainted.
  Returns:
    Fade callback for the specified component.

### getFadeCallback

    public static org.jvnet.lafwidget.animation.FadeTrackerCallback getFadeCallback(javax.swing.JComponent component,
                                                                                    javax.swing.ButtonModel model,
                                                                                    java.lang.String extraKey,
                                                                                    boolean toIgnoreSelection,
                                                                                    boolean toRepaintParent,
                                                                                    java.awt.Component componentToRepaint)

  Returns the fade callback for the specified component.

  Parameters:
    `component` - Component.
    `model` - Model for tracking the transitions. For button components, pass the `AbstractButton.getModel()`, for other controls pass a dummy (synthesized) model.
    `extraKey` - Extra key.
    `toIgnoreSelection` - If `true`, the `ButtonModel.isSelected()` will not be checked. This can be used for tracking transitions on menu items that use `armed` state instead, when we don't want to use different rollover color schemes for selected and unselected checkbox and radio button menu items (to preserve consistent visual appearence of highlights).
    `toRepaintParent` - if `true`, component's parent will be repainted on each iteration cycle. Otherwise, the `componentToRepaint` will be repainted.
    `componentToRepaint` - If `toRepaintParent` is `false`, this component will be repainted.
  Returns:
    Fade callback for the specified component.

### 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.

### getPrevComponentState

    public static ComponentState getPrevComponentState(javax.swing.JComponent comp)

  Returns the previous state of the specified component.

  Parameters:
    `comp` - Component.
  Returns:
    The previous state of the specified component.

### getPrevComponentState

    public static ComponentState getPrevComponentState(javax.swing.JComponent comp,
                                                       java.lang.String extraKey)

  Returns the previous state of the specified component.

  Parameters:
    `comp` - Component.
    `extraKey` - Extra key.
  Returns:
    The previous state of the specified component.

### getPrevSelComponentState

    public static ComponentState getPrevSelComponentState(javax.swing.JComponent comp)

  Returns the previous state of the specified component.

  Parameters:
    `comp` - Component.
  Returns:
    The previous state of the specified component.

### hasPropertySetTo

    public static boolean hasPropertySetTo(java.awt.Component comp,
                                           java.lang.String propertyName,
                                           boolean expectedValue,
                                           boolean checkHierarchy)

  Checks whether a component has the specified client property set to the specified value.

  Parameters:
    `comp` - Component.
    `propertyName` - Client property name.
    `expectedValue` - Expected value.
    `checkHierarchy` - if `true`, the entire component hierarchy is traversed.
  Returns:
    `true` if the component has the specified client property set to the specified value, `false` 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()`

### 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.

### resetCaches

    public static void resetCaches()

  Resets all image caches.

### getArrowIcon

    public static javax.swing.Icon getArrowIcon(javax.swing.AbstractButton button,
                                                int orientation)

  Returns the arrow icon.

  Parameters:
    `comp` - Component.
    `button` - Button.
    `orientation` - Arrow orientation.
  Returns:
    Arrow icon.

### getDoubleArrowIcon

    public static javax.swing.Icon getDoubleArrowIcon(java.awt.Component comp,
                                                      javax.swing.AbstractButton button,
                                                      int orientation)

  Returns the arrow icon.

  Parameters:
    `comp` - Component.
    `button` - Button.
    `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.

### toUseHighlightColorScheme

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

  Checks whether the specified component uses highlights.

  Parameters:
    `comp` - Component.
  Returns:
    `true` if the specified component uses highlights, `false` otherwise.

### 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.

Overview | Package | Class | Use | Tree | Deprecated | Index | Help

PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD