sysperfana/analyzetoolext/com.nokia.s60tools.analyzetool/src/com/nokia/s60tools/analyzetool/Activator.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sysperfana/analyzetoolext/com.nokia.s60tools.analyzetool/src/com/nokia/s60tools/analyzetool/Activator.java Thu Feb 11 15:22:14 2010 +0200
@@ -0,0 +1,211 @@
+/*
+ * Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: Definitions for the class Activator
+ *
+ */
+
+package com.nokia.s60tools.analyzetool;
+
+import java.io.File;
+import java.io.IOException;
+import java.net.URL;
+
+import org.eclipse.core.runtime.FileLocator;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.jface.preference.IPreferenceStore;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.Bundle;
+import org.osgi.framework.BundleContext;
+
+import com.nokia.s60tools.analyzetool.global.Constants;
+import com.nokia.s60tools.analyzetool.ui.IActionListener;
+
+/**
+ * @author kihe The activator class controls the plug-in life cycle
+ */
+public class Activator extends AbstractUIPlugin {
+
+ /** The plug-in ID. */
+ public static final String PLUGIN_ID = Constants.PLUGINID;
+
+ /** The shared instance. */
+ private static Activator plugin;
+
+ /** Preference store. */
+ private static IPreferenceStore preferenceStore;
+
+ /** Action listener. */
+ private static IActionListener actionListener = null;
+
+ /**
+ * The constructor.
+ */
+ public Activator() {
+ plugin = this;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+ */
+ @Override
+ public final void start(final BundleContext context) {
+ try {
+ super.start(context);
+
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+ */
+ @Override
+ public final void stop(final BundleContext context) {
+ try {
+ plugin = null;
+ super.stop(context);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ }
+
+ /**
+ * Returns the shared instance.
+ *
+ * @return the shared instance
+ */
+ public static Activator getDefault() {
+ return plugin;
+ }
+
+ /**
+ * Returns an image descriptor for the image file at the given
+ * plug-in relative path.
+ *
+ * @param path
+ * the path
+ * @return the image descriptor
+ */
+ public static ImageDescriptor getImageDescriptor(final String path) {
+ return imageDescriptorFromPlugin(PLUGIN_ID, path);
+ }
+
+ /**
+ * Returns AnalyzeTool used preference store.
+ *
+ * @return Preference store
+ */
+ public static IPreferenceStore getPreferences() {
+
+ // if preference store not yet created => create it
+ if (preferenceStore == null) {
+ preferenceStore = getDefault().getPreferenceStore();
+ }
+
+ return preferenceStore;
+ }
+
+ /**
+ * Add action listener class.
+ *
+ * @param listener
+ * Action listener
+ */
+ public static void setActionListener(final IActionListener listener) {
+ actionListener = listener;
+ }
+
+ /**
+ * Gets action listener.
+ *
+ * @return ActionListener Action listener
+ */
+ public static IActionListener getActionListener() {
+ return actionListener;
+ }
+
+ /**
+ * Returns a File corresponding to the given bundle relative path.
+ * @param path the bundle relative path to resource to locate
+ * @return the File corresponding to the given bundle relative path, or null
+ * @throws IOException
+ */
+ public File locateFileInBundle(final String path) throws IOException {
+ Bundle myBundle= getDefault().getBundle();
+ IPath ppath= new Path(path);
+ ppath= ppath.makeRelative();
+ URL[] urls= FileLocator.findEntries(myBundle, ppath);
+ if(urls.length != 1) {
+ return null;
+ }
+ return new File(FileLocator.toFileURL(urls[0]).getFile());
+ }
+
+ /**
+ * Logs information to the eclipse .log file
+ * @param severity Message severity
+ * @param code Message code
+ * @param message Message content
+ */
+ public void logInfo(int severity, int code, String message) {
+ IStatus status = new Status(severity, PLUGIN_ID, code, message, (Throwable) null);
+ getDefault().getLog().log(status);
+ }
+ /**
+ * Logs the given message with the given severity and the given exception to
+ * this plug-in's log.
+ * @param aSeverity
+ * the severity; one of the <strong>IStatus</strong> severity
+ * constants: OK, ERROR, INFO, WARNING, or CANCEL
+ * @param aMessage
+ * a human-readable message, localised to the current locale
+ * @param aException
+ * a low-level exception, or null if not applicable
+ */
+ public void log(final int aSeverity, final String aMessage,
+ final Exception aException)
+ {
+ getLog().log(new Status(aSeverity, PLUGIN_ID, IStatus.OK, aMessage, aException));
+ }
+
+ /**
+ * Creates and returns an Image for the file at the given plug-in relative
+ * path. The Image is cached in the #ImageRegistry.
+ * @param aPath the plug-in relative path to the image file
+ * @return the requested Image
+ */
+ public Image getImage(final String aPath)
+ {
+ Image cachedImage = getImageRegistry().get(aPath);
+ if (null == cachedImage)
+ {
+ cachedImage = getImageDescriptor(aPath).createImage();
+ getImageRegistry().put(aPath, cachedImage);
+ }
+ return cachedImage;
+ }
+
+}