X-Git-Url: http://secure.phpeclipse.com diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/externaltools/internal/model/ExternalToolsPlugin.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/externaltools/internal/model/ExternalToolsPlugin.java new file mode 100644 index 0000000..0baabc1 --- /dev/null +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/externaltools/internal/model/ExternalToolsPlugin.java @@ -0,0 +1,206 @@ +package net.sourceforge.phpdt.externaltools.internal.model; + +/********************************************************************** +Copyright (c) 2002 IBM Corp. and others. All rights reserved. +This file is made available under the terms of the Common Public License v1.0 +which accompanies this distribution, and is available at +http://www.eclipse.org/legal/cpl-v10.html +  +Contributors: +**********************************************************************/ + +import java.net.MalformedURLException; +import java.net.URL; + +import net.sourceforge.phpdt.externaltools.internal.registry.ArgumentVariableRegistry; +import net.sourceforge.phpdt.externaltools.internal.registry.PathLocationVariableRegistry; +import net.sourceforge.phpdt.externaltools.internal.registry.RefreshScopeVariableRegistry; +import net.sourceforge.phpdt.externaltools.model.IExternalToolConstants; +import net.sourceforge.phpeclipse.PHPeclipsePlugin; + +import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.Status; +import org.eclipse.jface.preference.IPreferenceStore; +import org.eclipse.jface.preference.PreferenceConverter; +import org.eclipse.jface.resource.ImageDescriptor; +import org.eclipse.jface.resource.ImageRegistry; +import org.eclipse.swt.graphics.Color; +import org.eclipse.swt.graphics.RGB; +import org.eclipse.swt.widgets.Display; +import org.eclipse.ui.IWorkbenchWindow; + +/** + * External tools plug-in class + */ +public final class ExternalToolsPlugin { // extends AbstractUIPlugin { + /** + * Status representing no problems encountered during operation. + */ + public static final IStatus OK_STATUS = new Status(IStatus.OK, IExternalToolConstants.PLUGIN_ID, 0, "", null); //$NON-NLS-1$ + + private static ExternalToolsPlugin plugin; + + private RefreshScopeVariableRegistry refreshVarRegistry; + private PathLocationVariableRegistry fileLocVarRegistry; + private PathLocationVariableRegistry dirLocVarRegistry; + private ArgumentVariableRegistry argumentVarRegistry; + + /** + * Create an instance of the External Tools plug-in. + */ + public ExternalToolsPlugin() { // IPluginDescriptor descriptor) { + // super(descriptor); + plugin = this; + } + + /** + * Returns the default instance of the receiver. + * This represents the runtime plugin. + */ + public static ExternalToolsPlugin getDefault() { + return plugin; + } + + /** + * Returns a new IStatus for this plug-in + */ + public static IStatus newErrorStatus(String message, Throwable exception) { + return new Status(Status.ERROR, IExternalToolConstants.PLUGIN_ID, 0, message, exception); + } + + /** + * Returns a new CoreException for this plug-in + */ + public static CoreException newError(String message, Throwable exception) { + return new CoreException(new Status(Status.ERROR, IExternalToolConstants.PLUGIN_ID, 0, message, exception)); + } + + /** + * Returns the registry of refresh scope variables. + */ + public ArgumentVariableRegistry getArgumentVariableRegistry() { + if (argumentVarRegistry == null) + argumentVarRegistry = new ArgumentVariableRegistry(); + return argumentVarRegistry; + } + + /** + * Returns the registry of directory location variables. + */ + public PathLocationVariableRegistry getDirectoryLocationVariableRegistry() { + if (dirLocVarRegistry == null) + dirLocVarRegistry = new PathLocationVariableRegistry(IExternalToolConstants.EXTENSION_POINT_DIRECTORY_VARIABLES); + return dirLocVarRegistry; + } + + /** + * Returns the registry of file location variables. + */ + public PathLocationVariableRegistry getFileLocationVariableRegistry() { + if (fileLocVarRegistry == null) + fileLocVarRegistry = new PathLocationVariableRegistry(IExternalToolConstants.EXTENSION_POINT_FILE_VARIABLES); + return fileLocVarRegistry; + } + + /** + * Returns the registry of refresh scope variables. + */ + public RefreshScopeVariableRegistry getRefreshVariableRegistry() { + if (refreshVarRegistry == null) + refreshVarRegistry = new RefreshScopeVariableRegistry(); + return refreshVarRegistry; + } + + /** + * Writes the message to the plug-in's log + * + * @param message the text to write to the log + */ + public void log(String message, Throwable exception) { + IStatus status = newErrorStatus(message, exception); + // getLog().log(status); + PHPeclipsePlugin.log(status); + } + + /** + * Returns the ImageDescriptor for the icon with the given path + * + * @return the ImageDescriptor object + */ + public ImageDescriptor getImageDescriptor(String path) { + try { + URL installURL = PHPeclipsePlugin.getDefault().getDescriptor().getInstallURL(); + URL url = new URL(installURL, path); + return ImageDescriptor.createFromURL(url); + } catch (MalformedURLException e) { + return null; + } + } + + /* (non-Javadoc) + * Method declared in AbstractUIPlugin. + */ + public void initializeDefaultPreferences(IPreferenceStore prefs) { + prefs.setDefault(IPreferenceConstants.PROMPT_FOR_MIGRATION, true); + + PreferenceConverter.setDefault(prefs, IPreferenceConstants.CONSOLE_ERROR_RGB, new RGB(255, 0, 0)); // red - exactly the same as debug Consol + PreferenceConverter.setDefault(prefs, IPreferenceConstants.CONSOLE_WARNING_RGB, new RGB(255, 100, 0)); // orange + PreferenceConverter.setDefault(prefs, IPreferenceConstants.CONSOLE_INFO_RGB, new RGB(0, 0, 255)); // blue + PreferenceConverter.setDefault(prefs, IPreferenceConstants.CONSOLE_VERBOSE_RGB, new RGB(0, 200, 125)); // green + PreferenceConverter.setDefault(prefs, IPreferenceConstants.CONSOLE_DEBUG_RGB, new RGB(0, 0, 0)); // black + } + + public static IWorkbenchWindow getActiveWorkbenchWindow() { + return PHPeclipsePlugin.getDefault().getWorkbench().getActiveWorkbenchWindow(); + } + + /** + * Returns the standard display to be used. The method first checks, if + * the thread calling this method has an associated display. If so, this + * display is returned. Otherwise the method returns the default display. + */ +// public static Display getStandardDisplay() { +// Display display = Display.getCurrent(); +// if (display == null) { +// display = Display.getDefault(); +// } +// return display; +// } + + /** + * @see org.eclipse.ui.plugin.AbstractUIPlugin#createImageRegistry() + */ + protected ImageRegistry createImageRegistry() { + return ExternalToolsImages.initializeImageRegistry(); + } + + /** + * @see org.eclipse.core.runtime.Plugin#startup() + */ +// public void startup() throws CoreException { +//// super.startup(); +// getStandardDisplay().asyncExec( +// new Runnable() { +// public void run() { +// //initialize the variable context manager +// VariableContextManager.getDefault(); +// } +// }); +// } +// +// /** +// * @see org.eclipse.core.runtime.Plugin#shutdown() +// */ +// public void shutdown() throws CoreException { +// // super.shutdown(); +// ColorManager.getDefault().dispose(); +// } + + /** + * Returns the preference color, identified by the given preference. + */ + public static Color getPreferenceColor(String pref) { + return ColorManager.getDefault().getColor(PreferenceConverter.getColor(PHPeclipsePlugin.getDefault().getPreferenceStore(), pref)); + } +}