diff options
Diffstat (limited to 'propertysheet/src/org/eclipse/wb/internal/core/utils/execution/ExecutionUtils.java')
-rw-r--r-- | propertysheet/src/org/eclipse/wb/internal/core/utils/execution/ExecutionUtils.java | 292 |
1 files changed, 0 insertions, 292 deletions
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/utils/execution/ExecutionUtils.java b/propertysheet/src/org/eclipse/wb/internal/core/utils/execution/ExecutionUtils.java deleted file mode 100644 index d80ff94..0000000 --- a/propertysheet/src/org/eclipse/wb/internal/core/utils/execution/ExecutionUtils.java +++ /dev/null @@ -1,292 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2011 Google, Inc. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Google, Inc. - initial API and implementation - *******************************************************************************/ -package org.eclipse.wb.internal.core.utils.execution; - -import org.eclipse.swt.widgets.Display; -import org.eclipse.wb.internal.core.DesignerPlugin; -import org.eclipse.wb.internal.core.utils.reflect.ReflectionUtils; - -import java.beans.Beans; - -/** - * Utilities for executing actions, such as {@link RunnableEx}. - * - * @author scheglov_ke - * @coverage core.util - */ -public class ExecutionUtils { - //////////////////////////////////////////////////////////////////////////// - // - // Constructor - // - //////////////////////////////////////////////////////////////////////////// - private ExecutionUtils() { - } - - //////////////////////////////////////////////////////////////////////////// - // - // Sleep - // - //////////////////////////////////////////////////////////////////////////// - /** - * Sleeps given number of milliseconds, ignoring exceptions. - */ - public static void sleep(final int millis) { - runIgnore(new RunnableEx() { - @Override - public void run() throws Exception { - Thread.sleep(millis); - } - }); - } - - /** - * Waits given number of milliseconds and runs events loop every 1 millisecond. At least one - * events loop will be executed. If current thread is not UI thread, then this method works just - * as {@link #sleep(int)}. - */ - public static void waitEventLoop(int millis) { - Display display = Display.getCurrent(); - if (display != null) { - long nanos = millis * 1000000L; - long start = System.nanoTime(); - do { - sleep(0); - while (display.readAndDispatch()) { - // do nothing - } - } while (System.nanoTime() - start < nanos); - } else { - sleep(millis); - } - } - - //////////////////////////////////////////////////////////////////////////// - // - // void - // - //////////////////////////////////////////////////////////////////////////// - /** - * Runs given {@link RunnableEx} and ignores exceptions. - * - * @return <code>true</code> if execution was finished without exception. - */ - public static boolean runIgnore(RunnableEx runnable) { - try { - runnable.run(); - return true; - } catch (Throwable e) { - return false; - } - } - - /** - * Runs given {@link RunnableEx} and logs exceptions using {@link DesignerPlugin#log(Throwable)}. - * - * @return <code>true</code> if execution was finished without exception. - */ - public static boolean runLog(RunnableEx runnable) { - try { - runnable.run(); - return true; - } catch (Throwable e) { - DesignerPlugin.log(e); - return false; - } - } - - /** - * Runs given {@link RunnableEx} and re-throws exceptions using {@link RuntimeException}. - */ - public static void runRethrow(RunnableEx runnable) { - try { - runnable.run(); - } catch (Throwable e) { - throw ReflectionUtils.propagate(e); - } - } - - /** - * Runs given {@link RunnableEx} and re-throws exceptions using {@link RuntimeException}. - */ - public static void runRethrow(RunnableEx runnable, String format, Object... args) { - try { - runnable.run(); - } catch (Throwable e) { - String message = String.format(format, args); - throw new RuntimeException(message, e); - } - } - - /** - * Ensures that {@link Beans#isDesignTime()} returns <code>true</code> and runs given - * {@link RunnableEx}. - */ - public static void runDesignTime(RunnableEx runnable) throws Exception { - boolean old_designTime = Beans.isDesignTime(); - try { - Beans.setDesignTime(true); - runnable.run(); - } finally { - Beans.setDesignTime(old_designTime); - } - } - - /** - * Ensures that {@link Beans#isDesignTime()} returns <code>true</code> and runs given - * {@link RunnableEx}. - */ - public static <T> T runDesignTime(RunnableObjectEx<T> runnable) throws Exception { - boolean old_designTime = Beans.isDesignTime(); - try { - Beans.setDesignTime(true); - return runnable.runObject(); - } finally { - Beans.setDesignTime(old_designTime); - } - } - - //////////////////////////////////////////////////////////////////////////// - // - // UI - // - //////////////////////////////////////////////////////////////////////////// - /** - * Runs given {@link RunnableEx} inside of UI thread, using {@link Display#syncExec(Runnable)}. - * - * @return <code>true</code> if {@link RunnableEx} was executed without any {@link Exception}. - */ - public static boolean runLogUI(final RunnableEx runnable) { - final boolean[] success = new boolean[1]; - Display.getDefault().syncExec(new Runnable() { - @Override - public void run() { - success[0] = ExecutionUtils.runLog(runnable); - } - }); - return success[0]; - } - - /** - * Runs given {@link RunnableEx} inside of UI thread, using {@link Display#syncExec(Runnable)}. - */ - public static void runRethrowUI(final RunnableEx runnable) { - Display.getDefault().syncExec(new Runnable() { - @Override - public void run() { - ExecutionUtils.runRethrow(runnable); - } - }); - } - - /** - * Runs given {@link RunnableEx} within UI thread using {@link Display#asyncExec(Runnable)}. Logs - * a {@link Throwable} which may occur. - */ - public static void runAsync(final RunnableEx runnable) { - Display.getDefault().asyncExec(new Runnable() { - @Override - public void run() { - ExecutionUtils.runLog(runnable); - } - }); - } - - /** - * Runs given {@link RunnableEx} inside of UI thread, using {@link Display#syncExec(Runnable)}. - */ - @SuppressWarnings("unchecked") - public static <T> T runObjectUI(final RunnableObjectEx<T> runnable) { - final Object[] result = new Object[1]; - runRethrowUI(new RunnableEx() { - @Override - public void run() throws Exception { - result[0] = runObject(runnable); - } - }); - return (T) result[0]; - } - - /** - * Runs given {@link RunnableEx} as {@link #runLog(RunnableEx)}, but using - * {@link Display#asyncExec(Runnable)}. - */ - public static void runLogLater(final RunnableEx runnable) { - Display.getDefault().asyncExec(new Runnable() { - @Override - public void run() { - ExecutionUtils.runLog(runnable); - } - }); - } - - //////////////////////////////////////////////////////////////////////////// - // - // Object - // - //////////////////////////////////////////////////////////////////////////// - /** - * Runs given {@link RunnableEx} and re-throws exceptions using {@link RuntimeException}. - * - * @return the {@link Object} returned by {@link RunnableEx#run()}. - */ - public static <T> T runObject(RunnableObjectEx<T> runnable) { - try { - return runnable.runObject(); - } catch (Throwable e) { - throw ReflectionUtils.propagate(e); - } - } - - /** - * Runs given {@link RunnableEx} and re-throws exceptions using {@link RuntimeException}. - * - * @return the {@link Object} returned by {@link RunnableEx#run()}. - */ - public static <T> T runObject(RunnableObjectEx<T> runnable, String format, Object... args) { - try { - return runnable.runObject(); - } catch (Throwable e) { - String message = String.format(format, args); - throw new Error(message, e); - } - } - - /** - * Runs given {@link RunnableEx} and ignores exceptions. - * - * @return the {@link Object} returned by {@link RunnableEx#run()} or <code>defaultValue</code> if - * exception happened. - */ - public static <T> T runObjectIgnore(RunnableObjectEx<T> runnable, T defaultValue) { - try { - return runnable.runObject(); - } catch (Throwable e) { - return defaultValue; - } - } - - /** - * Runs given {@link RunnableEx} and logs exceptions using {@link DesignerPlugin#log(Throwable)}. - * - * @return the {@link Object} returned by {@link RunnableEx#run()} or <code>defaultValue</code> if - * exception was logged. - */ - public static <T> T runObjectLog(RunnableObjectEx<T> runnable, T defaultValue) { - try { - return runnable.runObject(); - } catch (Throwable e) { - DesignerPlugin.log(e); - return defaultValue; - } - } - -} |