Class SubstanceTabbedPaneUI
- java.lang.Object
-
- javax.swing.plaf.ComponentUI
-
- javax.swing.plaf.TabbedPaneUI
-
- javax.swing.plaf.basic.BasicTabbedPaneUI
-
- org.pushingpixels.substance.internal.ui.SubstanceTabbedPaneUI
-
- All Implemented Interfaces:
SwingConstants
public class SubstanceTabbedPaneUI extends BasicTabbedPaneUI
UI for tabbed panes in Substance look and feel.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected classSubstanceTabbedPaneUI.MouseRolloverHandlerListener for rollover animation effects.protected classSubstanceTabbedPaneUI.TabbedContainerListenerTracks changes to the tabbed pane contents.classSubstanceTabbedPaneUI.TabbedPaneLayoutLayout for the tabbed pane.protected classSubstanceTabbedPaneUI.TabRepaintCallbackImplementation of the fade tracker callback that repaints a single tab.-
Nested classes/interfaces inherited from class javax.swing.plaf.basic.BasicTabbedPaneUI
BasicTabbedPaneUI.FocusHandler, BasicTabbedPaneUI.MouseHandler, BasicTabbedPaneUI.PropertyChangeHandler, BasicTabbedPaneUI.TabSelectionHandler
-
-
Field Summary
Fields Modifier and Type Field Description protected SubstanceTabbedPaneUI.TabbedContainerListenersubstanceContainerListenerTracks changes to the tabbed pane contents.protected PointsubstanceMouseLocationCurrent mouse location.protected SubstanceTabbedPaneUI.MouseRolloverHandlersubstanceRolloverHandlerMouse handler for rollover effects.protected ChangeListenersubstanceSelectionListenerListener for animation effects on tab selection.-
Fields inherited from class javax.swing.plaf.basic.BasicTabbedPaneUI
calcRect, contentBorderInsets, darkShadow, downKey, focus, focusListener, highlight, leftKey, lightHighlight, maxTabHeight, maxTabWidth, mouseListener, propertyChangeListener, rects, rightKey, runCount, selectedRun, selectedTabPadInsets, shadow, tabAreaInsets, tabChangeListener, tabInsets, tabPane, tabRunOverlay, tabRuns, textIconGap, upKey
-
Fields inherited from interface javax.swing.SwingConstants
BOTTOM, CENTER, EAST, HORIZONTAL, LEADING, LEFT, NEXT, NORTH, NORTH_EAST, NORTH_WEST, PREVIOUS, RIGHT, SOUTH, SOUTH_EAST, SOUTH_WEST, TOP, TRAILING, VERTICAL, WEST
-
-
Constructor Summary
Constructors Constructor Description SubstanceTabbedPaneUI()Creates the new UI delegate.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected intcalculateMaxTabHeight(int tabPlacement)protected intcalculateTabHeight(int tabPlacement, int tabIndex, int fontHeight)protected intcalculateTabWidth(int tabPlacement, int tabIndex, FontMetrics metrics)protected LayoutManagercreateLayoutManager()protected MouseListenercreateMouseListener()protected JButtoncreateScrollButton(int direction)static ComponentUIcreateUI(JComponent comp)protected voidensureCurrentLayout()Ensures the current layout.protected RectanglegetCloseButtonRectangleForDraw(int tabIndex, int x, int y, int width, int height)Retrieves the close button rectangle for drawing purposes.protected RectanglegetCloseButtonRectangleForEvents(int tabIndex, int x, int y, int w, int h)Retrieves the close button rectangle for event handling.protected InsetsgetContentBorderInsets(int tabPlacement)static StringgetMemoryUsage()Returns the memory usage string.protected StateTransitionTracker.ModelStateInfogetModelStateInfo(int tabIndex)intgetRolloverTabIndex()Returns the index of the tab currently being rolled-over.InsetsgetTabAreaInsets()Returns tab area insets.RectanglegetTabBounds(JTabbedPane pane, int i)protected intgetTabExtraWidth(int tabPlacement, int tabIndex)Returns extra width for the specified tab.protected intgetTabLabelShiftX(int tabPlacement, int tabIndex, boolean isSelected)protected intgetTabLabelShiftY(int tabPlacement, int tabIndex, boolean isSelected)RectanglegetTabRectangle(int tabIndex)Returns the tab rectangle for the specified tab.protected intgetTabRunOverlay(int tabPlacement)protected ComponentStategetTabState(int tabIndex)Returns the current state for the specified tab.protected voidinstallDefaults()protected voidinstallListeners()voidpaint(Graphics g, JComponent c)protected voidpaintContentBorder(Graphics g, int tabPlacement, int selectedIndex)protected voidpaintContentBorderBottomEdge(Graphics g, int tabPlacement, int selectedIndex, int x, int y, int w, int h)protected voidpaintContentBorderLeftEdge(Graphics g, int tabPlacement, int selectedIndex, int x, int y, int w, int h)protected voidpaintContentBorderRightEdge(Graphics g, int tabPlacement, int selectedIndex, int x, int y, int w, int h)protected voidpaintContentBorderTopEdge(Graphics g, int tabPlacement, int selectedIndex, int x, int y, int w, int h)protected voidpaintFocusIndicator(Graphics g, int tabPlacement, Rectangle[] rects, int tabIndex, Rectangle iconRect, Rectangle textRect, boolean isSelected)protected voidpaintIcon(Graphics g, int tabPlacement, int tabIndex, Icon icon, Rectangle iconRect, boolean isSelected)protected voidpaintTab(Graphics g, int tabPlacement, Rectangle[] rects, int tabIndex, Rectangle iconRect, Rectangle textRect)protected voidpaintTabArea(Graphics g, int tabPlacement, int selectedIndex)protected voidpaintTabBackground(Graphics g, int tabPlacement, int tabIndex, int x, int y, int w, int h, boolean isSelected)protected voidpaintTabBorder(Graphics g, int tabPlacement, int tabIndex, int x, int y, int w, int h, boolean isSelected)protected voidpaintText(Graphics g, int tabPlacement, Font font, FontMetrics metrics, int tabIndex, String title, Rectangle textRect, boolean isSelected)voidsetTabAreaInsets(Insets insets)Sets new value for tab area insets.protected booleanshouldPadTabRun(int tabPlacement, int run)protected booleantoRotateTabsOnPlacement(int tabPlacement)Extension point to allow horizontal orientation of left / right placed tabs.protected voidtryCloseTab(int tabIndex)Tries closing a single tab.protected voidtryCloseTabs(int tabIndex, SubstanceConstants.TabCloseKind tabCloseKind)Tries closing tabs based on the specified tab index and tab close kind.protected voidtryCloseTabs(Set<Integer> tabIndexes)Tries closing the specified tabs.protected voiduninstallDefaults()protected voiduninstallListeners()-
Methods inherited from class javax.swing.plaf.basic.BasicTabbedPaneUI
assureRectsCreated, calculateMaxTabWidth, calculateTabAreaHeight, calculateTabAreaWidth, createChangeListener, createFocusListener, createPropertyChangeListener, expandTabRunsArray, getBaseline, getBaseline, getBaselineOffset, getBaselineResizeBehavior, getFocusIndex, getFontMetrics, getIconForTab, getMaximumSize, getMinimumSize, getNextTabIndex, getNextTabIndexInRun, getNextTabRun, getPreviousTabIndex, getPreviousTabIndexInRun, getPreviousTabRun, getRolloverTab, getRunForTab, getSelectedTabPadInsets, getTabAreaInsets, getTabBounds, getTabInsets, getTabRunCount, getTabRunIndent, getTabRunOffset, getTextViewForTab, getVisibleComponent, installComponents, installKeyboardActions, installUI, lastTabInRun, layoutLabel, navigateSelectedTab, rotateInsets, selectAdjacentRunTab, selectNextTab, selectNextTabInRun, selectPreviousTab, selectPreviousTabInRun, setRolloverTab, setVisibleComponent, shouldRotateTabRuns, tabForCoordinate, uninstallComponents, uninstallKeyboardActions, uninstallUI
-
Methods inherited from class javax.swing.plaf.ComponentUI
contains, getAccessibleChild, getAccessibleChildrenCount, getPreferredSize, update
-
-
-
-
Field Detail
-
substanceMouseLocation
protected Point substanceMouseLocation
Current mouse location.
-
substanceRolloverHandler
protected SubstanceTabbedPaneUI.MouseRolloverHandler substanceRolloverHandler
Mouse handler for rollover effects.
-
substanceContainerListener
protected SubstanceTabbedPaneUI.TabbedContainerListener substanceContainerListener
Tracks changes to the tabbed pane contents. Each tab component is tracked for changes on theSubstanceLookAndFeel.WINDOW_MODIFIEDproperty.
-
substanceSelectionListener
protected ChangeListener substanceSelectionListener
Listener for animation effects on tab selection.
-
-
Method Detail
-
createUI
public static ComponentUI createUI(JComponent comp)
-
installListeners
protected void installListeners()
- Overrides:
installListenersin classBasicTabbedPaneUI
-
uninstallListeners
protected void uninstallListeners()
- Overrides:
uninstallListenersin classBasicTabbedPaneUI
-
installDefaults
protected void installDefaults()
- Overrides:
installDefaultsin classBasicTabbedPaneUI
-
uninstallDefaults
protected void uninstallDefaults()
- Overrides:
uninstallDefaultsin classBasicTabbedPaneUI
-
paintTabBackground
protected void paintTabBackground(Graphics g, int tabPlacement, int tabIndex, int x, int y, int w, int h, boolean isSelected)
- Overrides:
paintTabBackgroundin classBasicTabbedPaneUI
-
paintFocusIndicator
protected void paintFocusIndicator(Graphics g, int tabPlacement, Rectangle[] rects, int tabIndex, Rectangle iconRect, Rectangle textRect, boolean isSelected)
- Overrides:
paintFocusIndicatorin classBasicTabbedPaneUI
-
paintTabBorder
protected void paintTabBorder(Graphics g, int tabPlacement, int tabIndex, int x, int y, int w, int h, boolean isSelected)
- Overrides:
paintTabBorderin classBasicTabbedPaneUI
-
createScrollButton
protected JButton createScrollButton(int direction)
- Overrides:
createScrollButtonin classBasicTabbedPaneUI
-
calculateTabHeight
protected int calculateTabHeight(int tabPlacement, int tabIndex, int fontHeight)- Overrides:
calculateTabHeightin classBasicTabbedPaneUI
-
calculateTabWidth
protected int calculateTabWidth(int tabPlacement, int tabIndex, FontMetrics metrics)- Overrides:
calculateTabWidthin classBasicTabbedPaneUI
-
calculateMaxTabHeight
protected int calculateMaxTabHeight(int tabPlacement)
- Overrides:
calculateMaxTabHeightin classBasicTabbedPaneUI
-
getTabRunOverlay
protected int getTabRunOverlay(int tabPlacement)
- Overrides:
getTabRunOverlayin classBasicTabbedPaneUI
-
paint
public void paint(Graphics g, JComponent c)
- Overrides:
paintin classBasicTabbedPaneUI
-
paintTab
protected void paintTab(Graphics g, int tabPlacement, Rectangle[] rects, int tabIndex, Rectangle iconRect, Rectangle textRect)
- Overrides:
paintTabin classBasicTabbedPaneUI
-
paintTabArea
protected void paintTabArea(Graphics g, int tabPlacement, int selectedIndex)
- Overrides:
paintTabAreain classBasicTabbedPaneUI
-
getCloseButtonRectangleForDraw
protected Rectangle getCloseButtonRectangleForDraw(int tabIndex, int x, int y, int width, int height)
Retrieves the close button rectangle for drawing purposes.- Parameters:
tabIndex- Tab index.x- X coordinate of the tab.y- Y coordinate of the tab.width- The tab width.height- The tab height.- Returns:
- The close button rectangle.
-
getCloseButtonRectangleForEvents
protected Rectangle getCloseButtonRectangleForEvents(int tabIndex, int x, int y, int w, int h)
Retrieves the close button rectangle for event handling.- Parameters:
tabIndex- Tab index.x- X coordinate of the tab.y- Y coordinate of the tab.w- The tab width.h- The tab height.- Returns:
- The close button rectangle.
-
ensureCurrentLayout
protected void ensureCurrentLayout()
Ensures the current layout.
-
tryCloseTabs
protected void tryCloseTabs(int tabIndex, SubstanceConstants.TabCloseKind tabCloseKind)Tries closing tabs based on the specified tab index and tab close kind.- Parameters:
tabIndex- Tab index.tabCloseKind- Tab close kind.
-
tryCloseTab
protected void tryCloseTab(int tabIndex)
Tries closing a single tab.- Parameters:
tabIndex- Tab index.
-
tryCloseTabs
protected void tryCloseTabs(Set<Integer> tabIndexes)
Tries closing the specified tabs.- Parameters:
tabIndexes- Tab indexes.
-
getTabLabelShiftX
protected int getTabLabelShiftX(int tabPlacement, int tabIndex, boolean isSelected)- Overrides:
getTabLabelShiftXin classBasicTabbedPaneUI
-
getTabLabelShiftY
protected int getTabLabelShiftY(int tabPlacement, int tabIndex, boolean isSelected)- Overrides:
getTabLabelShiftYin classBasicTabbedPaneUI
-
getTabExtraWidth
protected int getTabExtraWidth(int tabPlacement, int tabIndex)Returns extra width for the specified tab.- Parameters:
tabPlacement- Tab placement.tabIndex- Tab index.- Returns:
- Extra width for the specified tab.
-
getRolloverTabIndex
public int getRolloverTabIndex()
Returns the index of the tab currently being rolled-over.- Returns:
- Index of the tab currently being rolled-over.
-
setTabAreaInsets
public void setTabAreaInsets(Insets insets)
Sets new value for tab area insets.- Parameters:
insets- Tab area insets.
-
getTabAreaInsets
public Insets getTabAreaInsets()
Returns tab area insets.- Returns:
- Tab area insets.
-
getTabRectangle
public Rectangle getTabRectangle(int tabIndex)
Returns the tab rectangle for the specified tab.- Parameters:
tabIndex- Index of a tab.- Returns:
- The tab rectangle for the specified parameters.
-
getMemoryUsage
public static String getMemoryUsage()
Returns the memory usage string.- Returns:
- The memory usage string.
-
shouldPadTabRun
protected boolean shouldPadTabRun(int tabPlacement, int run)- Overrides:
shouldPadTabRunin classBasicTabbedPaneUI
-
createLayoutManager
protected LayoutManager createLayoutManager()
- Overrides:
createLayoutManagerin classBasicTabbedPaneUI
-
getContentBorderInsets
protected Insets getContentBorderInsets(int tabPlacement)
- Overrides:
getContentBorderInsetsin classBasicTabbedPaneUI
-
paintContentBorder
protected void paintContentBorder(Graphics g, int tabPlacement, int selectedIndex)
- Overrides:
paintContentBorderin classBasicTabbedPaneUI
-
paintContentBorderBottomEdge
protected void paintContentBorderBottomEdge(Graphics g, int tabPlacement, int selectedIndex, int x, int y, int w, int h)
- Overrides:
paintContentBorderBottomEdgein classBasicTabbedPaneUI
-
paintContentBorderLeftEdge
protected void paintContentBorderLeftEdge(Graphics g, int tabPlacement, int selectedIndex, int x, int y, int w, int h)
- Overrides:
paintContentBorderLeftEdgein classBasicTabbedPaneUI
-
paintContentBorderRightEdge
protected void paintContentBorderRightEdge(Graphics g, int tabPlacement, int selectedIndex, int x, int y, int w, int h)
- Overrides:
paintContentBorderRightEdgein classBasicTabbedPaneUI
-
paintContentBorderTopEdge
protected void paintContentBorderTopEdge(Graphics g, int tabPlacement, int selectedIndex, int x, int y, int w, int h)
- Overrides:
paintContentBorderTopEdgein classBasicTabbedPaneUI
-
getTabBounds
public Rectangle getTabBounds(JTabbedPane pane, int i)
- Overrides:
getTabBoundsin classBasicTabbedPaneUI
-
getModelStateInfo
protected StateTransitionTracker.ModelStateInfo getModelStateInfo(int tabIndex)
-
getTabState
protected ComponentState getTabState(int tabIndex)
Returns the current state for the specified tab.- Parameters:
tabIndex- Tab index.- Returns:
- The current state for the specified tab.
-
paintText
protected void paintText(Graphics g, int tabPlacement, Font font, FontMetrics metrics, int tabIndex, String title, Rectangle textRect, boolean isSelected)
- Overrides:
paintTextin classBasicTabbedPaneUI
-
paintIcon
protected void paintIcon(Graphics g, int tabPlacement, int tabIndex, Icon icon, Rectangle iconRect, boolean isSelected)
- Overrides:
paintIconin classBasicTabbedPaneUI
-
createMouseListener
protected MouseListener createMouseListener()
- Overrides:
createMouseListenerin classBasicTabbedPaneUI
-
toRotateTabsOnPlacement
protected boolean toRotateTabsOnPlacement(int tabPlacement)
Extension point to allow horizontal orientation of left / right placed tabs.- Parameters:
tabPlacement- Tab placement.- Returns:
- Indication whether the tabs in the specified placement should be rotated.
-
-