1596135 - debugger: open browser when debugging starts
[phpeclipse.git] / net.sourceforge.phpeclipse.ui / src / net / sourceforge / phpeclipse / ui / editor / BrowserUtil.java
index d6ce54c..ef3b7a1 100644 (file)
@@ -1,5 +1,8 @@
 package net.sourceforge.phpeclipse.ui.editor;
 
+import java.net.MalformedURLException;
+import java.net.URL;
+
 import net.sourceforge.phpeclipse.ui.IPreferenceConstants;
 import net.sourceforge.phpeclipse.ui.WebUI;
 import net.sourceforge.phpeclipse.ui.overlaypages.ProjectPrefUtil;
@@ -12,6 +15,9 @@ import org.eclipse.ui.IViewReference;
 import org.eclipse.ui.IWorkbenchPage;
 import org.eclipse.ui.IWorkbenchPart;
 import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.browser.IWebBrowser;
+import org.eclipse.ui.browser.IWorkbenchBrowserSupport;
 import org.eclipse.ui.internal.Perspective;
 import org.eclipse.ui.internal.WorkbenchPage;
 import org.eclipse.ui.part.IShowInTarget;
@@ -187,4 +193,65 @@ public class BrowserUtil {
                }
        }
 
+       private static final String BROWSER_ID = "net.sourceforge.phpeclipse.browser";
+
+       /**
+        * convenient method to show browser as Editor
+        * 
+        */
+       public static void showBrowserAsEditor(IFile file, String queryString) {
+               showBrowser(IWorkbenchBrowserSupport.AS_EDITOR, file, queryString);
+       }
+
+       /**
+        * convenient method to show browser as External Web Browser
+        * 
+        */
+       public static void showBrowserAsExternal(IFile file, String queryString) {
+               showBrowser(IWorkbenchBrowserSupport.AS_EXTERNAL, file, queryString);
+       }
+
+       /**
+        * convenient method to show browser as View
+        * 
+        */
+       public static void showBrowserAsView(IFile file, String queryString) {
+               showBrowser(IWorkbenchBrowserSupport.AS_VIEW, file, queryString);
+       }
+
+       /**
+        * Show browser according to General settings
+        * 
+        * See IWorkbenchBrowserSupport and DefaultWorkbenchBrowserSupport.
+        */
+       public static void showBrowser(int style, IFile file, String queryString) {
+               ShowInContextBrowser context = getShowInContext(file, true, queryString);
+               String url = context.getLocalhostUrl();
+               String id = BROWSER_ID;
+               switch (style) {
+               case IWorkbenchBrowserSupport.AS_EXTERNAL:
+                       id += ".x";
+                       break;
+               case IWorkbenchBrowserSupport.AS_EDITOR:
+                       id += ".e";
+                       break;
+               case IWorkbenchBrowserSupport.AS_VIEW:
+                       id += ".v";
+                       break;
+               }
+               style |= IWorkbenchBrowserSupport.LOCATION_BAR
+                               | IWorkbenchBrowserSupport.NAVIGATION_BAR
+                               | IWorkbenchBrowserSupport.STATUS;
+               try {
+                       IWebBrowser browser = PlatformUI.getWorkbench().getBrowserSupport()
+                                       .createBrowser(style, id, null, url);
+                       browser.openURL(new URL(url));
+
+               } catch (PartInitException e) {
+                       WebUI.log(e);
+               } catch (MalformedURLException e) {
+                       WebUI.log(e);
+               }
+       }
+
 }