Package org.adempiere.plaf
Class AdempiereTabbedPaneUI
- java.lang.Object
-
- javax.swing.plaf.ComponentUI
-
- javax.swing.plaf.TabbedPaneUI
-
- javax.swing.plaf.basic.BasicTabbedPaneUI
-
- javax.swing.plaf.metal.MetalTabbedPaneUI
-
- org.adempiere.plaf.AdempiereTabbedPaneUI
-
- All Implemented Interfaces:
SwingConstants
public final class AdempiereTabbedPaneUI extends MetalTabbedPaneUI
The JGoodies Plastic Look&Feel implementation ofTabbedPaneUI
. It differs from its superclassMetalTabbedPaneUI
in that it paints new tab shapes, provides two options, and supports ClearLook.You can enable or disable icons in tabs globally via com.jgoodies.looks.Options.setTabIconsEnabled(boolean).
To disable the content border set
JTabbedPane tabbedPane = new JTabbedPane(); tabbedPane.putClientProperty(Option.NO_CONTENT_BORDER_KEY, Boolean.TRUE);
To paint embedded tabs useJTabbedPane tabbedPane = new JTabbedPane(); tabbedPane.putClientProperty(Option.EMBEDDED_TABS_KEY, Boolean.TRUE);
There's a special mode that helps you detect content borders in heavily wrapped component hierarchies - such as the NetBeans IDE. In this marked mode the content border is painted as a Magenta line. You can enable this mode by setting the System property markContentBorders to true; in a command line:
java -DmarkContentBorders=true
- Version:
- $Revision: 1.4 $
- Author:
- Karsten Lentzsch, Torge Husfeldt, Andrej Golovnin
- See Also:
Options
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class javax.swing.plaf.basic.BasicTabbedPaneUI
BasicTabbedPaneUI.FocusHandler, BasicTabbedPaneUI.MouseHandler, BasicTabbedPaneUI.PropertyChangeHandler
-
-
Field Summary
-
Fields inherited from class javax.swing.plaf.metal.MetalTabbedPaneUI
minTabWidth, selectColor, selectHighlight, tabAreaBackground
-
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 AdempiereTabbedPaneUI()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected ChangeListener
createChangeListener()
protected LayoutManager
createLayoutManager()
Creates the layout manager used to set the tab's bounds.protected PropertyChangeListener
createPropertyChangeListener()
Creates and answer a handler that listens to property changes.static ComponentUI
createUI(JComponent tabPane)
Creates thePlasticTabbedPaneUI
.protected Insets
getContentBorderInsets(int tabPlacement)
Returns the insets (i.e. the width) of the content Border.protected Icon
getIconForTab(int tabIndex)
Answers the icon for the tab with the specified index.protected Insets
getSelectedTabPadInsets(int tabPlacement)
Returns the insets for selected tab.protected Insets
getTabAreaInsets(int tabPlacement)
Returns the amount by which the Tab Area is inset.protected Rectangle
getTabBounds(int tabIndex, Rectangle dest)
protected Insets
getTabInsets(int tabPlacement, int tabIndex)
Returns the insets for this tab.protected int
getTabLabelShiftX(int tabPlacement, int tabIndex, boolean isSelected)
Returns the amount by which the label should be shifted horizontally.protected int
getTabLabelShiftY(int tabPlacement, int tabIndex, boolean isSelected)
Returns the amount by which the label should be shifted vertically.protected int
getTabRunIndent(int tabPlacement, int run)
Returns the amount by which the run numberrun
should be indented.protected int
getTabRunOverlay(int tabPlacement)
Returns the amount (in pixels) by which two runs should overlap.protected void
installComponents()
Creates and installs any required subcomponents for the JTabbedPane.protected void
installKeyboardActions()
protected void
installListeners()
void
installUI(JComponent c)
Installs the UI.protected boolean
isTabInFirstRun(int tabIndex)
protected void
layoutLabel(int tabPlacement, FontMetrics metrics, int tabIndex, String title, Icon icon, Rectangle tabRect, Rectangle iconRect, Rectangle textRect, boolean isSelected)
void
paint(Graphics g, JComponent c)
protected void
paintContentBorder(Graphics g, int tabPlacement, int selectedIndex)
protected void
paintFocusIndicator(Graphics g, int tabPlacement, Rectangle[] rectangles, int tabIndex, Rectangle iconRect, Rectangle textRect, boolean isSelected)
Draws the rectancle around the Tab label which indicates keyboard focus.protected void
paintTab(Graphics g, int tabPlacement, Rectangle[] rects, int tabIndex, Rectangle iconRect, Rectangle textRect)
protected void
paintTabArea(Graphics g, int tabPlacement, int selectedIndex)
protected void
paintTabBackground(Graphics g, int tabPlacement, int tabIndex, int x, int y, int w, int h, boolean isSelected)
Fills the background of the given tab to make sure overlap of tabs is handled correctly.protected void
paintTabBorder(Graphics g, int tabPlacement, int tabIndex, int x, int y, int w, int h, boolean isSelected)
Paints the border for one tab.protected boolean
shouldPadTabRun(int tabPlacement, int run)
This boolean controls wheather the given run should be padded to use up as much space as the others (with more tabs in them).protected boolean
shouldRotateTabRuns(int tabPlacement)
Answers wheather tab runs should be rotated.int
tabForCoordinate(JTabbedPane pane, int x, int y)
Returns the tab index which intersects the specified point in the JTabbedPane's coordinate space.protected void
uninstallComponents()
Removes any installed subcomponents from the JTabbedPane.protected void
uninstallListeners()
void
uninstallUI(JComponent c)
Uninstalls the UI.-
Methods inherited from class javax.swing.plaf.metal.MetalTabbedPaneUI
calculateMaxTabHeight, getBaselineOffset, getColorForGap, installDefaults, paintBottomTabBorder, paintContentBorderBottomEdge, paintContentBorderLeftEdge, paintContentBorderRightEdge, paintContentBorderTopEdge, paintHighlightBelowTab, paintLeftTabBorder, paintRightTabBorder, paintTopTabBorder, shouldFillGap, shouldRotateTabRuns, update
-
Methods inherited from class javax.swing.plaf.basic.BasicTabbedPaneUI
assureRectsCreated, calculateMaxTabWidth, calculateTabAreaHeight, calculateTabAreaWidth, calculateTabHeight, calculateTabWidth, createFocusListener, createMouseListener, createScrollButton, expandTabRunsArray, getBaseline, getBaseline, getBaselineResizeBehavior, getFocusIndex, getFontMetrics, getMaximumSize, getMinimumSize, getNextTabIndex, getNextTabIndexInRun, getNextTabRun, getPreviousTabIndex, getPreviousTabIndexInRun, getPreviousTabRun, getRolloverTab, getRunForTab, getTabBounds, getTabRunCount, getTabRunOffset, getTextViewForTab, getVisibleComponent, lastTabInRun, navigateSelectedTab, paintIcon, paintText, rotateInsets, selectAdjacentRunTab, selectNextTab, selectNextTabInRun, selectPreviousTab, selectPreviousTabInRun, setRolloverTab, setVisibleComponent, uninstallDefaults, uninstallKeyboardActions
-
Methods inherited from class javax.swing.plaf.ComponentUI
contains, getAccessibleChild, getAccessibleChildrenCount, getPreferredSize
-
-
-
-
Method Detail
-
createUI
public static ComponentUI createUI(JComponent tabPane)
Creates thePlasticTabbedPaneUI
.- See Also:
ComponentUI.createUI(JComponent)
-
installUI
public void installUI(JComponent c)
Installs the UI.- Overrides:
installUI
in classBasicTabbedPaneUI
- See Also:
ComponentUI.installUI(JComponent)
-
uninstallUI
public void uninstallUI(JComponent c)
Uninstalls the UI.- Overrides:
uninstallUI
in classBasicTabbedPaneUI
- See Also:
ComponentUI.uninstallUI(JComponent)
-
installComponents
protected void installComponents()
Creates and installs any required subcomponents for the JTabbedPane. Invoked by installUI.- Overrides:
installComponents
in classBasicTabbedPaneUI
- See Also:
BasicTabbedPaneUI.installComponents()
-
uninstallComponents
protected void uninstallComponents()
Removes any installed subcomponents from the JTabbedPane. Invoked by uninstallUI.- Overrides:
uninstallComponents
in classBasicTabbedPaneUI
- See Also:
BasicTabbedPaneUI.uninstallComponents()
-
installListeners
protected void installListeners()
- Overrides:
installListeners
in classBasicTabbedPaneUI
-
uninstallListeners
protected void uninstallListeners()
- Overrides:
uninstallListeners
in classBasicTabbedPaneUI
-
installKeyboardActions
protected void installKeyboardActions()
- Overrides:
installKeyboardActions
in classBasicTabbedPaneUI
-
createPropertyChangeListener
protected PropertyChangeListener createPropertyChangeListener()
Creates and answer a handler that listens to property changes. Unlike the superclass BasicTabbedPane, the PlasticTabbedPaneUI uses an extended Handler.- Overrides:
createPropertyChangeListener
in classBasicTabbedPaneUI
-
createChangeListener
protected ChangeListener createChangeListener()
- Overrides:
createChangeListener
in classBasicTabbedPaneUI
-
paint
public void paint(Graphics g, JComponent c)
- Overrides:
paint
in classMetalTabbedPaneUI
-
paintTab
protected void paintTab(Graphics g, int tabPlacement, Rectangle[] rects, int tabIndex, Rectangle iconRect, Rectangle textRect)
- Overrides:
paintTab
in classBasicTabbedPaneUI
-
tabForCoordinate
public int tabForCoordinate(JTabbedPane pane, int x, int y)
Returns the tab index which intersects the specified point in the JTabbedPane's coordinate space.- Overrides:
tabForCoordinate
in classBasicTabbedPaneUI
-
getTabBounds
protected Rectangle getTabBounds(int tabIndex, Rectangle dest)
- Overrides:
getTabBounds
in classBasicTabbedPaneUI
-
paintTabArea
protected void paintTabArea(Graphics g, int tabPlacement, int selectedIndex)
- Overrides:
paintTabArea
in classBasicTabbedPaneUI
-
layoutLabel
protected void layoutLabel(int tabPlacement, FontMetrics metrics, int tabIndex, String title, Icon icon, Rectangle tabRect, Rectangle iconRect, Rectangle textRect, boolean isSelected)
- Overrides:
layoutLabel
in classBasicTabbedPaneUI
-
getIconForTab
protected Icon getIconForTab(int tabIndex)
Answers the icon for the tab with the specified index. In case, we have globally switched of the use tab icons, we answernull
if and only if we have a title.- Overrides:
getIconForTab
in classBasicTabbedPaneUI
-
createLayoutManager
protected LayoutManager createLayoutManager()
Creates the layout manager used to set the tab's bounds.- Overrides:
createLayoutManager
in classMetalTabbedPaneUI
-
isTabInFirstRun
protected boolean isTabInFirstRun(int tabIndex)
-
paintContentBorder
protected void paintContentBorder(Graphics g, int tabPlacement, int selectedIndex)
- Overrides:
paintContentBorder
in classBasicTabbedPaneUI
-
getContentBorderInsets
protected Insets getContentBorderInsets(int tabPlacement)
Returns the insets (i.e. the width) of the content Border.- Overrides:
getContentBorderInsets
in classBasicTabbedPaneUI
-
getTabAreaInsets
protected Insets getTabAreaInsets(int tabPlacement)
Returns the amount by which the Tab Area is inset.- Overrides:
getTabAreaInsets
in classBasicTabbedPaneUI
-
getTabLabelShiftX
protected int getTabLabelShiftX(int tabPlacement, int tabIndex, boolean isSelected)
Returns the amount by which the label should be shifted horizontally.- Overrides:
getTabLabelShiftX
in classMetalTabbedPaneUI
-
getTabLabelShiftY
protected int getTabLabelShiftY(int tabPlacement, int tabIndex, boolean isSelected)
Returns the amount by which the label should be shifted vertically.- Overrides:
getTabLabelShiftY
in classMetalTabbedPaneUI
-
getTabRunOverlay
protected int getTabRunOverlay(int tabPlacement)
Returns the amount (in pixels) by which two runs should overlap.- Overrides:
getTabRunOverlay
in classMetalTabbedPaneUI
-
shouldPadTabRun
protected boolean shouldPadTabRun(int tabPlacement, int run)
This boolean controls wheather the given run should be padded to use up as much space as the others (with more tabs in them).- Overrides:
shouldPadTabRun
in classMetalTabbedPaneUI
-
getTabRunIndent
protected int getTabRunIndent(int tabPlacement, int run)
Returns the amount by which the run numberrun
should be indented. Add six pixels for every run to make diagonal lines align.- Overrides:
getTabRunIndent
in classBasicTabbedPaneUI
-
getTabInsets
protected Insets getTabInsets(int tabPlacement, int tabIndex)
Returns the insets for this tab.- Overrides:
getTabInsets
in classBasicTabbedPaneUI
-
getSelectedTabPadInsets
protected Insets getSelectedTabPadInsets(int tabPlacement)
Returns the insets for selected tab.- Overrides:
getSelectedTabPadInsets
in classBasicTabbedPaneUI
-
paintFocusIndicator
protected void paintFocusIndicator(Graphics g, int tabPlacement, Rectangle[] rectangles, int tabIndex, Rectangle iconRect, Rectangle textRect, boolean isSelected)
Draws the rectancle around the Tab label which indicates keyboard focus.- Overrides:
paintFocusIndicator
in classMetalTabbedPaneUI
-
paintTabBackground
protected void paintTabBackground(Graphics g, int tabPlacement, int tabIndex, int x, int y, int w, int h, boolean isSelected)
Fills the background of the given tab to make sure overlap of tabs is handled correctly. Note: that tab backgrounds seem to be painted somewhere else, too.- Overrides:
paintTabBackground
in classMetalTabbedPaneUI
-
paintTabBorder
protected void paintTabBorder(Graphics g, int tabPlacement, int tabIndex, int x, int y, int w, int h, boolean isSelected)
Paints the border for one tab. Gets the bounds of the tab as parameters. Note that the result is not clipped so you can paint outside that rectangle. Tabs painted later on have a chance to overwrite though.- Overrides:
paintTabBorder
in classMetalTabbedPaneUI
-
shouldRotateTabRuns
protected boolean shouldRotateTabRuns(int tabPlacement)
Answers wheather tab runs should be rotated. If true, the layout mechanism will move the run containing the selected tab so that it touches the content pane.- Overrides:
shouldRotateTabRuns
in classBasicTabbedPaneUI
-
-