JBoss Tools SVN: r2980 - in branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe: src/org/jboss/tools/vpe/editor/util and 1 other directories.
by jbosstools-commits@lists.jboss.org
Author: svasilyev
Date: 2007-08-08 12:34:59 -0400 (Wed, 08 Aug 2007)
New Revision: 2980
Added:
branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/util/HTML.java
branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe/ve/
branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe/ve/EditorOverride.css
branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe/ve/init.html
Log:
http://jira.jboss.org/jira/browse/EXIN-235 new resources were added
Added: branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/util/HTML.java
===================================================================
--- branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/util/HTML.java (rev 0)
+++ branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/util/HTML.java 2007-08-08 16:34:59 UTC (rev 2980)
@@ -0,0 +1,54 @@
+/*******************************************************************************
+ * Copyright (c) 2007 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributor:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+
+package org.jboss.tools.vpe.editor.util;
+
+/**
+ * @author Sergey Vasilyev (svasilyev(a)exadel.com)
+ *
+ */
+public final class HTML {
+
+ private HTML() {}
+
+ public static final String TAG_HTML = "HTML";
+ public static final String TAG_HEAD = "HEAD";
+ public static final String TAG_BODY = "BODY";
+ public static final String TAG_IMG = "IMG";
+ public static final String TAG_LINK = "LINK";
+ public static final String TAG_SELECT = "SELECT";
+ public static final String TAG_OPTION = "OPTION";
+ public static final String TAG_STYLE = "STYLE";
+ public static final String TAG_TABLE = "TABLE";
+ public static final String TAG_TBODY = "TBODY";
+ public static final String TAG_THEAD = "THEAD";
+ public static final String TAG_TFOOT = "TFOOT";
+ public static final String TAG_TH = "TH";
+ public static final String TAG_TR = "TR";
+ public static final String TAG_TD = "TD";
+ public static final String TAG_COL = "COL";
+ public static final String TAG_COLS = "COLS";
+ public static final String TAG_COLGROUP = "COLGROUP";
+ public static final String TAG_BR = "BR";
+ public static final String TAG_LI = "LI";
+ public static final String TAG_DIV = "DIV";
+ public static final String TAG_SPAN = "SPAN";
+ public static final String TAG_P = "P";
+ public static final String TAG_TEXTAREA = "TEXTAREA";
+ public static final String TAG_INPUT = "INPUT";
+ public static final String TAG_BUTTON = "BUTTON";
+ public static final String TAG_OL = "OL";
+ public static final String TAG_UL = "UL";
+
+
+
+ public static final String ATTR_ID = "ID";
+}
Added: branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe/ve/EditorOverride.css
===================================================================
--- branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe/ve/EditorOverride.css (rev 0)
+++ branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe/ve/EditorOverride.css 2007-08-08 16:34:59 UTC (rev 2980)
@@ -0,0 +1,330 @@
+/*
+ * The contents of this file are subject to the Netscape Public
+ * License Version 1.1 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.mozilla.org/NPL/
+ *
+ * Software distributed under the License is distributed on an "AS
+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+ * implied. See the License for the specific language governing
+ * rights and limitations under the License.
+ *
+ * The Original Code is Mozilla Communicator client code, released
+ * March 31, 1998.
+ *
+ * The Initial Developer of the Original Code is Netscape
+ * Communications Corporation. Portions created by Netscape are
+ * Copyright (C) 1998-1999 Netscape Communications Corporation. All
+ * Rights Reserved.
+ *
+ * Contributor(s):
+ */
+
+/* Styles to alter look of things in the Editor content window
+ * that should NOT be removed when we display in completely WYSIWYG
+ * "Browser Preview" mode.
+ * Anything that should change, like appearance of table borders
+ * and Named Anchors, should be placed in EditorContent.css instead of here.
+*/
+
+/* Primary cursor is text I-beam */
+
+a:link {
+ cursor: text;
+}
+
+/* Use default arrow over objects with size that
+ are selected when clicked on.
+ Override the browser's pointer cursor over links
+*/
+
+img, img[usemap], area,
+object, object[usemap],
+applet, hr, button, input, isindex, textarea, select,
+a:link img, a:visited img, a:active img,
+a[name]:empty {
+ cursor: default;
+}
+
+a:visited, a:active {
+ cursor: text;
+ color : inherit;
+}
+
+a:link img, a:visited img {
+ -moz-user-input: none;
+}
+
+a:link {
+ text-decoration: underline -moz-anchor-decoration;
+ color: -moz-hyperlinktext;
+}
+
+input, button, textarea {
+ -moz-user-select: all !important;
+ -moz-user-input: auto !important;
+ -moz-user-focus: none !important;
+}
+
+select, input[disabled], input[type="checkbox"], input[type="radio"], input[type="file"] {
+ -moz-user-select: all !important;
+ -moz-user-input: auto !important;
+ -moz-user-focus: none !important;
+}
+
+isindex[prompt]
+{
+ -moz-user-select: none !important;
+ -moz-user-input: none !important;
+ -moz-user-focus: none !important;
+}
+
+input[type="hidden"] {
+ border: 1px solid black !important;
+ visibility: visible !important;
+}
+
+/*
+label {
+ -moz-user-select: all !important;
+}
+*/
+
+::-moz-display-comboboxcontrol-frame {
+ -moz-user-select: text !important;
+}
+
+option {
+ -moz-user-select: text !important;
+}
+
+#mozToc.readonly {
+ -moz-user-select: all !important;
+ -moz-user-input: none !important;
+}
+
+span[\_moz_anonclass="mozResizer"] {
+ width: 5px;
+ height: 5px;
+ position: absolute;
+ border: 1px black solid;
+ background-color: white;
+ -moz-user-select: none;
+ z-index: 2147483646;
+}
+
+span[\_moz_anonclass="mozResizer"][\_moz_activated],
+span[\_moz_anonclass="mozResizer"]:hover {
+ background-color: black;
+}
+
+span[\_moz_anonclass="mozResizer"].hidden,
+span[\_moz_anonclass="mozResizingShadow"].hidden,
+img[\_moz_anonclass="mozResizingShadow"].hidden,
+span[\_moz_anonclass="mozGrabber"].hidden,
+span[\_moz_anonclass="mozResizingInfo"].hidden,
+a[\_moz_anonclass="mozTableRemoveRow"].hidden,
+a[\_moz_anonclass="mozTableRemoveColumn"].hidden {
+ display: none !important;
+}
+
+span[\_moz_anonclass="mozResizer"][anonlocation="nw"] {
+ cursor: nw-resize;
+}
+span[\_moz_anonclass="mozResizer"][anonlocation="n"] {
+ cursor: n-resize;
+}
+span[\_moz_anonclass="mozResizer"][anonlocation="ne"] {
+ cursor: ne-resize;
+}
+span[\_moz_anonclass="mozResizer"][anonlocation="w"] {
+ cursor: w-resize;
+}
+span[\_moz_anonclass="mozResizer"][anonlocation="e"] {
+ cursor: e-resize;
+}
+span[\_moz_anonclass="mozResizer"][anonlocation="sw"] {
+ cursor: sw-resize;
+}
+span[\_moz_anonclass="mozResizer"][anonlocation="s"] {
+ cursor: s-resize;
+}
+span[\_moz_anonclass="mozResizer"][anonlocation="se"] {
+ cursor: se-resize;
+}
+
+span[\_moz_anonclass="mozResizingShadow"],
+img[\_moz_anonclass="mozResizingShadow"] {
+ -moz-outline: thin dashed black;
+ -moz-user-select: none;
+ -moz-opacity: 0.5;
+ position: absolute;
+ z-index: 2147483647;
+}
+
+span[\_moz_anonclass="mozResizingInfo"] {
+ font-family: sans-serif;
+ font-size: x-small;
+ color: black;
+ background-color: #d0d0d0;
+ border: ridge 2px #d0d0d0;
+ padding: 2px;
+ position: absolute;
+ z-index: 2147483647;
+}
+
+*[\_moz_abspos] {
+ -moz-outline: silver ridge 2px;
+ z-index: 2147483645 !important;
+}
+*[\_moz_abspos="white"] {
+ background-color: white !important;
+}
+*[\_moz_abspos="black"] {
+ background-color: black !important;
+}
+
+span[\_moz_anonclass="mozGrabber"] {
+ -moz-outline: ridge 2px silver;
+ padding: 2px;
+ position: absolute;
+ width: 12px;
+ height: 12px;
+ background-image: url("resource:/res/grabber.gif");
+ background-repeat: no-repeat;
+ background-position: center center;
+ -moz-user-select: none;
+ cursor: move;
+}
+
+a[\_moz_anonclass="mozTableAddColumnBefore"] {
+ position: absolute;
+ z-index: 2147483647;
+ text-decoration: none !important;
+ border: none 0px !important;
+ width: 4px;
+ height: 8px;
+ background-image: url("resource:/res/table-add-column-before.gif");
+ background-repeat: no-repeat;
+ background-position: center center;
+ -moz-user-select: none !important;
+ -moz-user-focus: none !important;
+}
+
+a[\_moz_anonclass="mozTableAddColumnBefore"]:hover {
+ background-image: url("resource:/res/table-add-column-before-hover.gif");
+}
+
+a[\_moz_anonclass="mozTableAddColumnBefore"]:active {
+ background-image: url("resource:/res/table-add-column-before-active.gif");
+}
+
+a[\_moz_anonclass="mozTableAddColumnAfter"] {
+ position: absolute;
+ z-index: 2147483647;
+ text-decoration: none !important;
+ border: none 0px !important;
+ width: 4px;
+ height: 8px;
+ background-image: url("resource:/res/table-add-column-after.gif");
+ background-repeat: no-repeat;
+ background-position: center center;
+ -moz-user-select: none !important;
+ -moz-user-focus: none !important;
+}
+
+a[\_moz_anonclass="mozTableAddColumnAfter"]:hover {
+ background-image: url("resource:/res/table-add-column-after-hover.gif");
+}
+
+a[\_moz_anonclass="mozTableAddColumnAfter"]:active {
+ background-image: url("resource:/res/table-add-column-after-active.gif");
+}
+
+a[\_moz_anonclass="mozTableRemoveColumn"] {
+ position: absolute;
+ z-index: 2147483647;
+ text-decoration: none !important;
+ border: none 0px !important;
+ width: 8px;
+ height: 8px;
+ background-image: url("resource:/res/table-remove-column.gif");
+ background-repeat: no-repeat;
+ background-position: center center;
+ -moz-user-select: none !important;
+ -moz-user-focus: none !important;
+}
+
+a[\_moz_anonclass="mozTableRemoveColumn"]:hover {
+ background-image: url("resource:/res/table-remove-column-hover.gif");
+}
+
+a[\_moz_anonclass="mozTableRemoveColumn"]:active {
+ background-image: url("resource:/res/table-remove-column-active.gif");
+}
+
+a[\_moz_anonclass="mozTableAddRowBefore"] {
+ position: absolute;
+ z-index: 2147483647;
+ text-decoration: none !important;
+ border: none 0px !important;
+ width: 8px;
+ height: 4px;
+ background-image: url("resource:/res/table-add-row-before.gif");
+ background-repeat: no-repeat;
+ background-position: center center;
+ -moz-user-select: none !important;
+ -moz-user-focus: none !important;
+}
+
+a[\_moz_anonclass="mozTableAddRowBefore"]:hover {
+ background-image: url("resource:/res/table-add-row-before-hover.gif");
+}
+
+a[\_moz_anonclass="mozTableAddRowBefore"]:active {
+ background-image: url("resource:/res/table-add-row-before-active.gif");
+}
+
+a[\_moz_anonclass="mozTableAddRowAfter"] {
+ position: absolute;
+ z-index: 2147483647;
+ text-decoration: none !important;
+ border: none 0px !important;
+ width: 8px;
+ height: 4px;
+ background-image: url("resource:/res/table-add-row-after.gif");
+ background-repeat: no-repeat;
+ background-position: center center;
+ -moz-user-select: none !important;
+ -moz-user-focus: none !important;
+}
+
+a[\_moz_anonclass="mozTableAddRowAfter"]:hover {
+ background-image: url("resource:/res/table-add-row-after-hover.gif");
+}
+
+a[\_moz_anonclass="mozTableAddRowAfter"]:active {
+ background-image: url("resource:/res/table-add-row-after-active.gif");
+}
+
+a[\_moz_anonclass="mozTableRemoveRow"] {
+ position: absolute;
+ z-index: 2147483647;
+ text-decoration: none !important;
+ border: none 0px !important;
+ width: 8px;
+ height: 8px;
+ background-image: url("resource:/res/table-remove-row.gif");
+ background-repeat: no-repeat;
+ background-position: center center;
+ -moz-user-select: none !important;
+ -moz-user-focus: none !important;
+}
+
+a[\_moz_anonclass="mozTableRemoveRow"]:hover {
+ background-image: url("resource:/res/table-remove-row-hover.gif");
+}
+
+a[\_moz_anonclass="mozTableRemoveRow"]:active {
+ background-image: url("resource:/res/table-remove-row-active.gif");
+}
Added: branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe/ve/init.html
===================================================================
--- branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe/ve/init.html (rev 0)
+++ branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe/ve/init.html 2007-08-08 16:34:59 UTC (rev 2980)
@@ -0,0 +1,97 @@
+<html>
+
+<head>
+ <title>Test Page</title>
+ <script src="mozileLoader.js" type="text/javascript"></script>
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
+ <link href="EditorOverride.css" rel="stylesheet" type="text/css">
+
+<style type="text/css" vpe="yes">
+<!--
+ .__any__tag__block {
+ display:block;
+ border: 1px solid black;
+ margin: 1px 1px 1px 1px;
+ padding: 2px 1px 1px 1px;
+ }
+ .__any__tag__caption {
+ color:#006727;
+ font-size: 12px;
+ padding: 0px 2px 0px 2px;
+ -moz-user-modify: read-only;
+ }
+ .__any__tag__inline {
+ display: inline;
+ border: 1px solid black;
+ margin: 2px 1px 1px 1px;
+ }
+ .__any__tag__none {
+ display: none;
+ }
+
+ #__content__area__ {
+ width:100%;
+ height:100%;
+ min-height:50px;
+ margin:0px;
+ padding:0px;
+ -moz-user-modify: read-write;
+ -moz-user-input: enabled;
+ -moz-user-select: normal;
+ }
+ .__button__tag {
+ background-color: buttonface;
+ padding: 2px 9px 2px 9px;
+ text-align: center;
+ border: 2px outset threedface;
+ font-family: "MS Sans Serif";
+ font-size: 13.3333px;
+ line-height:1.85;
+ }
+ .__input__tag {
+ background-color: window;
+ text-align: left;
+ border: 2px inset threedface;
+ font-family: "MS Sans Serif";
+ font-size: 13.3333px;
+ line-height:1.6;
+ -moz-user-select: normal;
+ }
+-->
+</style>
+</head>
+
+<script language="JavaScript">
+<!--
+ netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
+ var prefs = Components.classes['@mozilla.org/preferences-service;1'].getService(Components.interfaces.nsIPrefService).getBranch(null);
+
+ if(!prefs.getBoolPref('accessibility.browsewithcaret'))
+ prefs.setBoolPref('accessibility.browsewithcaret', true);
+
+ if(prefs.getBoolPref('browser.cache.enable'))
+ prefs.setBoolPref('browser.cache.enable', false);
+
+ if(prefs.getBoolPref('browser.cache.disk.enable'))
+ prefs.setBoolPref('browser.cache.disk.enable', false);
+
+ prefs.setIntPref('browser.cache.disk.capacity', 0);
+
+ if(prefs.getBoolPref('browser.cache.memory.enable'))
+ prefs.setBoolPref('browser.cache.memory.enable', false);
+
+ // -1 = determine dynamically, 0 = none, n = memory capacity in kilobytes
+ prefs.setIntPref('browser.cache.memory.capacity', 0);
+
+ // 0 = once-per-session, 1 = each-time, 2 = never, 3 = when-appropriate/automatically
+ prefs.setIntPref('browser.cache.check_doc_frequency', 2);
+
+ if(prefs.getBoolPref('network.http.use-cache'))
+ prefs.setBoolPref('network.http.use-cache', false);
+//-->
+</script>
+
+<body id="__content__area__"></body>
+
+</html>
18 years, 4 months
JBoss Tools SVN: r2979 - trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/el.
by jbosstools-commits@lists.jboss.org
Author: vrubezhny
Date: 2007-08-08 12:32:42 -0400 (Wed, 08 Aug 2007)
New Revision: 2979
Modified:
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/el/SeamExpressionResolver.java
Log:
http://jira.jboss.com/jira/browse/JBIDE-670 xhtml code completion does not update it's list of completions
Constructors are in method-proposals - fixed
Modified: trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/el/SeamExpressionResolver.java
===================================================================
--- trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/el/SeamExpressionResolver.java 2007-08-08 16:32:38 UTC (rev 2978)
+++ trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/el/SeamExpressionResolver.java 2007-08-08 16:32:42 UTC (rev 2979)
@@ -170,7 +170,8 @@
IMethod[] mthds = type.getMethods();
for (int i = 0; mthds != null && i < mthds.length; i++) {
IMethod m = mthds[i];
- if (Modifier.isPublic(m.getFlags()) &&
+ if (Modifier.isPublic(m.getFlags()) &&
+ !m.isConstructor() &&
(!m.getElementName().startsWith("get") && !m.getElementName().startsWith("set")) ||
"get".equals(m.getElementName()) || "set".equals(m.getElementName())) {
methods.add(m);
@@ -197,6 +198,7 @@
for (int i = 0; mthds != null && i < mthds.length; i++) {
IMethod m = mthds[i];
if (Modifier.isPublic(m.getFlags()) &&
+ !m.isConstructor() &&
(!m.getElementName().startsWith("get") && !m.getElementName().startsWith("set")) ||
"get".equals(m.getElementName()) || "set".equals(m.getElementName())) {
18 years, 4 months
JBoss Tools SVN: r2977 - in branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.mozilla: src/org/jboss/tools/vpe/mozilla and 2 other directories.
by jbosstools-commits@lists.jboss.org
Author: svasilyev
Date: 2007-08-08 12:32:00 -0400 (Wed, 08 Aug 2007)
New Revision: 2977
Removed:
branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.mozilla/src/org/jboss/tools/vpe/mozilla/browser/AppFileLocProvider.java
branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.mozilla/src/org/jboss/tools/vpe/mozilla/browser/Loger.java
branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.mozilla/src/org/jboss/tools/vpe/mozilla/browser/MozillaBrowser.java
branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.mozilla/src/org/jboss/tools/vpe/mozilla/view/
Modified:
branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.mozilla/META-INF/MANIFEST.MF
branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.mozilla/src-xpcom/org/jboss/tools/vpe/mozilla/internal/swt/xpl/nsIDOMEvent.java
branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.mozilla/src-xpcom/org/jboss/tools/vpe/mozilla/internal/swt/xpl/nsIDOMNSEvent.java
branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.mozilla/src-xpcom/org/jboss/tools/vpe/mozilla/internal/swt/xpl/nsIDOMNode.java
branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.mozilla/src/org/jboss/tools/vpe/mozilla/MozillaJavaXpComPlugin.java
branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.mozilla/src/org/jboss/tools/vpe/mozilla/browser/ContextMenuListener.java
branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.mozilla/src/org/jboss/tools/vpe/mozilla/browser/FragmentPathFactory.java
branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.mozilla/src/org/jboss/tools/vpe/mozilla/browser/GRE.java
branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.mozilla/src/org/jboss/tools/vpe/mozilla/browser/PromptService.java
branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.mozilla/src/org/jboss/tools/vpe/mozilla/browser/WindowCreator.java
Log:
http://jira.jboss.org/jira/browse/EXIN-235 Mozilla was replaced with xulrunner
Modified: branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.mozilla/META-INF/MANIFEST.MF
===================================================================
--- branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.mozilla/META-INF/MANIFEST.MF 2007-08-08 16:30:45 UTC (rev 2976)
+++ branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.mozilla/META-INF/MANIFEST.MF 2007-08-08 16:32:00 UTC (rev 2977)
@@ -10,10 +10,13 @@
org.jboss.tools.vpe.mozilla.internal.swt.xpl,
org.jboss.tools.vpe.mozilla.view
Require-Bundle: org.eclipse.core.runtime,
- org.eclipse.ui.workbench,org.eclipse.swt,
- org.eclipse.ui.views,org.eclipse.ui.ide,
+ org.eclipse.ui.workbench,
+ org.eclipse.swt,
+ org.eclipse.ui.views,
+ org.eclipse.ui.ide,
org.eclipse.jface,
org.jboss.tools.common,
- org.eclipse.core.commands
+ org.eclipse.core.commands,
+ org.mozilla.xpcom
Bundle-Version: 2.0.0
Modified: branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.mozilla/src/org/jboss/tools/vpe/mozilla/MozillaJavaXpComPlugin.java
===================================================================
--- branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.mozilla/src/org/jboss/tools/vpe/mozilla/MozillaJavaXpComPlugin.java 2007-08-08 16:30:45 UTC (rev 2976)
+++ branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.mozilla/src/org/jboss/tools/vpe/mozilla/MozillaJavaXpComPlugin.java 2007-08-08 16:32:00 UTC (rev 2977)
@@ -10,10 +10,27 @@
******************************************************************************/
package org.jboss.tools.vpe.mozilla;
+import org.jboss.tools.common.log.BaseUIPlugin;
+import org.jboss.tools.common.log.IPluginLog;
+
/**
*
* @author eskimo(dgolovin(a)exadel.com)
*/
-public class MozillaJavaXpComPlugin {
- public static final String ID = "org.jboss.tools.vpe.mozilla";
+public class MozillaJavaXpComPlugin extends BaseUIPlugin {
+ public static final String PLUGIN_ID = "org.jboss.tools.vpe.mozilla";
+
+ private static MozillaJavaXpComPlugin instance;
+
+ public MozillaJavaXpComPlugin() {
+ instance = this;
+ }
+
+ public static MozillaJavaXpComPlugin getDefault() {
+ return instance;
+ }
+
+ public static IPluginLog getPluginLog() {
+ return getDefault();
+ }
}
Deleted: branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.mozilla/src/org/jboss/tools/vpe/mozilla/browser/AppFileLocProvider.java
===================================================================
--- branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.mozilla/src/org/jboss/tools/vpe/mozilla/browser/AppFileLocProvider.java 2007-08-08 16:30:45 UTC (rev 2976)
+++ branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.mozilla/src/org/jboss/tools/vpe/mozilla/browser/AppFileLocProvider.java 2007-08-08 16:32:00 UTC (rev 2977)
@@ -1,199 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2004 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 Corporation - initial API and implementation
- *******************************************************************************/
-package org.jboss.tools.vpe.mozilla.browser;
-
-import org.jboss.tools.vpe.mozilla.internal.swt.xpl.*;
-
-
-class AppFileLocProvider {
- XPCOMObject supports;
- XPCOMObject directoryServiceProvider;
- XPCOMObject directoryServiceProvider2;
- int refCount = 0;
- String mozillaPath;
- String grePath;
-
-public AppFileLocProvider() {
- mozillaPath = GRE.mozillaPath;
- grePath = GRE.grePath;
- if (mozillaPath == null) MozillaBrowser.error(XPCOM.NS_ERROR_FAILURE);
- createCOMInterfaces();
-}
-
-int AddRef() {
- refCount++;
- return refCount;
-}
-
-void createCOMInterfaces() {
- /* Create each of the interfaces that this object implements */
- supports = new XPCOMObject(new int[]{2, 0, 0}){
- public int method0(int[] args) {return queryInterface(args[0], args[1]);}
- public int method1(int[] args) {return AddRef();}
- public int method2(int[] args) {return Release();}
- };
-
- directoryServiceProvider = new XPCOMObject(new int[]{2, 0, 0, 3}){
- public int method0(int[] args) {return queryInterface(args[0], args[1]);}
- public int method1(int[] args) {return AddRef();}
- public int method2(int[] args) {return Release();}
- public int method3(int[] args) {return getFile(args[0], args[1], args[2]);}
- };
-
- directoryServiceProvider2 = new XPCOMObject(new int[]{2, 0, 0, 3, 2}){
- public int method0(int[] args) {return queryInterface(args[0], args[1]);}
- public int method1(int[] args) {return AddRef();}
- public int method2(int[] args) {return Release();}
- public int method3(int[] args) {return getFile(args[0], args[1], args[2]);}
- public int method4(int[] args) {return getFiles(args[0], args[1]);}
- };
-}
-
-void disposeCOMInterfaces() {
- if (supports != null) {
- supports.dispose();
- supports = null;
- }
- if (directoryServiceProvider != null) {
- directoryServiceProvider.dispose();
- directoryServiceProvider = null;
- }
- if (directoryServiceProvider2 != null) {
- directoryServiceProvider2.dispose();
- directoryServiceProvider2 = null;
- }
-}
-
-int getAddress() {
- return directoryServiceProvider.getAddress();
-}
-
-int queryInterface(int riid, int ppvObject) {
- if (riid == 0 || ppvObject == 0) return XPCOM.NS_ERROR_NO_INTERFACE;
- nsID guid = new nsID();
- XPCOM.memmove(guid, riid, nsID.sizeof);
-
- if (guid.Equals(nsISupports.NS_ISUPPORTS_IID)) {
- XPCOM.memmove(ppvObject, new int[] {supports.getAddress()}, 4);
- AddRef();
- return XPCOM.NS_OK;
- }
- if (guid.Equals(nsIDirectoryServiceProvider.NS_IDIRECTORYSERVICEPROVIDER_IID)) {
- XPCOM.memmove(ppvObject, new int[] {directoryServiceProvider.getAddress()}, 4);
- AddRef();
- return XPCOM.NS_OK;
- }
- if (guid.Equals(nsIDirectoryServiceProvider2.NS_IDIRECTORYSERVICEPROVIDER2_IID)) {
- XPCOM.memmove(ppvObject, new int[] {directoryServiceProvider2.getAddress()}, 4);
- AddRef();
- return XPCOM.NS_OK;
- }
-
- XPCOM.memmove(ppvObject, new int[] {0}, 4);
- return XPCOM.NS_ERROR_NO_INTERFACE;
-}
-
-int Release() {
- refCount--;
- if (refCount == 0) disposeCOMInterfaces();
- return refCount;
-}
-
-/* nsIDirectoryServiceProvider2 implementation */
-
-int getFiles(int str, int nsISimpleEnumerator) {
- int rc = XPCOM.NS_ERROR_FAILURE;
- int length = XPCOM.strlen(str);
- byte[] dest = new byte[length];
- XPCOM.memmove(dest, str, length);
- String prop = new String(dest);
- XPCOM.memmove(nsISimpleEnumerator, new int[] {0}, 4);
- nsILocalFile localFile = null;
- if (XPCOM.NS_APP_PLUGINS_DIR_LIST.equals(prop)) {
- if (mozillaPath == null) return XPCOM.NS_ERROR_FAILURE;
- if (mozillaPath.length() <= 0) return XPCOM.NS_ERROR_FAILURE;
- int[] result = new int[1];
- nsString path = new nsString(mozillaPath);
- rc = XPCOM.NS_NewLocalFile(path.getAddress(), true, result);
- path.dispose();
- if (rc == XPCOM.NS_OK && result[0] == 0) rc = XPCOM.NS_ERROR_NULL_POINTER;
- if (rc == XPCOM.NS_OK) localFile = new nsILocalFile(result[0]);
- nsString node = new nsString(XPCOM.PLUGINS_DIR_NAME);
- rc = localFile.Append(node.getAddress());
- node.dispose();
- }
- if (rc == XPCOM.NS_OK) {
- int[] retVal = new int[1];
- rc = XPCOM.NS_NewSingletonEnumerator(localFile.getAddress(), retVal);
- if (rc == XPCOM.NS_OK && retVal[0] == 0) rc = XPCOM.NS_ERROR_NULL_POINTER;
- if (rc == XPCOM.NS_OK) XPCOM.memmove(nsISimpleEnumerator, retVal, 4);
- }
- if (localFile != null) localFile.Release();
- return rc;
-}
-
-/* nsIDirectoryServiceProvider implementation */
-
-int getFile(int str, int persistent, int nsFile) {
- int rc = XPCOM.NS_ERROR_FAILURE;
- int length = XPCOM.strlen(str);
- byte[] dest = new byte[length];
- XPCOM.memmove(dest, str, length);
- String prop = new String(dest);
- XPCOM.memmove(persistent, new int[] {1}, 4);
- XPCOM.memmove(nsFile, new int[] {0}, 4);
- nsILocalFile localFile = null;
- if (XPCOM.NS_GRE_DIR.equals(prop) || XPCOM.NS_GRE_COMPONENT_DIR.equals(prop)) {
- if (grePath == null || grePath.length() == 0) return XPCOM.NS_ERROR_FAILURE;
- int[] result = new int[1];
- nsString path = new nsString(grePath);
- rc = XPCOM.NS_NewLocalFile(path.getAddress(), true, result);
- path.dispose();
- if (rc == XPCOM.NS_OK && result[0] == 0) rc = XPCOM.NS_ERROR_NULL_POINTER;
- if (rc == XPCOM.NS_OK) {
- localFile = new nsILocalFile(result[0]);
- if (XPCOM.NS_GRE_COMPONENT_DIR.equals(prop)) {
- nsString node = new nsString(XPCOM.COMPONENTS_DIR_NAME);
- rc = localFile.Append(node.getAddress());
- node.dispose();
- }
- }
- }
- else if (XPCOM.NS_XPCOM_INIT_CURRENT_PROCESS_DIR.equals(prop) ||
- XPCOM.NS_OS_CURRENT_PROCESS_DIR.equals(prop) ||
- XPCOM.NS_XPCOM_COMPONENT_DIR.equals(prop) ||
- XPCOM.NS_APP_USER_PROFILE_50_DIR.equals(prop)) {
- if (mozillaPath == null || mozillaPath.length() == 0) return XPCOM.NS_ERROR_FAILURE;
- int[] result = new int[1];
- nsString path = new nsString(mozillaPath);
- rc = XPCOM.NS_NewLocalFile(path.getAddress(), true, result);
- path.dispose();
- if (rc == XPCOM.NS_OK && result[0] == 0) rc = XPCOM.NS_ERROR_NULL_POINTER;
- if (rc == XPCOM.NS_OK) {
- localFile = new nsILocalFile(result[0]);
- if (XPCOM.NS_XPCOM_COMPONENT_DIR.equals(prop)) {
- nsString node = new nsString(XPCOM.COMPONENTS_DIR_NAME);
- rc = localFile.Append(node.getAddress());
- node.dispose();
- }
- }
- }
- if (localFile != null && XPCOM.NS_OK == rc) {
- int[] result = new int[1];
- int rc1 = localFile.QueryInterface(nsIFile.NS_IFILE_IID, result);
- if (rc1 != XPCOM.NS_OK || result[0] == 0) rc1 = XPCOM.NS_NOINTERFACE;
- else XPCOM.memmove(nsFile, result, 4);
- }
- if (localFile != null) localFile.Release();
-
- return rc;
-}
-}
Modified: branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.mozilla/src/org/jboss/tools/vpe/mozilla/browser/ContextMenuListener.java
===================================================================
--- branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.mozilla/src/org/jboss/tools/vpe/mozilla/browser/ContextMenuListener.java 2007-08-08 16:30:45 UTC (rev 2976)
+++ branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.mozilla/src/org/jboss/tools/vpe/mozilla/browser/ContextMenuListener.java 2007-08-08 16:32:00 UTC (rev 2977)
@@ -10,7 +10,7 @@
******************************************************************************/
package org.jboss.tools.vpe.mozilla.browser;
-import org.jboss.tools.vpe.mozilla.internal.swt.xpl.nsIDOMMouseEvent;
+import org.mozilla.interfaces.nsIDOMMouseEvent;
import org.w3c.dom.Node;
Modified: branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.mozilla/src/org/jboss/tools/vpe/mozilla/browser/FragmentPathFactory.java
===================================================================
--- branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.mozilla/src/org/jboss/tools/vpe/mozilla/browser/FragmentPathFactory.java 2007-08-08 16:30:45 UTC (rev 2976)
+++ branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.mozilla/src/org/jboss/tools/vpe/mozilla/browser/FragmentPathFactory.java 2007-08-08 16:32:00 UTC (rev 2977)
@@ -12,8 +12,8 @@
import java.lang.reflect.Constructor;
-import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Platform;
+import org.jboss.tools.vpe.mozilla.MozillaJavaXpComPlugin;
/**
* @author Sergey Vasilyev
@@ -23,14 +23,12 @@
private String pluginId;
public static final String WS_WIN32 = "win32";
public static final String WS_GTK = "gtk";
- private Loger loger;
public FragmentPathFactory(String pluginId, String ws)
throws
UnsupportedWindowsSystemException,
RuntimeException {
this.pluginId = pluginId;
- loger = new Loger(pluginId);
Class[] params = { String.class };
Class factoryClass;
@@ -42,14 +40,14 @@
} else {
UnsupportedWindowsSystemException e =
new UnsupportedWindowsSystemException(Platform.getWS());
- loger.log(IStatus.ERROR,e.getMessage(),e);
+ MozillaJavaXpComPlugin.getPluginLog().logError(e);
throw e;
}
try {
factoryConstructor = factoryClass.getConstructor(params);
} catch (Exception e) {
- loger.log(IStatus.ERROR,"Error getting constructor for factory class WS="+ws,e);
+ MozillaJavaXpComPlugin.getPluginLog().logError("Error getting constructor for factory class WS="+ws,e);
throw new RuntimeException(e);
}
} // FragmentPathFactory(String)
@@ -62,7 +60,7 @@
try {
factory = factoryConstructor.newInstance(args);
} catch (Exception e) {
- loger.log(IStatus.ERROR,"Error creating factory instance",e);
+ MozillaJavaXpComPlugin.getPluginLog().logError("Error creating factory instance",e);
throw new RuntimeException(e);
} // try
return (IFragmentPath)factory;
Modified: branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.mozilla/src/org/jboss/tools/vpe/mozilla/browser/GRE.java
===================================================================
--- branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.mozilla/src/org/jboss/tools/vpe/mozilla/browser/GRE.java 2007-08-08 16:30:45 UTC (rev 2976)
+++ branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.mozilla/src/org/jboss/tools/vpe/mozilla/browser/GRE.java 2007-08-08 16:32:00 UTC (rev 2977)
@@ -12,7 +12,6 @@
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.Platform;
-import org.jboss.tools.common.log.LogHelper;
import org.jboss.tools.vpe.mozilla.MozillaJavaXpComPlugin;
/**
@@ -39,7 +38,7 @@
try {
return getBasePath().toOSString();
} catch (UnsupportedWindowsSystemException e) {
- LogHelper.logError(MozillaJavaXpComPlugin.ID, e);
+ MozillaJavaXpComPlugin.getPluginLog().logError(e);
return null;
}
} // getGREPath()
Deleted: branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.mozilla/src/org/jboss/tools/vpe/mozilla/browser/Loger.java
===================================================================
--- branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.mozilla/src/org/jboss/tools/vpe/mozilla/browser/Loger.java 2007-08-08 16:30:45 UTC (rev 2976)
+++ branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.mozilla/src/org/jboss/tools/vpe/mozilla/browser/Loger.java 2007-08-08 16:32:00 UTC (rev 2977)
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 Exadel, Inc. and Red Hat, Inc.
- * Distributed under license by Red Hat, Inc. All rights reserved.
- * This program is made available under the terms of the
- * Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Exadel, Inc. and Red Hat, Inc. - initial API and implementation
- ******************************************************************************/
-package org.jboss.tools.vpe.mozilla.browser;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-
-/**
- * @author Sergey Vasilyev
- */
-public class Loger {
- /*
- * code for all exception
- * (maybe need separated code for each specifically error?)
- */
- private final int code = 0;
- private String pluginId;
- public Loger(String pluginId) {
- this.pluginId = pluginId;
- }
-
- /**
- * Write message about exception in eclipse log
- * @param severity - see Status class
- * @param message - see Status class
- * @param e - see Status class
- */
- public void log(int severity, String message, Throwable e) {
- IStatus status = new Status(severity, pluginId,
- code, message, e);
- Platform.getLog(Platform.getBundle(pluginId)).log(status);
- }
-}
Deleted: branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.mozilla/src/org/jboss/tools/vpe/mozilla/browser/MozillaBrowser.java
===================================================================
--- branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.mozilla/src/org/jboss/tools/vpe/mozilla/browser/MozillaBrowser.java 2007-08-08 16:30:45 UTC (rev 2976)
+++ branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.mozilla/src/org/jboss/tools/vpe/mozilla/browser/MozillaBrowser.java 2007-08-08 16:32:00 UTC (rev 2977)
@@ -1,3194 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2004 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 Corporation - initial API and implementation
- *******************************************************************************/
-package org.jboss.tools.vpe.mozilla.browser;
-
-
-import java.io.UnsupportedEncodingException;
-import java.util.MissingResourceException;
-import java.util.StringTokenizer;
-import java.util.regex.Pattern;
-
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.SWTError;
-import org.eclipse.swt.SWTException;
-import org.eclipse.swt.browser.CloseWindowListener;
-import org.eclipse.swt.browser.LocationListener;
-import org.eclipse.swt.browser.OpenWindowListener;
-import org.eclipse.swt.browser.ProgressListener;
-import org.eclipse.swt.browser.StatusTextListener;
-import org.eclipse.swt.browser.TitleListener;
-import org.eclipse.swt.browser.VisibilityWindowListener;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.ScrollBar;
-import org.eclipse.swt.widgets.Shell;
-import org.jboss.tools.common.log.LogHelper;
-import org.jboss.tools.vpe.mozilla.MozillaJavaXpComPlugin;
-import org.jboss.tools.vpe.mozilla.internal.swt.xpl.VpeResizer;
-import org.jboss.tools.vpe.mozilla.internal.swt.xpl.XPCOM;
-import org.jboss.tools.vpe.mozilla.internal.swt.xpl.XPCOMError;
-import org.jboss.tools.vpe.mozilla.internal.swt.xpl.XPCOMObject;
-import org.jboss.tools.vpe.mozilla.internal.swt.xpl.inIFlasher;
-import org.jboss.tools.vpe.mozilla.internal.swt.xpl.nsIAppShell;
-import org.jboss.tools.vpe.mozilla.internal.swt.xpl.nsIBaseWindow;
-import org.jboss.tools.vpe.mozilla.internal.swt.xpl.nsIBoxObject;
-import org.jboss.tools.vpe.mozilla.internal.swt.xpl.nsICaret;
-import org.jboss.tools.vpe.mozilla.internal.swt.xpl.nsICategoryManager;
-import org.jboss.tools.vpe.mozilla.internal.swt.xpl.nsIClipboardDragDropHookList;
-import org.jboss.tools.vpe.mozilla.internal.swt.xpl.nsIClipboardDragDropHooks;
-import org.jboss.tools.vpe.mozilla.internal.swt.xpl.nsIComponentManager;
-import org.jboss.tools.vpe.mozilla.internal.swt.xpl.nsIComponentRegistrar;
-import org.jboss.tools.vpe.mozilla.internal.swt.xpl.nsICompositeListener;
-import org.jboss.tools.vpe.mozilla.internal.swt.xpl.nsIContentViewer;
-import org.jboss.tools.vpe.mozilla.internal.swt.xpl.nsIContentViewerContainer;
-import org.jboss.tools.vpe.mozilla.internal.swt.xpl.nsIContextMenuListener;
-import org.jboss.tools.vpe.mozilla.internal.swt.xpl.nsID;
-import org.jboss.tools.vpe.mozilla.internal.swt.xpl.nsIDOMDocument;
-import org.jboss.tools.vpe.mozilla.internal.swt.xpl.nsIDOMDocumentRange;
-import org.jboss.tools.vpe.mozilla.internal.swt.xpl.nsIDOMElement;
-import org.jboss.tools.vpe.mozilla.internal.swt.xpl.nsIDOMEvent;
-import org.jboss.tools.vpe.mozilla.internal.swt.xpl.nsIDOMEventListener;
-import org.jboss.tools.vpe.mozilla.internal.swt.xpl.nsIDOMEventTarget;
-import org.jboss.tools.vpe.mozilla.internal.swt.xpl.nsIDOMMouseEvent;
-import org.jboss.tools.vpe.mozilla.internal.swt.xpl.nsIDOMNSDocument;
-import org.jboss.tools.vpe.mozilla.internal.swt.xpl.nsIDOMNode;
-import org.jboss.tools.vpe.mozilla.internal.swt.xpl.nsIDOMRange;
-import org.jboss.tools.vpe.mozilla.internal.swt.xpl.nsIDOMScrollListener;
-import org.jboss.tools.vpe.mozilla.internal.swt.xpl.nsIDOMWindow;
-import org.jboss.tools.vpe.mozilla.internal.swt.xpl.nsIDOMXULDocument;
-import org.jboss.tools.vpe.mozilla.internal.swt.xpl.nsIDocShell;
-import org.jboss.tools.vpe.mozilla.internal.swt.xpl.nsIDocument;
-import org.jboss.tools.vpe.mozilla.internal.swt.xpl.nsIDocumentLoaderFactory;
-import org.jboss.tools.vpe.mozilla.internal.swt.xpl.nsIDragService;
-import org.jboss.tools.vpe.mozilla.internal.swt.xpl.nsIDragSession;
-import org.jboss.tools.vpe.mozilla.internal.swt.xpl.nsIEditorDocShell;
-import org.jboss.tools.vpe.mozilla.internal.swt.xpl.nsIEmbeddingSiteWindow;
-import org.jboss.tools.vpe.mozilla.internal.swt.xpl.nsIFrameSelection;
-import org.jboss.tools.vpe.mozilla.internal.swt.xpl.nsIIOService;
-import org.jboss.tools.vpe.mozilla.internal.swt.xpl.nsIInputStreamChannel;
-import org.jboss.tools.vpe.mozilla.internal.swt.xpl.nsIInterfaceRequestor;
-import org.jboss.tools.vpe.mozilla.internal.swt.xpl.nsILoadGroup;
-import org.jboss.tools.vpe.mozilla.internal.swt.xpl.nsILocalFile;
-import org.jboss.tools.vpe.mozilla.internal.swt.xpl.nsIPresContext;
-import org.jboss.tools.vpe.mozilla.internal.swt.xpl.nsIPresShell;
-import org.jboss.tools.vpe.mozilla.internal.swt.xpl.nsIRequest;
-import org.jboss.tools.vpe.mozilla.internal.swt.xpl.nsIScrollPositionListener;
-import org.jboss.tools.vpe.mozilla.internal.swt.xpl.nsIScrollable;
-import org.jboss.tools.vpe.mozilla.internal.swt.xpl.nsIScrollableView;
-import org.jboss.tools.vpe.mozilla.internal.swt.xpl.nsISelectionController;
-import org.jboss.tools.vpe.mozilla.internal.swt.xpl.nsIServiceManager;
-import org.jboss.tools.vpe.mozilla.internal.swt.xpl.nsISimpleEnumerator;
-import org.jboss.tools.vpe.mozilla.internal.swt.xpl.nsIStreamListener;
-import org.jboss.tools.vpe.mozilla.internal.swt.xpl.nsISupports;
-import org.jboss.tools.vpe.mozilla.internal.swt.xpl.nsISupportsArray;
-import org.jboss.tools.vpe.mozilla.internal.swt.xpl.nsISupportsWeakReference;
-import org.jboss.tools.vpe.mozilla.internal.swt.xpl.nsITooltipListener;
-import org.jboss.tools.vpe.mozilla.internal.swt.xpl.nsITransferable;
-import org.jboss.tools.vpe.mozilla.internal.swt.xpl.nsIURI;
-import org.jboss.tools.vpe.mozilla.internal.swt.xpl.nsIURIContentListener;
-import org.jboss.tools.vpe.mozilla.internal.swt.xpl.nsIViewManager;
-import org.jboss.tools.vpe.mozilla.internal.swt.xpl.nsIWeakReference;
-import org.jboss.tools.vpe.mozilla.internal.swt.xpl.nsIWebBrowser;
-import org.jboss.tools.vpe.mozilla.internal.swt.xpl.nsIWebBrowserChrome;
-import org.jboss.tools.vpe.mozilla.internal.swt.xpl.nsIWebBrowserChromeFocus;
-import org.jboss.tools.vpe.mozilla.internal.swt.xpl.nsIWebBrowserFocus;
-import org.jboss.tools.vpe.mozilla.internal.swt.xpl.nsIWebNavigation;
-import org.jboss.tools.vpe.mozilla.internal.swt.xpl.nsIWebProgressListener;
-import org.jboss.tools.vpe.mozilla.internal.swt.xpl.nsIWindowWatcher;
-import org.jboss.tools.vpe.mozilla.internal.swt.xpl.nsString;
-import org.w3c.dom.Node;
-
-
-
-/**
- * Instances of this class implement the browser user interface
- * metaphor. It allows the user to visualize and navigate through
- * HTML documents.
- * <p>
- * Note that although this class is a subclass of <code>Composite</code>,
- * it does not make sense to set a layout on it.
- * </p><p>
- * IMPORTANT: This class is <em>not</em> intended to be subclassed.
- * </p>
- *
- * @since 3.0
- */
-public class MozillaBrowser extends Composite {
-
- /**
- * color which used for highlight elemtns which user can see
- */
- public static final String flasherVisialElementColor = "blue";
-
- /**
- * color which used for highlight parent elements for elements which user
- * can't see.
- */
- public static final String flasherHiddentElementColor = "red";
-
- /**
- * Contains name of attribute for inIFLasher drawning
- */
-
- public static String VPEFLASHERCOLORATTRIBUTE="vpeFlasherColorAttribute";
-
- /**
- * Contains attribute name for style
- */
- private static final String STYLE_ATTR="style";
-
- /**
- * RegExp for find expression 'display : none' in style string
- */
- private static final Pattern pattern= Pattern.compile(".*\\s*(display)\\s*:\\s*(none)\\s*;.*",
- Pattern.CASE_INSENSITIVE+Pattern.DOTALL);
-
-
-
- private static final int flasherThickness = 2;
-
- private nsIWebBrowser webBrowser;
- private nsIScrollableView scrollableView;
- private ScrollBar horizontalBar;
- private ScrollBar verticalBar;
- private nsISelectionController selectionController;
- private inIFlasher flasher;
- private VpeResizer resizer;
- private nsIDOMElement lastSelectedElement;
- private boolean scrollRegtangleFlag = false;
- private int lastResizerConstrains = 0;
- private nsICaret dragCaret;
- private boolean dragCaretVisible;
- private nsIPresContext presContext;
- private float pixelsToTwips;
- private boolean busyResizeFlag = false;
- private nsISelectionController visualSelectionController = null;
-
- /* Interfaces for this Mozilla embedding notification */
- XPCOMObject supports;
- XPCOMObject weakReference;
- XPCOMObject webProgressListener;
- XPCOMObject webBrowserChrome;
- XPCOMObject webBrowserChromeFocus;
- XPCOMObject embeddingSiteWindow;
- XPCOMObject interfaceRequestor;
- XPCOMObject supportsWeakReference;
- XPCOMObject contextMenuListener;
- XPCOMObject uriContentListener;
- XPCOMObject tooltipListener;
- XPCOMObject domEventListener;
- XPCOMObject domScrollListener;
- XPCOMObject scrollPositionListener;
- XPCOMObject compositeListener;
- XPCOMObject resizeListener;
-
- int chromeFlags = nsIWebBrowserChrome.CHROME_DEFAULT;
- int refCount = 0;
- int request;
- String html;
- Point location;
- Point size;
- Shell tip = null;
-
- /* External Listener management */
- CloseWindowListener[] closeWindowListeners = new CloseWindowListener[0];
- LocationListener[] locationListeners = new LocationListener[0];
- OpenWindowListener[] openWindowListeners = new OpenWindowListener[0];
- ProgressListener[] progressListeners = new ProgressListener[0];
- StatusTextListener[] statusTextListeners = new StatusTextListener[0];
- TitleListener[] titleListeners = new TitleListener[0];
- VisibilityWindowListener[] visibilityWindowListeners = new VisibilityWindowListener[0];
- ContextMenuListener externalContextMenuListener;
-
- static nsIAppShell AppShell;
- static AppFileLocProvider LocProvider;
- static PromptService PromptService;
- static WindowCreator WindowCreator;
- static int BrowserCount;
- static boolean mozilla;
- static boolean IsWindows;
-
- /* Package Name */
-// Edward
-// static final String PACKAGE_PREFIX = "org.eclipse.swt.browser."; //$NON-NLS-1$
-
- static {
- String osName = System.getProperty("os.name").toLowerCase(); //$NON-NLS-1$
- IsWindows = osName.startsWith("windows");
- }
-
-/**
- * Constructs a new instance of this class given its parent
- * and a style value describing its behavior and appearance.
- * <p>
- * The style value is either one of the style constants defined in
- * class <code>SWT</code> which is applicable to instances of this
- * class, or must be built by <em>bitwise OR</em>'ing together
- * (that is, using the <code>int</code> "|" operator) two or more
- * of those <code>SWT</code> style constants. The class description
- * lists the style constants that are applicable to the class.
- * Style bits are also inherited from superclasses.
- * </p>
- *
- * @param parent a widget which will be the parent of the new instance (cannot be null)
- * @param style the style of widget to construct
- *
- * @exception IllegalArgumentException <ul>
- * <li>ERROR_NULL_ARGUMENT - if the parent is null</li>
- * </ul>
- * @exception SWTException <ul>
- * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the parent</li>
- * </ul>
- * @exception SWTError <ul>
- * <li>ERROR_NO_HANDLES if a handle could not be obtained for browser creation</li>
- * </ul>
- *
- * @see #getStyle
- *
- * @since 3.0
- */
-public MozillaBrowser(Composite parent, int style) {
- super(parent,style);
-
- int[] result = new int[1];
- if (!mozilla) {
- String sharedLibrary = "";
- try {
- StringTokenizer libraryList =
- new StringTokenizer(
- Platform.getResourceBundle(
- Platform.getBundle(MozillaJavaXpComPlugin.ID)).getString("libraryList"));
-
- while ( libraryList.hasMoreElements() ) {
- sharedLibrary = libraryList.nextToken();
- System.loadLibrary(sharedLibrary);
- }
- } catch (MissingResourceException e) {
- dispose();
- throw new SWTException("MissingResourceException: " + e.getMessage() + ". Error code is "+ SWT.ERROR_NO_HANDLES);
- } catch (UnsatisfiedLinkError e) {
- dispose();
- //throw new MozillaError("UnsatisfiedLinkError: " + e.getMessage() + ". Error code is "+ SWT.ERROR_NO_HANDLES, e);
- throw new SWTException("UnsatisfiedLinkError: " + e.getMessage() + ". Error code is "+ SWT.ERROR_NO_HANDLES);
- //SWT.error("UnsatisfiedLinkError: " + e.getMessage() + ". Error code is "+ SWT.ERROR_NO_HANDLES, e);
- }
-
- String mozillaPath = GRE.mozillaPath;
-
- if (mozillaPath == null) {
- dispose();
-// throw new MozillaError("Unknown mozilla path");
- throw new SWTException("Unknown mozilla path");
-// SWT.error(SWT.ERROR_NO_HANDLES, null, " [Unknown mozilla path]");
- }
-
- int[] retVal = new int[1];
- nsString path = new nsString(mozillaPath);
- int rc = XPCOM.NS_NewLocalFile(path.getAddress(), true, retVal);
- path.dispose();
- if (rc != XPCOM.NS_OK) error(rc);
- if (retVal[0] == 0) error(XPCOM.NS_ERROR_NULL_POINTER);
-
- /*
- * Feature on Mozilla. On Windows, the mozilla libraries are split
- * up into 2 locations indicated by the GRE and Mozilla paths. The
- * default nsIDirectoryServiceProvider only works when the libraries
- * are in the same folder. The workaround is to provide a custom
- * nsIDirectoryServiceProvider on this platform. It provides the
- * 2 locations set by Mozilla in the Windows registry.
- */
- if (IsWindows) {
- LocProvider = new AppFileLocProvider();
- LocProvider.AddRef();
- }
-
- nsILocalFile localFile = new nsILocalFile(retVal[0]);
- rc = XPCOM.NS_InitEmbedding(localFile.getAddress(), IsWindows ? LocProvider.getAddress() : 0);
- localFile.Release();
- if (rc != XPCOM.NS_OK) {
- if (LocProvider != null) LocProvider.Release();
- LocProvider = null;
- dispose();
-// throw new MozillaError(" NS_InitEmbedding " + mozillaPath + " error " + rc);
- throw new SWTException("NS_InitEmbedding " + mozillaPath + " error " + rc);
-// SWT.error(SWT.ERROR_NO_HANDLES, null, " [NS_InitEmbedding "+mozillaPath+" error "+rc+"]");
- }
-
- rc = XPCOM.NS_GetComponentManager(result);
- if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) error(XPCOM.NS_NOINTERFACE);
-
- nsIComponentManager componentManager = new nsIComponentManager(result[0]);
- result[0] = 0;
- rc = componentManager.CreateInstance(XPCOM.NS_APPSHELL_CID, 0, nsIAppShell.NS_IAPPSHELL_IID, result);
- if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) error(XPCOM.NS_NOINTERFACE);
- componentManager.Release();
-
- AppShell = new nsIAppShell(result[0]);
- rc = AppShell.Create(null, null);
- if (rc != XPCOM.NS_OK) error(rc);
- rc = AppShell.Spinup();
- if (rc != XPCOM.NS_OK) error(rc);
-
- WindowCreator = new WindowCreator();
- WindowCreator.AddRef();
-
- rc = XPCOM.NS_GetServiceManager(result);
- if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) error(XPCOM.NS_NOINTERFACE);
-
- nsIServiceManager serviceManager = new nsIServiceManager(result[0]);
- result[0] = 0;
- byte[] buffer = XPCOM.NS_WINDOWWATCHER_CONTRACTID.getBytes();
- byte[] aContractID = new byte[buffer.length + 1];
- System.arraycopy(buffer, 0, aContractID, 0, buffer.length);
- rc = serviceManager.GetServiceByContractID(aContractID, nsIWindowWatcher.NS_IWINDOWWATCHER_IID, result);
- if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) error(XPCOM.NS_NOINTERFACE);
- serviceManager.Release();
-
- nsIWindowWatcher windowWatcher = new nsIWindowWatcher(result[0]);
- result[0] = 0;
- rc = windowWatcher.SetWindowCreator(WindowCreator.getAddress());
- if (rc != XPCOM.NS_OK) error(rc);
- windowWatcher.Release();
-
- PromptServiceFactory factory = new PromptServiceFactory();
- factory.AddRef();
-
- rc = XPCOM.NS_GetComponentManager(result);
- if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) error(XPCOM.NS_NOINTERFACE);
-
- componentManager = new nsIComponentManager(result[0]);
- result[0] = 0;
- rc = componentManager.QueryInterface(nsIComponentRegistrar.NS_ICOMPONENTREGISTRAR_IID, result);
- if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) error(XPCOM.NS_NOINTERFACE);
- componentManager.Release();
-
- nsIComponentRegistrar componentRegistrar = new nsIComponentRegistrar(result[0]);
- result[0] = 0;
- buffer = XPCOM.NS_PROMPTSERVICE_CONTRACTID.getBytes();
- aContractID = new byte[buffer.length + 1];
- System.arraycopy(buffer, 0, aContractID, 0, buffer.length);
- buffer = "Prompt Service".getBytes();
- byte[] aClassName = new byte[buffer.length + 1];
- System.arraycopy(buffer, 0, aClassName, 0, buffer.length);
- rc = componentRegistrar.RegisterFactory(XPCOM.NS_PROMPTSERVICE_CID, aClassName, aContractID, factory.getAddress());
- if (rc != XPCOM.NS_OK) error(rc);
- factory.Release();
- componentRegistrar.Release();
-
- mozilla = true;
- }
- BrowserCount++;
- int rc = XPCOM.NS_GetComponentManager(result);
- if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) error(XPCOM.NS_NOINTERFACE);
-
- nsIComponentManager componentManager = new nsIComponentManager(result[0]);
- result[0] = 0;
- nsID NS_IWEBBROWSER_CID = new nsID("F1EAC761-87E9-11d3-AF80-00A024FFC08C"); //$NON-NLS-1$
- rc = componentManager.CreateInstance(NS_IWEBBROWSER_CID, 0, nsIWebBrowser.NS_IWEBBROWSER_IID, result);
- if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) error(XPCOM.NS_NOINTERFACE);
- componentManager.Release();
-
- webBrowser = new nsIWebBrowser(result[0]);
-
- createCOMInterfaces();
- AddRef();
-
- rc = webBrowser.SetContainerWindow(webBrowserChrome.getAddress());
- if (rc != XPCOM.NS_OK) error(rc);
-
- rc = webBrowser.QueryInterface(nsIBaseWindow.NS_IBASEWINDOW_IID, result);
- if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) error(XPCOM.NS_ERROR_NO_INTERFACE);
-
- nsIBaseWindow baseWindow = new nsIBaseWindow(result[0]);
- Rectangle rect = getClientArea();
- if (rect.isEmpty()) {
- rect.width = 1;
- rect.height = 1;
- }
- /*
- * Note. The following code compiles without warning on a
- * 64 bit platform but won't run.
- */
- rc = baseWindow.InitWindow((int)/*64*/handle, 0, 0, 0, rect.width, rect.height);
- if (rc != XPCOM.NS_OK) error(XPCOM.NS_ERROR_FAILURE);
- rc = baseWindow.Create();
- if (rc != XPCOM.NS_OK) error(XPCOM.NS_ERROR_FAILURE);
- rc = baseWindow.SetVisibility(true);
- if (rc != XPCOM.NS_OK) error(XPCOM.NS_ERROR_FAILURE);
- baseWindow.Release();
-
- rc = webBrowser.AddWebBrowserListener(weakReference.getAddress(), nsIWebProgressListener.NS_IWEBPROGRESSLISTENER_IID);
- if (rc != XPCOM.NS_OK) error(rc);
-
- rc = webBrowser.SetParentURIContentListener(uriContentListener.getAddress());
- if (rc != XPCOM.NS_OK) error(rc);
-
- Listener listener = new Listener() {
- public void handleEvent(Event event) {
- switch (event.type) {
- case SWT.Dispose: onDispose(); break;
-// case SWT.Resize: onResize(); break;
- case SWT.Activate:
- case SWT.FocusIn: onFocusGained(); break;
- case SWT.Deactivate: {
- Display display = event.display;
- if (MozillaBrowser.this == display.getFocusControl()) onFocusLost();
- break;
- }
- case SWT.Resize:
- case SWT.Show: {
- /*
- * Feature on GTK Mozilla. Mozilla does not show up when
- * its container (a GTK fixed handle) is made visible
- * after having been hidden. The workaround is to reset
- * its size after the container has been made visible.
- */
- if (!busyResizeFlag) {
- busyResizeFlag = true;
- Display display = event.display;
- display.asyncExec(new Runnable() {
- public void run() {
- if (MozillaBrowser.this.isDisposed()) return;
- onResize();
- busyResizeFlag = false;
- }
- });
- }
- break;
- }
- }
- }
- };
- int[] folderEvents = new int[]{
- SWT.Dispose,
- SWT.Resize,
- SWT.FocusIn,
- SWT.KeyDown,
- SWT.Activate,
- SWT.Deactivate,
- SWT.Show
- };
- for (int i = 0; i < folderEvents.length; i++) {
- addListener(folderEvents[i], listener);
- }
-
- nsIDOMWindow domWindow = getDOMWindow();
- int aEventTarget = nsISupports.queryInterface(domWindow.getAddress(), nsIDOMEventTarget.NS_IDOMEVENTTARGET_IID);
- nsIDOMEventTarget domEventTarget = new nsIDOMEventTarget(aEventTarget);
- domEventTarget.addEventListener("overflow", domEventListener);
- domEventTarget.addEventListener("underflow", domEventListener);
- domEventTarget.addEventListener("overflowchanged", domEventListener);
- domEventTarget.Release();
- domWindow.Release();
-}
-
-/**
- * Adds the listener to receive events.
- * <p>
- *
- * @param listener the listener
- *
- * @exception IllegalArgumentException <ul>
- * <li>ERROR_NULL_ARGUMENT - if the listener is null</li>
- * </ul>
- *
- * @exception SWTError <ul>
- * <li>ERROR_THREAD_INVALID_ACCESS when called from the wrong thread</li>
- * <li>ERROR_WIDGET_DISPOSED when the widget has been disposed</li>
- * </ul>
- *
- * @since 3.0
- */
-public void addCloseWindowListener(CloseWindowListener listener) {
- checkWidget();
- if (listener == null) {
-// throw new MozillaError("" + SWT.ERROR_NULL_ARGUMENT);
- throw new SWTException("" + SWT.ERROR_NULL_ARGUMENT);
-// SWT.error(SWT.ERROR_NULL_ARGUMENT);
- }
- CloseWindowListener[] newCloseWindowListeners = new CloseWindowListener[closeWindowListeners.length + 1];
- System.arraycopy(closeWindowListeners, 0, newCloseWindowListeners, 0, closeWindowListeners.length);
- closeWindowListeners = newCloseWindowListeners;
- closeWindowListeners[closeWindowListeners.length - 1] = listener;
-}
-
-/**
- * Adds the listener to receive events.
- * <p>
- *
- * @param listener the listener
- *
- * @exception IllegalArgumentException <ul>
- * <li>ERROR_NULL_ARGUMENT - if the listener is null</li>
- * </ul>
- *
- * @exception SWTError <ul>
- * <li>ERROR_THREAD_INVALID_ACCESS when called from the wrong thread</li>
- * <li>ERROR_WIDGET_DISPOSED when the widget has been disposed</li>
- * </ul>
- *
- * @since 3.0
- */
-public void addLocationListener(LocationListener listener) {
- checkWidget();
- if (listener == null) {
-// throw new MozillaError("" + SWT.ERROR_NULL_ARGUMENT);
- throw new SWTException("" + SWT.ERROR_NULL_ARGUMENT);
-// SWT.error (SWT.ERROR_NULL_ARGUMENT);
- }
- LocationListener[] newLocationListeners = new LocationListener[locationListeners.length + 1];
- System.arraycopy(locationListeners, 0, newLocationListeners, 0, locationListeners.length);
- locationListeners = newLocationListeners;
- locationListeners[locationListeners.length - 1] = listener;
-}
-
-/**
- * Adds the listener to receive events.
- * <p>
- *
- * @param listener the listener
- *
- * @exception IllegalArgumentException <ul>
- * <li>ERROR_NULL_ARGUMENT - if the listener is null</li>
- * </ul>
- *
- * @exception SWTError <ul>
- * <li>ERROR_THREAD_INVALID_ACCESS when called from the wrong thread</li>
- * <li>ERROR_WIDGET_DISPOSED when the widget has been disposed</li>
- * </ul>
- *
- * @since 3.0
- */
-public void addOpenWindowListener(OpenWindowListener listener) {
- checkWidget();
- if (listener == null) {
-// throw new MozillaError("" + SWT.ERROR_NULL_ARGUMENT);
- throw new SWTException("" + SWT.ERROR_NULL_ARGUMENT);
-// SWT.error(SWT.ERROR_NULL_ARGUMENT);
- }
- OpenWindowListener[] newOpenWindowListeners = new OpenWindowListener[openWindowListeners.length + 1];
- System.arraycopy(openWindowListeners, 0, newOpenWindowListeners, 0, openWindowListeners.length);
- openWindowListeners = newOpenWindowListeners;
- openWindowListeners[openWindowListeners.length - 1] = listener;
-}
-
-/**
- * Adds the listener to receive events.
- * <p>
- *
- * @param listener the listener
- *
- * @exception IllegalArgumentException <ul>
- * <li>ERROR_NULL_ARGUMENT - if the listener is null</li>
- * </ul>
- *
- * @exception SWTError <ul>
- * <li>ERROR_THREAD_INVALID_ACCESS when called from the wrong thread</li>
- * <li>ERROR_WIDGET_DISPOSED when the widget has been disposed</li>
- * </ul>
- *
- * @since 3.0
- */
-public void addProgressListener(ProgressListener listener) {
- checkWidget();
- if (listener == null) {
-// throw new MozillaError("" + SWT.ERROR_NULL_ARGUMENT);
- throw new SWTException("" + SWT.ERROR_NULL_ARGUMENT);
-// SWT.error (SWT.ERROR_NULL_ARGUMENT);
- }
- ProgressListener[] newProgressListeners = new ProgressListener[progressListeners.length + 1];
- System.arraycopy(progressListeners, 0, newProgressListeners, 0, progressListeners.length);
- progressListeners = newProgressListeners;
- progressListeners[progressListeners.length - 1] = listener;
-}
-
-/**
- * Adds the listener to receive events.
- * <p>
- *
- * @param listener the listener
- *
- * @exception IllegalArgumentException <ul>
- * <li>ERROR_NULL_ARGUMENT - if the listener is null</li>
- * </ul>
- *
- * @exception SWTError <ul>
- * <li>ERROR_THREAD_INVALID_ACCESS when called from the wrong thread</li>
- * <li>ERROR_WIDGET_DISPOSED when the widget has been disposed</li>
- * </ul>
- *
- * @since 3.0
- */
-public void addStatusTextListener(StatusTextListener listener) {
- checkWidget();
- if (listener == null) {
-// throw new MozillaError("" + SWT.ERROR_NULL_ARGUMENT);
- throw new SWTException("" + SWT.ERROR_NULL_ARGUMENT);
-// SWT.error (SWT.ERROR_NULL_ARGUMENT);
- }
- StatusTextListener[] newStatusTextListeners = new StatusTextListener[statusTextListeners.length + 1];
- System.arraycopy(statusTextListeners, 0, newStatusTextListeners, 0, statusTextListeners.length);
- statusTextListeners = newStatusTextListeners;
- statusTextListeners[statusTextListeners.length - 1] = listener;
-}
-
-/**
- * Adds the listener to receive events.
- * <p>
- *
- * @param listener the listener
- *
- * @exception IllegalArgumentException <ul>
- * <li>ERROR_NULL_ARGUMENT - if the listener is null</li>
- * </ul>
- *
- * @exception SWTError <ul>
- * <li>ERROR_THREAD_INVALID_ACCESS when called from the wrong thread</li>
- * <li>ERROR_WIDGET_DISPOSED when the widget has been disposed</li>
- * </ul>
- *
- * @since 3.0
- */
-public void addTitleListener(TitleListener listener) {
- checkWidget();
- if (listener == null) {
-// throw new MozillaError("" + SWT.ERROR_NULL_ARGUMENT);
- throw new SWTException("" + SWT.ERROR_NULL_ARGUMENT);
-// SWT.error(SWT.ERROR_NULL_ARGUMENT);
- }
- TitleListener[] newTitleListeners = new TitleListener[titleListeners.length + 1];
- System.arraycopy(titleListeners, 0, newTitleListeners, 0, titleListeners.length);
- titleListeners = newTitleListeners;
- titleListeners[titleListeners.length - 1] = listener;
-}
-
-/**
- * Adds the listener to receive events.
- * <p>
- *
- * @param listener the listener
- *
- * @exception IllegalArgumentException <ul>
- * <li>ERROR_NULL_ARGUMENT - if the listener is null</li>
- * </ul>
- *
- * @exception SWTError <ul>
- * <li>ERROR_THREAD_INVALID_ACCESS when called from the wrong thread</li>
- * <li>ERROR_WIDGET_DISPOSED when the widget has been disposed</li>
- * </ul>
- *
- * @since 3.0
- */
-public void addVisibilityWindowListener(VisibilityWindowListener listener) {
- checkWidget();
- if (listener == null) {
-// throw new MozillaError("" + SWT.ERROR_NULL_ARGUMENT);
- throw new SWTException("" + SWT.ERROR_NULL_ARGUMENT);
-// SWT.error(SWT.ERROR_NULL_ARGUMENT);
- }
- VisibilityWindowListener[] newVisibilityWindowListeners = new VisibilityWindowListener[visibilityWindowListeners.length + 1];
- System.arraycopy(visibilityWindowListeners, 0, newVisibilityWindowListeners, 0, visibilityWindowListeners.length);
- visibilityWindowListeners = newVisibilityWindowListeners;
- visibilityWindowListeners[visibilityWindowListeners.length - 1] = listener;
-}
-
-/**
- * Navigate to the previous session history item.
- *
- * @return <code>true</code> if the operation was successful and <code>false</code> otherwise
- *
- * @exception SWTError <ul>
- * <li>ERROR_THREAD_INVALID_ACCESS when called from the wrong thread</li>
- * <li>ERROR_WIDGET_DISPOSED when the widget has been disposed</li>
- * </ul>
- *
- * @see #forward
- *
- * @since 3.0
- */
-public boolean back() {
- checkWidget();
- int[] result = new int[1];
- int rc = webBrowser.QueryInterface(nsIWebNavigation.NS_IWEBNAVIGATION_IID, result);
- if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) error(XPCOM.NS_ERROR_NO_INTERFACE);
-
- nsIWebNavigation webNavigation = new nsIWebNavigation(result[0]);
- rc = webNavigation.GoBack();
- webNavigation.Release();
-
- return rc == XPCOM.NS_OK;
-}
-
-protected void checkSubclass() {
-// Edward
-/*
- String name = getClass().getName();
- int index = name.lastIndexOf('.');
- if (!name.substring(0, index + 1).equals(PACKAGE_PREFIX)) {
- SWT.error(SWT.ERROR_INVALID_SUBCLASS);
- }
-*/
-}
-
-void createCOMInterfaces() {
- // Create each of the interfaces that this object implements
- supports = new XPCOMObject(new int[]{2, 0, 0}){
- public int method0(int[] args) {return QueryInterface(args[0], args[1]);}
- public int method1(int[] args) {return AddRef();}
- public int method2(int[] args) {return Release();}
- };
-
- weakReference = new XPCOMObject(new int[]{2, 0, 0, 2}){
- public int method0(int[] args) {return QueryInterface(args[0], args[1]);}
- public int method1(int[] args) {return AddRef();}
- public int method2(int[] args) {return Release();}
- public int method3(int[] args) {return QueryReferent(args[0], args[1]);}
- };
-
- webProgressListener = new XPCOMObject(new int[]{2, 0, 0, 4, 6, 3, 4, 3}){
- public int method0(int[] args) {return QueryInterface(args[0], args[1]);}
- public int method1(int[] args) {return AddRef();}
- public int method2(int[] args) {return Release();}
- public int method3(int[] args) {return OnStateChange(args[0], args[1], args[2],args[3]);}
- public int method4(int[] args) {return OnProgressChange(args[0], args[1], args[2],args[3],args[4],args[5]);}
- public int method5(int[] args) {return OnLocationChange(args[0], args[1], args[2]);}
- public int method6(int[] args) {return OnStatusChange(args[0], args[1], args[2],args[3]);}
- public int method7(int[] args) {return OnSecurityChange(args[0], args[1], args[2]);}
- };
-
- webBrowserChrome = new XPCOMObject(new int[]{2, 0, 0, 2, 1, 1, 1, 1, 0, 2, 0, 1, 1}){
- public int method0(int[] args) {return QueryInterface(args[0], args[1]);}
- public int method1(int[] args) {return AddRef();}
- public int method2(int[] args) {return Release();}
- public int method3(int[] args) {return SetStatus(args[0], args[1]);}
- public int method4(int[] args) {return GetWebBrowser(args[0]);}
- public int method5(int[] args) {return SetWebBrowser(args[0]);}
- public int method6(int[] args) {return GetChromeFlags(args[0]);}
- public int method7(int[] args) {return SetChromeFlags(args[0]);}
- public int method8(int[] args) {return DestroyBrowserWindow();}
- public int method9(int[] args) {return SizeBrowserTo(args[0], args[1]);}
- public int method10(int[] args) {return ShowAsModal();}
- public int method11(int[] args) {return IsWindowModal(args[0]);}
- public int method12(int[] args) {return ExitModalEventLoop(args[0]);}
- };
-
- webBrowserChromeFocus = new XPCOMObject(new int[]{2, 0, 0, 0, 0}){
- public int method0(int[] args) {return QueryInterface(args[0], args[1]);}
- public int method1(int[] args) {return AddRef();}
- public int method2(int[] args) {return Release();}
- public int method3(int[] args) {return FocusNextElement();}
- public int method4(int[] args) {return FocusPrevElement();}
- };
-
- embeddingSiteWindow = new XPCOMObject(new int[]{2, 0, 0, 5, 5, 0, 1, 1, 1, 1, 1}){
- public int method0(int[] args) {return QueryInterface(args[0], args[1]);}
- public int method1(int[] args) {return AddRef();}
- public int method2(int[] args) {return Release();}
- public int method3(int[] args) {return SetDimensions(args[0], args[1], args[2], args[3], args[4]);}
- public int method4(int[] args) {return GetDimensions(args[0], args[1], args[2], args[3], args[4]);}
- public int method5(int[] args) {return SetFocus();}
- public int method6(int[] args) {return GetVisibility(args[0]);}
- public int method7(int[] args) {return SetVisibility(args[0]);}
- public int method8(int[] args) {return GetTitle(args[0]);}
- public int method9(int[] args) {return SetTitle(args[0]);}
- public int method10(int[] args) {return GetSiteWindow(args[0]);}
- };
-
- interfaceRequestor = new XPCOMObject(new int[]{2, 0, 0, 2}){
- public int method0(int[] args) {return QueryInterface(args[0], args[1]);}
- public int method1(int[] args) {return AddRef();}
- public int method2(int[] args) {return Release();}
- public int method3(int[] args) {return GetInterface(args[0], args[1]);}
- };
-
- supportsWeakReference = new XPCOMObject(new int[]{2, 0, 0, 1}){
- public int method0(int[] args) {return QueryInterface(args[0], args[1]);}
- public int method1(int[] args) {return AddRef();}
- public int method2(int[] args) {return Release();}
- public int method3(int[] args) {return GetWeakReference(args[0]);}
- };
-
- contextMenuListener = new XPCOMObject(new int[]{2, 0, 0, 3}){
- public int method0(int[] args) {return QueryInterface(args[0], args[1]);}
- public int method1(int[] args) {return AddRef();}
- public int method2(int[] args) {return Release();}
- public int method3(int[] args) {return OnShowContextMenu(args[0],args[1],args[2]);}
- };
-
- uriContentListener = new XPCOMObject(new int[]{2, 0, 0, 2, 5, 3, 4, 1, 1, 1, 1}) {
- public int method0(int[] args) {return QueryInterface(args[0], args[1]);}
- public int method1(int[] args) {return AddRef();}
- public int method2(int[] args) {return Release();}
- public int method3(int[] args) {return OnStartURIOpen(args[0], args[1]);}
- public int method4(int[] args) {return DoContent(args[0], args[1], args[2], args[3], args[4]);}
- public int method5(int[] args) {return IsPreferred(args[0], args[1], args[2]);}
- public int method6(int[] args) {return CanHandleContent(args[0], args[1], args[2], args[3]);}
- public int method7(int[] args) {return GetLoadCookie(args[0]);}
- public int method8(int[] args) {return SetLoadCookie(args[0]);}
- public int method9(int[] args) {return GetParentContentListener(args[0]);}
- public int method10(int[] args) {return SetParentContentListener(args[0]);}
- };
-
- tooltipListener = new XPCOMObject(new int[]{2, 0, 0, 3, 0}) {
- public int method0(int[] args) {return QueryInterface(args[0], args[1]);}
- public int method1(int[] args) {return AddRef();}
- public int method2(int[] args) {return Release();}
- public int method3(int[] args) {return OnShowTooltip(args[0], args[1], args[2]);}
- public int method4(int[] args) {return OnHideTooltip();}
- };
-
- domEventListener = new XPCOMObject(new int[]{2, 0, 0, 1}) {
- public int method0(int[] args) {return QueryInterface(args[0], args[1]);}
- public int method1(int[] args) {return AddRef();}
- public int method2(int[] args) {return Release();}
- public int method3(int[] args) {return HandleEvent(args[0]);}
- };
-
- domScrollListener = new XPCOMObject(new int[]{2, 0, 0, 1, 1, 1, 1}) {
- public int method0(int[] args) {return QueryInterface(args[0], args[1]);}
- public int method1(int[] args) {return AddRef();}
- public int method2(int[] args) {return Release();}
- public int method3(int[] args) {return HandleEvent(args[0]);}
- public int method4(int[] args) {return Overflow(args[0]);}
- public int method5(int[] args) {return Underflow(args[0]);}
- public int method6(int[] args) {return OverflowChanged(args[0]);}
- };
-
- scrollPositionListener = new XPCOMObject(new int[]{2, 0, 0, 3, 3}) {
- public int method0(int[] args) {return QueryInterface(args[0], args[1]);}
- public int method1(int[] args) {return AddRef();}
- public int method2(int[] args) {return Release();}
- public int method3(int[] args) {return ScrollPositionWillChange(args[0], args[1], args[2]);}
- public int method4(int[] args) {return ScrollPositionDidChange(args[0], args[1], args[2]);}
- };
-
- compositeListener = new XPCOMObject(new int[]{2, 0, 0, 5, 5, 5, 5}) {
- public int method0(int[] args) {return QueryInterface(args[0], args[1]);}
- public int method1(int[] args) {return AddRef();}
- public int method2(int[] args) {return Release();}
- public int method3(int[] args) {return WillRefreshRegion(args[0], args[1], args[2], args[3], args[4]);}
- public int method4(int[] args) {return DidRefreshRegion(args[0], args[1], args[2], args[3], args[4]);}
- public int method5(int[] args) {return WillRefreshRect(args[0], args[1], args[2], args[3], args[4]);}
- public int method6(int[] args) {return DidRefreshRect(args[0], args[1], args[2], args[3], args[4]);}
- };
-
- // IVpeResizeListener
- resizeListener = new XPCOMObject(new int[]{2,0,0,6}) {
- public int method0(int[] args) {return QueryInterface(args[0], args[1]);}
- public int method1(int[] args) {return AddRef();}
- public int method2(int[] args) {return Release();}
- public int method3(int[] args) {return EndResizing(args[0], args[1], args[2], args[3], args[4], args[5]);}
- };
-
-}
-
-void disposeCOMInterfaces() {
- if (supports != null) {
- supports.dispose();
- supports = null;
- }
- if (weakReference != null) {
- weakReference.dispose();
- weakReference = null;
- }
- if (webProgressListener != null) {
- webProgressListener.dispose();
- webProgressListener = null;
- }
- if (webBrowserChrome != null) {
- webBrowserChrome.dispose();
- webBrowserChrome = null;
- }
- if (webBrowserChromeFocus != null) {
- webBrowserChromeFocus.dispose();
- webBrowserChromeFocus = null;
- }
- if (embeddingSiteWindow != null) {
- embeddingSiteWindow.dispose();
- embeddingSiteWindow = null;
- }
- if (interfaceRequestor != null) {
- interfaceRequestor.dispose();
- interfaceRequestor = null;
- }
- if (supportsWeakReference != null) {
- supportsWeakReference.dispose();
- supportsWeakReference = null;
- }
- if (contextMenuListener != null) {
- contextMenuListener.dispose();
- contextMenuListener = null;
- }
- if (uriContentListener != null) {
- uriContentListener.dispose();
- uriContentListener = null;
- }
- if (tooltipListener != null) {
- tooltipListener.dispose();
- tooltipListener = null;
- }
- if (domEventListener != null) {
- domEventListener.dispose();
- domEventListener = null;
- }
- if (domScrollListener != null) {
- domScrollListener.dispose();
- domScrollListener = null;
- }
- if (scrollPositionListener != null) {
- scrollPositionListener.dispose();
- scrollPositionListener = null;
- }
- if (compositeListener != null) {
- compositeListener.dispose();
- compositeListener = null;
- }
-
- if (resizeListener != null) {
- resizeListener.dispose();
- resizeListener = null;
- }
-}
-
-/**
- * Navigate to the next session history item.
- *
- * @return <code>true</code> if the operation was successful and <code>false</code> otherwise
- *
- * @exception SWTError <ul>
- * <li>ERROR_THREAD_INVALID_ACCESS when called from the wrong thread</li>
- * <li>ERROR_WIDGET_DISPOSED when the widget has been disposed</li>
- * </ul>
- *
- * @see #back
- *
- * @since 3.0
- */
-public boolean forward() {
- checkWidget();
- int[] result = new int[1];
- int rc = webBrowser.QueryInterface(nsIWebNavigation.NS_IWEBNAVIGATION_IID, result);
- if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) error(XPCOM.NS_ERROR_NO_INTERFACE);
-
- nsIWebNavigation webNavigation = new nsIWebNavigation(result[0]);
- rc = webNavigation.GoForward();
- webNavigation.Release();
-
- return rc == XPCOM.NS_OK;
-}
-
-/**
- * Returns the current URL.
- *
- * @return the current URL or an empty <code>String</code> if there is no current URL
- *
- * @exception SWTError <ul>
- * <li>ERROR_THREAD_INVALID_ACCESS when called from the wrong thread</li>
- * <li>ERROR_WIDGET_DISPOSED when the widget has been disposed</li>
- * </ul>
- *
- * @see #setUrl
- *
- * @since 3.0
- */
-public String getUrl() {
- checkWidget();
- int[] result = new int[1];
- int rc = webBrowser.QueryInterface(nsIWebNavigation.NS_IWEBNAVIGATION_IID, result);
- if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) error(XPCOM.NS_ERROR_NO_INTERFACE);
-
- nsIWebNavigation webNavigation = new nsIWebNavigation(result[0]);
- int[] aCurrentURI = new int[1];
- rc = webNavigation.GetCurrentURI(aCurrentURI);
- if (rc != XPCOM.NS_OK) error(rc);
- /*
- * This code is intentionally commented. aCurrentURI is 0
- * when no location has previously been set.
- */
- //if (aCurrentURI[0] == 0) error(XPCOM.NS_ERROR_NO_INTERFACE);
- webNavigation.Release();
-
- byte[] dest = null;
- if (aCurrentURI[0] != 0) {
- nsIURI uri = new nsIURI(aCurrentURI[0]);
- int aSpec = XPCOM.nsCString_new();
- rc = uri.GetSpec(aSpec);
- if (rc != XPCOM.NS_OK) error(rc);
- int length = XPCOM.nsCString_Length(aSpec);
- int buffer = XPCOM.nsCString_get(aSpec);
- dest = new byte[length];
- XPCOM.memmove(dest, buffer, length);
- XPCOM.nsCString_delete(aSpec);
- uri.Release();
- }
- return dest != null ? new String(dest) : ""; //$NON-NLS-1$
-}
-
-/**
- * Returns <code>true</code> if the receiver can navigate to the
- * previous session history item, and <code>false</code> otherwise.
- *
- * @return the receiver's back command enabled state
- *
- * @exception SWTException <ul>
- * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
- * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
- * </ul>
- *
- * @see #back
- */
-public boolean isBackEnabled() {
- checkWidget();
- int[] result = new int[1];
- int rc = webBrowser.QueryInterface(nsIWebNavigation.NS_IWEBNAVIGATION_IID, result);
- if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) error(XPCOM.NS_ERROR_NO_INTERFACE);
-
- nsIWebNavigation webNavigation = new nsIWebNavigation(result[0]);
- boolean[] aCanGoBack = new boolean[1];
- rc = webNavigation.GetCanGoBack(aCanGoBack);
- webNavigation.Release();
-
- return aCanGoBack[0];
-}
-
-/**
- * Returns <code>true</code> if the receiver can navigate to the
- * next session history item, and <code>false</code> otherwise.
- *
- * @return the receiver's forward command enabled state
- *
- * @exception SWTException <ul>
- * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
- * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
- * </ul>
- *
- * @see #forward
- */
-public boolean isForwardEnabled() {
- checkWidget();
- int[] result = new int[1];
- int rc = webBrowser.QueryInterface(nsIWebNavigation.NS_IWEBNAVIGATION_IID, result);
- if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) error(XPCOM.NS_ERROR_NO_INTERFACE);
-
- nsIWebNavigation webNavigation = new nsIWebNavigation(result[0]);
- boolean[] aCanGoForward = new boolean[1];
- rc = webNavigation.GetCanGoForward(aCanGoForward);
- webNavigation.Release();
-
- return aCanGoForward[0];
-}
-
-public static String error(int code) {
- throw new XPCOMError(code);
-}
-
-void onDispose() {
-// nsIViewManager viewManager = getViewManager();
-// if (viewManager != null) {
-// viewManager.removeCompositeListener(compositeListener);
-// viewManager.Release();
-// }
- if (presContext != null) {
- presContext.Release();
- }
- if (scrollableView != null) {
- scrollableView.removeScrollPositionListener(scrollPositionListener);
- scrollableView.Release();
- }
- nsIDOMWindow domWindow = getDOMWindow();
- int aEventTarget = nsISupports.queryInterface(domWindow.getAddress(), nsIDOMEventTarget.NS_IDOMEVENTTARGET_IID);
- nsIDOMEventTarget domEventTarget = new nsIDOMEventTarget(aEventTarget);
- domEventTarget.removeEventListener("overflow", domEventListener);
- domEventTarget.removeEventListener("underflow", domEventListener);
- domEventTarget.removeEventListener("overflowchanged", domEventListener);
- domEventTarget.Release();
- domWindow.Release();
-
- int rc = webBrowser.RemoveWebBrowserListener(weakReference.getAddress(), nsIWebProgressListener.NS_IWEBPROGRESSLISTENER_IID);
- if (rc != XPCOM.NS_OK) error(rc);
-
- rc = webBrowser.SetParentURIContentListener(0);
- if (rc != XPCOM.NS_OK) error(rc);
-
- int[] result = new int[1];
- rc = webBrowser.QueryInterface(nsIBaseWindow.NS_IBASEWINDOW_IID, result);
- if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) error(XPCOM.NS_ERROR_NO_INTERFACE);
-
- nsIBaseWindow baseWindow = new nsIBaseWindow(result[0]);
- rc = baseWindow.Destroy();
- if (rc != XPCOM.NS_OK) error(rc);
- baseWindow.Release();
-
- Release();
- webBrowser.Release();
-
- if (tip != null && !tip.isDisposed()) tip.dispose();
- tip = null;
-
- BrowserCount--;
- /*
- * This code is intentionally commented. It is not possible to reinitialize
- * Mozilla once it has been terminated. NS_InitEmbedding always fails after
- * NS_TermEmbedding has been called. The workaround is to call NS_InitEmbedding
- * once and never call NS_TermEmbedding.
- */
-// if (BrowserCount == 0) {
-// if (AppShell != null) {
-// // Shutdown the appshell service.
-// rc = AppShell.Spindown();
-// if (rc != XPCOM.NS_OK) error(rc);
-// AppShell.Release();
-// AppShell = null;
-// }
-// if (LocProvider != null) LocProvider.Release();
-// LocProvider = null;
-// WindowCreator.Release();
-// WindowCreator = null;
-// PromptService.Release();
-// PromptService = null;
-// XPCOM.NS_TermEmbedding();
-// mozilla = false;
-// }
-}
-
-void onFocusGained() {
- int[] result = new int[1];
- int rc = webBrowser.QueryInterface(nsIWebBrowserFocus.NS_IWEBBROWSERFOCUS_IID, result);
- if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) error(XPCOM.NS_ERROR_NO_INTERFACE);
-
- nsIWebBrowserFocus webBrowserFocus = new nsIWebBrowserFocus(result[0]);
- rc = webBrowserFocus.Activate();
- if (rc != XPCOM.NS_OK) error(rc);
- webBrowserFocus.Release();
-
- nsISelectionController selectionController = getSelectionController();
- selectionController.setCaretEnabled(true);
-}
-
-void onFocusLost() {
- int[] result = new int[1];
- int rc = webBrowser.QueryInterface(nsIWebBrowserFocus.NS_IWEBBROWSERFOCUS_IID, result);
- if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) error(XPCOM.NS_ERROR_NO_INTERFACE);
-
- nsIWebBrowserFocus webBrowserFocus = new nsIWebBrowserFocus(result[0]);
- rc = webBrowserFocus.Deactivate();
- if (rc != XPCOM.NS_OK) error(rc);
- webBrowserFocus.Release();
-}
-
-void SetFocusAtFirstElement() {
- int[] result = new int[1];
- int rc = webBrowser.QueryInterface(nsIWebBrowserFocus.NS_IWEBBROWSERFOCUS_IID, result);
- if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) error(XPCOM.NS_ERROR_NO_INTERFACE);
-
- nsIWebBrowserFocus webBrowserFocus = new nsIWebBrowserFocus(result[0]);
- rc = webBrowserFocus.SetFocusAtFirstElement();
- if (rc != XPCOM.NS_OK) error(rc);
- webBrowserFocus.Release();
-}
-
-void onResize() {
- hideResizer();
- Rectangle rect = getClientArea();
- int[] result = new int[1];
- int rc = webBrowser.QueryInterface(nsIBaseWindow.NS_IBASEWINDOW_IID, result);
- if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) error(XPCOM.NS_ERROR_NO_INTERFACE);
-
- nsIBaseWindow baseWindow = new nsIBaseWindow(result[0]);
- rc = baseWindow.SetPositionAndSize(rect.x, rect.y, rect.width, rect.height, true);
- if (rc != XPCOM.NS_OK) error(rc);
- baseWindow.Release();
- showResizer();
-
-// setScrollBars();
-}
-
-/**
- * Refresh the current page.
- *
- * @exception SWTError <ul>
- * <li>ERROR_THREAD_INVALID_ACCESS when called from the wrong thread</li>
- * <li>ERROR_WIDGET_DISPOSED when the widget has been disposed</li>
- * </ul>
- *
- * @since 3.0
- */
-public void refresh() {
- checkWidget();
- int[] result = new int[1];
- int rc = webBrowser.QueryInterface(nsIWebNavigation.NS_IWEBNAVIGATION_IID, result);
- if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) error(XPCOM.NS_ERROR_NO_INTERFACE);
-
- nsIWebNavigation webNavigation = new nsIWebNavigation(result[0]);
- rc = webNavigation.Reload(nsIWebNavigation.LOAD_FLAGS_NONE);
- /*
- * Feature in Mozilla. Reload returns an error code NS_ERROR_INVALID_POINTER
- * when it is called immediately after a request to load a new document using
- * LoadURI. The workaround is to ignore this error code.
- */
- if (rc != XPCOM.NS_OK && rc != XPCOM.NS_ERROR_INVALID_POINTER) error(rc);
- webNavigation.Release();
-}
-
-/**
- * Removes the listener.
- *
- * @param listener the listener
- *
- * @exception IllegalArgumentException <ul>
- * <li>ERROR_NULL_ARGUMENT - if the listener is null</li>
- * </ul>
- *
- * @exception SWTError <ul>
- * <li>ERROR_THREAD_INVALID_ACCESS when called from the wrong thread</li>
- * <li>ERROR_WIDGET_DISPOSED when the widget has been disposed</li>
- * </ul>
- *
- * @since 3.0
- */
-public void removeCloseWindowListener(CloseWindowListener listener) {
- checkWidget();
- if (listener == null) {
-// throw new MozillaError("" + SWT.ERROR_NULL_ARGUMENT);
- throw new SWTException("" + SWT.ERROR_NULL_ARGUMENT);
-// SWT.error(SWT.ERROR_NULL_ARGUMENT);
- }
- if (closeWindowListeners.length == 0) return;
- int index = -1;
- for (int i = 0; i < closeWindowListeners.length; i++) {
- if (listener == closeWindowListeners[i]){
- index = i;
- break;
- }
- }
- if (index == -1) return;
- if (closeWindowListeners.length == 1) {
- closeWindowListeners = new CloseWindowListener[0];
- return;
- }
- CloseWindowListener[] newCloseWindowListeners = new CloseWindowListener[closeWindowListeners.length - 1];
- System.arraycopy(closeWindowListeners, 0, newCloseWindowListeners, 0, index);
- System.arraycopy(closeWindowListeners, index + 1, newCloseWindowListeners, index, closeWindowListeners.length - index - 1);
- closeWindowListeners = newCloseWindowListeners;
-}
-
-/**
- * Removes the listener.
- *
- * @param listener the listener
- *
- * @exception IllegalArgumentException <ul>
- * <li>ERROR_NULL_ARGUMENT - if the listener is null</li>
- * </ul>
- *
- * @exception SWTError <ul>
- * <li>ERROR_THREAD_INVALID_ACCESS when called from the wrong thread</li>
- * <li>ERROR_WIDGET_DISPOSED when the widget has been disposed</li>
- * </ul>
- *
- * @since 3.0
- */
-public void removeLocationListener(LocationListener listener) {
- checkWidget();
- if (listener == null) {
-// throw new MozillaError("" + SWT.ERROR_NULL_ARGUMENT);
- throw new SWTException("" + SWT.ERROR_NULL_ARGUMENT);
-// SWT.error(SWT.ERROR_NULL_ARGUMENT);
- }
- if (locationListeners.length == 0) return;
- int index = -1;
- for (int i = 0; i < locationListeners.length; i++) {
- if (listener == locationListeners[i]){
- index = i;
- break;
- }
- }
- if (index == -1) return;
- if (locationListeners.length == 1) {
- locationListeners = new LocationListener[0];
- return;
- }
- LocationListener[] newLocationListeners = new LocationListener[locationListeners.length - 1];
- System.arraycopy(locationListeners, 0, newLocationListeners, 0, index);
- System.arraycopy(locationListeners, index + 1, newLocationListeners, index, locationListeners.length - index - 1);
- locationListeners = newLocationListeners;
-}
-
-/**
- * Removes the listener.
- *
- * @param listener the listener
- *
- * @exception IllegalArgumentException <ul>
- * <li>ERROR_NULL_ARGUMENT - if the listener is null</li>
- * </ul>
- *
- * @exception SWTError <ul>
- * <li>ERROR_THREAD_INVALID_ACCESS when called from the wrong thread</li>
- * <li>ERROR_WIDGET_DISPOSED when the widget has been disposed</li>
- * </ul>
- *
- * @since 3.0
- */
-public void removeOpenWindowListener(OpenWindowListener listener) {
- checkWidget();
- if (listener == null) {
-// throw new MozillaError("" + SWT.ERROR_NULL_ARGUMENT);
- throw new SWTException("" + SWT.ERROR_NULL_ARGUMENT);
-// SWT.error(SWT.ERROR_NULL_ARGUMENT);
- }
- if (openWindowListeners.length == 0) return;
- int index = -1;
- for (int i = 0; i < openWindowListeners.length; i++) {
- if (listener == openWindowListeners[i]){
- index = i;
- break;
- }
- }
- if (index == -1) return;
- if (openWindowListeners.length == 1) {
- openWindowListeners = new OpenWindowListener[0];
- return;
- }
- OpenWindowListener[] newOpenWindowListeners = new OpenWindowListener[openWindowListeners.length - 1];
- System.arraycopy(openWindowListeners, 0, newOpenWindowListeners, 0, index);
- System.arraycopy(openWindowListeners, index + 1, newOpenWindowListeners, index, openWindowListeners.length - index - 1);
- openWindowListeners = newOpenWindowListeners;
-}
-
-/**
- * Removes the listener.
- *
- * @param listener the listener
- *
- * @exception IllegalArgumentException <ul>
- * <li>ERROR_NULL_ARGUMENT - if the listener is null</li>
- * </ul>
- *
- * @exception SWTError <ul>
- * <li>ERROR_THREAD_INVALID_ACCESS when called from the wrong thread</li>
- * <li>ERROR_WIDGET_DISPOSED when the widget has been disposed</li>
- * </ul>
- *
- * @since 3.0
- */
-public void removeProgressListener(ProgressListener listener) {
- checkWidget();
- if (listener == null) {
-// throw new MozillaError("" + SWT.ERROR_NULL_ARGUMENT);
- throw new SWTException("" + SWT.ERROR_NULL_ARGUMENT);
-// SWT.error(SWT.ERROR_NULL_ARGUMENT);
- }
- if (progressListeners.length == 0) return;
- int index = -1;
- for (int i = 0; i < progressListeners.length; i++) {
- if (listener == progressListeners[i]){
- index = i;
- break;
- }
- }
- if (index == -1) return;
- if (progressListeners.length == 1) {
- progressListeners = new ProgressListener[0];
- return;
- }
- ProgressListener[] newProgressListeners = new ProgressListener[progressListeners.length - 1];
- System.arraycopy(progressListeners, 0, newProgressListeners, 0, index);
- System.arraycopy(progressListeners, index + 1, newProgressListeners, index, progressListeners.length - index - 1);
- progressListeners = newProgressListeners;
-}
-
-/**
- * Removes the listener.
- *
- * @param listener the listener
- *
- * @exception IllegalArgumentException <ul>
- * <li>ERROR_NULL_ARGUMENT - if the listener is null</li>
- * </ul>
- *
- * @exception SWTError <ul>
- * <li>ERROR_THREAD_INVALID_ACCESS when called from the wrong thread</li>
- * <li>ERROR_WIDGET_DISPOSED when the widget has been disposed</li>
- * </ul>
- *
- * @since 3.0
- */
-public void removeStatusTextListener(StatusTextListener listener) {
- checkWidget();
- if (listener == null) {
-// throw new MozillaError("" + SWT.ERROR_NULL_ARGUMENT);
- throw new SWTException("" + SWT.ERROR_NULL_ARGUMENT);
-// SWT.error(SWT.ERROR_NULL_ARGUMENT);
- }
- if (statusTextListeners.length == 0) return;
- int index = -1;
- for (int i = 0; i < statusTextListeners.length; i++) {
- if (listener == statusTextListeners[i]){
- index = i;
- break;
- }
- }
- if (index == -1) return;
- if (statusTextListeners.length == 1) {
- statusTextListeners = new StatusTextListener[0];
- return;
- }
- StatusTextListener[] newStatusTextListeners = new StatusTextListener[statusTextListeners.length - 1];
- System.arraycopy(statusTextListeners, 0, newStatusTextListeners, 0, index);
- System.arraycopy(statusTextListeners, index + 1, newStatusTextListeners, index, statusTextListeners.length - index - 1);
- statusTextListeners = newStatusTextListeners;
-}
-
-/**
- * Removes the listener.
- *
- * @param listener the listener
- *
- * @exception IllegalArgumentException <ul>
- * <li>ERROR_NULL_ARGUMENT - if the listener is null</li>
- * </ul>
- *
- * @exception SWTError <ul>
- * <li>ERROR_THREAD_INVALID_ACCESS when called from the wrong thread</li>
- * <li>ERROR_WIDGET_DISPOSED when the widget has been disposed</li>
- * </ul>
- *
- * @since 3.0
- */
-public void removeTitleListener(TitleListener listener) {
- checkWidget();
- if (listener == null) {
-// throw new MozillaError("" + SWT.ERROR_NULL_ARGUMENT);
- throw new SWTException("" + SWT.ERROR_NULL_ARGUMENT);
-// SWT.error(SWT.ERROR_NULL_ARGUMENT);
- }
- if (titleListeners.length == 0) return;
- int index = -1;
- for (int i = 0; i < titleListeners.length; i++) {
- if (listener == titleListeners[i]){
- index = i;
- break;
- }
- }
- if (index == -1) return;
- if (titleListeners.length == 1) {
- titleListeners = new TitleListener[0];
- return;
- }
- TitleListener[] newTitleListeners = new TitleListener[titleListeners.length - 1];
- System.arraycopy(titleListeners, 0, newTitleListeners, 0, index);
- System.arraycopy(titleListeners, index + 1, newTitleListeners, index, titleListeners.length - index - 1);
- titleListeners = newTitleListeners;
-}
-
-/**
- * Removes the listener.
- *
- * @param listener the listener
- *
- * @exception IllegalArgumentException <ul>
- * <li>ERROR_NULL_ARGUMENT - if the listener is null</li>
- * </ul>
- *
- * @exception SWTError <ul>
- * <li>ERROR_THREAD_INVALID_ACCESS when called from the wrong thread</li>
- * <li>ERROR_WIDGET_DISPOSED when the widget has been disposed</li>
- * </ul>
- *
- * @since 3.0
- */
-public void removeVisibilityWindowListener(VisibilityWindowListener listener) {
- checkWidget();
- if (listener == null) {
-// throw new MozillaError("" + SWT.ERROR_NULL_ARGUMENT);
- throw new SWTException("" + SWT.ERROR_NULL_ARGUMENT);
-// SWT.error(SWT.ERROR_NULL_ARGUMENT);
- }
- if (visibilityWindowListeners.length == 0) return;
- int index = -1;
- for (int i = 0; i < visibilityWindowListeners.length; i++) {
- if (listener == visibilityWindowListeners[i]){
- index = i;
- break;
- }
- }
- if (index == -1) return;
- if (visibilityWindowListeners.length == 1) {
- visibilityWindowListeners = new VisibilityWindowListener[0];
- return;
- }
- VisibilityWindowListener[] newVisibilityWindowListeners = new VisibilityWindowListener[visibilityWindowListeners.length - 1];
- System.arraycopy(visibilityWindowListeners, 0, newVisibilityWindowListeners, 0, index);
- System.arraycopy(visibilityWindowListeners, index + 1, newVisibilityWindowListeners, index, visibilityWindowListeners.length - index - 1);
- visibilityWindowListeners = newVisibilityWindowListeners;
-}
-
-/**
- * Renders HTML.
- *
- * @param html the HTML content to be rendered
- *
- * @return true if the operation was successful and false otherwise.
- *
- * @exception IllegalArgumentException <ul>
- * <li>ERROR_NULL_ARGUMENT - if the html is null</li>
- * </ul>
- *
- * @exception SWTError <ul>
- * <li>ERROR_THREAD_INVALID_ACCESS when called from the wrong thread</li>
- * <li>ERROR_WIDGET_DISPOSED when the widget has been disposed</li>
- * </ul>
- *
- * @see #setUrl
- *
- * @since 3.0
- */
-public boolean setText(String html) {
- checkWidget();
- if (html == null) {
-// throw new MozillaError("" + SWT.ERROR_NULL_ARGUMENT);
- throw new SWTException("" + SWT.ERROR_NULL_ARGUMENT);
-// SWT.error(SWT.ERROR_NULL_ARGUMENT);
- }
- int[] result = new int[1];
- int rc = webBrowser.QueryInterface(nsIWebNavigation.NS_IWEBNAVIGATION_IID, result);
- if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) error(XPCOM.NS_ERROR_NO_INTERFACE);
-
- nsIWebNavigation webNavigation = new nsIWebNavigation(result[0]);
- /*
- * Note. Stop any pending request. This is required to avoid displaying a
- * blank page as a result of consecutive calls to setUrl and/or setText.
- * The previous request would otherwise render the new html content and
- * reset the html field before the browser actually navigates to the blank
- * page as requested below.
- */
- rc = webNavigation.Stop(nsIWebNavigation.STOP_ALL);
- if (rc != XPCOM.NS_OK) error(rc);
- this.html = html;
- char[] arg = "about:blank".toCharArray(); //$NON-NLS-1$
- char[] c = new char[arg.length+1];
- System.arraycopy(arg,0,c,0,arg.length);
- rc = webNavigation.LoadURI(c, nsIWebNavigation.LOAD_FLAGS_NONE, 0, 0, 0);
- webNavigation.Release();
- return rc == XPCOM.NS_OK;
-}
-
-/**
- * Loads a URL.
- *
- * @param url the URL to be loaded
- *
- * @return true if the operation was successful and false otherwise.
- *
- * @exception IllegalArgumentException <ul>
- * <li>ERROR_NULL_ARGUMENT - if the url is null</li>
- * </ul>
- *
- * @exception SWTError <ul>
- * <li>ERROR_THREAD_INVALID_ACCESS when called from the wrong thread</li>
- * <li>ERROR_WIDGET_DISPOSED when the widget has been disposed</li>
- * </ul>
- *
- * @see #getUrl
- *
- * @since 3.0
- */
-public boolean setUrl(String url) {
- checkWidget();
- if (url == null) {
-// throw new MozillaError("" + SWT.ERROR_NULL_ARGUMENT);
- throw new SWTException("" + SWT.ERROR_NULL_ARGUMENT);
-// SWT.error(SWT.ERROR_NULL_ARGUMENT);
- }
- int[] result = new int[1];
- int rc = webBrowser.QueryInterface(nsIWebNavigation.NS_IWEBNAVIGATION_IID, result);
- if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) error(XPCOM.NS_ERROR_NO_INTERFACE);
-
- nsIWebNavigation webNavigation = new nsIWebNavigation(result[0]);
- char[] arg = url.toCharArray();
- char[] c = new char[arg.length+1];
- System.arraycopy(arg,0,c,0,arg.length);
- rc = webNavigation.LoadURI(c, nsIWebNavigation.LOAD_FLAGS_NONE, 0, 0, 0);
- webNavigation.Release();
- return rc == XPCOM.NS_OK;
-}
-
-/**
- * Stop any loading and rendering activity.
- *
- * @exception SWTError <ul>
- * <li>ERROR_THREAD_INVALID_ACCESS when called from the wrong thread</li>
- * <li>ERROR_WIDGET_DISPOSED when the widget has been disposed</li>
- * </ul>
- *
- * @since 3.0
- */
-public void stop() {
- checkWidget();
- int[] result = new int[1];
- int rc = webBrowser.QueryInterface(nsIWebNavigation.NS_IWEBNAVIGATION_IID, result);
- if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) error(XPCOM.NS_ERROR_NO_INTERFACE);
-
- nsIWebNavigation webNavigation = new nsIWebNavigation(result[0]);
- rc = webNavigation.Stop(nsIWebNavigation.STOP_ALL);
- if (rc != XPCOM.NS_OK) error(rc);
- webNavigation.Release();
-}
-
-/* nsISupports */
-
-int QueryInterface(int riid, int ppvObject) {
- if (riid == 0 || ppvObject == 0) return XPCOM.NS_ERROR_NO_INTERFACE;
-
- nsID guid = new nsID();
- XPCOM.memmove(guid, riid, nsID.sizeof);
-
- if (guid.Equals(nsISupports.NS_ISUPPORTS_IID)) {
- XPCOM.memmove(ppvObject, new int[] {supports.getAddress()}, 4);
- AddRef();
- return XPCOM.NS_OK;
- }
- if (guid.Equals(nsIWeakReference.NS_IWEAKREFERENCE_IID)) {
- XPCOM.memmove(ppvObject, new int[] {weakReference.getAddress()}, 4);
- AddRef();
- return XPCOM.NS_OK;
- }
- if (guid.Equals(nsIWebProgressListener.NS_IWEBPROGRESSLISTENER_IID)) {
- XPCOM.memmove(ppvObject, new int[] {webProgressListener.getAddress()}, 4);
- AddRef();
- return XPCOM.NS_OK;
- }
- if (guid.Equals(nsIWebBrowserChrome.NS_IWEBBROWSERCHROME_IID)) {
- XPCOM.memmove(ppvObject, new int[] {webBrowserChrome.getAddress()}, 4);
- AddRef();
- return XPCOM.NS_OK;
- }
- if (guid.Equals(nsIWebBrowserChromeFocus.NS_IWEBBROWSERCHROMEFOCUS_IID)) {
- XPCOM.memmove(ppvObject, new int[] {webBrowserChromeFocus.getAddress()}, 4);
- AddRef();
- return XPCOM.NS_OK;
- }
- if (guid.Equals(nsIEmbeddingSiteWindow.NS_IEMBEDDINGSITEWINDOW_IID)) {
- XPCOM.memmove(ppvObject, new int[] {embeddingSiteWindow.getAddress()}, 4);
- AddRef();
- return XPCOM.NS_OK;
- }
- if (guid.Equals(nsIInterfaceRequestor.NS_IINTERFACEREQUESTOR_IID)) {
- XPCOM.memmove(ppvObject, new int[] {interfaceRequestor.getAddress()}, 4);
- AddRef();
- return XPCOM.NS_OK;
- }
- if (guid.Equals(nsISupportsWeakReference.NS_ISUPPORTSWEAKREFERENCE_IID)) {
- XPCOM.memmove(ppvObject, new int[] {supportsWeakReference.getAddress()}, 4);
- AddRef();
- return XPCOM.NS_OK;
- }
- if (guid.Equals(nsIContextMenuListener.NS_ICONTEXTMENULISTENER_IID)) {
- XPCOM.memmove(ppvObject, new int[] {contextMenuListener.getAddress()}, 4);
- AddRef();
- return XPCOM.NS_OK;
- }
- if (guid.Equals(nsIURIContentListener.NS_IURICONTENTLISTENER_IID)) {
- XPCOM.memmove(ppvObject, new int[] {uriContentListener.getAddress()}, 4);
- AddRef();
- return XPCOM.NS_OK;
- }
- if (guid.Equals(nsITooltipListener.NS_ITOOLTIPLISTENER_IID)) {
- XPCOM.memmove(ppvObject, new int[] {tooltipListener.getAddress()}, 4);
- AddRef();
- return XPCOM.NS_OK;
- }
- if (guid.Equals(nsIDOMEventListener.NS_IDOMEVENTLISTENER_IID)) {
- XPCOM.memmove(ppvObject, new int[] {domEventListener.getAddress()}, 4);
- AddRef();
- return XPCOM.NS_OK;
- }
- if (guid.Equals(nsIDOMScrollListener.NS_IDOMSCROLLLISTENER_IID)) {
- XPCOM.memmove(ppvObject, new int[] {domScrollListener.getAddress()}, 4);
- AddRef();
- return XPCOM.NS_OK;
- }
- if (guid.Equals(nsIScrollPositionListener.NS_ISCROLLPOSITIONLISTENER_IID)) {
- XPCOM.memmove(ppvObject, new int[] {scrollPositionListener.getAddress()}, 4);
- AddRef();
- return XPCOM.NS_OK;
- }
- if (guid.Equals(nsICompositeListener.NS_ICOMPOSITELISTENER_IID)) {
- XPCOM.memmove(ppvObject, new int[] {compositeListener.getAddress()}, 4);
- AddRef();
- return XPCOM.NS_OK;
- }
- if (MozillaDebug.printVisualNoInterface) {
- System.out.println("MozillaBrowser - NO INTERFACE: " + guid.ToString());
- }
- XPCOM.memmove(ppvObject, new int[] {0}, 4);
- return XPCOM.NS_ERROR_NO_INTERFACE;
-}
-
-int AddRef() {
- refCount++;
- return refCount;
-}
-
-int Release() {
- refCount--;
- if (refCount == 0) disposeCOMInterfaces();
- return refCount;
-}
-
-/* nsIWeakReference */
-
-int QueryReferent(int riid, int ppvObject) {
- return QueryInterface(riid,ppvObject);
-}
-
-/* nsIInterfaceRequestor */
-
-int GetInterface(int riid,int ppvObject) {
- if (riid == 0 || ppvObject == 0) return XPCOM.NS_ERROR_NO_INTERFACE;
- nsID guid = new nsID();
- XPCOM.memmove(guid, riid, nsID.sizeof);
- if (guid.Equals(nsIDOMWindow.NS_IDOMWINDOW_IID)) {
- int[] aContentDOMWindow = new int[1];
- int rc = webBrowser.GetContentDOMWindow(aContentDOMWindow);
- if (rc != XPCOM.NS_OK) error(rc);
- if (aContentDOMWindow[0] == 0) error(XPCOM.NS_ERROR_NO_INTERFACE);
- XPCOM.memmove(ppvObject, aContentDOMWindow, 4);
- return rc;
- }
- return QueryInterface(riid,ppvObject);
-}
-
-int GetWeakReference(int ppvObject) {
- XPCOM.memmove(ppvObject, new int[] {weakReference.getAddress()}, 4);
- AddRef();
- return XPCOM.NS_OK;
-}
-
-/* nsIWebProgressListener */
-
-int OnStateChange(int aWebProgress, int aRequest, int aStateFlags, int aStatus) {
- if ((aStateFlags & nsIWebProgressListener.STATE_IS_WINDOW) != 0 &&
- (aStateFlags & nsIWebProgressListener.STATE_STOP) != 0) {
- onLoadWindow();
- }
- if ((aStateFlags & nsIWebProgressListener.STATE_IS_DOCUMENT) == 0) return XPCOM.NS_OK;
- if ((aStateFlags & nsIWebProgressListener.STATE_START) != 0) {
- if (request == 0) request = aRequest;
- } else if ((aStateFlags & nsIWebProgressListener.STATE_REDIRECTING) != 0) {
- if (request == aRequest) request = 0;
- } else if ((aStateFlags & nsIWebProgressListener.STATE_STOP) != 0) {
- if (html != null) {
- /* Convert the String containing HTML to an array of
- * bytes with UTF-8 data.
- */
- byte[] data = null;
- try {
- data = html.getBytes("UTF-8"); //$NON-NLS-1$
- } catch (UnsupportedEncodingException e) {
- LogHelper.logError(MozillaJavaXpComPlugin.ID, e);
- }
- html = null;
- if (data != null) {
- /* render HTML in memory */
- String contentType = "text/html"; //$NON-NLS-1$
-
- InputStream inputStream = new InputStream(data);
- inputStream.AddRef();
-
- int[] result = new int[1];
- int rc = webBrowser.QueryInterface(nsIInterfaceRequestor.NS_IINTERFACEREQUESTOR_IID, result);
- if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) error(XPCOM.NS_ERROR_NO_INTERFACE);
-
- nsIInterfaceRequestor interfaceRequestor = new nsIInterfaceRequestor(result[0]);
- result[0] = 0;
- rc = interfaceRequestor.GetInterface(nsIContentViewerContainer.NS_ICONTENTVIEWERCONTAINER_IID, result);
- if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) error(XPCOM.NS_ERROR_NO_INTERFACE);
- interfaceRequestor.Release();
-
- nsIContentViewerContainer contentViewerContainer = new nsIContentViewerContainer(result[0]);
- result[0] = 0;
-
- rc = XPCOM.NS_GetServiceManager(result);
- if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) error(XPCOM.NS_NOINTERFACE);
-
- nsIServiceManager serviceManager = new nsIServiceManager(result[0]);
- result[0] = 0;
- rc = serviceManager.GetService(XPCOM.NS_IOSERVICE_CID, nsIIOService.NS_IIOSERVICE_IID, result);
- if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) error(XPCOM.NS_NOINTERFACE);
-
- nsIIOService ioService = new nsIIOService(result[0]);
- result[0] = 0;
- /*
- * Note. Mozilla ignores LINK tags used to load CSS stylesheets
- * when the URI protocol for the nsInputStreamChannel
- * is about:blank. The fix is to specify the file protocol.
- */
- byte[] aString = "file:".getBytes(); //$NON-NLS-1$
- int aSpec = XPCOM.nsCString_new(aString, aString.length);
- rc = ioService.NewURI(aSpec, null, 0, result);
- XPCOM.nsCString_delete(aSpec);
- if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) error(XPCOM.NS_NOINTERFACE);
- ioService.Release();
-
- nsIURI uri = new nsIURI(result[0]);
- result[0] = 0;
- rc = XPCOM.NS_GetComponentManager(result);
- if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) error(XPCOM.NS_NOINTERFACE);
-
- nsIComponentManager componentManager = new nsIComponentManager(result[0]);
- result[0] = 0;
- rc = componentManager.CreateInstance(XPCOM.NS_LOADGROUP_CID, 0, nsILoadGroup.NS_ILOADGROUP_IID, result);
- if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) error(XPCOM.NS_NOINTERFACE);
- nsILoadGroup loadGroup = new nsILoadGroup(result[0]);
- result[0] = 0;
- rc = componentManager.CreateInstance(XPCOM.NS_INPUTSTREAMCHANNEL_CID, 0, nsIInputStreamChannel.NS_IINPUTSTREAMCHANNEL_IID, result);
- if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) error(XPCOM.NS_NOINTERFACE);
- nsIInputStreamChannel inputStreamChannel = new nsIInputStreamChannel(result[0]);
- result[0] = 0;
- componentManager.Release();
-
- rc = inputStreamChannel.SetURI(uri.getAddress());
- if (rc != XPCOM.NS_OK) error(rc);
- rc = inputStreamChannel.SetContentStream(inputStream.getAddress());
- if (rc != XPCOM.NS_OK) error(rc);
- byte[] buffer = contentType.getBytes();
- byte[] contentTypeBuffer = new byte[buffer.length + 1];
- System.arraycopy(buffer, 0, contentTypeBuffer, 0, buffer.length);
- int aContentType = XPCOM.nsCString_new(contentTypeBuffer, contentTypeBuffer.length);
- rc = inputStreamChannel.SetContentType(aContentType);
- XPCOM.nsCString_delete(aContentType);
- if (rc != XPCOM.NS_OK) error(rc);
- byte[] contentCharsetBuffer = "UTF-8".getBytes(); //$NON-NLS-1$
- int aContentCharset = XPCOM.nsCString_new(contentCharsetBuffer, contentCharsetBuffer.length);
- rc = inputStreamChannel.SetContentCharset(aContentCharset);
- XPCOM.nsCString_delete(aContentCharset);
- if (rc != XPCOM.NS_OK) error(rc);
- rc = inputStreamChannel.SetLoadGroup(loadGroup.getAddress());
- if (rc != XPCOM.NS_OK) error(rc);
-
- buffer = XPCOM.NS_CATEGORYMANAGER_CONTRACTID.getBytes();
- byte[] aContractID = new byte[buffer.length + 1];
- System.arraycopy(buffer, 0, aContractID, 0, buffer.length);
- rc = serviceManager.GetServiceByContractID(aContractID, nsICategoryManager.NS_ICATEGORYMANAGER_IID, result);
- if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) error(XPCOM.NS_NOINTERFACE);
-
- nsICategoryManager categoryManager = new nsICategoryManager(result[0]);
- result[0] = 0;
- buffer = "Gecko-Content-Viewers".getBytes(); //$NON-NLS-1$
- byte[] aCategory = new byte[buffer.length + 1];
- System.arraycopy(buffer, 0, aCategory, 0, buffer.length);
- rc = categoryManager.GetCategoryEntry(aCategory, contentTypeBuffer, result);
- if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) error(XPCOM.NS_NOINTERFACE);
- categoryManager.Release();
-
- int length = XPCOM.strlen(result[0]);
- aContractID = new byte[length + 1];
- XPCOM.memmove(aContractID, result[0], length);
- rc = serviceManager.GetServiceByContractID(aContractID, nsIDocumentLoaderFactory.NS_IDOCUMENTLOADERFACTORY_IID, result);
- if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) error(XPCOM.NS_NOINTERFACE);
-
- nsIDocumentLoaderFactory documentLoaderFactory = new nsIDocumentLoaderFactory(result[0]);
- result[0] = 0;
- buffer = "view".getBytes(); //$NON-NLS-1$
- byte[] aCommand = new byte[buffer.length + 1];
- System.arraycopy(buffer, 0, aCommand, 0, buffer.length);
- int[] aDocListenerResult = new int[1];
- rc = documentLoaderFactory.CreateInstance(aCommand, inputStreamChannel.getAddress(), loadGroup.getAddress(),
- contentTypeBuffer, contentViewerContainer.getAddress(), 0, aDocListenerResult, result);
- if (rc != XPCOM.NS_OK) error(rc);
- if (aDocListenerResult[0] == 0) error(XPCOM.NS_NOINTERFACE);
- if (result[0] == 0) error(XPCOM.NS_NOINTERFACE);
- documentLoaderFactory.Release();
-
- nsIContentViewer contentViewer = new nsIContentViewer(result[0]);
- nsIStreamListener streamListener = new nsIStreamListener(aDocListenerResult[0]);
- result[0] = 0;
- rc = contentViewer.SetContainer(contentViewerContainer.getAddress());
- if (rc != XPCOM.NS_OK) error(rc);
- rc = contentViewerContainer.Embed(contentViewer.getAddress(), aCommand, 0);
- if (rc != XPCOM.NS_OK) error(rc);
- contentViewer.Release();
-
- rc = inputStreamChannel.QueryInterface(nsIRequest.NS_IREQUEST_IID, result);
- if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) error(XPCOM.NS_NOINTERFACE);
-
- nsIRequest request = new nsIRequest(result[0]);
- result[0] = 0;
- rc = streamListener.OnStartRequest(request.getAddress(), 0);
- if (rc != XPCOM.NS_OK) error(rc);
-
- /* append */
- rc = streamListener.OnDataAvailable(request.getAddress(), 0, inputStream.getAddress(), 0, data.length);
-
- /*
- * Note. Mozilla returns a NS_ERROR_HTMLPARSER_UNRESOLVEDDTD if the given content
- * cannot be rendered as HTML. Silently ignore this error.
- */
- if (rc != XPCOM.NS_ERROR_HTMLPARSER_UNRESOLVEDDTD && rc != XPCOM.NS_OK) error(rc);
-
- /* close */
- rc = streamListener.OnStopRequest(request.getAddress(), 0, XPCOM.NS_OK);
- if (rc != XPCOM.NS_ERROR_HTMLPARSER_UNRESOLVEDDTD && rc != XPCOM.NS_OK) error(rc);
-
- request.Release();
- streamListener.Release();
- serviceManager.Release();
- inputStreamChannel.Release();
- loadGroup.Release();
- uri.Release();
- contentViewerContainer.Release();
- inputStream.Release();
- }
- }
-
- /*
- * Feature on Mozilla. When a request is redirected (STATE_REDIRECTING),
- * it never reaches the state STATE_STOP and it is replaced with a new request.
- * The new request is received when it is in the state STATE_STOP.
- * To handle this case, the variable request is set to 0 when the corresponding
- * request is redirected. The following request received with the state STATE_STOP
- * - the new request resulting from the redirection - is used to send
- * the ProgressListener.completed event.
- */
- if (request == aRequest || request == 0) {
-// Edward
-/*
- request = 0;
- StatusTextEvent event = new StatusTextEvent(this);
- event.display = getDisplay();
- event.widget = this;
- event.text = ""; //$NON-NLS-1$
- for (int i = 0; i < statusTextListeners.length; i++)
- statusTextListeners[i].changed(event);
-
- ProgressEvent event2 = new ProgressEvent(this);
- event2.display = getDisplay();
- event2.widget = this;
- for (int i = 0; i < progressListeners.length; i++)
- progressListeners[i].completed(event2);
-*/
- }
- }
- return XPCOM.NS_OK;
-}
-
-int OnProgressChange(int aWebProgress, int aRequest, int aCurSelfProgress, int aMaxSelfProgress, int aCurTotalProgress, int aMaxTotalProgress) {
- if (progressListeners.length == 0) return XPCOM.NS_OK;
-
-// Edward
-/*
- int total = aMaxTotalProgress;
- if (total <= 0) total = Integer.MAX_VALUE;
- ProgressEvent event = new ProgressEvent(this);
- event.display = getDisplay();
- event.widget = this;
- event.current = aCurTotalProgress;
- event.total = aMaxTotalProgress;
- for (int i = 0; i < progressListeners.length; i++)
- progressListeners[i].changed(event);
-*/
- return XPCOM.NS_OK;
-}
-
-int OnLocationChange(int aWebProgress, int aRequest, int aLocation) {
- if (locationListeners.length == 0) return XPCOM.NS_OK;
-
-// Edward
-/*
- nsIWebProgress webProgress = new nsIWebProgress(aWebProgress);
- int[] aDOMWindow = new int[1];
- int rc = webProgress.GetDOMWindow(aDOMWindow);
- if (rc != XPCOM.NS_OK) error(rc);
- if (aDOMWindow[0] == 0) error(XPCOM.NS_ERROR_NO_INTERFACE);
-
- nsIDOMWindow domWindow = new nsIDOMWindow(aDOMWindow[0]);
- int[] aTop = new int[1];
- rc = domWindow.GetTop(aTop);
- if (rc != XPCOM.NS_OK) error(rc);
- if (aTop[0] == 0) error(XPCOM.NS_ERROR_NO_INTERFACE);
- domWindow.Release();
-
- nsIDOMWindow topWindow = new nsIDOMWindow(aTop[0]);
- topWindow.Release();
-
- nsIURI location = new nsIURI(aLocation);
- int aSpec = XPCOM.nsCString_new();
- location.GetSpec(aSpec);
- int length = XPCOM.nsCString_Length(aSpec);
- int buffer = XPCOM.nsCString_get(aSpec);
- byte[] dest = new byte[length];
- XPCOM.memmove(dest, buffer, length);
- XPCOM.nsCString_delete(aSpec);
-
- LocationEvent event = new LocationEvent(this);
- event.display = getDisplay();
- event.widget = this;
- event.location = new String(dest);
- event.top = aTop[0] == aDOMWindow[0];
- for (int i = 0; i < locationListeners.length; i++)
- locationListeners[i].changed(event);
-*/
- return XPCOM.NS_OK;
-}
-
-int OnStatusChange(int aWebProgress, int aRequest, int aStatus, int aMessage) {
- if (statusTextListeners.length == 0) return XPCOM.NS_OK;
-
-// Edward
-/*
- StatusTextEvent event = new StatusTextEvent(this);
- event.display = getDisplay();
- event.widget = this;
- int length = XPCOM.nsCRT_strlen_PRUnichar(aMessage);
- char[] dest = new char[length];
- XPCOM.memmove(dest, aMessage, length * 2);
- event.text = new String(dest);
- for (int i = 0; i < statusTextListeners.length; i++)
- statusTextListeners[i].changed(event);
-
-*/
- return XPCOM.NS_OK;
-}
-
-int OnSecurityChange(int aWebProgress, int aRequest, int state) {
- return XPCOM.NS_OK;
-}
-
-/* nsIWebBrowserChrome */
-
-int SetStatus(int statusType, int status) {
-// Edward
-/*
- StatusTextEvent event = new StatusTextEvent(this);
- event.display = getDisplay();
- event.widget = this;
- int length = XPCOM.nsCRT_strlen_PRUnichar(status);
- char[] dest = new char[length];
- XPCOM.memmove(dest, status, length * 2);
- String string = new String(dest);
- if (string == null) string = ""; //$NON-NLS-1$
- event.text = string;
- for (int i = 0; i < statusTextListeners.length; i++)
- statusTextListeners[i].changed(event);
-*/
- return XPCOM.NS_OK;
-}
-
-int GetWebBrowser(int aWebBrowser) {
- int[] ret = new int[1];
- if (webBrowser != null) {
- webBrowser.AddRef();
- ret[0] = webBrowser.getAddress();
- }
- XPCOM.memmove(aWebBrowser, ret, 4);
- return XPCOM.NS_OK;
-}
-
-int SetWebBrowser(int aWebBrowser) {
- if (webBrowser != null) webBrowser.Release();
- webBrowser = aWebBrowser != 0 ? new nsIWebBrowser(aWebBrowser) : null;
- return XPCOM.NS_OK;
-}
-
-int GetChromeFlags(int aChromeFlags) {
- int[] ret = new int[1];
- ret[0] = chromeFlags;
- XPCOM.memmove(aChromeFlags, ret, 4);
- return XPCOM.NS_OK;
-}
-
-int SetChromeFlags(int aChromeFlags) {
- chromeFlags = aChromeFlags;
- return XPCOM.NS_OK;
-}
-
-int DestroyBrowserWindow() {
-// Edward
-/*
- WindowEvent newEvent = new WindowEvent(this);
- newEvent.display = getDisplay();
- newEvent.widget = this;
- for (int i = 0; i < closeWindowListeners.length; i++)
- closeWindowListeners[i].close(newEvent);
- /*
- * Note on Mozilla. The DestroyBrowserWindow notification cannot be cancelled.
- * The browser widget cannot be used after this notification has been received.
- * The application is advised to close the window hosting the browser widget.
- * The browser widget must be disposed in all cases.
- */
- dispose();
- return XPCOM.NS_OK;
-}
-
-int SizeBrowserTo(int aCX, int aCY) {
- size = new Point(aCX, aCY);
- return XPCOM.NS_OK;
-}
-
-int ShowAsModal() {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-
-int IsWindowModal(int retval) {
- // no modal loop
- XPCOM.memmove(retval, new int[] {0}, 4);
- return XPCOM.NS_OK;
-}
-
-int ExitModalEventLoop(int aStatus) {
- return XPCOM.NS_OK;
-}
-
-/* nsIEmbeddingSiteWindow */
-
-int SetDimensions(int flags, int x, int y, int cx, int cy) {
- if (flags == nsIEmbeddingSiteWindow.DIM_FLAGS_POSITION) location = new Point(x, y);
- return XPCOM.NS_OK;
-}
-
-int GetDimensions(int flags, int x, int y, int cx, int cy) {
- return XPCOM.NS_OK;
-}
-
-int SetFocus() {
- int[] result = new int[1];
- int rc = webBrowser.QueryInterface(nsIBaseWindow.NS_IBASEWINDOW_IID, result);
- if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) error(XPCOM.NS_ERROR_NO_INTERFACE);
-
- nsIBaseWindow baseWindow = new nsIBaseWindow(result[0]);
- rc = baseWindow.SetFocus();
- if (rc != XPCOM.NS_OK) error(rc);
- baseWindow.Release();
-
- //set focus current widget
- super.setFocus();
-
- return XPCOM.NS_OK;
-}
-
-int GetVisibility(int aVisibility) {
- return XPCOM.NS_OK;
-}
-
-int SetVisibility(int aVisibility) {
-// Edward
-/*
- WindowEvent event = new WindowEvent(this);
- event.display = getDisplay();
- event.widget = this;
- if (aVisibility == 1) {
- event.location = location;
- event.size = size;
- for (int i = 0; i < visibilityWindowListeners.length; i++)
- visibilityWindowListeners[i].show(event);
- location = null;
- size = null;
- } else {
- for (int i = 0; i < visibilityWindowListeners.length; i++)
- visibilityWindowListeners[i].hide(event);
- }
-*/
- return XPCOM.NS_OK;
-}
-
-int GetTitle(int aTitle) {
- return XPCOM.NS_OK;
-}
-
-int SetTitle(int aTitle) {
-// Edward
-/*
- if (titleListeners.length == 0) return XPCOM.NS_OK;
- TitleEvent event = new TitleEvent(this);
- event.display = getDisplay();
- event.widget = this;
- int length = XPCOM.nsCRT_strlen_PRUnichar(aTitle);
- char[] dest = new char[length];
- XPCOM.memmove(dest, aTitle, length * 2);
- event.title = new String(dest);
- for (int i = 0; i < titleListeners.length; i++)
- titleListeners[i].changed(event);
-*/
- return XPCOM.NS_OK;
-}
-
-int GetSiteWindow(int aSiteWindow) {
- /*
- * Note. The handle is expected to be an HWND on Windows and
- * a GtkWidget* on GTK. This callback is invoked on Windows
- * when the javascript window.print is invoked and the print
- * dialog comes up. If no handle is returned, the print dialog
- * does not come up on this platform.
- */
- /*
- * Note. The following code compiles without warning on a
- * 64 bit platform but won't run.
- */
- XPCOM.memmove(aSiteWindow, new int[] {(int)/*64*/handle}, 4);
- return XPCOM.NS_OK;
-}
-
-/* nsIWebBrowserChromeFocus */
-
-int FocusNextElement() {
- /*
- * Bug in Mozilla embedding API. Mozilla takes back the focus after sending
- * this event. This prevents tabbing out of Mozilla. This behaviour can be reproduced
- * with the Mozilla application TestGtkEmbed. The workaround is to
- * send the traversal notification after this callback returns.
- */
- getDisplay().asyncExec(new Runnable() {
- public void run() {
- traverse(SWT.TRAVERSE_TAB_NEXT);
- }
- });
- return XPCOM.NS_OK;
-}
-
-int FocusPrevElement() {
- /*
- * Bug in Mozilla embedding API. Mozilla takes back the focus after sending
- * this event. This prevents tabbing out of Mozilla. This behaviour can be reproduced
- * with the Mozilla application TestGtkEmbed. The workaround is to
- * send the traversal notification after this callback returns.
- */
- getDisplay().asyncExec(new Runnable() {
- public void run() {
- traverse(SWT.TRAVERSE_TAB_PREVIOUS);
- }
- });
- return XPCOM.NS_OK;
-}
-
-/* nsIContextMenuListener */
-
-int OnShowContextMenu(int aContextFlags, int aEvent, int aNode) {
- if (externalContextMenuListener != null) {
- int aMouseEevent = nsISupports.queryInterface(aEvent, nsIDOMMouseEvent.NS_IDOMMOUSEEVENT_IID);
- nsIDOMMouseEvent mouseEvent = new nsIDOMMouseEvent(aMouseEevent);
- nsIDOMNode node = aNode == 0 ? null : nsIDOMNode.getNodeAtAddress(aNode);
- externalContextMenuListener.onShowContextMenu(aContextFlags, mouseEvent, node);
- }
- return XPCOM.NS_OK;
-}
-
-/* nsIURIContentListener */
-
-int OnStartURIOpen(int aURI, int retval) {
- if (locationListeners.length == 0) return XPCOM.NS_OK;
-
- nsIURI location = new nsIURI(aURI);
- int aSpec = XPCOM.nsCString_new();
- location.GetSpec(aSpec);
- int length = XPCOM.nsCString_Length(aSpec);
- int buffer = XPCOM.nsCString_get(aSpec);
- buffer = XPCOM.nsCString_get(aSpec);
- byte[] dest = new byte[length];
- XPCOM.memmove(dest, buffer, length);
- XPCOM.nsCString_delete(aSpec);
-
- boolean doit = true;
- if (request == 0) {
-// Edward
-/*
- LocationEvent event = new LocationEvent(this);
- event.display = getDisplay();
- event.widget = this;
- event.location = new String(dest);
- event.doit = true;
- for (int i = 0; i < locationListeners.length; i++)
- locationListeners[i].changing(event);
- doit = event.doit;
-*/
- }
- XPCOM.memmove(retval, new int[] {doit ? 0 : 1}, 4);
- return XPCOM.NS_OK;
-}
-
-int DoContent(int aContentType, int aIsContentPreferred, int aRequest, int aContentHandler, int retval) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-
-int IsPreferred(int aContentType, int aDesiredContentType, int retval) {
- XPCOM.memmove(retval, new int[] {1}, 4);
- return XPCOM.NS_OK;
-}
-
-int CanHandleContent(int aContentType, int aIsContentPreferred, int aDesiredContentType, int retval) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-
-int GetLoadCookie(int aLoadCookie) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-
-int SetLoadCookie(int aLoadCookie) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-
-int GetParentContentListener(int aParentContentListener) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-
-int SetParentContentListener(int aParentContentListener) {
- return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
-}
-
-/* nsITooltipListener */
-
-int _OnShowTooltip(int aXCoords, int aYCoords, int aTipText) {
- int length = XPCOM.nsCRT_strlen_PRUnichar(aTipText);
- char[] dest = new char[length];
- XPCOM.memmove(dest, aTipText, length * 2);
- String text = new String(dest);
- if (tip != null && !tip.isDisposed()) tip.dispose();
- Display display = getDisplay();
- Shell parent = getShell();
- tip = new Shell(parent, SWT.ON_TOP);
- tip.setLayout(new FillLayout());
- Label label = new Label(tip, SWT.CENTER);
- label.setForeground(display.getSystemColor(SWT.COLOR_INFO_FOREGROUND));
- label.setBackground(display.getSystemColor(SWT.COLOR_INFO_BACKGROUND));
- label.setText(text);
- /*
- * Bug in Mozilla embedded API. Tooltip coordinates are wrong for
- * elements inside an inline frame (IFrame tag). The workaround is
- * to position the tooltip based on the mouse cursor location.
- */
- Point point = display.getCursorLocation();
- /* Assuming cursor is 21x21 because this is the size of
- * the arrow cursor on Windows
- */
- point.y += 21;
- tip.setLocation(point);
- tip.pack();
- tip.setVisible(true);
- return XPCOM.NS_OK;
-}
-
-int _OnHideTooltip() {
- if (tip != null && !tip.isDisposed()) tip.dispose();
- tip = null;
- return XPCOM.NS_OK;
-}
-
-int OnShowTooltip(int aXCoords, int aYCoords, int aTipText) {
- int length = XPCOM.nsCRT_strlen_PRUnichar(aTipText);
- char[] dest = new char[length];
- XPCOM.memmove(dest, aTipText, length * 2);
- String text = new String(dest);
- onShowTooltip(aXCoords, aYCoords, text);
- return XPCOM.NS_OK;
-}
-
-int OnHideTooltip() {
- onHideTooltip();
- return XPCOM.NS_OK;
-}
-
-public void onShowTooltip(int x, int y, String text) {
-}
-
-public void onHideTooltip() {
-}
-
-/* nsIDOMEventListener */
-
-int HandleEvent(int aEvent) {
-// nsIDOMEvent domEvent = new nsIDOMEvent(aEvent);
-// String type = domEvent.getType();
- return XPCOM.NS_OK;
-}
-
-/* nsIDOMScrollListener */
-
-int Overflow(int aEvent) {
-// setScrollBars();
- return XPCOM.NS_OK;
-}
-
-int Underflow(int aEvent) {
-// setScrollBars();
- return XPCOM.NS_OK;
-}
-
-int OverflowChanged(int aEvent) {
-// setScrollBars();
- return XPCOM.NS_OK;
-}
-
-/* nsIScrollPositionListener */
-
-int ScrollPositionWillChange(int aScrollable, int aX, int aY) {
- return XPCOM.NS_OK;
-}
-
-int ScrollPositionDidChange(int aScrollable, int aX, int aY) {
-// setScrollBars();
- return XPCOM.NS_OK;
-}
-
-/* nsICompositeListener */
-
-int WillRefreshRegion(int aViewManager, int aView, int aContext, int aRegion, int aUpdateFlags) {
- return XPCOM.NS_OK;
-}
-
-int DidRefreshRegion(int aViewManager, int aView, int aContext, int aRegion, int aUpdateFlags) {
- showSelectionRectangle();
- return XPCOM.NS_OK;
-}
-
-int WillRefreshRect(int aViewManager, int aView, int aContext, int aRect, int aUpdateFlags) {
- return XPCOM.NS_OK;
-}
-
-int DidRefreshRect(int aViewManager, int aView, int aContext, int aRect, int aUpdateFlags) {
- showSelectionRectangle();
- return XPCOM.NS_OK;
-}
-
-//=========================================================================
-
-public void setContextMenuListener(ContextMenuListener externalContextMenuListener) {
- this.externalContextMenuListener = externalContextMenuListener;
-}
-
-public void onLoadWindow() {
- presContext = getPresContext();
- pixelsToTwips = presContext.getPixelsToTwips();
-
-// scrollableView = getRootScrollableView();
-// scrollableView.addScrollPositionListener(scrollPositionListener);
-
-// horizontalBar = getHorizontalBar();
-// verticalBar = getVerticalBar();
-
-// setScrollBars();
-
-// horizontalBar.addSelectionListener(new SelectionListener() {
-// public void widgetSelected(SelectionEvent e) {
-// scroll();
-// }
-// public void widgetDefaultSelected(SelectionEvent e) {
-// scroll();
-// }
-// });
-
-// verticalBar.addSelectionListener(new SelectionListener() {
-// public void widgetSelected(SelectionEvent e) {
-// scroll();
-// }
-// public void widgetDefaultSelected(SelectionEvent e) {
-// scroll();
-// }
-// });
-
- selectionController = getSelectionController();
-// if (selectionController != null) {
-// selectionController.setSelectionFlags(nsISelectionController.DISPLAY_TEXT);
-// short toggle = selectionController.getDisplaySelection();
-// short flags = selectionController.getSelectionFlags();
-// selectionController.SetDisplaySelection(nsISelectionController.SELECTION_OFF);
-// selectionController.SetDisplaySelection(nsISelectionController.SELECTION_ATTENTION);
-// toggle = selectionController.getDisplaySelection();
-// int a = 0;
-// }
- flasher = getFlasher();
- if (flasher != null) {
- flasher.setColor(flasherVisialElementColor);
- flasher.setThickness(flasherThickness);
- }
- resizer = getResizer();
- if (resizer != null) {
- resizer.Init(getDOMDocument(),getPresShell());
- resizer.AddResizeListener(resizeListener);
- }
- dragCaret = getDragCaret();
- nsIViewManager viewManager = getViewManager();
- viewManager.addCompositeListener(compositeListener);
- viewManager.Release();
-
-
-// nsIDOMXULDocument doc = getDOMXULDocument();
-}
-
-public nsIDOMWindow getDOMWindow() {
- int[] result = new int[1];
- int rc = webBrowser.GetContentDOMWindow(result);
- if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) error(XPCOM.NS_NOINTERFACE);
-
- nsIDOMWindow domWindow = new nsIDOMWindow(result[0]);
- return domWindow;
-}
-
-public nsIDOMDocument getDOMDocument() {
- nsIDOMWindow domWindow = getDOMWindow();
- nsIDOMDocument domDocument = domWindow.getDOMDocument();
- domWindow.Release();
- return domDocument;
-}
-
-public nsIDOMNSDocument getDOMNSDocument() {
- nsIDOMDocument domDocument = getDOMDocument();
- int aDomNsDocument = domDocument.queryInterface(nsIDOMNSDocument.NS_IDOMNSDOCUMENT_IID);
- domDocument.Release();
- return new nsIDOMNSDocument(aDomNsDocument);
-}
-
-public nsIDOMElement getDOMDocumentElement() {
- nsIDOMDocument domDocument = getDOMDocument();
- nsIDOMElement domDocumentElement = (nsIDOMElement)domDocument.getDocumentElement();
- domDocument.Release();
- return domDocumentElement;
-}
-
-public nsIDOMDocumentRange getDOMDocumentRange() {
- nsIDOMDocument domDocument = getDOMDocument();
- int[] result = new int[] {0};
- int rc = domDocument.QueryInterface(nsIDOMDocumentRange.NS_IDOMDOCUMENTRANGE_IID, result);
- domDocument.Release();
- if (rc != XPCOM.NS_OK) MozillaBrowser.error(rc);
- if (result[0] == 0) MozillaBrowser.error(XPCOM.NS_ERROR_NO_INTERFACE);
- return new nsIDOMDocumentRange(result[0]);
-}
-
-public nsIDOMRange createDOMRange() {
- nsIDOMDocumentRange domDocumentRange = getDOMDocumentRange();
- nsIDOMRange domRange = domDocumentRange.createRange();
- domDocumentRange.Release();
- return domRange;
-}
-
-private nsIDocShell getDocShell() {
- int[] result = new int[] {0};
- int rc = webBrowser.QueryInterface(nsIInterfaceRequestor.NS_IINTERFACEREQUESTOR_IID, result);
- if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) error(XPCOM.NS_ERROR_NO_INTERFACE);
- nsIInterfaceRequestor interfaceRequestor = new nsIInterfaceRequestor(result[0]);
-
- result[0] = 0;
- rc = interfaceRequestor.GetInterface(nsIDocShell.NS_IDOCSHELL_IID, result);
- interfaceRequestor.Release();
- if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) error(XPCOM.NS_ERROR_NO_INTERFACE);
- return new nsIDocShell(result[0]);
-}
-
-public nsIPresShell getPresShell() {
- nsIDocShell docShell = getDocShell();
-
- int[] result = new int[] {0};
- int rc = docShell.GetPresShell(result);
- docShell.Release();
- if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) error(XPCOM.NS_ERROR_NO_INTERFACE);
- return new nsIPresShell(result[0]);
-}
-
-public nsIViewManager getViewManager() {
- nsIPresShell presShell = getPresShell();
-
- int[] result = new int[] {0};
- int rc = presShell.GetViewManager(result);
- presShell.Release();
- if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) error(XPCOM.NS_ERROR_NO_INTERFACE);
- return new nsIViewManager(result[0]);
-}
-
-private nsIScrollableView getRootScrollableView() {
- nsIViewManager viewManager = getViewManager();
-
- int[] result = new int[] {0};
- int rc = viewManager.GetRootScrollableView(result);
- viewManager.Release();
- if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) error(XPCOM.NS_ERROR_NO_INTERFACE);
- return new nsIScrollableView(result[0]);
-}
-
-private nsIEditorDocShell getEditorDocShell() {
- nsIDocShell docShell = getDocShell();
-
- int[] result = new int[] {0};
- int rc = docShell.QueryInterface(nsIEditorDocShell.NS_IEDITORDOCSHELL_IID, result);
- docShell.Release();
- if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) error(XPCOM.NS_ERROR_NO_INTERFACE);
- return new nsIEditorDocShell(result[0]);
-}
-
-public nsISelectionController getSelectionController() {
- if (visualSelectionController == null) {
- nsIPresShell presShell = getPresShell();
-
- int[] result = new int[] {0};
- int rc = presShell.QueryInterface(nsISelectionController.NS_ISELECTIONCONTROLLER_IID, result);
- presShell.Release();
- if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) error(XPCOM.NS_ERROR_NO_INTERFACE);
- visualSelectionController = new nsISelectionController(result[0]);
- }
- return visualSelectionController;
-}
-
-public nsIBaseWindow getBaseWindow() {
- int[] result = new int[1];
- int rc = webBrowser.QueryInterface(nsIBaseWindow.NS_IBASEWINDOW_IID, result);
- if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) error(XPCOM.NS_ERROR_NO_INTERFACE);
- return new nsIBaseWindow(result[0]);
-}
-
-public nsIScrollable getScrollable() {
- int[] result = new int[1];
- int rc = webBrowser.QueryInterface(nsIScrollable.NS_ISCROLLABLE_IID, result);
- if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) error(XPCOM.NS_ERROR_NO_INTERFACE);
- return new nsIScrollable(result[0]);
-}
-
-private void setScrollBars() {
- if (scrollableView != null) {
- Point scrollPosition = scrollableView.getScrollPosition();
- Point containerSize = scrollableView.getContainerSize();
- int lineHeight = scrollableView.getLineHeight();
- Rectangle clientArea = getClientArea();
-
- if (verticalBar != null) {
- verticalBar.setValues(
- scrollPosition.y,
- 0,
- containerSize.y,
- clientArea.height * mozillaScrollFactor(),
- lineHeight,
- clientArea.height * mozillaScrollFactor());
- }
-
- if (horizontalBar != null) {
- horizontalBar.setValues(
- scrollPosition.x,
- 0,
- containerSize.x,
- clientArea.width * mozillaScrollFactor(),
- lineHeight,
- clientArea.width * mozillaScrollFactor());
- }
- }
-}
-
-private void scroll() {
- if (scrollableView != null) {
- Point scrollPosition = scrollableView.getScrollPosition();
- if (verticalBar != null) {
- scrollPosition.y = verticalBar.getSelection();
- }
- if (horizontalBar != null) {
- scrollPosition.x = horizontalBar.getSelection();
- }
- scrollableView.scrollTo(scrollPosition);
- }
-}
-
-private int mozillaScrollFactor() {
- return 15;
-}
-
-public inIFlasher getFlasher() {
- int[] result = new int[] {0};
- int rc = XPCOM.NS_GetComponentManager(result);
- if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) error(XPCOM.NS_NOINTERFACE);
-
- nsIComponentManager componentManager = new nsIComponentManager(result[0]);
- result[0] = 0;
- rc = componentManager.CreateInstance(XPCOM.IN_FLASHER_CID, 0, inIFlasher.INIFLASHER_IID, result);
- if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) error(XPCOM.NS_NOINTERFACE);
- componentManager.Release();
-
- return new inIFlasher(result[0]);
-}
-
-public VpeResizer getResizer() {
- int[] result = new int[] {0};
- int rc = XPCOM.NS_GetComponentManager(result);
- if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) error(XPCOM.NS_NOINTERFACE);
-
- nsIComponentManager componentManager = new nsIComponentManager(result[0]);
- result[0] = 0;
- rc = componentManager.CreateInstance(XPCOM.VPE_RESIZER_CID, 0, VpeResizer.IVPERESIZER_IID, result);
- if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) error(XPCOM.NS_NOINTERFACE);
- componentManager.Release();
-
- return new VpeResizer(result[0]);
-}
-
-public nsIDOMElement getSelectedElement() {
- return lastSelectedElement;
-}
-
-public void setSelectionRectangle(nsIDOMElement element, int resizerConstrains, boolean scroll) {
- if (flasher == null) {
-
- return;
- }
- if (lastSelectedElement != null) {
-
- scrollRegtangleFlag = scroll && element != null;
-
- if(checkVisability(lastSelectedElement)){
-
- if((lastSelectedElement.getAttribute(VPEFLASHERCOLORATTRIBUTE)==null)||
- (!lastSelectedElement.getAttribute(VPEFLASHERCOLORATTRIBUTE).equals(flasherHiddentElementColor))) {
-
- flasher.setColor(flasherVisialElementColor);
- } else{
- flasher.setColor(flasherHiddentElementColor);
- }
-
- flasher.repaintElement(lastSelectedElement);
- }else {
-
- flasher.setColor(flasherHiddentElementColor);
- nsIDOMElement domElement = findVisbleParentElement(lastSelectedElement);
-
- if(domElement!=null) {
-
- flasher.repaintElement(domElement);
- }
-
- }
-
- } else if (element != null) {
- if (scroll) {
- selectionController.scrollSelectionIntoView();
- scrollRegtangleFlag = true;
- }
- if(checkVisability(element)){
-
-
- if((element.getAttribute(VPEFLASHERCOLORATTRIBUTE)==null)||
- (!element.getAttribute(VPEFLASHERCOLORATTRIBUTE).equals(flasherHiddentElementColor))) {
-
- flasher.setColor(flasherVisialElementColor);
- }else {
- flasher.setColor(flasherHiddentElementColor);
- }
- flasher.drawElementOutline(element);
- }else {
-
- flasher.setColor(flasherHiddentElementColor);
- nsIDOMElement domElement = findVisbleParentElement(element);
-
- if(domElement!=null) {
-
- flasher.drawElementOutline(domElement);
- }
- }
-
-
- }
- if (resizer != null) {
- if (element != null && resizerConstrains != 0) {
- resizer.Show(element, resizerConstrains);
- } else {
- resizer.Hide();
- }
- }
-
- lastSelectedElement = element;
- lastResizerConstrains = resizerConstrains;
-}
-
-private void showSelectionRectangle() {
- if (flasher != null && lastSelectedElement != null) {
- if (scrollRegtangleFlag) {
- scrollRegtangleFlag = false;
- selectionController.scrollSelectionIntoView();
- }
- //checks visability of element
- if(checkVisability(lastSelectedElement)){
-
- if((lastSelectedElement.getAttribute(VPEFLASHERCOLORATTRIBUTE)==null)||
- (!lastSelectedElement.getAttribute(VPEFLASHERCOLORATTRIBUTE).equals(flasherHiddentElementColor))) {
-
- flasher.setColor(flasherVisialElementColor);
- }else{
-
- flasher.setColor(flasherHiddentElementColor);
- }
-
- flasher.drawElementOutline(lastSelectedElement);
- }else {
-
- flasher.setColor(flasherHiddentElementColor);
- nsIDOMElement domElement = findVisbleParentElement(lastSelectedElement);
-
- if(domElement!=null) {
-
- flasher.drawElementOutline(domElement);
- }
- }
-
-
-
- }
-}
-
-public void showResizer() {
- if (resizer != null && lastSelectedElement != null && lastResizerConstrains != 0) {
- resizer.Show(lastSelectedElement, lastResizerConstrains);
- }
-}
-
-public void hideResizer() {
- if(resizer != null)resizer.Hide();
-}
-
-public nsIDragSession getCurrentDragSession() {
- int[] result = new int[] {0};
- int rc = XPCOM.NS_GetServiceManager(result);
- if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) error(XPCOM.NS_NOINTERFACE);
- nsIServiceManager serviceManager = new nsIServiceManager(result[0]);
-
- result[0] = 0;
- byte[] buffer = XPCOM.NS_DRAGSERVICE_CONTRACTID.getBytes();
- byte[] aContractID = new byte[buffer.length + 1];
- System.arraycopy(buffer, 0, aContractID, 0, buffer.length);
- rc = serviceManager.GetServiceByContractID(aContractID, nsIDragService.NS_IDRAGSERVICE_IID, result);
- serviceManager.Release();
-
- if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) error(XPCOM.NS_NOINTERFACE);
- nsIDragService dragService = new nsIDragService(result[0]);
- nsIDragSession dragSession = dragService.getCurrentSession();
- dragService.Release();
-
- return dragSession;
-}
-public nsITransferable getTransferable() {
- int[] result = new int[] {0};
- int rc = XPCOM.NS_GetComponentManager(result);
- if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) error(XPCOM.NS_NOINTERFACE);
-
- nsIComponentManager componentManager = new nsIComponentManager(result[0]);
- result[0] = 0;
- byte[] buffer = XPCOM.NS_ITRANSFERABLE_CONTRACTID.getBytes();
- byte[] aContractID = new byte[buffer.length + 1];
- System.arraycopy(buffer, 0, aContractID, 0, buffer.length);
- rc = componentManager.CreateInstanceByContractID(aContractID, 0, nsITransferable.NS_ITRANSFERABLE_IID, result);
- if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) error(XPCOM.NS_NOINTERFACE);
- componentManager.Release();
-
- return new nsITransferable(result[0]);
-}
-
-public nsICaret getDragCaret() {
- nsICaret caret = null;
- nsIPresShell presShell = getPresShell();
- if (presShell != null) {
- int[] result = new int[] {0};
- int rc = XPCOM.NS_GetComponentManager(result);
- if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) error(XPCOM.NS_NOINTERFACE);
-
- nsIComponentManager componentManager = new nsIComponentManager(result[0]);
- result[0] = 0;
- byte[] buffer = XPCOM.NS_ICARET_CONTRACTID.getBytes();
- byte[] aContractID = new byte[buffer.length + 1];
- System.arraycopy(buffer, 0, aContractID, 0, buffer.length);
- rc = componentManager.CreateInstanceByContractID(aContractID, 0, nsICaret.NS_ICARET_IID, result);
- if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) error(XPCOM.NS_NOINTERFACE);
- componentManager.Release();
- caret = new nsICaret(result[0]);
- caret.init(presShell);
- caret.setCaretWidth(2);
- caret.setCaretReadOnly(true);
- presShell.Release();
- }
- return caret;
-}
-
-public boolean isMozillaDragFlaver() {
- boolean ret = false;
- nsIDragSession dragSession = getCurrentDragSession();
- if (dragSession != null) {
- nsITransferable transferable = getTransferable();
- if (transferable != null) {
- nsISupportsArray array = transferable.flavorsTransferableCanImport();
-
- transferable.addDataFlavor(nsITransferable.kURLDataMime);
- transferable.addDataFlavor(nsITransferable.kFileMime);
- transferable.addDataFlavor(nsITransferable.kURLMime);
- transferable.addDataFlavor(nsITransferable.kUnicodeMime);
- dragSession.getData(transferable, 0);
-
- nsISupportsArray array1 = transferable.flavorsTransferableCanImport();
- ret = transferable.isMozillaTransferData();
- transferable.Release();
- }
- dragSession.Release();
- }
- return ret;
-}
-
-public boolean isMozillaDropAllowed(nsIDOMEvent event) {
- boolean dropAllowed = true;
- nsIDragSession dragSession = getCurrentDragSession();
- if (dragSession != null) {
- nsIDocShell docShell = getDocShell();
- if (docShell != null) {
- nsIClipboardDragDropHookList hookList = docShell.getClipboardDragDropHookList();
- docShell.Release();
- nsISimpleEnumerator enumerator = hookList.getHookEnumerator();
- hookList.Release();
- if (enumerator != null) {
- while (enumerator.hasMoreElements()) {
- nsISupports supports = enumerator.getNext();
- if (supports != null) {
- nsIClipboardDragDropHooks override = new nsIClipboardDragDropHooks(supports.queryInterface(nsIClipboardDragDropHooks.NS_ICLIPBOARDDRAGDROPHOOKS_IID));
- supports.Release();
- dropAllowed = override.allowDrop(event, dragSession);
- override.Release();
- if (!dropAllowed) {
- break;
- }
- }
- }
- enumerator.Release();
- }
- }
- dragSession.Release();
- }
- return dropAllowed;
-}
-
-public void showDragCaret(Node node, int offset) {
- if (dragCaret != null) {
- if (!dragCaret.isCaretVisible()) {
- dragCaret.setCaretVisible(true);
- }
- eraseDragCaret();
- if (node != null) {
- dragCaret.drawAtPosition((nsIDOMNode)node, offset);
- dragCaretVisible = true;
- }
- }
-}
-
-public void hideDragCaret() {
- if (dragCaret != null) {
- eraseDragCaret();
- dragCaret.setCaretVisible(false);
- }
-}
-
-private void eraseDragCaret() {
- if (dragCaret != null) {
- if (dragCaretVisible) {
- dragCaret.eraseCaret();
- dragCaretVisible = false;
- }
- }
-}
-private nsIPresContext getPresContext() {
- nsIPresShell presShell = getPresShell();
- nsIPresContext presContext = presShell.getPresContext();
- presShell.Release();
- return presContext;
-}
-
-public void computeDropPosition(nsIDOMEvent event) {
- nsIDOMElement element = (nsIDOMElement)nsIDOMNode.getNodeAtAddress(((nsISupports)event.getTargetNode()).getAddress());
- int aMouseEvent = event.queryInterface(nsIDOMMouseEvent.NS_IDOMMOUSEEVENT_IID);
- nsIDOMMouseEvent mouseEvent = new nsIDOMMouseEvent(aMouseEvent);
- int x = mouseEvent.getClientX();
- int y = mouseEvent.getClientY();
-/// Point twipsCoords =
- getAdjustTwipsCoords(element, x, y);
-/// int a = 0;
-}
-
-private Point getAdjustTwipsCoords(nsIDOMElement element, int x, int y) {
- int clientX = nsUnitConversion.nsToIntRound(x * pixelsToTwips);
- int clientY = nsUnitConversion.nsToIntRound(y * pixelsToTwips);
-
- nsIDOMNSDocument nsDoc = getDOMNSDocument();
- nsIBoxObject boxObject = nsDoc.getBoxObjectFor(element);
- nsDoc.Release();
-
- int boxX = nsUnitConversion.nsToIntRound(boxObject.getX() * pixelsToTwips);
- int boxY = nsUnitConversion.nsToIntRound(boxObject.getY() * pixelsToTwips);
- boxObject.Release();
-
- nsIPresShell presShell = getPresShell();
-/// nsIFrame frame =
- presShell.getFrameFor(element);
- presShell.Release();
-
- if (scrollableView != null) {
- Point scrollPosition = scrollableView.getScrollPosition();
- boxX -= scrollPosition.x;
- boxY -= scrollPosition.y;
- }
-
-
-
-// int aDOMElement = presContext.queryInterface(nsIDOMElement.NS_IDOMELEMENT_IID);
-// nsIDOMElement element = new nsIDOMElement(aDOMElement);
-// nsIDOMElement element1 = getDOMDocumentElement();
-
- return new Point(clientX - boxX, clientY - boxY);
-}
-
- // IVpeResizeListener
- int EndResizing(int resizerConstrains, int newTop, int newLeft, int newWidth, int newHeight, int aResizedObject) {
- nsIDOMElement element = new nsIDOMElement(aResizedObject);
- onElementResize(element, resizerConstrains, newTop, newLeft, newWidth, newHeight);
- return XPCOM.NS_OK;
- }
-
- public void onElementResize(nsIDOMElement element, int handle, int top, int left, int width, int height) {
- }
-
- public nsIDOMXULDocument getDOMXULDocument() {
- nsIDOMDocument domDocument = getDOMDocument();
- int aDocument = domDocument.queryInterface(nsIDocument.NS_IDOCUMENT_IID);
- nsIDocument document = new nsIDocument(aDocument);
- domDocument.Release();
-
- int aDomXulDocument = document.queryInterface(nsIDOMXULDocument.NS_IDOMXULDOCUMENT_IID);
- return new nsIDOMXULDocument(aDomXulDocument);
- }
-
- public nsIClipboardDragDropHookList getClipboardDragDropHookList() {
- nsIDocShell docShell = getDocShell();
- if (docShell != null) {
- nsIClipboardDragDropHookList hookList = docShell.getClipboardDragDropHookList();
- docShell.Release();
- return hookList;
- }
- return null;
- }
-
- public nsIFrameSelection getFrameSelection() {
- nsIPresShell presShell = getPresShell();
- nsIFrameSelection frameSelection = presShell.getFrameSelection();
- presShell.Release();
- return frameSelection;
- }
-
- /**Function created for checking if user can see element or not.
- * Element doesn't shows in VPE if it's has 'display:none;' attribute in style.
- *
- * @param node for checking it's visability
- * @param iFlasher flasher which used for drawning border for elements adn in
- * which was setted color in depends of visability of element
- *
- * @return false for hiddent elements and true for visble elements
- */
- private boolean checkVisability(Node node){
-
- if(!(node instanceof nsIDOMElement)){
-
- return true;
- }
- nsIDOMElement domElement = (nsIDOMElement) node;
-
- //TODO add check not inline styles attribute such as styleclass
- String inlineStyle = domElement.getAttribute(STYLE_ATTR);
-
- return inlineStyle==null?true:!pattern.matcher(inlineStyle).matches();
- }
-
- /**
- * Finds visible nearest visible node for hidden node
- *
- * @param element
- *
- * @return nearest visible node or null if can't find
- */
- private nsIDOMElement findVisbleParentElement(nsIDOMElement element) {
-
- if(!(element.getParentNode() instanceof nsIDOMElement)) {
-
- return null;
- }
-
- nsIDOMElement parentElement = (nsIDOMElement) element.getParentNode();
-
- while(parentElement!=null&&!checkVisability(parentElement)) {
- if(checkVisability(parentElement)) {
-
- return parentElement;
- }else {
-
- parentElement=(nsIDOMElement) parentElement.getParentNode() ;
- }
- }
- return parentElement;
- }
-
-}
Modified: branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.mozilla/src/org/jboss/tools/vpe/mozilla/browser/PromptService.java
===================================================================
--- branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.mozilla/src/org/jboss/tools/vpe/mozilla/browser/PromptService.java 2007-08-08 16:30:45 UTC (rev 2976)
+++ branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.mozilla/src/org/jboss/tools/vpe/mozilla/browser/PromptService.java 2007-08-08 16:32:00 UTC (rev 2977)
@@ -94,11 +94,11 @@
return refCount;
}
-MozillaBrowser getBrowser(int aDOMWindow) {
+Object getBrowser(int aDOMWindow) {
int[] result = new int[1];
int rc = XPCOM.NS_GetServiceManager(result);
- if (rc != XPCOM.NS_OK) MozillaBrowser.error(rc);
- if (result[0] == 0) MozillaBrowser.error(XPCOM.NS_NOINTERFACE);
+// if (rc != XPCOM.NS_OK) MozillaBrowser.error(rc);
+// if (result[0] == 0) MozillaBrowser.error(XPCOM.NS_NOINTERFACE);
nsIServiceManager serviceManager = new nsIServiceManager(result[0]);
result[0] = 0;
@@ -106,33 +106,33 @@
byte[] aContractID = new byte[buffer.length + 1];
System.arraycopy(buffer, 0, aContractID, 0, buffer.length);
rc = serviceManager.GetServiceByContractID(aContractID, nsIWindowWatcher.NS_IWINDOWWATCHER_IID, result);
- if (rc != XPCOM.NS_OK) MozillaBrowser.error(rc);
- if (result[0] == 0) MozillaBrowser.error(XPCOM.NS_NOINTERFACE);
+// if (rc != XPCOM.NS_OK) MozillaBrowser.error(rc);
+// if (result[0] == 0) MozillaBrowser.error(XPCOM.NS_NOINTERFACE);
serviceManager.Release();
nsIWindowWatcher windowWatcher = new nsIWindowWatcher(result[0]);
result[0] = 0;
rc = windowWatcher.GetChromeForWindow(aDOMWindow, result);
- if (rc != XPCOM.NS_OK) MozillaBrowser.error(rc);
- if (result[0] == 0) MozillaBrowser.error(XPCOM.NS_NOINTERFACE);
+// if (rc != XPCOM.NS_OK) MozillaBrowser.error(rc);
+// if (result[0] == 0) MozillaBrowser.error(XPCOM.NS_NOINTERFACE);
windowWatcher.Release();
nsIWebBrowserChrome webBrowserChrome = new nsIWebBrowserChrome(result[0]);
result[0] = 0;
rc = webBrowserChrome.QueryInterface(nsIEmbeddingSiteWindow.NS_IEMBEDDINGSITEWINDOW_IID, result);
- if (rc != XPCOM.NS_OK) MozillaBrowser.error(rc);
- if (result[0] == 0) MozillaBrowser.error(XPCOM.NS_NOINTERFACE);
+// if (rc != XPCOM.NS_OK) MozillaBrowser.error(rc);
+// if (result[0] == 0) MozillaBrowser.error(XPCOM.NS_NOINTERFACE);
webBrowserChrome.Release();
nsIEmbeddingSiteWindow embeddingSiteWindow = new nsIEmbeddingSiteWindow(result[0]);
result[0] = 0;
rc = embeddingSiteWindow.GetSiteWindow(result);
- if (rc != XPCOM.NS_OK) MozillaBrowser.error(rc);
- if (result[0] == 0) MozillaBrowser.error(XPCOM.NS_NOINTERFACE);
+// if (rc != XPCOM.NS_OK) MozillaBrowser.error(rc);
+// if (result[0] == 0) MozillaBrowser.error(XPCOM.NS_NOINTERFACE);
embeddingSiteWindow.Release();
Display display = Display.getCurrent();
- return (MozillaBrowser)display.findWidget(result[0]);
+ return display.findWidget(result[0]);
}
String getLabel(int buttonFlag, int index, int buttonTitle) {
@@ -157,7 +157,7 @@
/* nsIPromptService */
public int Alert(int parent, int dialogTitle, int text) {
- MozillaBrowser browser = getBrowser(parent);
+ Object browser = getBrowser(parent);
int length = XPCOM.nsCRT_strlen_PRUnichar(dialogTitle);
char[] dest = new char[length];
@@ -169,10 +169,10 @@
XPCOM.memmove(dest, text, length * 2);
String textLabel = new String(dest);
- MessageBox messageBox = new MessageBox(browser.getShell(), SWT.OK);
- messageBox.setText(titleLabel);
- messageBox.setMessage(textLabel);
- messageBox.open();
+// MessageBox messageBox = new MessageBox(browser.getShell(), SWT.OK);
+// messageBox.setText(titleLabel);
+// messageBox.setMessage(textLabel);
+// messageBox.open();
return XPCOM.NS_OK;
}
@@ -189,7 +189,7 @@
}
public int ConfirmEx(int parent, int dialogTitle, int text, int buttonFlags, int button0Title, int button1Title, int button2Title, int checkMsg, int checkValue, int _retval) {
- MozillaBrowser browser = getBrowser(parent);
+// MozillaBrowser browser = getBrowser(parent);
int length = XPCOM.nsCRT_strlen_PRUnichar(dialogTitle);
char[] dest = new char[length];
@@ -213,12 +213,12 @@
String button2Label = getLabel(buttonFlags, nsIPromptService.BUTTON_POS_1, button0Title);
String button3Label = getLabel(buttonFlags, nsIPromptService.BUTTON_POS_2, button0Title);
- PromptDialog dialog = new PromptDialog(browser.getShell());
- int[] check = new int[1], result = new int[1];
- if (checkValue != 0) XPCOM.memmove(check, checkValue, 4);
- dialog.confirmEx(titleLabel, textLabel, checkLabel, button1Label, button2Label, button3Label, check, result);
- if (checkValue != 0) XPCOM.memmove(checkValue, check, 4);
- XPCOM.memmove(_retval, result, 4);
+// PromptDialog dialog = new PromptDialog(browser.getShell());
+// int[] check = new int[1], result = new int[1];
+// if (checkValue != 0) XPCOM.memmove(check, checkValue, 4);
+// dialog.confirmEx(titleLabel, textLabel, checkLabel, button1Label, button2Label, button3Label, check, result);
+// if (checkValue != 0) XPCOM.memmove(checkValue, check, 4);
+// XPCOM.memmove(_retval, result, 4);
return XPCOM.NS_OK;
}
@@ -227,7 +227,7 @@
}
public int PromptUsernameAndPassword(int parent, int dialogTitle, int text, int username, int password, int checkMsg, int checkValue, int _retval) {
- MozillaBrowser browser = getBrowser(parent);
+// MozillaBrowser browser = getBrowser(parent);
String titleLabel = null, textLabel, checkLabel = null;
String[] userLabel = new String[1], passLabel = new String[1];
char[] dest;
@@ -271,83 +271,83 @@
checkLabel = new String(dest);
}
- PromptDialog dialog = new PromptDialog(browser.getShell());
- int[] check = new int[1], result = new int[1];
- if (checkValue != 0) XPCOM.memmove(check, checkValue, 4);
- dialog.promptUsernameAndPassword(titleLabel, textLabel, checkLabel, userLabel, passLabel, check, result);
+// PromptDialog dialog = new PromptDialog(browser.getShell());
+// int[] check = new int[1], result = new int[1];
+// if (checkValue != 0) XPCOM.memmove(check, checkValue, 4);
+// dialog.promptUsernameAndPassword(titleLabel, textLabel, checkLabel, userLabel, passLabel, check, result);
- XPCOM.memmove(_retval, result, 4);
- if (result[0] == 1) {
+// XPCOM.memmove(_retval, result, 4);
+// if (result[0] == 1) {
/*
* User selected OK. User name and password are returned as PRUnichar values. Any default
* value that we override must be freed using the nsIMemory service.
*/
- int cnt, size, ptr;
- char[] buffer;
- if (userLabel[0] != null) {
- cnt = userLabel[0].length();
- buffer = new char[cnt + 1];
- userLabel[0].getChars(0, cnt, buffer, 0);
- size = buffer.length * 2;
- ptr = XPCOM.PR_Malloc(size);
- XPCOM.memmove(ptr, buffer, size);
- XPCOM.memmove(username, new int[] {ptr}, 4);
-
- if (userAddr[0] != 0) {
- result[0] = 0;
- int rc = XPCOM.NS_GetServiceManager(result);
- if (rc != XPCOM.NS_OK) SWT.error(rc);
- if (result[0] == 0) SWT.error(XPCOM.NS_NOINTERFACE);
-
- nsIServiceManager serviceManager = new nsIServiceManager(result[0]);
- result[0] = 0;
- byte[] tmp = XPCOM.NS_MEMORY_CONTRACTID.getBytes();
- byte[] aContractID = new byte[tmp.length + 1];
- System.arraycopy(tmp, 0, aContractID, 0, tmp.length);
- rc = serviceManager.GetServiceByContractID(aContractID, nsIMemory.NS_IMEMORY_IID, result);
- if (rc != XPCOM.NS_OK) SWT.error(rc);
- if (result[0] == 0) SWT.error(XPCOM.NS_NOINTERFACE);
- serviceManager.Release();
-
- nsIMemory memory = new nsIMemory(result[0]);
- result[0] = 0;
- memory.Free(userAddr[0]);
- memory.Release();
- }
- }
- if (passLabel[0] != null) {
- cnt = passLabel[0].length();
- buffer = new char[cnt + 1];
- passLabel[0].getChars(0, cnt, buffer, 0);
- size = buffer.length * 2;
- ptr = XPCOM.PR_Malloc(size);
- XPCOM.memmove(ptr, buffer, size);
- XPCOM.memmove(password, new int[] {ptr}, 4);
-
- if (passAddr[0] != 0) {
- result[0] = 0;
- int rc = XPCOM.NS_GetServiceManager(result);
- if (rc != XPCOM.NS_OK) SWT.error(rc);
- if (result[0] == 0) SWT.error(XPCOM.NS_NOINTERFACE);
-
- nsIServiceManager serviceManager = new nsIServiceManager(result[0]);
- result[0] = 0;
- byte[] tmp = XPCOM.NS_MEMORY_CONTRACTID.getBytes();
- byte[] aContractID = new byte[tmp.length + 1];
- System.arraycopy(tmp, 0, aContractID, 0, tmp.length);
- rc = serviceManager.GetServiceByContractID(aContractID, nsIMemory.NS_IMEMORY_IID, result);
- if (rc != XPCOM.NS_OK) SWT.error(rc);
- if (result[0] == 0) SWT.error(XPCOM.NS_NOINTERFACE);
- serviceManager.Release();
-
- nsIMemory memory = new nsIMemory(result[0]);
- result[0] = 0;
- memory.Free(passAddr[0]);
- memory.Release();
- }
- }
- }
- if (checkValue != 0) XPCOM.memmove(checkValue, check, 4);
+// int cnt, size, ptr;
+// char[] buffer;
+// if (userLabel[0] != null) {
+// cnt = userLabel[0].length();
+// buffer = new char[cnt + 1];
+// userLabel[0].getChars(0, cnt, buffer, 0);
+// size = buffer.length * 2;
+// ptr = XPCOM.PR_Malloc(size);
+// XPCOM.memmove(ptr, buffer, size);
+// XPCOM.memmove(username, new int[] {ptr}, 4);
+//
+// if (userAddr[0] != 0) {
+// result[0] = 0;
+// int rc = XPCOM.NS_GetServiceManager(result);
+// if (rc != XPCOM.NS_OK) SWT.error(rc);
+// if (result[0] == 0) SWT.error(XPCOM.NS_NOINTERFACE);
+//
+// nsIServiceManager serviceManager = new nsIServiceManager(result[0]);
+// result[0] = 0;
+// byte[] tmp = XPCOM.NS_MEMORY_CONTRACTID.getBytes();
+// byte[] aContractID = new byte[tmp.length + 1];
+// System.arraycopy(tmp, 0, aContractID, 0, tmp.length);
+// rc = serviceManager.GetServiceByContractID(aContractID, nsIMemory.NS_IMEMORY_IID, result);
+// if (rc != XPCOM.NS_OK) SWT.error(rc);
+// if (result[0] == 0) SWT.error(XPCOM.NS_NOINTERFACE);
+// serviceManager.Release();
+//
+// nsIMemory memory = new nsIMemory(result[0]);
+// result[0] = 0;
+// memory.Free(userAddr[0]);
+// memory.Release();
+// }
+// }
+// if (passLabel[0] != null) {
+// cnt = passLabel[0].length();
+// buffer = new char[cnt + 1];
+// passLabel[0].getChars(0, cnt, buffer, 0);
+// size = buffer.length * 2;
+// ptr = XPCOM.PR_Malloc(size);
+// XPCOM.memmove(ptr, buffer, size);
+// XPCOM.memmove(password, new int[] {ptr}, 4);
+//
+// if (passAddr[0] != 0) {
+// result[0] = 0;
+// int rc = XPCOM.NS_GetServiceManager(result);
+// if (rc != XPCOM.NS_OK) SWT.error(rc);
+// if (result[0] == 0) SWT.error(XPCOM.NS_NOINTERFACE);
+//
+// nsIServiceManager serviceManager = new nsIServiceManager(result[0]);
+// result[0] = 0;
+// byte[] tmp = XPCOM.NS_MEMORY_CONTRACTID.getBytes();
+// byte[] aContractID = new byte[tmp.length + 1];
+// System.arraycopy(tmp, 0, aContractID, 0, tmp.length);
+// rc = serviceManager.GetServiceByContractID(aContractID, nsIMemory.NS_IMEMORY_IID, result);
+// if (rc != XPCOM.NS_OK) SWT.error(rc);
+// if (result[0] == 0) SWT.error(XPCOM.NS_NOINTERFACE);
+// serviceManager.Release();
+//
+// nsIMemory memory = new nsIMemory(result[0]);
+// result[0] = 0;
+// memory.Free(passAddr[0]);
+// memory.Release();
+// }
+// }
+// }
+// if (checkValue != 0) XPCOM.memmove(checkValue, check, 4);
return XPCOM.NS_OK;
}
Modified: branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.mozilla/src/org/jboss/tools/vpe/mozilla/browser/WindowCreator.java
===================================================================
--- branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.mozilla/src/org/jboss/tools/vpe/mozilla/browser/WindowCreator.java 2007-08-08 16:30:45 UTC (rev 2976)
+++ branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.mozilla/src/org/jboss/tools/vpe/mozilla/browser/WindowCreator.java 2007-08-08 16:32:00 UTC (rev 2977)
@@ -10,14 +10,15 @@
*******************************************************************************/
package org.jboss.tools.vpe.mozilla.browser;
-import org.eclipse.swt.*;
-import org.eclipse.swt.browser.CloseWindowListener;
-import org.eclipse.swt.browser.VisibilityWindowListener;
-import org.eclipse.swt.browser.WindowEvent;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-import org.jboss.tools.vpe.mozilla.internal.swt.xpl.*;
+import org.eclipse.swt.widgets.Display;
+import org.jboss.tools.vpe.mozilla.internal.swt.xpl.XPCOM;
+import org.jboss.tools.vpe.mozilla.internal.swt.xpl.XPCOMObject;
+import org.jboss.tools.vpe.mozilla.internal.swt.xpl.nsIBaseWindow;
+import org.jboss.tools.vpe.mozilla.internal.swt.xpl.nsID;
+import org.jboss.tools.vpe.mozilla.internal.swt.xpl.nsISupports;
+import org.jboss.tools.vpe.mozilla.internal.swt.xpl.nsIWebBrowser;
+import org.jboss.tools.vpe.mozilla.internal.swt.xpl.nsIWebBrowserChrome;
+import org.jboss.tools.vpe.mozilla.internal.swt.xpl.nsIWindowCreator;
class WindowCreator {
@@ -98,27 +99,27 @@
nsIWebBrowserChrome browserChromeParent = new nsIWebBrowserChrome(parent);
int[] aWebBrowser = new int[1];
int rc = browserChromeParent.GetWebBrowser(aWebBrowser);
- if (rc != XPCOM.NS_OK) MozillaBrowser.error(rc);
- if (aWebBrowser[0] == 0) MozillaBrowser.error(XPCOM.NS_ERROR_NO_INTERFACE);
+// if (rc != XPCOM.NS_OK) MozillaBrowser.error(rc);
+// if (aWebBrowser[0] == 0) MozillaBrowser.error(XPCOM.NS_ERROR_NO_INTERFACE);
nsIWebBrowser webBrowser = new nsIWebBrowser(aWebBrowser[0]);
int[] result = new int[1];
rc = webBrowser.QueryInterface(nsIBaseWindow.NS_IBASEWINDOW_IID, result);
- if (rc != XPCOM.NS_OK) MozillaBrowser.error(rc);
- if (result[0] == 0) MozillaBrowser.error(XPCOM.NS_ERROR_NO_INTERFACE);
+// if (rc != XPCOM.NS_OK) MozillaBrowser.error(rc);
+// if (result[0] == 0) MozillaBrowser.error(XPCOM.NS_ERROR_NO_INTERFACE);
webBrowser.Release();
nsIBaseWindow baseWindow = new nsIBaseWindow(result[0]);
result[0] = 0;
int[] aParentNativeWindow = new int[1];
rc = baseWindow.GetParentNativeWindow(aParentNativeWindow);
- if (rc != XPCOM.NS_OK) MozillaBrowser.error(rc);
- if (aParentNativeWindow[0] == 0) MozillaBrowser.error(XPCOM.NS_ERROR_NO_INTERFACE);
+// if (rc != XPCOM.NS_OK) MozillaBrowser.error(rc);
+// if (aParentNativeWindow[0] == 0) MozillaBrowser.error(XPCOM.NS_ERROR_NO_INTERFACE);
baseWindow.Release();
Display display = Display.getCurrent();
- MozillaBrowser src = (MozillaBrowser)display.findWidget(aParentNativeWindow[0]);
- MozillaBrowser browser = null;
+// MozillaBrowser src = (MozillaBrowser)display.findWidget(aParentNativeWindow[0]);
+// MozillaBrowser browser = null;
boolean doit = false;
if ((chromeFlags & nsIWebBrowserChrome.CHROME_MODAL) != 0) {
/*
@@ -129,26 +130,26 @@
* and a Browser to display an emulated HTML based print dialog. For this reason,
* modal requests are handled here and not exposed to the user.
*/
- final Shell shell = new Shell(src.getShell(), SWT.DIALOG_TRIM | SWT.APPLICATION_MODAL);
- shell.setLayout(new FillLayout());
- browser = new MozillaBrowser(shell, SWT.NONE);
- browser.addVisibilityWindowListener(new VisibilityWindowListener() {
- public void hide(WindowEvent event) {
- }
- public void show(WindowEvent event) {
- if (event.location != null) shell.setLocation(event.location);
- if (event.size != null) {
- Point size = event.size;
- shell.setSize(shell.computeSize(size.x, size.y));
- }
- shell.open();
- }
- });
- browser.addCloseWindowListener(new CloseWindowListener() {
- public void close(WindowEvent event) {
- shell.close();
- }
- });
+// final Shell shell = new Shell(src.getShell(), SWT.DIALOG_TRIM | SWT.APPLICATION_MODAL);
+// shell.setLayout(new FillLayout());
+// browser = new MozillaBrowser(shell, SWT.NONE);
+// browser.addVisibilityWindowListener(new VisibilityWindowListener() {
+// public void hide(WindowEvent event) {
+// }
+// public void show(WindowEvent event) {
+// if (event.location != null) shell.setLocation(event.location);
+// if (event.size != null) {
+// Point size = event.size;
+// shell.setSize(shell.computeSize(size.x, size.y));
+// }
+// shell.open();
+// }
+// });
+// browser.addCloseWindowListener(new CloseWindowListener() {
+// public void close(WindowEvent event) {
+// shell.close();
+// }
+// });
doit = true;
} else {
// Edward
@@ -163,10 +164,10 @@
*/
}
if (doit) {
- int address = browser.webBrowserChrome.getAddress();
- nsIWebBrowserChrome webBrowserChrome = new nsIWebBrowserChrome(address);
- webBrowserChrome.AddRef();
- XPCOM.memmove(_retval, new int[] {address}, 4);
+// int address = browser.webBrowserChrome.getAddress();
+// nsIWebBrowserChrome webBrowserChrome = new nsIWebBrowserChrome(address);
+// webBrowserChrome.AddRef();
+// XPCOM.memmove(_retval, new int[] {address}, 4);
}
return doit ? XPCOM.NS_OK : XPCOM.NS_ERROR_NOT_IMPLEMENTED;
}
Modified: branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.mozilla/src-xpcom/org/jboss/tools/vpe/mozilla/internal/swt/xpl/nsIDOMEvent.java
===================================================================
--- branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.mozilla/src-xpcom/org/jboss/tools/vpe/mozilla/internal/swt/xpl/nsIDOMEvent.java 2007-08-08 16:30:45 UTC (rev 2976)
+++ branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.mozilla/src-xpcom/org/jboss/tools/vpe/mozilla/internal/swt/xpl/nsIDOMEvent.java 2007-08-08 16:32:00 UTC (rev 2977)
@@ -29,7 +29,6 @@
import org.w3c.dom.Node;
-import org.jboss.tools.vpe.mozilla.browser.MozillaBrowser;
public class nsIDOMEvent extends nsISupports {
@@ -116,19 +115,10 @@
int[] result = new int[] {0};
int rc = GetTarget(result);
if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) MozillaBrowser.error(XPCOM.NS_ERROR_NO_INTERFACE);
+// if (result[0] == 0) MozillaBrowser.error(XPCOM.NS_ERROR_NO_INTERFACE);
return new nsIDOMEventTarget(result[0]);
}
- public Node getTargetNode() {
- int[] result = new int[] {0};
- int rc = GetTarget(result);
- if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) return null;
- int nodeAddress = nsISupports.queryInterface(result[0], nsIDOMNode.NS_IDOMNODE_IID);
- return nsIDOMNode.getNodeAtAddress(nodeAddress);
- }
-
public Node getCurrentTargetNode() {
int[] result = new int[] {0};
int rc = GetCurrentTarget(result);
Modified: branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.mozilla/src-xpcom/org/jboss/tools/vpe/mozilla/internal/swt/xpl/nsIDOMNSEvent.java
===================================================================
--- branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.mozilla/src-xpcom/org/jboss/tools/vpe/mozilla/internal/swt/xpl/nsIDOMNSEvent.java 2007-08-08 16:30:45 UTC (rev 2976)
+++ branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.mozilla/src-xpcom/org/jboss/tools/vpe/mozilla/internal/swt/xpl/nsIDOMNSEvent.java 2007-08-08 16:32:00 UTC (rev 2977)
@@ -11,7 +11,6 @@
*******************************************************************************/
package org.jboss.tools.vpe.mozilla.internal.swt.xpl;
-import org.jboss.tools.vpe.mozilla.browser.MozillaBrowser;
public class nsIDOMNSEvent extends nsISupports {
@@ -53,7 +52,7 @@
int[] result = new int[] {0};
int rc = GetOriginalTarget(result);
if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) MozillaBrowser.error(XPCOM.NS_ERROR_NO_INTERFACE);
+// if (result[0] == 0) MozillaBrowser.error(XPCOM.NS_ERROR_NO_INTERFACE);
return new nsIDOMEventTarget(result[0]);
}
@@ -61,7 +60,7 @@
int[] result = new int[] {0};
int rc = GetExplicitOriginalTarget(result);
if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) MozillaBrowser.error(XPCOM.NS_ERROR_NO_INTERFACE);
+// if (result[0] == 0) MozillaBrowser.error(XPCOM.NS_ERROR_NO_INTERFACE);
return new nsIDOMEventTarget(result[0]);
}
@@ -69,7 +68,7 @@
int[] result = new int[] {0};
int rc = GetTmpRealOriginalTarget(result);
if (rc != XPCOM.NS_OK) error(rc);
- if (result[0] == 0) MozillaBrowser.error(XPCOM.NS_ERROR_NO_INTERFACE);
+// if (result[0] == 0) MozillaBrowser.error(XPCOM.NS_ERROR_NO_INTERFACE);
return new nsIDOMEventTarget(result[0]);
}
}
Modified: branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.mozilla/src-xpcom/org/jboss/tools/vpe/mozilla/internal/swt/xpl/nsIDOMNode.java
===================================================================
--- branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.mozilla/src-xpcom/org/jboss/tools/vpe/mozilla/internal/swt/xpl/nsIDOMNode.java 2007-08-08 16:30:45 UTC (rev 2976)
+++ branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.mozilla/src-xpcom/org/jboss/tools/vpe/mozilla/internal/swt/xpl/nsIDOMNode.java 2007-08-08 16:32:00 UTC (rev 2977)
@@ -384,15 +384,15 @@
return getNodeAtAddress(result[0]);
}
- public int getOffset() {
- int offset = 0;
- int address = getAddress();
- while ((address = getPreviousSiblingAddress(address)) != 0) {
- release(address);
- offset++;
- }
- return offset;
- }
+// public int getOffset() {
+// int offset = 0;
+// int address = getAddress();
+// while ((address = getPreviousSiblingAddress(address)) != 0) {
+// release(address);
+// offset++;
+// }
+// return offset;
+// }
/**
* The namespace prefix of this node, or <code>null</code> if it is unspecified.
18 years, 4 months
JBoss Tools SVN: r2976 - branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.xulrunner.win32.win32.x86/META-INF.
by jbosstools-commits@lists.jboss.org
Author: svasilyev
Date: 2007-08-08 12:30:45 -0400 (Wed, 08 Aug 2007)
New Revision: 2976
Modified:
branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.xulrunner.win32.win32.x86/META-INF/MANIFEST.MF
Log:
http://jira.jboss.org/jira/browse/EXIN-235 plugin ID was changed
Modified: branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.xulrunner.win32.win32.x86/META-INF/MANIFEST.MF
===================================================================
--- branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.xulrunner.win32.win32.x86/META-INF/MANIFEST.MF 2007-08-08 16:29:02 UTC (rev 2975)
+++ branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.xulrunner.win32.win32.x86/META-INF/MANIFEST.MF 2007-08-08 16:30:45 UTC (rev 2976)
@@ -1,7 +1,7 @@
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: XULRunner Plug-in
-Bundle-SymbolicName: org.jboss.tools.vpe.xulrunner
+Bundle-SymbolicName: org.jboss.tools.vpe.mozilla.xulrunner
Bundle-Version: 1.8.1.3
Bundle-Vendor: Red Hat, Inc.
Eclipse-PlatformFilter: (& (osgi.ws=win32) (osgi.os=win32) (osgi.arch=x86))
18 years, 4 months
JBoss Tools SVN: r2975 - in branches/jbosstools_xulrunner/vpe/xul_spike/org.jboss.tools.vpe.xulrunner.view: META-INF and 10 other directories.
by jbosstools-commits@lists.jboss.org
Author: svasilyev
Date: 2007-08-08 12:29:02 -0400 (Wed, 08 Aug 2007)
New Revision: 2975
Added:
branches/jbosstools_xulrunner/vpe/xul_spike/org.jboss.tools.vpe.xulrunner.view/.classpath
branches/jbosstools_xulrunner/vpe/xul_spike/org.jboss.tools.vpe.xulrunner.view/.project
branches/jbosstools_xulrunner/vpe/xul_spike/org.jboss.tools.vpe.xulrunner.view/META-INF/
branches/jbosstools_xulrunner/vpe/xul_spike/org.jboss.tools.vpe.xulrunner.view/META-INF/MANIFEST.MF
branches/jbosstools_xulrunner/vpe/xul_spike/org.jboss.tools.vpe.xulrunner.view/build.properties
branches/jbosstools_xulrunner/vpe/xul_spike/org.jboss.tools.vpe.xulrunner.view/icons/
branches/jbosstools_xulrunner/vpe/xul_spike/org.jboss.tools.vpe.xulrunner.view/icons/sample.gif
branches/jbosstools_xulrunner/vpe/xul_spike/org.jboss.tools.vpe.xulrunner.view/plugin.xml
branches/jbosstools_xulrunner/vpe/xul_spike/org.jboss.tools.vpe.xulrunner.view/src/
branches/jbosstools_xulrunner/vpe/xul_spike/org.jboss.tools.vpe.xulrunner.view/src/org/
branches/jbosstools_xulrunner/vpe/xul_spike/org.jboss.tools.vpe.xulrunner.view/src/org/jboss/
branches/jbosstools_xulrunner/vpe/xul_spike/org.jboss.tools.vpe.xulrunner.view/src/org/jboss/tools/
branches/jbosstools_xulrunner/vpe/xul_spike/org.jboss.tools.vpe.xulrunner.view/src/org/jboss/tools/vpe/
branches/jbosstools_xulrunner/vpe/xul_spike/org.jboss.tools.vpe.xulrunner.view/src/org/jboss/tools/vpe/xulrunner/
branches/jbosstools_xulrunner/vpe/xul_spike/org.jboss.tools.vpe.xulrunner.view/src/org/jboss/tools/vpe/xulrunner/browser/
branches/jbosstools_xulrunner/vpe/xul_spike/org.jboss.tools.vpe.xulrunner.view/src/org/jboss/tools/vpe/xulrunner/browser/view/
branches/jbosstools_xulrunner/vpe/xul_spike/org.jboss.tools.vpe.xulrunner.view/src/org/jboss/tools/vpe/xulrunner/browser/view/views/
branches/jbosstools_xulrunner/vpe/xul_spike/org.jboss.tools.vpe.xulrunner.view/src/org/jboss/tools/vpe/xulrunner/browser/view/views/XulRunnerBrowserView.java
Log:
after renaming
Added: branches/jbosstools_xulrunner/vpe/xul_spike/org.jboss.tools.vpe.xulrunner.view/.classpath
===================================================================
--- branches/jbosstools_xulrunner/vpe/xul_spike/org.jboss.tools.vpe.xulrunner.view/.classpath (rev 0)
+++ branches/jbosstools_xulrunner/vpe/xul_spike/org.jboss.tools.vpe.xulrunner.view/.classpath 2007-08-08 16:29:02 UTC (rev 2975)
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
Added: branches/jbosstools_xulrunner/vpe/xul_spike/org.jboss.tools.vpe.xulrunner.view/.project
===================================================================
--- branches/jbosstools_xulrunner/vpe/xul_spike/org.jboss.tools.vpe.xulrunner.view/.project (rev 0)
+++ branches/jbosstools_xulrunner/vpe/xul_spike/org.jboss.tools.vpe.xulrunner.view/.project 2007-08-08 16:29:02 UTC (rev 2975)
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.jboss.tools.vpe.xulrunner.view</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
Added: branches/jbosstools_xulrunner/vpe/xul_spike/org.jboss.tools.vpe.xulrunner.view/META-INF/MANIFEST.MF
===================================================================
--- branches/jbosstools_xulrunner/vpe/xul_spike/org.jboss.tools.vpe.xulrunner.view/META-INF/MANIFEST.MF (rev 0)
+++ branches/jbosstools_xulrunner/vpe/xul_spike/org.jboss.tools.vpe.xulrunner.view/META-INF/MANIFEST.MF 2007-08-08 16:29:02 UTC (rev 2975)
@@ -0,0 +1,9 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: View Plug-in
+Bundle-SymbolicName: org.jboss.tools.vpe.xulrunner.view;singleton:=true
+Bundle-Version: 1.0.0
+Bundle-Vendor: Red Hat, Inc.
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.ui,
+ org.jboss.tools.vpe.xulrunner
Added: branches/jbosstools_xulrunner/vpe/xul_spike/org.jboss.tools.vpe.xulrunner.view/build.properties
===================================================================
--- branches/jbosstools_xulrunner/vpe/xul_spike/org.jboss.tools.vpe.xulrunner.view/build.properties (rev 0)
+++ branches/jbosstools_xulrunner/vpe/xul_spike/org.jboss.tools.vpe.xulrunner.view/build.properties 2007-08-08 16:29:02 UTC (rev 2975)
@@ -0,0 +1,6 @@
+source.. = src/
+output.. = bin/
+bin.includes = plugin.xml,\
+ META-INF/,\
+ .,\
+ icons/
Added: branches/jbosstools_xulrunner/vpe/xul_spike/org.jboss.tools.vpe.xulrunner.view/icons/sample.gif
===================================================================
(Binary files differ)
Property changes on: branches/jbosstools_xulrunner/vpe/xul_spike/org.jboss.tools.vpe.xulrunner.view/icons/sample.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/jbosstools_xulrunner/vpe/xul_spike/org.jboss.tools.vpe.xulrunner.view/plugin.xml
===================================================================
--- branches/jbosstools_xulrunner/vpe/xul_spike/org.jboss.tools.vpe.xulrunner.view/plugin.xml (rev 0)
+++ branches/jbosstools_xulrunner/vpe/xul_spike/org.jboss.tools.vpe.xulrunner.view/plugin.xml 2007-08-08 16:29:02 UTC (rev 2975)
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.2"?>
+<plugin>
+
+ <extension
+ point="org.eclipse.ui.views">
+ <category
+ name="XULRunner"
+ id="org.jboss.tools.vpe.xulrunner">
+ </category>
+ <view
+ name="XULRunner Browser"
+ icon="icons/sample.gif"
+ category="org.jboss.tools.vpe.xulrunner"
+ class="org.jboss.tools.vpe.xulrunner.browser.view.views.XulRunnerBrowserView"
+ id="org.jboss.tools.vpe.xulrunner.browser.view.views.XulRunnerBrowserView">
+ </view>
+ </extension>
+</plugin>
Added: branches/jbosstools_xulrunner/vpe/xul_spike/org.jboss.tools.vpe.xulrunner.view/src/org/jboss/tools/vpe/xulrunner/browser/view/views/XulRunnerBrowserView.java
===================================================================
--- branches/jbosstools_xulrunner/vpe/xul_spike/org.jboss.tools.vpe.xulrunner.view/src/org/jboss/tools/vpe/xulrunner/browser/view/views/XulRunnerBrowserView.java (rev 0)
+++ branches/jbosstools_xulrunner/vpe/xul_spike/org.jboss.tools.vpe.xulrunner.view/src/org/jboss/tools/vpe/xulrunner/browser/view/views/XulRunnerBrowserView.java 2007-08-08 16:29:02 UTC (rev 2975)
@@ -0,0 +1,243 @@
+package org.jboss.tools.vpe.xulrunner.browser.view.views;
+
+
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.action.IToolBarManager;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.viewers.IStructuredContentProvider;
+import org.eclipse.jface.viewers.ITableLabelProvider;
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Listener;
+import org.eclipse.swt.widgets.ToolBar;
+import org.eclipse.swt.widgets.ToolItem;
+import org.eclipse.ui.IActionBars;
+import org.eclipse.ui.ISharedImages;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.part.ViewPart;
+import org.jboss.tools.vpe.xulrunner.XulRunnerException;
+import org.jboss.tools.vpe.xulrunner.browser.XulRunnerBrowser;
+
+
+/**
+* This sample class demonstrates how to plug-in a new
+* workbench view. The view shows data obtained from the
+* model. The sample creates a dummy model on the fly,
+* but a real implementation would connect to the model
+* available either in this or another plug-in (e.g. the workspace).
+* The view is connected to the model using a content provider.
+* <p>
+* The view uses a label provider to define how model
+* objects should be presented in the view. Each
+* view can present the same model objects using
+* different labels and icons, if needed. Alternatively,
+* a single label provider can be shared between views
+* in order to ensure that objects of the same type are
+* presented in the same way everywhere.
+* <p>
+*/
+
+public class XulRunnerBrowserView extends ViewPart {
+ private XulRunnerBrowser browser;
+ private Combo comboLocation;
+ private Action action1;
+ private Action action2;
+
+ private final String INIT_URL = "about:blank";
+ /*
+ * The content provider class is responsible for
+ * providing objects to the view. It can wrap
+ * existing objects in adapters or simply return
+ * objects as-is. These objects may be sensitive
+ * to the current input of the view, or ignore
+ * it and always show the same content
+ * (like Task List, for example).
+ */
+ class ViewContentProvider implements IStructuredContentProvider {
+ public void inputChanged(Viewer v, Object oldInput, Object newInput) {
+ }
+ public void dispose() {
+ }
+ public Object[] getElements(Object parent) {
+ return new String[] { "One", "Two", "Three" };
+ }
+ }
+ class ViewLabelProvider extends LabelProvider implements ITableLabelProvider {
+ public String getColumnText(Object obj, int index) {
+ return getText(obj);
+ }
+ public Image getColumnImage(Object obj, int index) {
+ return getImage(obj);
+ }
+ public Image getImage(Object obj) {
+ return PlatformUI.getWorkbench().
+ getSharedImages().getImage(ISharedImages.IMG_OBJ_ELEMENT);
+ }
+ }
+
+ /**
+ * The constructor.
+ */
+ public XulRunnerBrowserView() {
+ }
+
+ /**
+ * This is a callback that will allow us
+ * to create the viewer and initialize it.
+ */
+ public void createPartControl(Composite parent) {
+ GridLayout layout = new GridLayout();
+ layout.numColumns = 1;
+ layout.marginHeight = 0;
+ layout.marginWidth = 0;
+ layout.horizontalSpacing = 2;
+ layout.verticalSpacing = 0;
+ parent.setLayout(layout);
+ createToolBar(parent);
+ try {
+ browser = new XulRunnerBrowser(parent);
+ browser.setURL(INIT_URL);
+ browser.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
+ makeActions();
+ contributeToActionBars();
+ } catch (XulRunnerException xre) {
+ // TODO Sergey Vasilyev add to common loger
+ xre.printStackTrace();
+ }
+ }
+
+ private void createToolBar(Composite parent) {
+ GridLayout layout;
+ Composite compToolBar = new Composite(parent, SWT.NONE);
+ layout = new GridLayout();
+ layout.marginHeight = 2;
+ layout.marginWidth = 0;
+ layout.horizontalSpacing = 2;
+ layout.verticalSpacing = 0;
+ layout.numColumns = 3;
+ compToolBar.setLayout(layout);
+ compToolBar.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL|GridData.GRAB_HORIZONTAL));
+ ToolBar toolBar = new ToolBar(compToolBar, SWT.HORIZONTAL | SWT.FLAT);
+ ToolItem toolItem = new ToolItem(toolBar,SWT.PUSH);
+ toolItem.setImage(PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_TOOL_BACK));
+ toolItem.setToolTipText("Back to the previous page");
+ toolItem.addListener(SWT.Selection, new Listener() {
+ public void handleEvent(Event event) {
+ browser.goBack();
+ }
+ });
+ toolItem = new ToolItem(toolBar,SWT.PUSH);
+ toolItem.setImage(PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_TOOL_FORWARD));
+ toolItem.setToolTipText("Forward to the next page");
+ toolItem.addListener(SWT.Selection, new Listener() {
+ public void handleEvent(Event event) {
+ browser.goForward();
+ }
+ });
+
+ toolItem = new ToolItem(toolBar, SWT.SEPARATOR);
+ toolItem = new ToolItem(toolBar,SWT.PUSH);
+ toolItem.setImage(PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_TOOL_UNDO));
+ toolItem.setToolTipText("Refresh the current page");
+ toolItem.addListener(SWT.Selection, new Listener() {
+ public void handleEvent(Event event) {
+ browser.reload();
+ }
+ });
+ toolItem = new ToolItem(toolBar,SWT.PUSH);
+ toolItem.setImage(PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_TOOL_DELETE));
+ toolItem.setToolTipText("Stop loading the current page");
+ toolItem.addListener(SWT.Selection, new Listener() {
+ public void handleEvent(Event event) {
+ browser.stop();
+ }
+ });
+
+ Composite compLocationBar = new Composite(compToolBar, SWT.NONE);
+ layout = new GridLayout();
+ layout.marginHeight = 0;
+ layout.marginWidth = 0;
+ layout.horizontalSpacing = 2;
+ layout.verticalSpacing = 0;
+ layout.numColumns = 2;
+ compLocationBar.setLayout(layout);
+ compLocationBar.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
+ comboLocation = new Combo(compLocationBar, SWT.DROP_DOWN);
+ comboLocation.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
+ toolBar = new ToolBar(compLocationBar, SWT.HORIZONTAL|SWT.FLAT);
+ toolItem = new ToolItem(toolBar, SWT.PUSH);
+ toolItem.setImage(PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_TOOL_NEW_WIZARD));
+ toolItem.setToolTipText("Go to the URL");
+ toolItem.addListener(SWT.Selection, new Listener() {
+ public void handleEvent(Event event) {
+ browser.stop();
+ String url = comboLocation.getText();
+ browser.setURL(url);
+ }
+ });
+ toolBar = new ToolBar(compToolBar, SWT.HORIZONTAL|SWT.FLAT);
+ toolItem = new ToolItem(toolBar, SWT.PUSH);
+ toolItem.setImage(PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_TOOL_NEW_WIZARD));
+ toolItem.setToolTipText("Go to Red Hat");
+ toolItem.addListener(SWT.Selection, new Listener() {
+ public void handleEvent(Event event) {
+ browser.stop();
+ browser.setURL("http://www.redhat.com/");
+ }
+ });
+ }
+
+
+ private void contributeToActionBars() {
+ IActionBars bars = getViewSite().getActionBars();
+ fillLocalToolBar(bars.getToolBarManager());
+ }
+
+
+ private void fillLocalToolBar(IToolBarManager manager) {
+ manager.add(action1);
+ manager.add(action2);
+ }
+
+ private void makeActions() {
+ action1 = new Action() {
+ public void run() {
+ showMessage("Action 1 executed");
+ }
+ };
+ action1.setText("Action 1");
+ action1.setToolTipText("Action 1 tooltip");
+ action1.setImageDescriptor(PlatformUI.getWorkbench().getSharedImages().
+ getImageDescriptor(ISharedImages.IMG_OBJS_INFO_TSK));
+ action2 = new Action() {
+ public void run() {
+ showMessage("Action 2 executed");
+ }
+ };
+ action2.setText("Action 2");
+ action2.setToolTipText("Action 2 tooltip");
+ action2.setImageDescriptor(PlatformUI.getWorkbench().getSharedImages().
+ getImageDescriptor(ISharedImages.IMG_OBJS_INFO_TSK));
+ }
+
+ private void showMessage(String message) {
+ MessageDialog.openInformation(
+ browser.getShell(),
+ "XulRunner Browser View",
+ message);
+ }
+
+ /**
+ * Passing the focus request to the viewer's control.
+ */
+ public void setFocus() {
+ browser.setFocus();
+ }
+}
\ No newline at end of file
18 years, 4 months
JBoss Tools SVN: r2973 - in branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.xulrunner: META-INF and 8 other directories.
by jbosstools-commits@lists.jboss.org
Author: svasilyev
Date: 2007-08-08 12:27:36 -0400 (Wed, 08 Aug 2007)
New Revision: 2973
Added:
branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.xulrunner/.classpath
branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.xulrunner/.project
branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.xulrunner/META-INF/
branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.xulrunner/META-INF/MANIFEST.MF
branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.xulrunner/build.properties
branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.xulrunner/src/
branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.xulrunner/src/org/
branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.xulrunner/src/org/jboss/
branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.xulrunner/src/org/jboss/tools/
branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.xulrunner/src/org/jboss/tools/vpe/
branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.xulrunner/src/org/jboss/tools/vpe/xulrunner/
branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.xulrunner/src/org/jboss/tools/vpe/xulrunner/BrowserPlugin.java
branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.xulrunner/src/org/jboss/tools/vpe/xulrunner/XPCOM.java
branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.xulrunner/src/org/jboss/tools/vpe/xulrunner/XulRunnerException.java
branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.xulrunner/src/org/jboss/tools/vpe/xulrunner/browser/
branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.xulrunner/src/org/jboss/tools/vpe/xulrunner/browser/AppFileLocProvider.java
branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.xulrunner/src/org/jboss/tools/vpe/xulrunner/browser/WindowCreator.java
branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.xulrunner/src/org/jboss/tools/vpe/xulrunner/browser/XulRunnerBrowser.java
branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.xulrunner/src/org/jboss/tools/vpe/xulrunner/editor/
branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.xulrunner/src/org/jboss/tools/vpe/xulrunner/editor/XulRunnerEditor.java
Log:
after renaming from org.jboss.tools.vpe.xulrunner.browser
Added: branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.xulrunner/.classpath
===================================================================
--- branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.xulrunner/.classpath (rev 0)
+++ branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.xulrunner/.classpath 2007-08-08 16:27:36 UTC (rev 2973)
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
Added: branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.xulrunner/.project
===================================================================
--- branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.xulrunner/.project (rev 0)
+++ branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.xulrunner/.project 2007-08-08 16:27:36 UTC (rev 2973)
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.jboss.tools.vpe.xulrunner</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
Added: branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.xulrunner/META-INF/MANIFEST.MF
===================================================================
--- branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.xulrunner/META-INF/MANIFEST.MF (rev 0)
+++ branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.xulrunner/META-INF/MANIFEST.MF 2007-08-08 16:27:36 UTC (rev 2973)
@@ -0,0 +1,16 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Browser (XULRunner) Plug-in
+Bundle-SymbolicName: org.jboss.tools.vpe.xulrunner;singleton:=true
+Bundle-Version: 1.0.0
+Bundle-Activator: org.jboss.tools.vpe.xulrunner.BrowserPlugin
+Require-Bundle: org.eclipse.ui,
+ org.eclipse.core.runtime,
+ org.mozilla.xpcom,
+ org.jboss.tools.vpe.mozilla.xulrunner
+Eclipse-LazyStart: true
+Export-Package: org.jboss.tools.vpe.xulrunner;uses:="org.eclipse.jface.resource,org.eclipse.ui.plugin,org.osgi.framework",
+ org.jboss.tools.vpe.xulrunner.browser;uses:="org.mozilla.interfaces,org.eclipse.swt.widgets,org.mozilla.xpcom",
+ org.jboss.tools.vpe.xulrunner.editor
+Bundle-ClassPath: .
+Bundle-Vendor: Red Hat, Inc.
Added: branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.xulrunner/build.properties
===================================================================
--- branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.xulrunner/build.properties (rev 0)
+++ branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.xulrunner/build.properties 2007-08-08 16:27:36 UTC (rev 2973)
@@ -0,0 +1,4 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .
Added: branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.xulrunner/src/org/jboss/tools/vpe/xulrunner/BrowserPlugin.java
===================================================================
--- branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.xulrunner/src/org/jboss/tools/vpe/xulrunner/BrowserPlugin.java (rev 0)
+++ branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.xulrunner/src/org/jboss/tools/vpe/xulrunner/BrowserPlugin.java 2007-08-08 16:27:36 UTC (rev 2973)
@@ -0,0 +1,61 @@
+package org.jboss.tools.vpe.xulrunner;
+
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class BrowserPlugin extends AbstractUIPlugin {
+
+ // The plug-in ID
+ public static final String PLUGIN_ID = "org.jboss.tools.vpe.xulrunner.browser";
+
+ // The shared instance
+ private static BrowserPlugin plugin;
+
+ /**
+ * The constructor
+ */
+ public BrowserPlugin() {
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+ */
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ plugin = this;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+ */
+ public void stop(BundleContext context) throws Exception {
+ plugin = null;
+ super.stop(context);
+ }
+
+ /**
+ * Returns the shared instance
+ *
+ * @return the shared instance
+ */
+ public static BrowserPlugin getDefault() {
+ return plugin;
+ }
+
+ /**
+ * Returns an image descriptor for the image file at the given
+ * plug-in relative path
+ *
+ * @param path the path
+ * @return the image descriptor
+ */
+ public static ImageDescriptor getImageDescriptor(String path) {
+ return imageDescriptorFromPlugin(PLUGIN_ID, path);
+ }
+}
Added: branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.xulrunner/src/org/jboss/tools/vpe/xulrunner/XPCOM.java
===================================================================
--- branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.xulrunner/src/org/jboss/tools/vpe/xulrunner/XPCOM.java (rev 0)
+++ branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.xulrunner/src/org/jboss/tools/vpe/xulrunner/XPCOM.java 2007-08-08 16:27:36 UTC (rev 2973)
@@ -0,0 +1,25 @@
+/*******************************************************************************
+ * Copyright (c) 2007 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributor:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+
+package org.jboss.tools.vpe.xulrunner;
+
+/**
+ * @author Sergey Vasilyev (svasilyev(a)exadel.com)
+ *
+ */
+public final class XPCOM {
+ private XPCOM() {};
+ /*
+ * Contract IDs
+ */
+ public static final String NS_DRAGSERVICE_CONTRACTID = "@mozilla.org/widget/dragservice;1;"; //$NON-NLS-1$
+ public static final String NS_ITRANSFERABLE_CONTRACTID = "@mozilla.org/widget/transferable;1"; //$NON-NLS-1$
+}
Added: branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.xulrunner/src/org/jboss/tools/vpe/xulrunner/XulRunnerException.java
===================================================================
--- branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.xulrunner/src/org/jboss/tools/vpe/xulrunner/XulRunnerException.java (rev 0)
+++ branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.xulrunner/src/org/jboss/tools/vpe/xulrunner/XulRunnerException.java 2007-08-08 16:27:36 UTC (rev 2973)
@@ -0,0 +1,22 @@
+package org.jboss.tools.vpe.xulrunner;
+
+public class XulRunnerException extends Exception {
+ private static final long serialVersionUID = -7973228286977485907L;
+
+ public XulRunnerException() {
+ super();
+ }
+
+ public XulRunnerException(String message, Throwable cause) {
+ super(message, cause);
+ }
+
+ public XulRunnerException(String message) {
+ super(message);
+ }
+
+ public XulRunnerException(Throwable cause) {
+ super(cause);
+ }
+
+}
Added: branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.xulrunner/src/org/jboss/tools/vpe/xulrunner/browser/AppFileLocProvider.java
===================================================================
--- branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.xulrunner/src/org/jboss/tools/vpe/xulrunner/browser/AppFileLocProvider.java (rev 0)
+++ branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.xulrunner/src/org/jboss/tools/vpe/xulrunner/browser/AppFileLocProvider.java 2007-08-08 16:27:36 UTC (rev 2973)
@@ -0,0 +1,49 @@
+package org.jboss.tools.vpe.xulrunner.browser;
+
+import java.io.File;
+
+import org.eclipse.core.runtime.Platform;
+import org.jboss.tools.vpe.xulrunner.BrowserPlugin;
+import org.mozilla.xpcom.IAppFileLocProvider;
+
+public class AppFileLocProvider implements IAppFileLocProvider {
+ private File xulRunnerPath;
+ private File userDataPath;
+
+ private final String PLUGINS_DIRECTORY = "plugins";
+ private final String HISTORY_FILE = "history.dat";
+ private final String COMPREG_FILE = "compreg.dat";
+ private final String XPTI_FILE = "xpti.dat";
+
+ public AppFileLocProvider(File xulRunnerPath) {
+ this.xulRunnerPath = xulRunnerPath;
+ this.userDataPath = Platform.getLocation().append(".metadata/.plugins")
+ .append(BrowserPlugin.PLUGIN_ID)
+ .append("xulrunner").toFile();
+ }
+
+ public File getFile(String prop, boolean[] persistent) {
+ persistent[0] = false;
+
+ if ("ProfD".equals(prop)) {
+ return userDataPath;
+ } else if ("UHist".equals(prop)) {
+ return new File(userDataPath, HISTORY_FILE);
+ } else if ("ComRegF".equals(prop)) {
+ return new File(userDataPath, COMPREG_FILE);
+ } else if ("XptiRegF".equals(prop)) {
+ return new File(userDataPath, XPTI_FILE);
+ }
+
+ return null;
+ }
+
+ public File[] getFiles(String prop) {
+ if("APluginsDL".equals(prop)) {
+ return new File[] {new File(xulRunnerPath, PLUGINS_DIRECTORY)};
+ }
+
+ return null;
+ }
+
+}
Added: branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.xulrunner/src/org/jboss/tools/vpe/xulrunner/browser/WindowCreator.java
===================================================================
--- branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.xulrunner/src/org/jboss/tools/vpe/xulrunner/browser/WindowCreator.java (rev 0)
+++ branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.xulrunner/src/org/jboss/tools/vpe/xulrunner/browser/WindowCreator.java 2007-08-08 16:27:36 UTC (rev 2973)
@@ -0,0 +1,32 @@
+package org.jboss.tools.vpe.xulrunner.browser;
+
+import org.mozilla.interfaces.nsISupports;
+import org.mozilla.interfaces.nsIURI;
+import org.mozilla.interfaces.nsIWebBrowserChrome;
+import org.mozilla.interfaces.nsIWindowCreator;
+import org.mozilla.interfaces.nsIWindowCreator2;
+import org.mozilla.xpcom.Mozilla;
+
+public class WindowCreator implements nsIWindowCreator, nsIWindowCreator2 {
+
+ public nsIWebBrowserChrome createChromeWindow(nsIWebBrowserChrome arg0,
+ long arg1) {
+ // TODO Sergey Vasilyev implement
+ System.out.println("WindowCreator:createChromeWindow(" + arg0 +", " + arg1 + ")");
+ return arg0;
+ }
+
+ public nsISupports queryInterface(String arg0) {
+ // TODO Auto-generated method stub
+ return Mozilla.queryInterface(this, arg0);
+ }
+
+ public nsIWebBrowserChrome createChromeWindow2(nsIWebBrowserChrome arg0,
+ long arg1, long arg2, nsIURI arg3, boolean[] arg4) {
+ // TODO Sergey Vasilyev implement
+ System.out.println("WindowCreator:createChromeWindow2(" + arg0 +", "
+ + arg1 + ", "+ arg2 + ", "+ (arg3 == null ? "null" : arg3.getSpec()) +")");
+ return arg0;
+ }
+
+}
Added: branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.xulrunner/src/org/jboss/tools/vpe/xulrunner/browser/XulRunnerBrowser.java
===================================================================
--- branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.xulrunner/src/org/jboss/tools/vpe/xulrunner/browser/XulRunnerBrowser.java (rev 0)
+++ branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.xulrunner/src/org/jboss/tools/vpe/xulrunner/browser/XulRunnerBrowser.java 2007-08-08 16:27:36 UTC (rev 2973)
@@ -0,0 +1,379 @@
+/*******************************************************************************
+ * Copyright (c) 2007 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributor:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+
+package org.jboss.tools.vpe.xulrunner.browser;
+
+import java.io.File;
+import java.io.IOException;
+import java.net.URL;
+
+import org.eclipse.core.runtime.FileLocator;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Rectangle;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Listener;
+import org.jboss.tools.vpe.xulrunner.XulRunnerException;
+import org.mozilla.interfaces.nsIBaseWindow;
+import org.mozilla.interfaces.nsIComponentManager;
+import org.mozilla.interfaces.nsIRequest;
+import org.mozilla.interfaces.nsIServiceManager;
+import org.mozilla.interfaces.nsISupports;
+import org.mozilla.interfaces.nsITooltipListener;
+import org.mozilla.interfaces.nsIURI;
+import org.mozilla.interfaces.nsIWebBrowser;
+import org.mozilla.interfaces.nsIWebBrowserChrome;
+import org.mozilla.interfaces.nsIWebBrowserFocus;
+import org.mozilla.interfaces.nsIWebNavigation;
+import org.mozilla.interfaces.nsIWebProgress;
+import org.mozilla.interfaces.nsIWebProgressListener;
+import org.mozilla.xpcom.Mozilla;
+import org.osgi.framework.Bundle;
+
+/**
+ *
+ * @author Sergey Vasilyev (svasilyev(a)exadel.com)
+ *
+ */
+
+public class XulRunnerBrowser extends Composite implements nsIWebBrowserChrome,
+ nsIWebProgressListener, nsITooltipListener {
+ private static String XULRUNNER_BUNDLE = "org.jboss.tools.vpe.xulrunner"; //$NON-NLS-1$
+ private static String XULRUNNER_ENTRY = "/xulrunner";
+
+ // TEMPORARY CODE (@see org.eclipse.swt.browser.Mozilla)
+ static final String XULRUNNER_INITIALIZED = "org.eclipse.swt.browser.XULRunnerInitialized"; //$NON-NLS-1$
+ static final String XULRUNNER_PATH = "org.eclipse.swt.browser.XULRunnerPath"; //$NON-NLS-1$
+
+ private Mozilla mozilla = null;
+ private nsIWebBrowser webBrowser = null;
+ private long chrome_flags = nsIWebBrowserChrome.CHROME_ALL;
+
+ private boolean busyResizeFlag = false;
+
+ public XulRunnerBrowser(Composite parent) throws XulRunnerException {
+ super(parent, SWT.NONE);
+
+ mozilla = Mozilla.getInstance();
+
+ String xulRunnerPath = getXulRunnerPath();
+
+ Boolean isXulRunnerInitialized = "true".equals(System.getProperty(XULRUNNER_INITIALIZED));
+ if (!isXulRunnerInitialized) {
+ File file = new File(xulRunnerPath);
+ mozilla.initialize(file);
+ mozilla.initEmbedding(file, file, new AppFileLocProvider(file));
+ System.setProperty(XULRUNNER_INITIALIZED, "true");
+ }
+
+ nsIComponentManager componentManager = mozilla.getComponentManager();
+ webBrowser = (nsIWebBrowser) componentManager.createInstance("F1EAC761-87E9-11d3-AF80-00A024FFC08C", null, nsIWebBrowser.NS_IWEBBROWSER_IID); //$NON-NLS-1$
+ webBrowser.setContainerWindow(this);
+ nsIBaseWindow baseWindow = (nsIBaseWindow) webBrowser.queryInterface(nsIBaseWindow.NS_IBASEWINDOW_IID);
+
+ Rectangle rect = getClientArea();
+ if (rect.isEmpty()) {
+ rect.height = 1;
+ rect.width = 1;
+ }
+ baseWindow.initWindow(handle, 0, 0, 0, rect.height, rect.width);
+ baseWindow.create();
+ baseWindow.setVisibility(true);
+
+ Listener listener = new Listener(){
+ public void handleEvent (Event event) {
+ switch(event.type) {
+ case SWT.Dispose:
+ onDispose();
+ break;
+ case SWT.Activate:
+ case SWT.FocusIn:
+ onFocusGained();
+ break;
+ case SWT.Deactivate:
+ if (XulRunnerBrowser.this == event.display.getFocusControl()) {
+ onFocusLost();
+ }
+ break;
+ case SWT.Resize:
+ case SWT.Show:
+ /*
+ * Feature on GTK Mozilla. Mozilla does not show up when
+ * its container (a GTK fixed handle) is made visible
+ * after having been hidden. The workaround is to reset
+ * its size after the container has been made visible.
+ */
+ if (!busyResizeFlag) {
+ busyResizeFlag = true;
+ event.display.asyncExec(new Runnable() {
+ public void run() {
+ if (XulRunnerBrowser.this.isDisposed()) return;
+ onResize();
+ busyResizeFlag = false;
+ }
+ });
+ }
+ break;
+ case SWT.KeyDown:
+ onKeyDown();
+ break;
+ }
+ }
+ };
+
+ addListener(SWT.Dispose, listener);
+ addListener(SWT.Resize, listener);
+ addListener(SWT.FocusIn, listener);
+ addListener(SWT.KeyDown, listener);
+ addListener(SWT.Activate, listener);
+ addListener(SWT.Deactivate, listener);
+ addListener(SWT.Show, listener);
+
+ webBrowser.addWebBrowserListener(this, nsIWebProgressListener.NS_IWEBPROGRESSLISTENER_IID);
+ webBrowser.addWebBrowserListener(this, nsITooltipListener.NS_ITOOLTIPLISTENER_IID);
+ }
+
+ private void onDispose() {
+ nsIBaseWindow baseWindow = (nsIBaseWindow) webBrowser.queryInterface(nsIBaseWindow.NS_IBASEWINDOW_IID);
+ baseWindow.destroy();
+ }
+
+ private void onFocusGained() {
+ nsIWebBrowserFocus webBrowserFocus = (nsIWebBrowserFocus) webBrowser.queryInterface(nsIWebBrowserFocus.NS_IWEBBROWSERFOCUS_IID);
+ webBrowserFocus.activate();
+ }
+
+ private void onFocusLost() {
+ nsIWebBrowserFocus webBrowserFocus = (nsIWebBrowserFocus) webBrowser.queryInterface(nsIWebBrowserFocus.NS_IWEBBROWSERFOCUS_IID);
+ webBrowserFocus.deactivate();
+ }
+
+ private void onResize() {
+ nsIBaseWindow baseWindow = (nsIBaseWindow) webBrowser.queryInterface(nsIBaseWindow.NS_IBASEWINDOW_IID);
+
+ Rectangle rect = getClientArea();
+ if (rect.isEmpty()) {
+ rect.height = 1;
+ rect.width = 1;
+ }
+
+ baseWindow.setPositionAndSize(rect.x, rect.y, rect.width, rect.height, true);
+ }
+
+ private void onKeyDown() {
+ System.out.println("XulRunnerBrowser.onKeyDown()");
+ }
+
+ public static String getXulRunnerBundle() {
+ return XULRUNNER_BUNDLE;
+ }
+
+ public static void setXulRunnerBundle(String xulRunnerBundle) {
+ XulRunnerBrowser.XULRUNNER_BUNDLE = xulRunnerBundle;
+ }
+
+ private String getXulRunnerPath() throws XulRunnerException {
+ String xulRunnerPath = System.getProperty(XULRUNNER_PATH);
+ if (xulRunnerPath == null) {
+
+ Bundle fragment = Platform.getBundle(getXulRunnerBundle());
+ if (fragment == null) {
+ throw new XulRunnerException("Bundle " + getXulRunnerBundle() + " is not found.");
+ }
+
+ URL url = fragment.getEntry(XULRUNNER_ENTRY);
+ if (url == null) {
+ throw new XulRunnerException("Bundle " + getXulRunnerBundle() + " doesn't contain /xulrunner");
+ }
+
+
+ try {
+ URL url1 = FileLocator.resolve(url);
+ File file = new File(FileLocator.toFileURL(url1).getFile());
+ xulRunnerPath = file.getAbsolutePath();
+ System.setProperty(XULRUNNER_PATH, xulRunnerPath);
+ } catch (IOException ioe) {
+ throw new XulRunnerException(ioe);
+ }
+ }
+
+ return xulRunnerPath;
+ }
+
+ public nsIServiceManager getServiceManager() {
+ return mozilla.getServiceManager();
+ }
+
+ public nsIComponentManager getComponentManager() {
+ return mozilla.getComponentManager();
+ }
+
+ public void setURL(String url) {
+ nsIWebNavigation webNavigation = (nsIWebNavigation) webBrowser.queryInterface(nsIWebNavigation.NS_IWEBNAVIGATION_IID);
+ webNavigation.loadURI(url, nsIWebNavigation.LOAD_FLAGS_NONE, null, null, null);
+ }
+
+ public String getURL() {
+ nsIWebNavigation webNavigation = (nsIWebNavigation) webBrowser.queryInterface(nsIWebNavigation.NS_IWEBNAVIGATION_IID);
+ return webNavigation.getCurrentURI().getSpec();
+ }
+
+ public void stop() {
+ nsIWebNavigation webNavigation = (nsIWebNavigation) webBrowser.queryInterface(nsIWebNavigation.NS_IWEBNAVIGATION_IID);
+ webNavigation.stop(nsIWebNavigation.STOP_ALL);
+ }
+
+ public void reload() {
+ nsIWebNavigation webNavigation = (nsIWebNavigation) webBrowser.queryInterface(nsIWebNavigation.NS_IWEBNAVIGATION_IID);
+ webNavigation.reload(nsIWebNavigation.LOAD_FLAGS_NONE);
+ }
+
+ public void goBack() {
+ nsIWebNavigation webNavigation = (nsIWebNavigation) webBrowser.queryInterface(nsIWebNavigation.NS_IWEBNAVIGATION_IID);
+ webNavigation.goBack();
+ }
+
+ public void goForward() {
+ nsIWebNavigation webNavigation = (nsIWebNavigation) webBrowser.queryInterface(nsIWebNavigation.NS_IWEBNAVIGATION_IID);
+ webNavigation.goForward();
+ }
+
+ public void onLoadWindow() {
+ }
+
+ /*
+ * nsISupports
+ *
+ * @see org.mozilla.interfaces.nsISupports#queryInterface(java.lang.String)
+ */
+ public nsISupports queryInterface(String arg0) {
+ return Mozilla.queryInterface(this, arg0);
+ }
+
+ /*
+ * nsIWebBrowserChrome
+ *
+ * @see org.mozilla.interfaces.nsIWebBrowserChrome
+ */
+ public void destroyBrowserWindow() {
+ // TODO Sergey Vasilyev implement
+ throw new RuntimeException("Not implemented");
+ }
+
+ public void exitModalEventLoop(long arg0) {
+ throw new RuntimeException("Not implemented");
+ }
+
+ public long getChromeFlags() {
+ return chrome_flags;
+ }
+
+ public nsIWebBrowser getWebBrowser() {
+ return webBrowser;
+ }
+
+ public boolean isWindowModal() {
+ // TODO Sergey Vasilyev implement
+ return false;
+ }
+
+ public void setChromeFlags(long arg0) {
+ chrome_flags = arg0;
+ }
+
+ public void setStatus(long arg0, String arg1) {
+ // TODO Sergey Vasilyev implement
+ throw new RuntimeException("Not implemented");
+ }
+
+ public void setWebBrowser(nsIWebBrowser arg0) {
+ webBrowser = arg0;
+ }
+
+ public void showAsModal() {
+ // TODO Sergey Vasilyev implement
+ throw new RuntimeException("Not implemented");
+ }
+
+ public void sizeBrowserTo(int arg0, int arg1) {
+ // TODO Sergey Vasilyev implement
+ throw new RuntimeException("Not implemented");
+ }
+
+ /* (non-Javadoc)
+ * @see org.mozilla.interfaces.nsIWebProgressListener#onLocationChange(org.mozilla.interfaces.nsIWebProgress, org.mozilla.interfaces.nsIRequest, org.mozilla.interfaces.nsIURI)
+ */
+ @Override
+ public void onLocationChange(nsIWebProgress arg0, nsIRequest arg1,
+ nsIURI arg2) {
+ }
+
+ /* (non-Javadoc)
+ * @see org.mozilla.interfaces.nsIWebProgressListener#onProgressChange(org.mozilla.interfaces.nsIWebProgress, org.mozilla.interfaces.nsIRequest, int, int, int, int)
+ */
+ @Override
+ public void onProgressChange(nsIWebProgress arg0, nsIRequest arg1,
+ int arg2, int arg3, int arg4, int arg5) {
+ }
+
+ /* (non-Javadoc)
+ * @see org.mozilla.interfaces.nsIWebProgressListener#onSecurityChange(org.mozilla.interfaces.nsIWebProgress, org.mozilla.interfaces.nsIRequest, long)
+ */
+ @Override
+ public void onSecurityChange(nsIWebProgress arg0, nsIRequest arg1, long arg2) {
+ }
+
+ /* (non-Javadoc)
+ * @see org.mozilla.interfaces.nsIWebProgressListener#onStateChange(org.mozilla.interfaces.nsIWebProgress, org.mozilla.interfaces.nsIRequest, long, long)
+ */
+ @Override
+ public void onStateChange(nsIWebProgress aWebProgress, nsIRequest aRequest, long aStateFlags, long aStstus) {
+ if ((aStateFlags & nsIWebProgressListener.STATE_IS_WINDOW) != 0
+ && (aStateFlags & nsIWebProgressListener.STATE_STOP) != 0) {
+ onLoadWindow();
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see org.mozilla.interfaces.nsIWebProgressListener#onStatusChange(org.mozilla.interfaces.nsIWebProgress, org.mozilla.interfaces.nsIRequest, long, java.lang.String)
+ */
+ @Override
+ public void onStatusChange(nsIWebProgress arg0, nsIRequest arg1, long aStatus, String message) {
+ }
+
+
+
+ /* (non-Javadoc)
+ * @see org.mozilla.interfaces.nsITooltipListener#onHideTooltip()
+ */
+ @Override
+ public void onHideTooltip() {
+ }
+
+ /* (non-Javadoc)
+ * @see org.mozilla.interfaces.nsITooltipListener#onShowTooltip(int, int, java.lang.String)
+ */
+ @Override
+ public void onShowTooltip(int aXCoords, int aYCoords, String aTipText) {
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.swt.widgets.Widget#dispose()
+ */
+ @Override
+ public void dispose() {
+ if (mozilla != null) {
+ mozilla.termEmbedding();
+ }
+ super.dispose();
+ }
+}
Added: branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.xulrunner/src/org/jboss/tools/vpe/xulrunner/editor/XulRunnerEditor.java
===================================================================
--- branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.xulrunner/src/org/jboss/tools/vpe/xulrunner/editor/XulRunnerEditor.java (rev 0)
+++ branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.xulrunner/src/org/jboss/tools/vpe/xulrunner/editor/XulRunnerEditor.java 2007-08-08 16:27:36 UTC (rev 2973)
@@ -0,0 +1,152 @@
+/*******************************************************************************
+ * Copyright (c) 2007 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributor:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+
+package org.jboss.tools.vpe.xulrunner.editor;
+
+import org.eclipse.swt.widgets.Composite;
+import org.jboss.tools.vpe.xulrunner.XPCOM;
+import org.jboss.tools.vpe.xulrunner.XulRunnerException;
+import org.jboss.tools.vpe.xulrunner.browser.XulRunnerBrowser;
+import org.mozilla.interfaces.nsIClipboardDragDropHookList;
+import org.mozilla.interfaces.nsIComponentManager;
+import org.mozilla.interfaces.nsIDOMDocument;
+import org.mozilla.interfaces.nsIDOMDocumentRange;
+import org.mozilla.interfaces.nsIDOMElement;
+import org.mozilla.interfaces.nsIDOMNode;
+import org.mozilla.interfaces.nsIDOMRange;
+import org.mozilla.interfaces.nsIDOMWindow;
+import org.mozilla.interfaces.nsIDocShell;
+import org.mozilla.interfaces.nsIDragService;
+import org.mozilla.interfaces.nsIDragSession;
+import org.mozilla.interfaces.nsIInterfaceRequestor;
+import org.mozilla.interfaces.nsIServiceManager;
+import org.mozilla.interfaces.nsISupports;
+import org.mozilla.interfaces.nsITransferable;
+
+/**
+ * @author Sergey Vasilyev (svasilyev(a)exadel.com)
+ *
+ */
+public class XulRunnerEditor extends XulRunnerBrowser {
+ /**
+ * color which used for highlight elements which user can see
+ */
+ public static final String flasherVisialElementColor = "blue";
+
+ /**
+ * color which used for highlight parent elements for elements which user
+ * can't see.
+ */
+ public static final String flasherHiddentElementColor = "red";
+
+ /**
+ * Contains name of attribute for inIFLasher drawing
+ */
+ public static String VPEFLASHERCOLORATTRIBUTE="vpeFlasherColorAttribute";
+
+ public static final String TRANS_FLAVOR_kHTMLMime = "text/html";
+ public static final String TRANS_FLAVOR_kURLDataMime = "text/x-moz-url-data";
+ public static final String TRANS_FLAVOR_kFileMime = "application/x-moz-file";
+ public static final String TRANS_FLAVOR_kURLMime = "text/x-moz-url";
+ public static final String TRANS_FLAVOR_kUnicodeMime = "text/unicode";
+ public static final String TRANS_FLAVOR_kNativeHTMLMime = "application/x-moz-nativehtml";
+
+ /**
+ * @param parent
+ * @throws XulRunnerException
+ */
+ public XulRunnerEditor(Composite parent) throws XulRunnerException {
+ super(parent);
+ }
+
+ public boolean isMozillaDragFlavor() {
+
+ nsIDragSession dragSession = getCurrentDragSession();
+ if (dragSession != null) {
+ nsITransferable transferable = createTransferable();
+ if (transferable != null) {
+// transferable.flavorsTransferableCanImport();
+
+ transferable.addDataFlavor(TRANS_FLAVOR_kURLDataMime);
+ transferable.addDataFlavor(TRANS_FLAVOR_kFileMime);
+ transferable.addDataFlavor(TRANS_FLAVOR_kURLMime);
+ transferable.addDataFlavor(TRANS_FLAVOR_kUnicodeMime);
+ dragSession.getData(transferable, 0);
+
+// transferable.flavorsTransferableCanImport();
+ String[] flavors = new String[] {null};
+ nsISupports[] data = new nsISupports[] {null};
+ long[] length = new long[] {0};
+ transferable.getAnyTransferData(flavors, data, length);
+
+ return length[0] > 0;
+ }
+ }
+ return false;
+ }
+
+ public void onElementResize(nsIDOMElement element, int handle, int top, int left, int width, int height) {
+ }
+
+ public nsIDragSession getCurrentDragSession() {
+ nsIServiceManager serviceManager = getServiceManager();
+ nsIDragService dragService = (nsIDragService) serviceManager.getServiceByContractID(XPCOM.NS_DRAGSERVICE_CONTRACTID, nsIDragService.NS_IDRAGSERVICE_IID);
+
+ return dragService.getCurrentSession();
+ }
+
+ public nsIClipboardDragDropHookList getClipboardDragDropHookList() {
+ try {
+ nsIDocShell docShell = getDocShell();
+
+ if (docShell != null) {
+ nsIClipboardDragDropHookList hookList = (nsIClipboardDragDropHookList) docShell.queryInterface(nsIClipboardDragDropHookList.NS_ICLIPBOARDDRAGDROPHOOKLIST_IID);
+ return hookList;
+ }
+ } catch (Throwable t) {
+ t.printStackTrace();
+ }
+ return null;
+ }
+
+ public nsIDocShell getDocShell() {
+ nsIInterfaceRequestor interfaceRequestor = (nsIInterfaceRequestor) getWebBrowser().queryInterface(nsIInterfaceRequestor.NS_IINTERFACEREQUESTOR_IID);
+ return (nsIDocShell) interfaceRequestor.getInterface(nsIDocShell.NS_IDOCSHELL_IID);
+ }
+
+ public nsIDOMDocument getDOMDocument() {
+ nsIDOMWindow domWindow = getWebBrowser().getContentDOMWindow();
+ return domWindow.getDocument();
+ }
+
+ public nsIDOMDocumentRange getDOMDocumentRange() {
+ return (nsIDOMDocumentRange) getDOMDocument().queryInterface(nsIDOMDocumentRange.NS_IDOMDOCUMENTRANGE_IID);
+ }
+
+ public nsIDOMRange createDOMRange() {
+ return getDOMDocumentRange().createRange();
+ }
+
+ public void showDragCaret(nsIDOMNode node, long offcet) {
+ // TODO Sergey Vasilyev figure out with caret
+ System.out.println("Show drag caret for " + node.getNodeName() + ":" + offcet);
+ }
+
+ public void hideDragCaret() {
+ // TODO Sergey Vasilyev figure out with caret
+ System.out.println("Hide drag caret");
+ }
+
+ public nsITransferable createTransferable() {
+ nsIComponentManager componentManager = getComponentManager();
+ return (nsITransferable) componentManager.createInstanceByContractID(XPCOM.NS_ITRANSFERABLE_CONTRACTID, this, nsITransferable.NS_ITRANSFERABLE_IID);
+ }
+}
18 years, 4 months
JBoss Tools SVN: r2972 - branches/jbosstools_xulrunner/vpe/plugins.
by jbosstools-commits@lists.jboss.org
Author: svasilyev
Date: 2007-08-08 12:26:58 -0400 (Wed, 08 Aug 2007)
New Revision: 2972
Added:
branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.xulrunner/
Log:
after renaming from org.jboss.tools.vpe.xulrunner.browser
18 years, 4 months