/** * Returns promise returned by PromisableAction or already resolved promise for * non-PromisableAction. */ private Promise<Void> promiseAction(final Action action, final ActionEvent event) { if (action instanceof PromisableAction) { return ((PromisableAction) action).promise(event); } else { action.actionPerformed(event); return Promises.resolve(null); } }