Package org.pushingpixels.lafwidget.tabbed

# Class TabPreviewThread

java.lang.Object
java.lang.Thread
org.pushingpixels.lafwidget.utils.TrackableThread
org.pushingpixels.lafwidget.tabbed.TabPreviewThread

All Implemented Interfaces:
  `Runnable`

public class TabPreviewThread extends TrackableThread
Thread for running the tab preview requests.

## Nested Class Summary

Nested Classes
Modifier and Type
Class
Description
`static interface`
`TabPreviewThread.TabPreviewCallback`
Interface for offering the tab preview image once it has been computed.
`static class`
`TabPreviewThread.TabPreviewInfo`
Information for previewing a tabbed pane.

## Nested classes/interfaces inherited from class java.lang.Thread

`Thread.Builder, Thread.State, Thread.UncaughtExceptionHandler`

## Field Summary

Fields
Modifier and Type
Field
Description
`protected DeltaQueue`
`previewQueue`
Queue of preview requests.

### Fields inherited from class java.lang.Thread

`MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY`

## Method Summary

Modifier and Type
Method
Description
`void`
`cancelTabPreviewRequests(Object initiator)`
Cancels all tab preview requests that were initiated by the specified initiator.
`static TabPreviewThread`
`getInstance()`
Returns the singleton instance of the tab preview thread.
`protected void`
`getSingleTabPreviewImage(JTabbedPane tabPane, TabPreviewPainter previewPainter, TabPreviewThread.TabPreviewInfo previewInfo, int tabIndex)`
Computes and offers the preview thumbnail for a single tab.
`static boolean`
`instanceRunning()`
Returns indication whether tab preview thread is running.
`void`
`queueTabPreviewRequest(TabPreviewThread.TabPreviewInfo previewInfo)`
Queues the request to preview one or all tabs in the specified tabbed pane.
`protected void`
`requestStop()`
Issues a stop request on `this` thread.
`void`
`run()`

### Methods inherited from class org.pushingpixels.lafwidget.utils.TrackableThread

`requestStopAllThreads`

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

`activeCount, checkAccess, clone, countStackFrames, currentThread, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, isVirtual, join, join, join, join, ofPlatform, ofVirtual, onSpinWait, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, sleep, start, startVirtualThread, stop, suspend, threadId, toString, yield`

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

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

## Field Details

### previewQueue

protected DeltaQueue previewQueue
Queue of preview requests. Contains `TabPreviewThread.TabPreviewInfo`s.

## Method Details

### run

public void run()

Specified by:
  `run` in interface `Runnable`
Overrides:
  `run` in class `Thread`

### getSingleTabPreviewImage

protected void getSingleTabPreviewImage(JTabbedPane tabPane, TabPreviewPainter previewPainter, TabPreviewThread.TabPreviewInfo previewInfo, int tabIndex)
Computes and offers the preview thumbnail for a single tab.

Parameters:
  `tabPane` - Tabbed pane.
  `previewPainter` - Tab preview painter.
  `previewInfo` - Preview info.
  `tabIndex` - Index of the tab to preview.

### queueTabPreviewRequest

public void queueTabPreviewRequest(TabPreviewThread.TabPreviewInfo previewInfo)
Queues the request to preview one or all tabs in the specified tabbed pane. Once the request is queued, the thread will pick it up from the queue (in at most 500 milliseconds in the current implementation) and start processing it. For each tab (if all tabs were requested to be previewed), the preview thumbnail will be offered to the relevant callback. This allows to maintain the interactivity of the application while generating the preview thumbnails for the tab overview dialog (see `TabOverviewDialog`).

Parameters:
  `previewInfo` - Tab preview info.

### cancelTabPreviewRequests

public void cancelTabPreviewRequests(Object initiator)
Cancels all tab preview requests that were initiated by the specified initiator.

Parameters:
  `initiator` - Initiator.

### requestStop

protected void requestStop()
Description copied from class: `TrackableThread`
Issues a stop request on `this` thread.

Specified by:
  `requestStop` in class `TrackableThread`

### getInstance

public static TabPreviewThread getInstance()
Returns the singleton instance of the tab preview thread.

Returns:
  The singleton instance of the tab preview thread.

### instanceRunning

public static boolean instanceRunning()
Returns indication whether tab preview thread is running.

Returns:
  `true` if the tab preview thread is running, `false` otherwise.