Open PHP Help Online Manual in the browser / add other http querie for google and...
[phpeclipse.git] / net.sourceforge.phpeclipse.phphelp / src / net / sourceforge / phpdt / phphelp / PHPHelpPlugin.java
index f296936..3c24502 100644 (file)
  **********************************************************************/
 package net.sourceforge.phpdt.phphelp;
 
+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.resources.IWorkspace;
 import org.eclipse.core.resources.ResourcesPlugin;
 import org.eclipse.core.runtime.IStatus;
@@ -35,6 +41,20 @@ public class PHPHelpPlugin extends AbstractUIPlugin {
 
        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 = "__configurations";
+
+       public final static String CONFIG_MEMENTO = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
+                       + "<configurations>"
+                       + "<config name=\"PHP Online Manual\" type-id=\"HTTP Query\" url=\"http://www.php.net/manual/en/function.$php.selection.php\"/>"
+                       + "<config name=\"Google Search\" type-id=\"HTTP Query\" url=\"http://www.google.com/search?q=$text.selection\"/>"
+                       + "<config name=\"Koders.com Search\" type-id=\"HTTP Query\" url=\"http://koders.com/?s=$text.selection\"/>"
+                       + "<config name=\"Leo.org Translation\" type-id=\"HTTP Query\" url=\"http://dict.leo.org/?search=$text.selection\"/>"
+                       + "</configurations>";
+
+       public static final ArrayList CONFIGURATION_TYPES = new ArrayList();
+
        /**
         * The id of the PHP plugin (value
         * <code>"net.sourceforge.phpeclipse.phphelp"</code>).
@@ -44,6 +64,7 @@ public class PHPHelpPlugin extends AbstractUIPlugin {
        // The shared instance.
        private static PHPHelpPlugin plugin;
 
+       private static ConfigurationManager manager;
        /**
         * The constructor.
         */
@@ -71,8 +92,7 @@ public class PHPHelpPlugin extends AbstractUIPlugin {
        }
 
        private IWorkbenchPage internalGetActivePage() {
-               IWorkbenchWindow window = PlatformUI.getWorkbench()
-                               .getActiveWorkbenchWindow();
+               IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
                if (window != null)
                        return window.getActivePage();
                return null;
@@ -91,14 +111,12 @@ public class PHPHelpPlugin extends AbstractUIPlugin {
        }
 
        public static void log(int severity, String message) {
-               Status status = new Status(severity, PLUGIN_ID, IStatus.OK, message,
-                               null);
+               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$
+               log(new Status(IStatus.ERROR, PLUGIN_ID, IStatus.ERROR, "PHPeclipsePlugin.internalErrorOccurred", e)); //$NON-NLS-1$
        }
 
        public static boolean isDebug() {
@@ -106,16 +124,14 @@ public class PHPHelpPlugin extends AbstractUIPlugin {
        }
 
        protected void initializeDefaultPreferences(IPreferenceStore store) {
+               store.setDefault(PREF_STRING_CONFIGURATIONS, CONFIG_MEMENTO);
                // 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\"");
+                       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, "");
@@ -160,13 +176,10 @@ public class PHPHelpPlugin extends AbstractUIPlugin {
        // ColorManager.getDefault().dispose();
        // }
 
-       /*
-        * (non-Javadoc)
-        *
-        * @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext)
-        */
        public void start(BundleContext context) throws Exception {
                super.start(context);
+
+               manager = ConfigurationManager.getInstance();
                // IAdapterManager manager = Platform.getAdapterManager();
                // manager.registerAdapters(new PHPElementAdapterFactory(),
                // PHPElement.class);
@@ -181,13 +194,49 @@ public class PHPHelpPlugin extends AbstractUIPlugin {
                // });
        }
 
-       /*
-        * (non-Javadoc)
-        *
-        * @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
-        */
        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