Package org.pushingpixels.lafwidget.tabbed

# Class TabPreviewPainter

java.lang.Object
org.pushingpixels.lafwidget.tabbed.TabPreviewPainter

Direct Known Subclasses:
  `DefaultTabPreviewPainter`

public abstract class TabPreviewPainter extends Object
Base class for tab preview painters.

## Constructor Summary

Constructors
Constructor
Description
`TabPreviewPainter()`

## Method Summary

Modifier and Type
Method
Description
`JFrame`
`getModalOwner(JTabbedPane tabPane)`
Returns the owner of the overview dialog of the specified tabbed pane.
`LafConstants.TabOverviewKind`
`getOverviewKind(JTabbedPane tabPane)`
Returns the tab overview kind for the specified tabbed pane.
`Rectangle`
`getPreviewDialogScreenBounds(JTabbedPane tabPane)`
Returns the screen bounds of the tab preview dialog window.
`Dimension`
`getPreviewWindowDimension(JTabbedPane tabPane, int tabIndex)`
Returns the dimension for the tab preview window.
`int`
`getPreviewWindowExtraDelay(JTabbedPane tabPane, int tabIndex)`
Returns extra delay (in milliseconds) for showing the tab preview window.
`int`
`getUpdateCycle(JTabbedPane tabPane)`
If the result of `toUpdatePeriodically(JTabbedPane)` is `true`, returns the update cycle length in milliseconds.
`boolean`
`hasOverviewDialog(JTabbedPane tabPane)`
Checks whether the specified tabbed pane has an overview dialog.
`boolean`
`hasPreview(JTabbedPane tabPane, int tabIndex)`
Checks whether the specified tab component is previewable.
`boolean`
`hasPreviewWindow(JTabbedPane tabPane, int tabIndex)`
Checks whether the specified tabbed pane has a preview window for the specified tab.
`boolean`
`isSensitiveToEvents(JTabbedPane tabPane, int tabIndex)`
Checks whether the specified tab component is sensitive to events.
`void`
`previewTab(JTabbedPane tabPane, int tabIndex, Graphics g, int x, int y, int w, int h)`
Draws a tab preview on the specified graphics.
`boolean`
`toDisposeOverviewOnFocusLoss()`
Returns indication whether the tab overview dialog should be automatically disposed when it loses focus.
`boolean`
`toUpdatePeriodically(JTabbedPane tabPane)`
Returns indication whether the thumbnail preview should be updated periodically.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Constructor Details

### TabPreviewPainter

public TabPreviewPainter()

## Method Details

### previewTab

public void previewTab(JTabbedPane tabPane, int tabIndex, Graphics g, int x, int y, int w, int h)
Draws a tab preview on the specified graphics.

Parameters:
  `tabPane` - Tabbed pane.
  `tabIndex` - tabIndex Tab index for the preview paint.
  `g` - Graphics context.
  `x` - X coordinate of the preview area.
  `y` - Y coordinate of the preview area.
  `w` - Width of the preview area.
  `h` - Height of the preview area.

### hasPreview

public boolean hasPreview(JTabbedPane tabPane, int tabIndex)
Checks whether the specified tab component is previewable.

Parameters:
  `tabPane` - Tabbed pane.
  `tabIndex` - Tab index for the preview paint.
Returns:
  `true` if the specified tab component is previewable, `false` otherwise.

### isSensitiveToEvents

public boolean isSensitiveToEvents(JTabbedPane tabPane, int tabIndex)
Checks whether the specified tab component is sensitive to events. Overriding implementation may decide that disabled tabs do not respond to mouse and keyboard events, thus not allowing selecting the corresponding tab.

Parameters:
  `tabPane` - Tabbed pane.
  `tabIndex` - Tab index.
Returns:
  `true` if the specified tab component is sensitive to events, `false` otherwise.

### getPreviewDialogScreenBounds

public Rectangle getPreviewDialogScreenBounds(JTabbedPane tabPane)
Returns the screen bounds of the tab preview dialog window.

Parameters:
  `tabPane` - Tabbed pane.
Returns:
  Screen bounds of the preview dialog window of the specified tabbed pane.

### getModalOwner

public JFrame getModalOwner(JTabbedPane tabPane)
Returns the owner of the overview dialog of the specified tabbed pane. If this function retuns a non-`null` value, the overview dialog will be modal for the corresponding frame.

Parameters:
  `tabPane` - Tabbed pane.
Returns:
  If not `null`, the overview dialog for the specified tabbed pane will be modal for the corresponding frame.

### hasOverviewDialog

public boolean hasOverviewDialog(JTabbedPane tabPane)
Checks whether the specified tabbed pane has an overview dialog.

Parameters:
  `tabPane` - Tabbed pane.
Returns:
  `true` if the specified tabbed pane has an overview dialog, `false` otherwise.

### hasPreviewWindow

public boolean hasPreviewWindow(JTabbedPane tabPane, int tabIndex)
Checks whether the specified tabbed pane has a preview window for the specified tab.

Parameters:
  `tabPane` - Tabbed pane.
  `tabIndex` - Tab index.
Returns:
  `true` if the specified tabbed pane has a preview window for the specified tab, `false` otherwise.

### getPreviewWindowDimension

public Dimension getPreviewWindowDimension(JTabbedPane tabPane, int tabIndex)
Returns the dimension for the tab preview window.

Parameters:
  `tabPane` - Tabbed pane.
  `tabIndex` - Tab index.
Returns:
  Dimension of the tab preview window for the specified tab in the specified tabbed pane.

### getPreviewWindowExtraDelay

public int getPreviewWindowExtraDelay(JTabbedPane tabPane, int tabIndex)
Returns extra delay (in milliseconds) for showing the tab preview window. The base delay is 2000 milliseconds (2 seconds). This function must return a non-negative value.

Parameters:
  `tabPane` - Tabbed pane.
  `tabIndex` - Tab index.
Returns:
  Non-negative extra delay (in milliseconds) for showing the tab preview window.

### toUpdatePeriodically

public boolean toUpdatePeriodically(JTabbedPane tabPane)
Returns indication whether the thumbnail preview should be updated periodically. If the return value is `true`, then the implementation of `getUpdateCycle(JTabbedPane)` returns the refresh cycle length in milliseconds.

Parameters:
  `tabPane` - Tabbed pane.
Returns:
  `true` if the thumbnail preview of the specified tabbed pane should be updated periodically, `false` otherwise.

### getUpdateCycle

public int getUpdateCycle(JTabbedPane tabPane)
If the result of `toUpdatePeriodically(JTabbedPane)` is `true`, returns the update cycle length in milliseconds.

Parameters:
  `tabPane` - Tabbed pane.
Returns:
  Update cycle length in milliseconds for the thumbnail preview of the specified tabbed pane.

### getOverviewKind

public LafConstants.TabOverviewKind getOverviewKind(JTabbedPane tabPane)
Returns the tab overview kind for the specified tabbed pane. Relevant if `hasOverviewDialog(JTabbedPane)` returns `true` for the same tabbed pane. If `hasOverviewDialog(JTabbedPane)` returns `true`, the result should be not `null`.

Parameters:
  `tabPane` - Tabbed pane.
Returns:
  Tab overview kind for the specified tabbed pane.
Since:
  version 3.0

### toDisposeOverviewOnFocusLoss

public boolean toDisposeOverviewOnFocusLoss()
Returns indication whether the tab overview dialog should be automatically disposed when it loses focus.

Returns:
  if `true`, the tab overview dialog will be disposed when it loses focus.