summaryrefslogtreecommitdiff
path: root/propertysheet/src/org/eclipse/wb/internal/core/DesignerPlugin.java
diff options
context:
space:
mode:
Diffstat (limited to 'propertysheet/src/org/eclipse/wb/internal/core/DesignerPlugin.java')
-rw-r--r--propertysheet/src/org/eclipse/wb/internal/core/DesignerPlugin.java229
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;
- }
-}