Class TabPreviewThread

  • All Implemented Interfaces:
    java.lang.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

        java.lang.Thread.State, java.lang.Thread.UncaughtExceptionHandler
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected DeltaQueue previewQueue
      Queue of preview requests.
      private boolean stopRequested
      Indication whether a stop request has been issued on this thread.
      private static TabPreviewThread tabPreviewThread
      The preview thread.
      • Fields inherited from class java.lang.Thread

        MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      private TabPreviewThread()
      Simple constructor.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void cancelTabPreviewRequests​(java.lang.Object initiator)
      Cancels all tab preview requests that were initiated by the specified initiator.
      private java.util.List<DeltaQueue.Deltable> dequeueTabPreviewRequest​(int delay)
      Removes the tab preview requests that have at most specified delay left.
      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 java.lang.Thread

        activeCount, checkAccess, clone, countStackFrames, currentThread, destroy, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, onSpinWait, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, start, stop, stop, suspend, toString, yield
      • Methods inherited from class java.lang.Object

        equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Field Detail

      • stopRequested

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

        private static TabPreviewThread tabPreviewThread
        The preview thread.
    • Constructor Detail

      • TabPreviewThread

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

        private java.util.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.
      • 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.