public void run() { customIntermediateResultAvailable(result); } });
/** * Call customIntermediateResultAvailable() on swing thread. */ public final void intermediateResultAvailable(final E result) { // Hack!!! When triggered from shutdown hook, swing might be terminated // and invokeLater has no effect (grrr). if(!SReflect.HAS_GUI || SwingUtilities.isEventDispatchThread())// || Starter.isShutdown()) { customIntermediateResultAvailable(result); } else { SwingUtilities.invokeLater(new Runnable() { public void run() { customIntermediateResultAvailable(result); } }); } }
/** * Overwritten to call intermediate and finished methods. */ public void customResultAvailable(Collection<E> result) { // Already called on swing thread. for(E e: result) { customIntermediateResultAvailable(e); } customFinished(); } }