X-Git-Url: http://git.phpeclipse.com diff --git a/net.sourceforge.phpeclipse.webbrowser/src/org/eclipse/webbrowser/internal/WebBrowserUtil.java b/net.sourceforge.phpeclipse.webbrowser/src/org/eclipse/webbrowser/internal/WebBrowserUtil.java deleted file mode 100644 index 266de1c..0000000 --- a/net.sourceforge.phpeclipse.webbrowser/src/org/eclipse/webbrowser/internal/WebBrowserUtil.java +++ /dev/null @@ -1,376 +0,0 @@ -/** - * Copyright (c) 2003 IBM Corporation 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 - Initial API and implementation - */ -package org.eclipse.webbrowser.internal; - -import java.io.File; -import java.io.InputStreamReader; -import java.io.Reader; -import java.net.URL; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; - -import org.eclipse.ui.IMemento; -import org.eclipse.ui.XMLMemento; -import org.eclipse.webbrowser.IExternalWebBrowser; -import org.eclipse.webbrowser.IExternalWebBrowserWorkingCopy; -import org.eclipse.webbrowser.IURLMap; -import org.eclipse.webbrowser.IWebBrowser; -import org.eclipse.swt.widgets.Display; -import org.eclipse.swt.widgets.Shell; -import org.eclipse.core.runtime.*; -import org.eclipse.jface.dialogs.MessageDialog; -import org.eclipse.swt.SWT; -import org.eclipse.swt.browser.Browser; -/** - * Utility class for the Web browser tooling. - */ -public class WebBrowserUtil { - private static List urlMaps; - private static List lockedFavorites; - private static List unlockedFavorites; - private static final String BROWSER_PACKAGE_NAME = "org.eclipse.swt.browser.Browser"; - public static Boolean isInternalBrowserOperational; - - private static List defaultBrowsers2; - - static class DefaultBrowser { - String name; - String params; - String executable; - String[] locations; - - public DefaultBrowser(String name, String executable, String params, String[] locations) { - if (name == null) - name = ""; - else if (name.startsWith("%")) - name = WebBrowserUIPlugin.getResource(name); - - this.name = name; - this.executable = executable; - this.params = params; - this.locations = locations; - } - - public String toString() { - String s = "Browser: " + name + ", " + executable + ", " + params + ", "; - if (locations != null) { - int size = locations.length; - for (int i = 0; i < size; i++) { - s += locations[i] + ";"; - } - } - return s; - } - } - - /** - * WebBrowserUtil constructor comment. - */ - public WebBrowserUtil() { - super(); - } - - /** - * Returns true if we're running on Windows. - * - * @return boolean - */ - public static boolean isWindows() { - String os = System.getProperty("os.name"); - if (os != null && os.toLowerCase().indexOf("win") >= 0) - return true; - else - return false; - } - - /** - * Returns true if we're running on linux. - * - * @return boolean - */ - public static boolean isLinux() { - String os = System.getProperty("os.name"); - if (os != null && os.toLowerCase().indexOf("lin") >= 0) - return true; - else - return false; - } - - /** - * Open a dialog window. - * - * @param title java.lang.String - * @param message java.lang.String - */ - public static void openError(String message) { - Display d = Display.getCurrent(); - if (d == null) - d = Display.getDefault(); - - Shell shell = d.getActiveShell(); - MessageDialog.openError(shell, WebBrowserUIPlugin.getResource("%errorDialogTitle"), message); - } - - /** - * Open a dialog window. - * - * @param title java.lang.String - * @param message java.lang.String - */ - public static void openMessage(String message) { - Display d = Display.getCurrent(); - if (d == null) - d = Display.getDefault(); - - Shell shell = d.getActiveShell(); - MessageDialog.openInformation(shell, WebBrowserUIPlugin.getResource("%searchingTaskName"), message); - } - - /** - * Returns a List of all URL maps. - * - * @return java.util.List - */ - public static List getURLMaps() { - if (urlMaps == null) - loadURLMaps(); - return urlMaps; - } - - /** - * Load the url map extension point. - */ - private static void loadURLMaps() { - Trace.trace(Trace.FINEST, "->- Loading .urlMap extension point ->-"); - IExtensionRegistry registry = Platform.getExtensionRegistry(); - IConfigurationElement[] cf = registry.getConfigurationElementsFor(WebBrowserUIPlugin.PLUGIN_ID, "urlMap"); - - int size = cf.length; - urlMaps = new ArrayList(size); - for (int i = 0; i < size; i++) { - try { - IURLMap mapper = (IURLMap) cf[i].createExecutableExtension("class"); - urlMaps.add(mapper); - Trace.trace(Trace.FINEST, " Loaded url map: " + cf[i].getAttribute("id")); - } catch (Throwable t) { - Trace.trace(Trace.SEVERE, " Could not load url map: " + cf[i].getAttribute("id"), t); - } - } - - Trace.trace(Trace.FINEST, "-<- Done loading .urlMap extension point -<-"); - } - - /** - * Returns a List of all unlocked favorites. - * - * @return java.util.List - */ - public static List getUnlockedFavorites() { - if (unlockedFavorites == null) - loadFavorites(); - return unlockedFavorites; - } - - /** - * Returns a List of all locked favorites. - * - * @return java.util.List - */ - public static List getLockedFavorites() { - if (lockedFavorites == null) - loadFavorites(); - return lockedFavorites; - } - - /** - * Load the favorites extension point. - */ - private static void loadFavorites() { - Trace.trace(Trace.FINEST, "->- Loading .favorites extension point ->-"); - IExtensionRegistry registry = Platform.getExtensionRegistry(); - IConfigurationElement[] cf = registry.getConfigurationElementsFor(WebBrowserUIPlugin.PLUGIN_ID, "favorites"); - - int size = cf.length; - unlockedFavorites = new ArrayList(size); - lockedFavorites = new ArrayList(size); - for (int i = 0; i < size; i++) { - try { - Favorite f = new Favorite(cf[i].getAttribute("name"), cf[i].getAttribute("url")); - String locked = cf[i].getAttribute("locked"); - if (!"true".equals(locked)) - unlockedFavorites.add(f); - else - lockedFavorites.add(f); - Trace.trace(Trace.FINEST, " Loaded favorite: " + cf[i].getAttribute("id")); - } catch (Throwable t) { - Trace.trace(Trace.SEVERE, " Could not load favorite: " + cf[i].getAttribute("id"), t); - } - } - - Trace.trace(Trace.FINEST, "-<- Done loading .favorites extension point -<-"); - } - - /** - * Returns whether it should be possible to use the internal browser or not, based on whether or not - * the org.eclipse.swt.Browser class can be found/loaded. If it can it means is is supported on the platform in which - * this plugin is running. If not, disable the ability to use the internal browser. - * - * @return boolean - */ - public static boolean canUseInternalWebBrowser() { - try { - Class clazz = Class.forName(BROWSER_PACKAGE_NAME); - if (clazz != null) - return true; - } catch (ClassNotFoundException e) { } - return false; - } - - /** - * This method checks to see if it can new up a new Browser. If the SWT widget can not be bound - * to the particular operating system it throws an SWTException. We catch that and set a boolean - * flag which represents whether or not we were successfully able to create a Browser instance or not. - * If not, don't bother adding the Internal Web Browser that uses this widget. Designed to be attemped - * only once and the flag set used throughout. - * - * @return boolean - */ - protected static boolean isInternalBrowserOperational() { - // if we have already figured this out, don't do it again. - if (isInternalBrowserOperational != null) - return isInternalBrowserOperational.booleanValue(); - - try { - new Browser(new Shell(Display.getCurrent()), SWT.NONE); - isInternalBrowserOperational = new Boolean(true); - } catch (Throwable t) { - WebBrowserUIPlugin.getInstance().getLog().log(new Status(IStatus.WARNING, - WebBrowserUIPlugin.PLUGIN_ID, 0, "Internal browser is not operational", t)); - isInternalBrowserOperational = new Boolean(false); - } - return isInternalBrowserOperational.booleanValue(); - } - - public static List getExternalBrowserPaths() { - List paths = new ArrayList(); - Iterator iterator = BrowserManager.getInstance().getWebBrowsers().iterator(); - while (iterator.hasNext()) { - IWebBrowser wb = (IWebBrowser) iterator.next(); - if (wb instanceof IExternalWebBrowser) { - IExternalWebBrowser ext = (IExternalWebBrowser) wb; - paths.add(ext.getLocation().toLowerCase()); - } - } - return paths; - } - - // Add any supported EXTERNAL web browsers found after an arbitrary check in specific paths - public static void addFoundBrowsers(List list) { - List paths = getExternalBrowserPaths(); - - Iterator iterator = getDefaultBrowsers().iterator(); - while (iterator.hasNext()) { - DefaultBrowser browser2 = (DefaultBrowser) iterator.next(); - if (browser2.locations != null) { - int size = browser2.locations.length; - for (int j = 0; j < size; j++) { - String location = browser2.locations[j]; - if (!paths.contains(location.toLowerCase())) { - try { - File f = new File(location); - if (f.exists()) { - ExternalWebBrowser browser = new ExternalWebBrowser(); - browser.name = browser2.name; - browser.location = location; - browser.parameters = browser2.params; - list.add(browser); - //Add browser here so that it get added to the table - BrowserManager.getInstance().addBrowser(browser); - j += size; - } - } catch (Exception e) { } - } - } - } - } - } - - /** - * Create an external Web browser if the file matches the default (known) browsers. - * @param file - * @return - */ - public static IExternalWebBrowserWorkingCopy createExternalBrowser(File file) { - if (file == null || !file.isFile()) - return null; - - String executable = file.getName(); - Iterator iterator = getDefaultBrowsers().iterator(); - while (iterator.hasNext()) { - DefaultBrowser db = (DefaultBrowser) iterator.next(); - if (executable.equals(db.executable)) { - IExternalWebBrowserWorkingCopy browser = BrowserManager.getInstance().createExternalWebBrowser(); - browser.setName(db.name); - browser.setLocation(file.getAbsolutePath()); - browser.setParameters(db.params); - return browser; - } - } - - return null; - } - - protected static List getDefaultBrowsers() { - if (defaultBrowsers2 != null) - return defaultBrowsers2; - - Reader reader = null; - defaultBrowsers2 = new ArrayList(); - try { - URL url = WebBrowserUIPlugin.getInstance().getBundle().getEntry("defaultBrowsers.xml"); - URL url2 = Platform.resolve(url); - reader = new InputStreamReader(url2.openStream()); - IMemento memento = XMLMemento.createReadRoot(reader); - IMemento[] children = memento.getChildren("browser"); - if (children != null) { - int size = children.length; - for (int i = 0; i < size; i++) { - IMemento child = children[i]; - String name = child.getString("name"); - String executable = child.getString("executable"); - String params = child.getString("params"); - List locations = new ArrayList(); - - IMemento[] locat = child.getChildren("location"); - if (locat != null) { - int size2 = locat.length; - for (int j = 0; j < size2; j++) - locations.add(locat[j].getTextData()); - } - - String[] loc = new String[locations.size()]; - locations.toArray(loc); - DefaultBrowser db = new DefaultBrowser(name, executable, params, loc); - Trace.trace(Trace.CONFIG, "Default browser: " + db); - defaultBrowsers2.add(db); - } - } - } catch (Exception e) { - Trace.trace(Trace.SEVERE, "Error loading default browsers", e); - } finally { - try { - reader.close(); - } catch (Exception e) { } - } - return defaultBrowsers2; - } -} \ No newline at end of file