package com.framsticks.gui; import com.framsticks.util.dispatching.Dispatcher; import com.framsticks.util.dispatching.Task; import javax.swing.*; import com.framsticks.util.dispatching.RunAt; /** * @author Piotr Sniegowski */ public class SwingDispatcher implements Dispatcher { @SuppressWarnings("rawtypes") protected static final SwingDispatcher instance = new SwingDispatcher(); @SuppressWarnings("unchecked") public static Dispatcher getInstance() { return (Dispatcher) instance; } public SwingDispatcher() { dispatch(new RunAt() { @Override public void run() { Thread.currentThread().setName("gui"); } }); } @Override public final boolean isActive() { return SwingUtilities.isEventDispatchThread(); } @Override public final void dispatch(RunAt runnable) { assert !(runnable instanceof Task); SwingUtilities.invokeLater(runnable); } }