javax.swing.plaf.metal
Class MetalTabbedPaneUI

java.lang.Object
  extended by javax.swing.plaf.ComponentUI
      extended by javax.swing.plaf.TabbedPaneUI
          extended by javax.swing.plaf.basic.BasicTabbedPaneUI
              extended by javax.swing.plaf.metal.MetalTabbedPaneUI
All Implemented Interfaces:
SwingConstants

public class MetalTabbedPaneUI
extends BasicTabbedPaneUI

A UI delegate for the JTabbedPane component.


Nested Class Summary
 class MetalTabbedPaneUI.TabbedPaneLayout
          A LayoutManager responsible for placing all the tabs and the visible component inside the JTabbedPane.
 
Nested classes/interfaces inherited from class javax.swing.plaf.basic.BasicTabbedPaneUI
BasicTabbedPaneUI.FocusHandler, BasicTabbedPaneUI.MouseHandler, BasicTabbedPaneUI.PropertyChangeHandler, BasicTabbedPaneUI.TabSelectionHandler
 
Field Summary
protected  int minTabWidth
          The minimum tab width.
protected  Color selectColor
          The color for the selected tab.
protected  Color selectHighlight
          The color for a highlighted selected tab.
protected  Color tabAreaBackground
          The background color used for the tab area.
 
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
MetalTabbedPaneUI()
          Constructs a new instance of MetalTabbedPaneUI.
 
Method Summary
protected  int calculateMaxTabHeight(int tabPlacement)
          This method returns the max tab height.
protected  LayoutManager createLayoutManager()
          Creates and returns an instance of MetalTabbedPaneUI.TabbedPaneLayout.
static ComponentUI createUI(JComponent component)
          Returns an instance of MetalTabbedPaneUI.
protected  Color getColorForGap(int currentRun, int x, int y)
          Returns the color for the gap.
protected  int getTabLabelShiftX(int tabPlacement, int index, boolean isSelected)
          This method returns how much the label for the tab should shift in the X direction.
protected  int getTabLabelShiftY(int tabPlacement, int index, boolean isSelected)
          This method returns how much the label for the tab should shift in the Y direction.
protected  int getTabRunOverlay(int tabPlacement)
          Returns the amount of overlay among the tabs.
protected  void installDefaults()
          Installs the defaults for this UI.
protected  void paintBottomTabBorder(int tabIndex, Graphics g, int x, int y, int w, int h, int btm, int rght, boolean isSelected)
          Paints the border for a tab assuming that the tab position is at the bottom (SwingConstants.BOTTOM).
protected  void paintContentBorderBottomEdge(Graphics g, int tabPlacement, int selectedIndex, int x, int y, int w, int h)
          Paints the lower edge of the content border.
protected  void paintContentBorderLeftEdge(Graphics g, int tabPlacement, int selectedIndex, int x, int y, int w, int h)
          Paints the left edge of the content border.
protected  void paintContentBorderRightEdge(Graphics g, int tabPlacement, int selectedIndex, int x, int y, int w, int h)
          Paints the right edge of the content border.
protected  void paintContentBorderTopEdge(Graphics g, int tabPlacement, int selectedIndex, int x, int y, int w, int h)
          Paints the upper edge of the content border.
protected  void paintFocusIndicator(Graphics g, int tabPlacement, Rectangle[] rects, int tabIndex, Rectangle iconRect, Rectangle textRect, boolean isSelected)
          This method paints the focus rectangle around the selected tab.
protected  void paintHighlightBelowTab()
          Paints the highlight below the tab, if there is one.
protected  void paintLeftTabBorder(int tabIndex, Graphics g, int x, int y, int w, int h, int btm, int rght, boolean isSelected)
          Paints the border for a tab assuming that the tab position is at the left (SwingConstants.LEFT).
protected  void paintRightTabBorder(int tabIndex, Graphics g, int x, int y, int w, int h, int btm, int rght, boolean isSelected)
          Paints the border for a tab assuming that the tab position is at the right (SwingConstants.RIGHT).
protected  void paintTabBackground(Graphics g, int tabPlacement, int tabIndex, int x, int y, int w, int h, boolean isSelected)
          Paints the background for a tab.
protected  void paintTabBorder(Graphics g, int tabPlacement, int tabIndex, int x, int y, int w, int h, boolean isSelected)
          Paints the border for a single tab.
protected  void paintTopTabBorder(int tabIndex, Graphics g, int x, int y, int w, int h, int btm, int rght, boolean isSelected)
          Paints the border for a tab assuming that the tab position is at the top (SwingConstants.TOP).
protected  boolean shouldFillGap(int currentRun, int tabIndex, int x, int y)
          Returns true if the gap should be filled in.
protected  boolean shouldPadTabRun(int tabPlacement, int run)
          Returns true if the tabs in the specified run should be padded to make the run fill the width/height of the JTabbedPane.
protected  boolean shouldRotateTabRuns(int tabPlacement, int selectedRun)
          Returns true if we should rotate the tab runs.
 
Methods inherited from class javax.swing.plaf.basic.BasicTabbedPaneUI
assureRectsCreated, calculateMaxTabWidth, calculateTabAreaHeight, calculateTabAreaWidth, calculateTabHeight, calculateTabWidth, createChangeListener, createFocusListener, createMouseListener, createPropertyChangeListener, expandTabRunsArray, getContentBorderInsets, getFontMetrics, getIconForTab, getMaximumSize, getMinimumSize, getNextTabIndex, getNextTabIndexInRun, getNextTabRun, getPreviousTabIndex, getPreviousTabIndexInRun, getPreviousTabRun, getRolloverTab, getRunForTab, getSelectedTabPadInsets, getTabAreaInsets, getTabBounds, getTabBounds, getTabInsets, getTabRunCount, getTabRunIndent, getTabRunOffset, getTextViewForTab, getVisibleComponent, installComponents, installKeyboardActions, installListeners, installUI, lastTabInRun, layoutLabel, navigateSelectedTab, paint, paintContentBorder, paintIcon, paintTab, paintTabArea, paintText, rotateInsets, selectAdjacentRunTab, selectNextTab, selectNextTabInRun, selectPreviousTab, selectPreviousTabInRun, setRolloverTab, setVisibleComponent, shouldRotateTabRuns, tabForCoordinate, uninstallComponents, uninstallDefaults, uninstallKeyboardActions, uninstallListeners, uninstallUI
 
Methods inherited from class javax.swing.plaf.ComponentUI
contains, getAccessibleChild, getAccessibleChildrenCount, getPreferredSize, update
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

minTabWidth

protected int minTabWidth
The minimum tab width.


selectColor

protected Color selectColor
The color for the selected tab.


selectHighlight

protected Color selectHighlight
The color for a highlighted selected tab.


tabAreaBackground

protected Color tabAreaBackground
The background color used for the tab area.

Constructor Detail

MetalTabbedPaneUI

public MetalTabbedPaneUI()
Constructs a new instance of MetalTabbedPaneUI.

Method Detail

createUI

public static ComponentUI createUI(JComponent component)
Returns an instance of MetalTabbedPaneUI.

Parameters:
component - the component for which we return an UI instance
Returns:
an instance of MetalTabbedPaneUI

createLayoutManager

protected LayoutManager createLayoutManager()
Creates and returns an instance of MetalTabbedPaneUI.TabbedPaneLayout.

Overrides:
createLayoutManager in class BasicTabbedPaneUI
Returns:
A layout manager used by this UI delegate.

paintTabBorder

protected void paintTabBorder(Graphics g,
                              int tabPlacement,
                              int tabIndex,
                              int x,
                              int y,
                              int w,
                              int h,
                              boolean isSelected)
Paints the border for a single tab.

Overrides:
paintTabBorder in class BasicTabbedPaneUI
Parameters:
g - the graphics device.
tabPlacement - the tab placement (SwingConstants.TOP, SwingConstants.LEFT, SwingConstants.BOTTOM or SwingConstants.RIGHT).
tabIndex - the index of the tab to draw the border for.
x - the x-coordinate for the tab's bounding rectangle.
y - the y-coordinate for the tab's bounding rectangle.
w - the width for the tab's bounding rectangle.
h - the height for the tab's bounding rectangle.
isSelected - indicates whether or not the tab is selected.

paintTopTabBorder

protected void paintTopTabBorder(int tabIndex,
                                 Graphics g,
                                 int x,
                                 int y,
                                 int w,
                                 int h,
                                 int btm,
                                 int rght,
                                 boolean isSelected)
Paints the border for a tab assuming that the tab position is at the top (SwingConstants.TOP).

Parameters:
tabIndex - the tab index.
g - the graphics device.
x - the x-coordinate for the tab's bounding rectangle.
y - the y-coordinate for the tab's bounding rectangle.
w - the width for the tab's bounding rectangle.
h - the height for the tab's bounding rectangle.
btm - the y coordinate of the bottom border
rght - the x coordinate of the right border
isSelected - indicates whether the tab is selected.

paintLeftTabBorder

protected void paintLeftTabBorder(int tabIndex,
                                  Graphics g,
                                  int x,
                                  int y,
                                  int w,
                                  int h,
                                  int btm,
                                  int rght,
                                  boolean isSelected)
Paints the border for a tab assuming that the tab position is at the left (SwingConstants.LEFT).

Parameters:
tabIndex - the tab index.
g - the graphics device.
x - the x-coordinate for the tab's bounding rectangle.
y - the y-coordinate for the tab's bounding rectangle.
w - the width for the tab's bounding rectangle.
h - the height for the tab's bounding rectangle.
btm - ???
rght - ???
isSelected - indicates whether the tab is selected.

paintRightTabBorder

protected void paintRightTabBorder(int tabIndex,
                                   Graphics g,
                                   int x,
                                   int y,
                                   int w,
                                   int h,
                                   int btm,
                                   int rght,
                                   boolean isSelected)
Paints the border for a tab assuming that the tab position is at the right (SwingConstants.RIGHT).

Parameters:
tabIndex - the tab index.
g - the graphics device.
x - the x-coordinate for the tab's bounding rectangle.
y - the y-coordinate for the tab's bounding rectangle.
w - the width for the tab's bounding rectangle.
h - the height for the tab's bounding rectangle.
btm - ???
rght - ???
isSelected - indicates whether the tab is selected.

paintBottomTabBorder

protected void paintBottomTabBorder(int tabIndex,
                                    Graphics g,
                                    int x,
                                    int y,
                                    int w,
                                    int h,
                                    int btm,
                                    int rght,
                                    boolean isSelected)
Paints the border for a tab assuming that the tab position is at the bottom (SwingConstants.BOTTOM).

Parameters:
tabIndex - the tab index.
g - the graphics device.
x - the x-coordinate for the tab's bounding rectangle.
y - the y-coordinate for the tab's bounding rectangle.
w - the width for the tab's bounding rectangle.
h - the height for the tab's bounding rectangle.
btm - ???
rght - ???
isSelected - indicates whether the tab is selected.

paintTabBackground

protected void paintTabBackground(Graphics g,
                                  int tabPlacement,
                                  int tabIndex,
                                  int x,
                                  int y,
                                  int w,
                                  int h,
                                  boolean isSelected)
Paints the background for a tab.

Overrides:
paintTabBackground in class BasicTabbedPaneUI
Parameters:
g - the graphics device.
tabPlacement - the tab placement (SwingConstants.TOP, SwingConstants.LEFT, SwingConstants.BOTTOM or SwingConstants.RIGHT).
tabIndex - the index of the tab to draw the border for.
x - the x-coordinate for the tab's bounding rectangle.
y - the y-coordinate for the tab's bounding rectangle.
w - the width for the tab's bounding rectangle.
h - the height for the tab's bounding rectangle.
isSelected - indicates whether or not the tab is selected.

paintFocusIndicator

protected void paintFocusIndicator(Graphics g,
                                   int tabPlacement,
                                   Rectangle[] rects,
                                   int tabIndex,
                                   Rectangle iconRect,
                                   Rectangle textRect,
                                   boolean isSelected)
This method paints the focus rectangle around the selected tab.

Overrides:
paintFocusIndicator in class BasicTabbedPaneUI
Parameters:
g - The Graphics object to paint with.
tabPlacement - The JTabbedPane's tab placement.
rects - The array of rectangles keeping track of size and position.
tabIndex - The tab index.
iconRect - The icon bounds.
textRect - The text bounds.
isSelected - Whether this tab is selected.

shouldPadTabRun

protected boolean shouldPadTabRun(int tabPlacement,
                                  int run)
Returns true if the tabs in the specified run should be padded to make the run fill the width/height of the JTabbedPane.

Overrides:
shouldPadTabRun in class BasicTabbedPaneUI
Parameters:
tabPlacement - the tab placement for the JTabbedPane (one of SwingConstants.TOP, SwingConstants.BOTTOM, SwingConstants.LEFT and SwingConstants.RIGHT).
run - the run index.
Returns:
A boolean.

installDefaults

protected void installDefaults()
Installs the defaults for this UI. This method calls super.installDefaults and then loads the Metal specific defaults for TabbedPane.

Overrides:
installDefaults in class BasicTabbedPaneUI

getColorForGap

protected Color getColorForGap(int currentRun,
                               int x,
                               int y)
Returns the color for the gap.

Parameters:
currentRun - - The current run to return the color for
x - - The x position of the current run
y - - The y position of the current run
Returns:
the color for the gap in the current run.

shouldFillGap

protected boolean shouldFillGap(int currentRun,
                                int tabIndex,
                                int x,
                                int y)
Returns true if the gap should be filled in.

Parameters:
currentRun - - The current run
tabIndex - - The current tab
x - - The x position of the tab
y - - The y position of the tab
Returns:
true if the gap at the current run should be filled

paintHighlightBelowTab

protected void paintHighlightBelowTab()
Paints the highlight below the tab, if there is one.


shouldRotateTabRuns

protected boolean shouldRotateTabRuns(int tabPlacement,
                                      int selectedRun)
Returns true if we should rotate the tab runs.

Parameters:
tabPlacement - - The current tab placement.
selectedRun - - The selected run.
Returns:
true if the tab runs should be rotated.

calculateMaxTabHeight

protected int calculateMaxTabHeight(int tabPlacement)
Description copied from class: BasicTabbedPaneUI
This method returns the max tab height.

Overrides:
calculateMaxTabHeight in class BasicTabbedPaneUI
Parameters:
tabPlacement - The JTabbedPane's tab placement.
Returns:
The maximum tab height.

getTabRunOverlay

protected int getTabRunOverlay(int tabPlacement)
Returns the amount of overlay among the tabs. In the Metal L&F the overlay for LEFT and RIGHT placement is half of the maxTabHeight. For TOP and BOTTOM placement the tabs do not overlay.

Overrides:
getTabRunOverlay in class BasicTabbedPaneUI
Parameters:
tabPlacement - the placement
Returns:
the amount of overlay among the tabs

paintContentBorderTopEdge

protected void paintContentBorderTopEdge(Graphics g,
                                         int tabPlacement,
                                         int selectedIndex,
                                         int x,
                                         int y,
                                         int w,
                                         int h)
Paints the upper edge of the content border.

Overrides:
paintContentBorderTopEdge in class BasicTabbedPaneUI
Parameters:
g - the graphics to use for painting
tabPlacement - the tab placement
selectedIndex - the index of the selected tab
x - the upper left coordinate of the content area
y - the upper left coordinate of the content area
w - the width of the content area
h - the height of the content area

paintContentBorderBottomEdge

protected void paintContentBorderBottomEdge(Graphics g,
                                            int tabPlacement,
                                            int selectedIndex,
                                            int x,
                                            int y,
                                            int w,
                                            int h)
Paints the lower edge of the content border.

Overrides:
paintContentBorderBottomEdge in class BasicTabbedPaneUI
Parameters:
g - the graphics to use for painting
tabPlacement - the tab placement
selectedIndex - the index of the selected tab
x - the upper left coordinate of the content area
y - the upper left coordinate of the content area
w - the width of the content area
h - the height of the content area

paintContentBorderLeftEdge

protected void paintContentBorderLeftEdge(Graphics g,
                                          int tabPlacement,
                                          int selectedIndex,
                                          int x,
                                          int y,
                                          int w,
                                          int h)
Paints the left edge of the content border.

Overrides:
paintContentBorderLeftEdge in class BasicTabbedPaneUI
Parameters:
g - the graphics to use for painting
tabPlacement - the tab placement
selectedIndex - the index of the selected tab
x - the upper left coordinate of the content area
y - the upper left coordinate of the content area
w - the width of the content area
h - the height of the content area

paintContentBorderRightEdge

protected void paintContentBorderRightEdge(Graphics g,
                                           int tabPlacement,
                                           int selectedIndex,
                                           int x,
                                           int y,
                                           int w,
                                           int h)
Paints the right edge of the content border.

Overrides:
paintContentBorderRightEdge in class BasicTabbedPaneUI
Parameters:
g - the graphics to use for painting
tabPlacement - the tab placement
selectedIndex - the index of the selected tab
x - the upper left coordinate of the content area
y - the upper left coordinate of the content area
w - the width of the content area
h - the height of the content area

getTabLabelShiftX

protected int getTabLabelShiftX(int tabPlacement,
                                int index,
                                boolean isSelected)
Description copied from class: BasicTabbedPaneUI
This method returns how much the label for the tab should shift in the X direction.

Overrides:
getTabLabelShiftX in class BasicTabbedPaneUI
Parameters:
tabPlacement - The JTabbedPane's tab placement.
index - The tab index being painted.
isSelected - Whether this tab is selected.
Returns:
The amount the label should shift by in the X direction.

getTabLabelShiftY

protected int getTabLabelShiftY(int tabPlacement,
                                int index,
                                boolean isSelected)
Description copied from class: BasicTabbedPaneUI
This method returns how much the label for the tab should shift in the Y direction.

Overrides:
getTabLabelShiftY in class BasicTabbedPaneUI
Parameters:
tabPlacement - The JTabbedPane's tab placement.
index - The tab index being painted.
isSelected - Whether this tab is selected.
Returns:
The amount the label should shift by in the Y direction.