Java Swing Cursor showCursor(final Cursor cursor, final Component caller, final boolean includeParent, boolean immediate)

Here you can find the source of showCursor(final Cursor cursor, final Component caller, final boolean includeParent, boolean immediate)

Description

show Cursor

License

Apache License

Declaration

private static void showCursor(final Cursor cursor,
            final Component caller, final boolean includeParent,
            boolean immediate) 

Method Source Code

//package com.java2s;
/*/*  w  w w . ja v a 2s  .  co  m*/
 * WbSwingUtilities.java
 *
 * This file is part of SQL Workbench/J, http://www.sql-workbench.net
 *
 * Copyright 2002-2015, Thomas Kellerer
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at.
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * 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 javax.swing.*;

import java.awt.*;

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

        Runnable r = new Runnable() {
            @Override
            public void run() {
                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. setCursorBusy(JComponent component)
  2. setCursorDefault(Container cont)
  3. setWaitCursor(final Component c, final boolean wait)
  4. setWaitCursor(JComponent comp)
  5. showCursor(final Cursor cursor, final Component caller, final boolean includeParent, boolean immediate)
  6. showDefaultCursor()
  7. showDefaultCursorOnWindow(Component caller)
  8. showDefaultCursorOnWindow(Component caller)
  9. startWaitCursor(JComponent component)