X-Git-Url: http://git.phpeclipse.com diff --git a/net.sourceforge.phpeclipse.externaltools/src/net/sourceforge/phpeclipse/externaltools/ExternalToolsPlugin.java b/net.sourceforge.phpeclipse.externaltools/src/net/sourceforge/phpeclipse/externaltools/ExternalToolsPlugin.java index 811948e..c392571 100644 --- a/net.sourceforge.phpeclipse.externaltools/src/net/sourceforge/phpeclipse/externaltools/ExternalToolsPlugin.java +++ b/net.sourceforge.phpeclipse.externaltools/src/net/sourceforge/phpeclipse/externaltools/ExternalToolsPlugin.java @@ -9,8 +9,11 @@ package net.sourceforge.phpeclipse.externaltools; Contributors: **********************************************************************/ +import java.io.InputStream; import java.net.MalformedURLException; import java.net.URL; +import java.util.Enumeration; +import java.util.PropertyResourceBundle; import net.sourceforge.phpdt.externaltools.internal.model.ColorManager; import net.sourceforge.phpdt.externaltools.internal.model.ExternalToolsImages; @@ -20,10 +23,11 @@ import net.sourceforge.phpdt.externaltools.internal.registry.ArgumentVariableReg 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.Path; +import org.eclipse.core.runtime.Platform; import org.eclipse.core.runtime.Status; import org.eclipse.jface.preference.IPreferenceStore; import org.eclipse.jface.preference.PreferenceConverter; @@ -40,6 +44,39 @@ 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 HTTPD_CONF_PATH_PREF = "__httpd_conf_path"; + + public static final String ETC_HOSTS_PATH_PREF = "__etc_hosts_path"; + // public static final String SHOW_OUTPUT_IN_CONSOLE = "_show_output_in_console"; + + public static final String PHP_RUN_PREF = "_php_run_pref"; + + public static final String EXTERNAL_PARSER_PREF = "_external_parser"; + /** * Status representing no problems encountered during operation. */ @@ -55,11 +92,12 @@ public final class ExternalToolsPlugin extends AbstractUIPlugin { private ArgumentVariableRegistry argumentVarRegistry; + /** - * Create an instance of the External Tools plug-in. + * This version is recommended for eclipse3.0 and above */ - public ExternalToolsPlugin() { // IPluginDescriptor descriptor) { - // super(descriptor); + public ExternalToolsPlugin() { + super(); plugin = this; } @@ -122,24 +160,28 @@ public final class ExternalToolsPlugin extends AbstractUIPlugin { /** * 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); + 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 = PHPeclipsePlugin.getDefault().getBundle(); + Bundle bundle = ExternalToolsPlugin.getDefault().getBundle(); URL installURL = bundle.getEntry("/"); //$NON-NLS-1$ URL url = new URL(installURL, path); return ImageDescriptor.createFromURL(url); @@ -151,19 +193,61 @@ public final class ExternalToolsPlugin extends AbstractUIPlugin { /* * (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 + protected void initializeDefaultPreferences(IPreferenceStore store) { + String operatingSystem = Platform.getOS(); + // maxosx, linux, solaris, win32,... + try { + InputStream is = getDefault().openStream(new Path("prefs/default_" + operatingSystem + ".properties")); + PropertyResourceBundle resourceBundle = new PropertyResourceBundle(is); + Enumeration e = resourceBundle.getKeys(); + String key; + while (e.hasMoreElements()) { + key = (String) e.nextElement(); + store.setDefault(key, resourceBundle.getString(key)); + } + } catch (Exception e) { + // no default properties found + if (operatingSystem.equals(Platform.OS_WIN32)) { + store.setDefault(PHP_RUN_PREF, "c:\\apache\\php\\php.exe"); + store.setDefault(EXTERNAL_PARSER_PREF, "c:\\apache\\php\\php -l -f {0}"); + store.setDefault(MYSQL_RUN_PREF, "c:\\apache\\mysql\\bin\\mysqld-nt.exe"); + store.setDefault(APACHE_RUN_PREF, "c:\\apache\\apache.exe"); + store.setDefault(XAMPP_START_PREF, "c:\\xampp\\xampp_start.exe"); + store.setDefault(XAMPP_STOP_PREF, "c:\\xampp\\xampp_stop.exe"); + store.setDefault(ETC_HOSTS_PATH_PREF, "c:\\windows\\system32\\drivers\\etc\\hosts"); + } else { + store.setDefault(PHP_RUN_PREF, "/apache/php/php"); + store.setDefault(EXTERNAL_PARSER_PREF, "/apache/php/php -l -f {0}"); + store.setDefault(MYSQL_RUN_PREF, "/apache/mysql/bin/mysqld"); + store.setDefault(APACHE_RUN_PREF, "/apache/apache"); + store.setDefault(XAMPP_START_PREF, "xamp/xampp_start"); + store.setDefault(XAMPP_STOP_PREF, "xampp/xampp_stop"); + } + store.setDefault(MYSQL_PREF, "--standalone"); + store.setDefault(APACHE_START_PREF, "-c \"DocumentRoot \"{0}\"\""); + store.setDefault(APACHE_STOP_PREF, "-k shutdown"); + store.setDefault(APACHE_RESTART_PREF, "-k restart"); + store.setDefault(MYSQL_START_BACKGROUND, "true"); + store.setDefault(APACHE_START_BACKGROUND, "true"); + store.setDefault(APACHE_STOP_BACKGROUND, "true"); + store.setDefault(APACHE_RESTART_BACKGROUND, "true"); + } + + // store.setDefault(SHOW_OUTPUT_IN_CONSOLE, "true"); + + store.setDefault(IPreferenceConstants.PROMPT_FOR_MIGRATION, true); + + PreferenceConverter.setDefault(store, IPreferenceConstants.CONSOLE_ERROR_RGB, new RGB(255, 0, 0)); // red - exactly the same as + // debug Console + PreferenceConverter.setDefault(store, IPreferenceConstants.CONSOLE_WARNING_RGB, new RGB(255, 100, 0)); // orange + PreferenceConverter.setDefault(store, IPreferenceConstants.CONSOLE_INFO_RGB, new RGB(0, 0, 255)); // blue + PreferenceConverter.setDefault(store, IPreferenceConstants.CONSOLE_VERBOSE_RGB, new RGB(0, 200, 125)); // green + PreferenceConverter.setDefault(store, IPreferenceConstants.CONSOLE_DEBUG_RGB, new RGB(0, 0, 0)); // black } public static IWorkbenchWindow getActiveWorkbenchWindow() { - return PHPeclipsePlugin.getDefault().getWorkbench().getActiveWorkbenchWindow(); + return ExternalToolsPlugin.getDefault().getWorkbench().getActiveWorkbenchWindow(); } /** @@ -189,7 +273,7 @@ public final class ExternalToolsPlugin extends AbstractUIPlugin { * @see org.eclipse.core.runtime.Plugin#startup() */ public void startup() throws CoreException { -// super.startup(); + // super.startup(); getStandardDisplay().asyncExec(new Runnable() { public void run() { //initialize the variable context manager @@ -202,7 +286,7 @@ public final class ExternalToolsPlugin extends AbstractUIPlugin { * @see org.eclipse.core.runtime.Plugin#shutdown() */ public void shutdown() throws CoreException { -// super.shutdown(); + // super.shutdown(); ColorManager.getDefault().dispose(); } @@ -211,6 +295,6 @@ public final class ExternalToolsPlugin extends AbstractUIPlugin { */ public static Color getPreferenceColor(String pref) { return ColorManager.getDefault().getColor( - PreferenceConverter.getColor(PHPeclipsePlugin.getDefault().getPreferenceStore(), pref)); + PreferenceConverter.getColor(ExternalToolsPlugin.getDefault().getPreferenceStore(), pref)); } } \ No newline at end of file