java.lang.Object
java.lang.Thread
org.pushingpixels.radiance.theming.internal.utils.TrackableThread
org.pushingpixels.radiance.theming.extras.internal.tabbed.TabPreviewThread
All Implemented Interfaces:
Runnable

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

    • stopRequested

      private boolean stopRequested
      Indication whether a stop request has been issued on this thread.
    • previewQueue

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

      private static TabPreviewThread tabPreviewThread
      The preview thread.
  • Constructor Details

    • TabPreviewThread

      private TabPreviewThread()
      Simple constructor. Defined private for singleton.
      See Also:
  • 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.
    • dequeueTabPreviewRequest

      private List<DeltaQueue.Deltable> dequeueTabPreviewRequest(int delay)
      Removes the tab preview requests that have at most specified delay left.
      Parameters:
      delay - Delay.
      Returns:
      The list of all tab preview requests that have at most specified delay left.
    • 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.