Java Swing Cursor showDefaultCursorOnWindow(Component caller)

Here you can find the source of showDefaultCursorOnWindow(Component caller)

Description

show Default Cursor On Window

License

Apache License

Declaration

public static void showDefaultCursorOnWindow(Component caller) 

Method Source Code

    //package com.java2s;
    /*// ww w .j a  v a 2s . co  m
     * WbSwingUtilities.java
     *
     * This file is part of SQL Workbench/J, http://www.sql-workbench.net
     *
     * Copyright 2002-2017, Thomas Kellerer
     *
     * Licensed under a modified Apache License, Version 2.0
     * that restricts the use for certain governments.
     * You may not use this file except in compliance with the License.
     * You may obtain a copy of the License at.
     *
     *     http://sql-workbench.net/manual/license.html
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     *
     * To contact the author please send an email to: support@sql-workbench.net
     *
     */

    import java.awt.Component;

    import java.awt.Cursor;

    import java.awt.EventQueue;

    import java.awt.Window;

    import javax.swing.SwingUtilities;

    public class Main {
        public static void showDefaultCursorOnWindow(Component caller) {
            showDefaultCursor(caller, true);
        }

        public static void showDefaultCursor(final Component caller) {
            showDefaultCursor(caller, false);
        }

        public static void showDefaultCursor(final Component caller,
                final boolean includeParents) {
            showCursor(null, caller, includeParents, true);
        }

        private static void showCursor(final Cursor cursor, final Component caller, final boolean includeParent, boolean immediate)
{
  if (caller == null) return;

  Runnable r = () ->
  {
    caller.setCursor(cursor);
    if (includeParent)
    {
      final Window w = getWindowAncestor(caller);
      if (w != null)
      {
        w.setCursor(cursor);
      }
    }
  };

  if (EventQueue.isDispatchThread())
  {
    r.run();
  }
  else
  {
    if (immediate)
    {
      try
      {
        EventQueue.invokeAndWait(r);
      }
      catch (Throwable th)
      {
      }
    }
    else
    {
      EventQueue.invokeLater(r);
    }
  }
}

        public static Window getWindowAncestor(Component caller) {
            if (caller == null)
                return null;
            if (caller instanceof Window) {
                return (Window) caller;
            }
            return SwingUtilities.getWindowAncestor(caller);
        }

        /**
         * A simple wrapper around EventQueue.invokeLater().
         *
         * @param runner the task to execute
         */
        public static void invokeLater(Runnable runner) {
            EventQueue.invokeLater(runner);
        }
    }

Related

  1. setWaitCursor(JComponent comp)
  2. showCursor(final Cursor cursor, final Component caller, final boolean includeParent, boolean immediate)
  3. showCursor(final Cursor cursor, final Component caller, final boolean includeParent, boolean immediate)
  4. showDefaultCursor()
  5. showDefaultCursorOnWindow(Component caller)
  6. startWaitCursor(JComponent component)
  7. startWaitCursor(JComponent component)
  8. waitCursorOff(Component comp)