X-Git-Url: http://git.phpeclipse.com diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/PHPeclipsePlugin.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/PHPeclipsePlugin.java index 12e570f..6dea6cf 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/PHPeclipsePlugin.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/PHPeclipsePlugin.java @@ -1,3 +1,14 @@ +/********************************************************************** +Copyright (c) 2000, 2002 IBM Corp. and others. +All rights reserved. This program and the accompanying materials +are 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: + IBM Corporation - Initial implementation + Klaus Hartlage - www.eclipseproject.de +**********************************************************************/ package net.sourceforge.phpeclipse; import java.util.MissingResourceException; @@ -6,32 +17,101 @@ import java.util.ResourceBundle; import org.eclipse.core.resources.IWorkspace; import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.core.runtime.IPluginDescriptor; +import org.eclipse.jface.preference.IPreferenceStore; import org.eclipse.ui.plugin.AbstractUIPlugin; /** * The main plugin class to be used in the desktop. */ public class PHPeclipsePlugin extends AbstractUIPlugin { + public static final String LOCALHOST_PREF = "_localhost"; + public static final String DOCUMENTROOT_PREF = "_documentroot"; + public static final String USE_EXTERNAL_BROWSER_PREF = "_use_external_browser"; + public static final String EXTERNAL_BROWSER_PREF = "_external_browser"; + public static final String MYSQL_PREF = "_my_sql"; + public static final String APACHE_START_PREF = "_apache_start"; + public static final String APACHE_STOP_PREF = "_apache_stop"; + public static final String APACHE_RESTART_PREF = "_apache_restart"; //The shared instance. private static PHPeclipsePlugin plugin; //Resource bundle. private ResourceBundle resourceBundle; + /** + * The Java virtual machine that we are running on. + */ + private static int jvm; + + /** MRJ 2.0 */ + private static final int MRJ_2_0 = 0; + + /** MRJ 2.1 or later */ + private static final int MRJ_2_1 = 1; + + /** Java on Mac OS X 10.0 (MRJ 3.0) */ + private static final int MRJ_3_0 = 3; + + /** MRJ 3.1 */ + private static final int MRJ_3_1 = 4; + /** Windows NT */ + private static final int WINDOWS_NT = 5; + + /** Windows 9x */ + private static final int WINDOWS_9x = 6; + + /** JVM constant for any other platform */ + private static final int OTHER = -1; /** * The constructor. */ public PHPeclipsePlugin(IPluginDescriptor descriptor) { super(descriptor); plugin = this; + setJVM(); try { - resourceBundle = - ResourceBundle.getBundle( - "net.sourceforge.PHPeclipsePluginResources"); + resourceBundle = ResourceBundle.getBundle("net.sourceforge.PHPeclipsePluginResources"); } catch (MissingResourceException x) { resourceBundle = null; } } + public static void setJVM() { + String osName = System.getProperty("os.name"); + + if (osName.startsWith("Mac OS")) { + String mrjVersion = System.getProperty("mrj.version"); + String majorMRJVersion = mrjVersion.substring(0, 3); + jvm = OTHER; + try { + + double version = Double.valueOf(majorMRJVersion).doubleValue(); + + if (version == 2) { + jvm = MRJ_2_0; + } else if (version >= 2.1 && version < 3) { + jvm = MRJ_2_1; + } else if (version == 3.0) { + jvm = MRJ_3_0; + } else if (version >= 3.1) { + // Assume that all 3.1 and later versions of MRJ work the same. + jvm = MRJ_3_1; + } + + } catch (NumberFormatException nfe) { + + } + + } else if (osName.startsWith("Windows")) { + if (osName.indexOf("9") != -1) { + jvm = WINDOWS_9x; + } else { + jvm = WINDOWS_NT; + } + } + } + public static int getJVM() { + return jvm; + } /** * Returns the shared instance. */ @@ -51,8 +131,7 @@ public class PHPeclipsePlugin extends AbstractUIPlugin { * or 'key' if not found. */ public static String getResourceString(String key) { - ResourceBundle bundle = - PHPeclipsePlugin.getDefault().getResourceBundle(); + ResourceBundle bundle = PHPeclipsePlugin.getDefault().getResourceBundle(); try { return bundle.getString(key); } catch (MissingResourceException e) { @@ -66,4 +145,31 @@ public class PHPeclipsePlugin extends AbstractUIPlugin { public ResourceBundle getResourceBundle() { return resourceBundle; } -} + + protected void initializeDefaultPreferences(IPreferenceStore store) { + // windows preferences: + store.setDefault(LOCALHOST_PREF, "http://localhost"); + + store.setDefault(USE_EXTERNAL_BROWSER_PREF, "false"); + if (jvm == WINDOWS_9x) { + store.setDefault(EXTERNAL_BROWSER_PREF, "command.com /c start iexplore {0}"); + } else if (jvm == WINDOWS_NT) { + store.setDefault(EXTERNAL_BROWSER_PREF, "rundll32 url.dll,FileProtocolHandler {0}"); + } else { + store.setDefault(EXTERNAL_BROWSER_PREF, "netscape {0}"); + } + if ((jvm == WINDOWS_9x) || (jvm == WINDOWS_NT)) { + store.setDefault(DOCUMENTROOT_PREF, "c:\\eclipse\\workspace"); + store.setDefault(MYSQL_PREF, "c:\\apache\\mysql\\bin\\mysqld.exe --standalone"); + store.setDefault(APACHE_START_PREF, "c:\\apache\\apache.exe \"DocumentRoot \"{0}\"\""); + store.setDefault(APACHE_STOP_PREF, "c:\\apache\\apache.exe -k shutdown"); + store.setDefault(APACHE_RESTART_PREF, "c:\\apache\\apache.exe -k restart"); + } else { + store.setDefault(DOCUMENTROOT_PREF, "/eclipse/workspace"); + store.setDefault(MYSQL_PREF, "/apache/mysql/bin/mysqld --standalone"); + store.setDefault(APACHE_START_PREF, "/apache/apache \"DocumentRoot \"{0}\"\""); + store.setDefault(APACHE_STOP_PREF, "/apache/apache.exe -k shutdown"); + store.setDefault(APACHE_RESTART_PREF, "/apache/apache -k restart"); + } + } +} \ No newline at end of file