Class ProgressWaitCursor


  • @OpenApi
    public class ProgressWaitCursor
    extends java.lang.Object
    Mouse wait cursor handling helper for progress monitors.
    • Field Detail

      • DEFAULT_CURSOR_CURSOR

        private static final java.awt.Cursor DEFAULT_CURSOR_CURSOR
      • WAIT_CURSOR_CURSOR

        private static final java.awt.Cursor WAIT_CURSOR_CURSOR
      • waitCursorContainers

        private final java.util.Map<javax.swing.RootPaneContainer,​java.awt.Cursor> waitCursorContainers
      • waitCursorsInitialized

        private boolean waitCursorsInitialized
      • glassPaneMouseListener

        @CheckForNull
        private final java.awt.event.MouseListener glassPaneMouseListener
      • glassPaneKeyListener

        @CheckForNull
        private final java.awt.event.KeyListener glassPaneKeyListener
    • Constructor Detail

      • ProgressWaitCursor

        public ProgressWaitCursor()
        Creates a new progress wait cursor handling helper
      • ProgressWaitCursor

        private ProgressWaitCursor​(@CheckForNull
                                   java.awt.event.MouseListener mouseListener,
                                   @CheckForNull
                                   java.awt.event.KeyListener keyListener)
    • Method Detail

      • createProgressWaitCursorIgnoringMouseAndKeyEvents

        public static ProgressWaitCursor createProgressWaitCursorIgnoringMouseAndKeyEvents()
        Creates instance of ProgressWaitCursor which shows waiting mouse cursor and filters out all mouse and key events. Therefore user will not be able to interact with any components while ProgressWaitCursor is not removed.
        Returns:
        instance of ProgressWaitCursor
      • initializeWaitCursor

        public void initializeWaitCursor()
        Initializes mouse wait cursor for all application windows
      • removeWaitCursor

        public void removeWaitCursor()
        Removes mouse wait cursor and restores the original cursors for all application windows
      • trackCursor

        public void trackCursor​(java.awt.Component progressComponent,
                                java.awt.event.MouseEvent mouseEvent,
                                boolean waitCursorExpected)
        Tracks mouse cursor changes when mouse enters/leaves progress component. This method is typically invoked from EventQueueDispatcher.customDispatchMouseEvent() and ensures that cursor changes to default cursor when mouse is over progress component or to wait cursor when mouse is over rest of controls/windows.
        Parameters:
        progressComponent - the progress component over which mouse cursor changes to default cursor
        mouseEvent - pending mouse event
        waitCursorExpected - true indicates that mouse cursor should change to wait cursor, false indicates that mouse cursor should change to default cursor
        See Also:
        EventQueueDispatcher.customDispatchMouseEvent(EventQueueDispatcher.Dispatcher, EventQueue, MouseEvent)
      • dispatchProgressComponentEnterExitEvent

        private void dispatchProgressComponentEnterExitEvent​(java.awt.Component progressComponent,
                                                             java.awt.event.MouseEvent event,
                                                             boolean enter)