/* * SK's Minecraft Launcher * Copyright (C) 2010-2014 Albert Pham <http://www.sk89q.com> and contributors * Please see LICENSE.txt for license information. */ package com.skcraft.launcher.util; import javax.swing.*; import java.util.ArrayList; import java.util.List; import java.util.concurrent.*; public final class SwingExecutor extends AbstractExecutorService { public static final SwingExecutor INSTANCE = new SwingExecutor(); private SwingExecutor() { } @Override public void execute(Runnable runnable) { SwingUtilities.invokeLater(runnable); } @Override protected <T> RunnableFuture<T> newTaskFor(final Callable<T> callable) { return new FutureTask<T>(callable) { @Override public void run() { try { super.run(); } catch (Throwable e) { setException(e); } } }; } @Override public void shutdown() { } @Override public List<Runnable> shutdownNow() { return new ArrayList<Runnable>(); } @Override public boolean isShutdown() { return false; } @Override public boolean isTerminated() { return false; } @Override public boolean awaitTermination(long timeout, TimeUnit unit) throws InterruptedException { return false; } }