diff options
Diffstat (limited to 'propertysheet/src/org/eclipse/wb/internal/core/DesignerPlugin.java')
-rw-r--r-- | propertysheet/src/org/eclipse/wb/internal/core/DesignerPlugin.java | 229 |
1 files changed, 0 insertions, 229 deletions
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/DesignerPlugin.java b/propertysheet/src/org/eclipse/wb/internal/core/DesignerPlugin.java deleted file mode 100644 index 564a068..0000000 --- a/propertysheet/src/org/eclipse/wb/internal/core/DesignerPlugin.java +++ /dev/null @@ -1,229 +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; - -import com.google.common.collect.Maps; -import com.google.common.io.CharStreams; -import com.google.common.io.Closeables; - -import org.eclipse.core.runtime.IStatus; -import org.eclipse.core.runtime.Status; -import org.eclipse.jface.resource.ImageDescriptor; -import org.eclipse.swt.graphics.Image; -import org.eclipse.swt.widgets.Display; -import org.eclipse.swt.widgets.Shell; -import org.eclipse.ui.IWorkbenchWindow; -import org.eclipse.ui.plugin.AbstractUIPlugin; - -import java.io.Closeable; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.net.URL; -import java.nio.charset.Charset; -import java.util.Map; - -/** - * The DesignerPlugin class is the "nexus" of the propertysheet. In WindowBuilder, - * it's the plugin activator, and contains a number of important utility methods, such - * as resource loading, logging, obtaining a display and shell, etc. - * <p> - * In the AOSP fork, most of the functionality has been ripped out, except for the - * above mentioned pieces, and this class is no longer a plugin. Instead, it *delegates* - * to the plugin which initializes it via the {@link #initialize} method for things - * like logging. For things like image loading, it has its own local code such that - * it can find its image resources locally instead of requiring the embedding plugin - * to copy the images into its own jar. - * <p> - * "DesignerPlugin" is not a very good name for this class since it is not a plugin, - * but it was left that way to avoid modifying all the various propertysheet classes; - * we'd like to keep those as unmodified as possible to make absorbing future - * WindowBuilder improvements as easy as possible. - */ -public class DesignerPlugin { - private static AbstractUIPlugin sPlugin; - private static String sPluginId; - - /** - * Initialize the property sheet for use in the ADT plugin - * - * @param hostPlugin the plugin to embed the property sheet - * @param pluginId the id of the plugin to use in status messages etc - * @param isWindows whether we're running on Windows - * @param isMac whether we're running on Mac - * @param isLinux whether we're running on Linux - */ - public static void initialize(AbstractUIPlugin hostPlugin, String pluginId, - boolean isWindows, boolean isMac, boolean isLinux) { - assert sPlugin == null; // Can only be used by one client in the same classloader - sPlugin = hostPlugin; - sPluginId = pluginId; - EnvironmentUtils.IS_WINDOWS = isWindows; - EnvironmentUtils.IS_MAC = isMac; - EnvironmentUtils.IS_LINUX = isLinux; - } - - /** - * Dispose the propertysheet library: free up images from the cache, unregister the - * plugin reference etc. - */ - public static void dispose() { - sPlugin = null; - for (Image image : sImageCache.values()) { - image.dispose(); - } - sImageCache.clear(); - sDescriptorCache.clear(); - } - - /** - * Reads the contents of an {@link InputStreamReader} using the default - * platform encoding and return it as a String. This method will close the - * input stream. - * - * @param inputStream the input stream to be read from - * @param charset the charset to use - * @return the String read from the stream, or null if there was an error - */ - public static String readFile(InputStream inputStream, Charset charset) { - if (inputStream == null) { - return null; - } - Closeable closeMe = inputStream; - try { - final InputStreamReader isr = new InputStreamReader(inputStream, charset); - closeMe = isr; - try { - return CharStreams.toString(isr); - } catch (Exception ioe) { - // pass -- ignore files we can't read - return null; - } - } finally { - Closeables.closeQuietly(closeMe); - } - } - - /** - * @return the instance of {@link DesignerPlugin} - */ - public static AbstractUIPlugin getDefault() { - assert sPlugin != null; - return sPlugin; - } - - // ////////////////////////////////////////////////////////////////////////// - // - // Display/Shell - // - // ////////////////////////////////////////////////////////////////////////// - /** - * @return the {@link Display} instance, current (if in GUI thread) or - * default. - */ - public static Display getStandardDisplay() { - Display display = Display.getCurrent(); - if (display == null) { - display = Display.getDefault(); - } - return display; - } - - /** - * @return the active {@link IWorkbenchWindow}. - */ - public static IWorkbenchWindow getActiveWorkbenchWindow() { - return getDefault().getWorkbench().getActiveWorkbenchWindow(); - } - - /** - * @return the {@link Shell} of active {@link IWorkbenchWindow}. - */ - public static Shell getShell() { - if (getActiveWorkbenchWindow() != null) { - return getActiveWorkbenchWindow().getShell(); - } - return null; - } - - /** - * Logs given {@link IStatus} into Eclipse .log. - */ - public static void log(IStatus status) { - getDefault().getLog().log(status); - } - - /** - * Logs {@link IStatus} with given message into Eclipse .log. - */ - public static void log(String message) { - log(new Status(IStatus.INFO, sPluginId, IStatus.INFO, message, null)); - } - - /** - * Logs {@link IStatus} with given exception into Eclipse .log. - */ - public static void log(Throwable e) { - Status status = new Status(IStatus.ERROR, sPluginId, "", e); - getDefault().getLog().log(status); - } - - /** - * Logs {@link IStatus} with given message and exception into Eclipse .log. - */ - public static void log(String message, Throwable e) { - log(createStatus(message, e)); - } - - /** - * Creates {@link IStatus} for given message and exception. - */ - public static Status createStatus(String message, Throwable e) { - return new Status(IStatus.ERROR, "wb", IStatus.ERROR, message, e) { - @Override - public boolean isMultiStatus() { - return true; - } - }; - } - - // ////////////////////////////////////////////////////////////////////////// - // - // Resources - // - // ////////////////////////////////////////////////////////////////////////// - private static Map<String, ImageDescriptor> sDescriptorCache = Maps.newHashMap(); - private static Map<String, Image> sImageCache = Maps.newHashMap(); - - public static Image getImage(String path) { - Image image = sImageCache.get(path); - if (image == null) { - ImageDescriptor descriptor = getImageDescriptor(path); - if (descriptor != null) { - return descriptor.createImage(); - } - sImageCache.put(path, image); - } - return image; - } - - public static ImageDescriptor getImageDescriptor(String path) { - ImageDescriptor descriptor = sDescriptorCache.get(path); - if (descriptor == null) { - URL url = DesignerPlugin.class.getResource("icons/" + path); //$NON-NLS-1$ - if (url != null) { - descriptor = ImageDescriptor.createFromURL(url); - sDescriptorCache.put(path, descriptor); - } - } - return descriptor; - } -} |