/** * Dispatch and handle message in the AWT dispatch thread. * * @param message Message to process. */ public void processMessage(final Object message) { final Method method = findCorrespondingMethod(message); if (method != null) { if (executor == null || (method.getAnnotation(Asynchronous.class) == null)) { edtExecutor.execute( new Runnable() { public void run() { invoke(listener, method, message); } }); } else { executor.execute( new Runnable() { public void run() { invoke(listener, method, message); } }); } } }
/** * Set EDT executor to use "SwingUtils.invokeAndWait()" instead of "SwingUtils.invokeLater()". Use * only when you know what are you doing. * * @param value Is false (default) or true. */ public void setInvokeAndWait(boolean value) { edtExecutor.setUseInvokeAndWait(value); }