org.jvnet.lafwidget.tabbed
Class TabPreviewThread

java.lang.Object
  extended by java.lang.Thread
      extended by org.jvnet.lafwidget.utils.TrackableThread
          extended by org.jvnet.lafwidget.tabbed.TabPreviewThread
All Implemented Interfaces:
java.lang.Runnable

public class TabPreviewThread
extends TrackableThread

Thread for running the tab preview requests.

Author:
Kirill Grouchnikov

Nested Class Summary
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
java.lang.Thread.State, java.lang.Thread.UncaughtExceptionHandler
 
Field Summary
protected  DeltaQueue previewQueue
          Queue of preview requests.
 
Fields inherited from class java.lang.Thread
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
 
Method Summary
 void cancelTabPreviewRequests(java.lang.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(javax.swing.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.jvnet.lafwidget.utils.TrackableThread
requestStopAllThreads
 
Methods inherited from class java.lang.Thread
activeCount, checkAccess, countStackFrames, currentThread, destroy, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, start, stop, stop, suspend, toString, yield
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

previewQueue

protected DeltaQueue previewQueue
Queue of preview requests. Contains TabPreviewThread.TabPreviewInfos.

Method Detail

run

public void run()
Specified by:
run in interface java.lang.Runnable
Overrides:
run in class java.lang.Thread

getSingleTabPreviewImage

protected void getSingleTabPreviewImage(javax.swing.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(java.lang.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.