package net.sourceforge.phpeclipse.externaltools; /********************************************************************** 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.model.ColorManager; import net.sourceforge.phpdt.externaltools.internal.model.ExternalToolsImages; import net.sourceforge.phpdt.externaltools.internal.model.IPreferenceConstants; import net.sourceforge.phpdt.externaltools.internal.model.VariableContextManager; 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 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; import org.eclipse.ui.plugin.AbstractUIPlugin; import org.osgi.framework.Bundle; /** * External tools plug-in class */ public final class ExternalToolsPlugin extends AbstractUIPlugin { public static final String XAMPP_START_PREF = "_xampp_start_pref"; public static final String XAMPP_STOP_PREF = "_xampp_stop_pref"; public static final String MYSQL_RUN_PREF = "_mysql_run_pref"; public static final String MYSQL_START_BACKGROUND = "_mysql_start_background"; public static final String MYSQL_PREF = "__mysql_start"; public static final String APACHE_RUN_PREF = "_apache_run_pref"; public static final String APACHE_START_BACKGROUND = "_apache_start_background"; public static final String APACHE_START_PREF = "__apache_start"; public static final String APACHE_STOP_BACKGROUND = "_apache_stop_background"; public static final String APACHE_STOP_PREF = "__apache_stop"; public static final String APACHE_RESTART_BACKGROUND = "_apache_restart_background"; public static final String APACHE_RESTART_PREF = "__apache_restart"; public static final String SHOW_OUTPUT_IN_CONSOLE = "_show_output_in_console"; public static final String PHP_RUN_PREF = "_php_run_pref"; /** * 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); ExternalToolsPlugin.log(status); } public static void log(IStatus status) { getDefault().getLog().log(status); } /** * Returns the ImageDescriptor for the icon with the given path * * @return the ImageDescriptor object */ public ImageDescriptor getImageDescriptor(String path) { try { Bundle bundle = ExternalToolsPlugin.getDefault().getBundle(); URL installURL = bundle.getEntry("/"); //$NON-NLS-1$ 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 ExternalToolsPlugin.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(ExternalToolsPlugin.getDefault().getPreferenceStore(), pref)); } }