webbrowserutil.java

来自「jdic,显著提高swing性能的插件」· Java 代码 · 共 184 行

JAVA
184
字号
/* * Copyright (C) 2004 Sun Microsystems, Inc. All rights reserved. Use is * subject to license terms. * * This program is free software; you can redistribute it and/or modify * it under the terms of the Lesser GNU General Public License as * published by the Free Software Foundation; either version 2 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * USA. */package org.jdesktop.jdic.browser.internal;import java.io.File;/** * Utility class for <code>WebBrowser</code> class. */public class WebBrowserUtil {    // Native browser embedding binary: IeEmbed.exe or MozEmbed.exe on Windows,    // mozembed-<os>-gtk<version> on Linux/Unix. Which runs as a standalone    // native instance.    private static final String EMBED_BINARY_WINDOWS_IE        = "IeEmbed.exe";    private static final String EMBED_BINARY_WINDOWS_MOZILLA        = "MozEmbed.exe";    private static final String EMBED_BINARY_LINUX_GTK1        = "mozembed-linux-gtk1.2";    private static final String EMBED_BINARY_LINUX_GTK2        = "mozembed-linux-gtk2";    private static final String EMBED_BINARY_FREEBSD_GTK1        = "mozembed-freebsd-gtk1.2";    private static final String EMBED_BINARY_FREEBSD_GTK2        = "mozembed-freebsd-gtk2";    private static final String EMBED_BINARY_SOLARIS_GTK1        = "mozembed-solaris-gtk1.2";    private static final String EMBED_BINARY_SOLARIS_GTK2        = "mozembed-solaris-gtk2";    private static String embedBinary;    private static String browserPath = null;    /* native functions */    private static native String nativeGetBrowserPath();    private static native String nativeGetMozillaGreHome();    // Flag to enable or disable debug message output.    private static boolean isDebugOn = false;    /**     * Returns the name of the native browser embedding binary. If no default     * browser is set, null is returned.     */    public static String getEmbedBinaryName() {        if (embedBinary != null && embedBinary.length() > 0)            return embedBinary;        String nativePath = WebBrowserUtil.getBrowserPath();        if (null == nativePath) {            trace("No default browser is found. " +                    "Or environment variable MOZILLA_FIVE_HOME is not set to " +                    "a Mozilla binary path if you are on Linux/Unix platform.");            return null;        }        String osname = System.getProperty("os.name");        if (osname.indexOf("Windows") >= 0) {            String windowspath = nativePath;            int index = windowspath.indexOf("mozilla.exe");            if (index >= 0)                embedBinary = EMBED_BINARY_WINDOWS_MOZILLA;            else                embedBinary = EMBED_BINARY_WINDOWS_IE;        }        else {            String libwidgetpath = nativePath + File.separator +                                   "components" + File.separator +                                   "libwidget_gtk2.so";            File file = new File(libwidgetpath);            if (!file.exists()) {                if (osname.indexOf("Linux") >= 0) {                    embedBinary = EMBED_BINARY_LINUX_GTK1;                }                else if (osname.indexOf("SunOS") >= 0) {                    embedBinary = EMBED_BINARY_SOLARIS_GTK1;                }                else if (osname.indexOf("FreeBSD") >= 0) {                    embedBinary = EMBED_BINARY_FREEBSD_GTK1;                }            }            else {                if (osname.indexOf("Linux") >= 0) {                    embedBinary = EMBED_BINARY_LINUX_GTK2;                }                else if (osname.indexOf("SunOS") >= 0) {                    embedBinary = EMBED_BINARY_SOLARIS_GTK2;                }                else if (osname.indexOf("FreeBSD") >= 0) {                    embedBinary = EMBED_BINARY_FREEBSD_GTK2;                }            }        }        return embedBinary;    }    /**     *  Gets the native browser path.     *  @return the path of the default browser in the current system     */    public static String getBrowserPath() {        if (browserPath == null) {            browserPath = nativeGetBrowserPath();        }        return browserPath;    }    /**     * Checks if the default browser for the current platform is Mozilla.     * @return true on Solaris and Linux and true on Windows platform if Mozilla     * is set as the default browser.     */    public static boolean isDefaultBrowserMozilla() {        String osName = System.getProperty("os.name").toLowerCase();        if ((osName.indexOf("solaris") >= 0) ||            (osName.indexOf("linux") >= 0) ) {            return true;        } else {            String nativeBrowserPath = getBrowserPath();            // Only when Mozilla is set as the default browser, return true.            // Or else, fall back to Internet Explorer.            // FireFox 1.0 is statically linked into Gecko and therefore can not            // be embedded. If FireFox is embeddable for some future version,            // we would have to explicitly check for both Mozilla and FireFox.            if (nativeBrowserPath.indexOf("mozilla") >= 0) {            	return true;            } else {                return false;            }        }    }    /**     *  Gets the native Mozilla GRE home directory installed with a .exe package.     *  @return the GRE home directory of the currently installed Mozilla.     */    public static String getMozillaGreHome() {        return nativeGetMozillaGreHome();    }    public static void enableDebugMessages(boolean b) {        isDebugOn = b;    }    /**     * Helper method to output given debug message.     *     * @param msg the given debug message.     */    public static void trace(String msg) {        if (isDebugOn)            System.out.println("*** Jtrace: " + msg);    }    public static void error(String msg) {        System.err.println("*** Error: " + msg);    }    /*     * Sets native environment variables for running native browser binary.     */    public static native void nativeSetEnv();}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?