Updated .cvsignore to be more minimalist, and only excludes the bin dir
[phpeclipse.git] / net.sourceforge.phpeclipse.phphelp / src / net / sourceforge / phpdt / phphelp / PHPHelpPlugin.java
index f12c1f9..e388fb1 100644 (file)
@@ -1,32 +1,25 @@
 /**********************************************************************
-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
-**********************************************************************/
+ 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
+ www.phpeclipse.de
+ **********************************************************************/
 package net.sourceforge.phpdt.phphelp;
 
-import net.sourceforge.phpdt.externaltools.internal.model.ColorManager;
-import net.sourceforge.phpdt.externaltools.internal.model.VariableContextManager;
-import net.sourceforge.phpeclipse.resourcesview.PHPElement;
-import net.sourceforge.phpeclipse.resourcesview.PHPElementAdapterFactory;
-import net.sourceforge.phpeclipse.resourcesview.ResourceAdapterFactory;
+import java.util.ArrayList;
+import java.util.List;
+
+import net.sourceforge.phpdt.httpquery.config.ConfigurationManager;
+import net.sourceforge.phpdt.httpquery.config.IConfigurationWorkingCopy;
 
-import org.eclipse.core.boot.BootLoader;
-import org.eclipse.core.resources.IResource;
 import org.eclipse.core.resources.IWorkspace;
 import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IAdapterManager;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IPluginDescriptor;
 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;
@@ -34,136 +27,225 @@ import org.eclipse.swt.widgets.Display;
 import org.eclipse.swt.widgets.Shell;
 import org.eclipse.ui.IWorkbenchPage;
 import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PlatformUI;
 import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
 
 /**
  * The main plugin class to be used in the desktop.
  */
 public class PHPHelpPlugin extends AbstractUIPlugin {
-  public static final String PHP_CHM_ENABLED = "_php_chm_enabled";
-  public static final String PHP_CHM_FILE = "_php_chm_file";
-  public static final String PHP_CHM_COMMAND = "_php_chm_command";
-
-  /**
-   * The id of the PHP plugin (value <code>"net.sourceforge.phpeclipse.phphelp"</code>).
-   */
-  public static final String PLUGIN_ID = "net.sourceforge.phpeclipse.phphelp"; //$NON-NLS-1$
-
-  //The shared instance.
-  private static PHPHelpPlugin plugin;
-  /**
-   * The constructor.
-   */
-  public PHPHelpPlugin(IPluginDescriptor descriptor) {
-    super(descriptor);
-    plugin = this;
-  }
-
-  /**
-   * Returns the shared instance.
-   */
-  public static PHPHelpPlugin getDefault() {
-    return plugin;
-  }
-  /**
-   * Returns the workspace instance.
-   */
-  public static IWorkspace getWorkspace() {
-    return ResourcesPlugin.getWorkspace();
-  }
-
-  public static IWorkbenchPage getActivePage() {
-    return getDefault().internalGetActivePage();
-  }
-
-  private IWorkbenchPage internalGetActivePage() {
-    IWorkbenchWindow window = getWorkbench().getActiveWorkbenchWindow();
-    if (window != null)
-      return window.getActivePage();
-    return null;
-  }
-
-  public static IWorkbenchWindow getActiveWorkbenchWindow() {
-    return getDefault().getWorkbench().getActiveWorkbenchWindow();
-  }
-
-  public static Shell getActiveWorkbenchShell() {
-    return getActiveWorkbenchWindow().getShell();
-  }
-
-  public static String getPluginId() {
-    return getDefault().getDescriptor().getUniqueIdentifier();
-  }
-
-  public static void log(IStatus status) {
-    getDefault().getLog().log(status);
-  }
-
-  public static void log(int severity, String message) {
-    Status status = new Status(severity, PLUGIN_ID, IStatus.OK, message, null);
-    log(status);
-  }
-  public static void log(Throwable e) {
-    log(new Status(IStatus.ERROR, PLUGIN_ID, IStatus.ERROR, "PHPeclipsePlugin.internalErrorOccurred", e)); //$NON-NLS-1$
-  }
-
-  public static boolean isDebug() {
-    return getDefault().isDebugging();
-  }
-
-  static IPath getInstallLocation() {
-    return new Path(getDefault().getDescriptor().getInstallURL().getFile());
-  }
-
-  protected void initializeDefaultPreferences(IPreferenceStore store) {
-    // windows preferences:
-    String windowsSystem = BootLoader.getWS();
-
-    if (windowsSystem.equals(BootLoader.WS_WIN32)) {
-      store.setDefault(PHP_CHM_ENABLED, "false");
-      store.setDefault(PHP_CHM_FILE, "");
-      store.setDefault(PHP_CHM_COMMAND, "hh.exe \"mk:@MSITStore:{0}::/en/function.{1}.html\"");
-    } else {
-      store.setDefault(PHP_CHM_ENABLED, "false");
-      store.setDefault(PHP_CHM_FILE, "");
-      store.setDefault(PHP_CHM_COMMAND, "");
-    }
-
-  }
-
-  /**
-   * 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;
-  }
-
-  public void startup() throws CoreException {
-    super.startup();
-    IAdapterManager manager = Platform.getAdapterManager();
-    manager.registerAdapters(new PHPElementAdapterFactory(), PHPElement.class);
-    manager.registerAdapters(new ResourceAdapterFactory(), IResource.class);
-    //  externalTools.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 {
-    //  externalTools.shutDown();
-    ColorManager.getDefault().dispose();
-  }
-
+       public static final String PHP_CHM_ENABLED = "_php_chm_enabled";
+
+       public static final String PHP_CHM_FILE = "_php_chm_file";
+
+       public static final String PHP_CHM_COMMAND = "_php_chm_command";
+
+       public static final String HTTP_QUERY = "HTTP Query";
+
+       public final static String PREF_STRING_CONFIGURATIONS = "__configurations1";
+
+       public final static String CONFIG_MEMENTO = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
+                       + "<configurations>"
+                       + "<config name=\"PHP Manual\" type-id=\"HTTP Query\" url=\"http://www.php.net/manual/en/function.$php.selection.php\"/>"
+                       + "<config name=\"Google.com\" type-id=\"HTTP Query\" url=\"http://www.google.com/search?q=$text.selection\"/>"
+                       + "<config name=\"Koders.com\" type-id=\"HTTP Query\" url=\"http://koders.com/?s=$text.selection\"/>"
+                       + "<config name=\"Leo.org Deutsch/English\" type-id=\"HTTP Query\" url=\"http://dict.leo.org/?search=$text.selection\"/>"
+                       + "<config name=\"Localhost\" type-id=\"HTTP Query\" url=\"http://localhost\"/>"
+                       + "</configurations>";
+
+       public static final ArrayList CONFIGURATION_TYPES = new ArrayList();
+
+       /**
+        * The id of the PHP plugin (value
+        * <code>"net.sourceforge.phpeclipse.phphelp"</code>).
+        */
+       public static final String PLUGIN_ID = "net.sourceforge.phpeclipse.phphelp"; //$NON-NLS-1$
+
+       // The shared instance.
+       private static PHPHelpPlugin plugin;
+
+       private static ConfigurationManager manager;
+
+       /**
+        * The constructor.
+        */
+       public PHPHelpPlugin() {
+               super();
+               plugin = this;
+       }
+
+       /**
+        * Returns the shared instance.
+        */
+       public static PHPHelpPlugin getDefault() {
+               return plugin;
+       }
+
+       /**
+        * Returns the workspace instance.
+        */
+       public static IWorkspace getWorkspace() {
+               return ResourcesPlugin.getWorkspace();
+       }
+
+       public static IWorkbenchPage getActivePage() {
+               return getDefault().internalGetActivePage();
+       }
+
+       private IWorkbenchPage internalGetActivePage() {
+               IWorkbenchWindow window = PlatformUI.getWorkbench()
+                               .getActiveWorkbenchWindow();
+               if (window != null)
+                       return window.getActivePage();
+               return null;
+       }
+
+       public static IWorkbenchWindow getActiveWorkbenchWindow() {
+               return PlatformUI.getWorkbench().getActiveWorkbenchWindow();
+       }
+
+       public static Shell getActiveWorkbenchShell() {
+               return getActiveWorkbenchWindow().getShell();
+       }
+
+       public static void log(IStatus status) {
+               getDefault().getLog().log(status);
+       }
+
+       public static void log(int severity, String message) {
+               Status status = new Status(severity, PLUGIN_ID, IStatus.OK, message,
+                               null);
+               log(status);
+       }
+
+       public static void log(Throwable e) {
+               log(new Status(IStatus.ERROR, PLUGIN_ID, IStatus.ERROR,
+                               "PHPeclipsePlugin.internalErrorOccurred", e)); //$NON-NLS-1$
+       }
+
+       public static boolean isDebug() {
+               return getDefault().isDebugging();
+       }
+
+       protected void initializeDefaultPreferences(IPreferenceStore store) {
+               store.setDefault(PREF_STRING_CONFIGURATIONS, CONFIG_MEMENTO);
+               addType(HTTP_QUERY);
+               // windows preferences:
+               String windowsSystem = Platform.getWS();
+
+               if (windowsSystem.equals(Platform.WS_WIN32)) {
+                       store.setDefault(PHP_CHM_ENABLED, "false");
+                       store
+                                       .setDefault(PHP_CHM_FILE,
+                                                       "c:\\wampp2\\php\\php_manual_en.chm");
+                       store.setDefault(PHP_CHM_COMMAND,
+                                       "hh.exe \"mk:@MSITStore:{0}::/en/function.{1}.html\"");
+               } else {
+                       store.setDefault(PHP_CHM_ENABLED, "false");
+                       store.setDefault(PHP_CHM_FILE, "");
+                       store.setDefault(PHP_CHM_COMMAND, "");
+               }
+
+       }
+
+       /**
+        * 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;
+       }
+
+       // public void startup() throws CoreException {
+       // super.startup();
+       // IAdapterManager manager = Platform.getAdapterManager();
+       // manager.registerAdapters(new PHPElementAdapterFactory(),
+       // PHPElement.class);
+       // manager.registerAdapters(new ResourceAdapterFactory(), IResource.class);
+       // // externalTools.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 {
+       // // externalTools.shutDown();
+       // ColorManager.getDefault().dispose();
+       // }
+
+       public void start(BundleContext context) throws Exception {
+               super.start(context);
+
+               manager = ConfigurationManager.getInstance();
+               // IAdapterManager manager = Platform.getAdapterManager();
+               // manager.registerAdapters(new PHPElementAdapterFactory(),
+               // PHPElement.class);
+               // manager.registerAdapters(new ResourceAdapterFactory(),
+               // IResource.class);
+               // // externalTools.startUp();
+               // getStandardDisplay().asyncExec(new Runnable() {
+               // public void run() {
+               // //initialize the variable context manager
+               // VariableContextManager.getDefault();
+               // }
+               // });
+       }
+
+       public void stop(BundleContext context) throws Exception {
+               // ColorManager.getDefault().dispose();
+               super.stop(context);
+       }
+
+       /**
+        * Returns the translated String found with the given key.
+        * 
+        * @return java.lang.String
+        * @param key
+        *            java.lang.String
+        */
+       public static String getResource(String key) {
+               try {
+                       return Platform.getResourceString(getDefault().getBundle(), key);
+               } catch (Exception e) {
+                       return key;
+               }
+       }
+
+       /**
+        * Return a list of all the existing configurations.
+        * 
+        * @return java.util.List
+        */
+       public static List getConfigurations() {
+               return manager.getConfigurations();
+       }
+
+       /**
+        * Create a new monitor.
+        * 
+        * @return working copy
+        */
+       public static IConfigurationWorkingCopy createConfiguration() {
+               return manager.createConfiguration();
+       }
+
+       public static ArrayList getTypes() {
+               return CONFIGURATION_TYPES;
+       }
+
+       public static void addType(String type) {
+               CONFIGURATION_TYPES.add(type);
+       }
 }
\ No newline at end of file