diff --git a/java/com.google.gwt.dev/META-INF/MANIFEST.MF b/java/com.google.gwt.dev/META-INF/MANIFEST.MF
index 599d78f8748..f1bad3cb695 100644
--- a/java/com.google.gwt.dev/META-INF/MANIFEST.MF
+++ b/java/com.google.gwt.dev/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: gwt-dev
Bundle-SymbolicName: com.google.gwt.dev
-Bundle-Version: 2.8.1
+Bundle-Version: 2.8.2
Bundle-Vendor: GOOGLE
Bundle-RequiredExecutionEnvironment: JavaSE-1.7
Bundle-ClassPath: lib/gwt-dev.jar,
diff --git a/java/com.google.gwt.dev/lib/gwt-dev.jar b/java/com.google.gwt.dev/lib/gwt-dev.jar
index 1ddb4c5895e..30d16cb740e 100644
Binary files a/java/com.google.gwt.dev/lib/gwt-dev.jar and b/java/com.google.gwt.dev/lib/gwt-dev.jar differ
diff --git a/java/com.google.gwt.dev/pom.xml b/java/com.google.gwt.dev/pom.xml
index d98224f3ece..4f26a246167 100644
--- a/java/com.google.gwt.dev/pom.xml
+++ b/java/com.google.gwt.dev/pom.xml
@@ -8,6 +8,6 @@
* * The current implementation only stores a subset of the information available during the import. + *
* - * The first columns need to be consistent with {@link BravoSensorDataMetadata}. + * The first columns need to be consistent with {@link BravoSensorDataMetadata}. Furthermore, + * once data has been stored in a sensor store, the order of literals must remain constant, + * and no literals must be deleted anymore because the ordinal is used to determine the index + * into the {@link DoubleVectorFix}. */ public enum BravoExtendedSensorDataMetadata implements ColumnMetadata { RIDE_HEIGHT_PORT_HULL("RideHeightPort"), // diff --git a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/sensordata/BravoSensorDataMetadata.java b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/sensordata/BravoSensorDataMetadata.java index ff0bf3ab939..6e1a50c5bd5 100644 --- a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/sensordata/BravoSensorDataMetadata.java +++ b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/sensordata/BravoSensorDataMetadata.java @@ -7,7 +7,9 @@ import java.util.Map; import java.util.Objects; /** - * Metadata that defines the column structure of Bravo fixes when imported as {@link com.sap.sailing.domain.common.tracking.DoubleVectorFix}. + * Metadata that defines the column structure of Bravo fixes when imported as + * {@link com.sap.sailing.domain.common.tracking.DoubleVectorFix}. + *
*
* The current implementation only stores a subset of the information available during the import.
*/
diff --git a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/sensordata/ColumnMetadata.java b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/sensordata/ColumnMetadata.java
index 3c995a69384..5380fa447be 100644
--- a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/sensordata/ColumnMetadata.java
+++ b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/sensordata/ColumnMetadata.java
@@ -5,7 +5,9 @@ import com.sap.sailing.domain.common.tracking.SensorFix;
/**
* Definition of column metadata used by {@link SensorFix} implementations to resolve columns in underlying
- * {@link DoubleVectorFix DoubleVectorFixes}.
+ * {@link DoubleVectorFix DoubleVectorFixes}. Once data has been stored in a sensor store according to such a
+ * specification, the order of literals in implementing {@code enum} types must remain constant, and no literals must be
+ * deleted anymore because the ordinal is used to determine the index into the {@link DoubleVectorFix}.
*/
public interface ColumnMetadata {
int getColumnIndex();
diff --git a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/sensordata/ExpeditionExtendedSensorDataMetadata.java b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/sensordata/ExpeditionExtendedSensorDataMetadata.java
index 21ea278366f..9588c721fea 100755
--- a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/sensordata/ExpeditionExtendedSensorDataMetadata.java
+++ b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/sensordata/ExpeditionExtendedSensorDataMetadata.java
@@ -16,7 +16,8 @@ import com.sap.sailing.domain.common.tracking.DoubleVectorFix;
* The first columns need to be consistent with {@link BravoSensorDataMetadata}.
*/
public enum ExpeditionExtendedSensorDataMetadata {
- HEEL("Heel", BravoExtendedSensorDataMetadata.HEEL);
+ HEEL("Heel", BravoExtendedSensorDataMetadata.HEEL),
+ TRIM("TRIM", BravoExtendedSensorDataMetadata.PITCH);
private String columnName;
diff --git a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/tracking/BravoFix.java b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/tracking/BravoFix.java
index 78e938466e7..3cb3a5e7302 100644
--- a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/tracking/BravoFix.java
+++ b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/tracking/BravoFix.java
@@ -46,7 +46,4 @@ public interface BravoFix extends SensorFix {
@Statistic(messageKey = "heel", resultDecimals = 1)
Bearing getHeel();
-
-
-
}
diff --git a/java/com.sap.sailing.gwt.ui.test/META-INF/MANIFEST.MF b/java/com.sap.sailing.gwt.ui.test/META-INF/MANIFEST.MF
index b6912d31c74..7fc34e485e1 100644
--- a/java/com.sap.sailing.gwt.ui.test/META-INF/MANIFEST.MF
+++ b/java/com.sap.sailing.gwt.ui.test/META-INF/MANIFEST.MF
@@ -15,7 +15,7 @@ Require-Bundle: com.sap.sailing.server,
com.sap.sailing.domain.racelogtrackingadapter.testsupport,
com.rabbitmq.client;bundle-version="2.8.4",
com.sap.sse.filestorage,
- com.google.gwt.user;bundle-version="2.8.1";resolution:=optional,
+ com.google.gwt.user;bundle-version="2.8.2";resolution:=optional,
org.moxieapps.gwt.highcharts;bundle-version="1.5.0"
Bundle-ClassPath: .
Import-Package: com.sap.sailing.domain.racelogtracking.impl,
diff --git a/java/com.sap.sailing.gwt.ui/META-INF/MANIFEST.MF b/java/com.sap.sailing.gwt.ui/META-INF/MANIFEST.MF
index 2f95c07d959..7d1b5d432e9 100644
--- a/java/com.sap.sailing.gwt.ui/META-INF/MANIFEST.MF
+++ b/java/com.sap.sailing.gwt.ui/META-INF/MANIFEST.MF
@@ -24,8 +24,8 @@ Require-Bundle: com.sap.sailing.domain,
com.sap.sailing.freg.resultimport,
com.sap.sailing.domain.swisstimingreplayadapter,
com.sap.sailing.simulator,
- com.google.gwt.user;bundle-version="2.8.1";resolution:=optional,
- com.google.gwt.servlet;bundle-version="2.8.1",
+ com.google.gwt.user;bundle-version="2.8.2";resolution:=optional,
+ com.google.gwt.servlet;bundle-version="2.8.2",
com.sap.sailing.domain.igtimiadapter,
com.sap.sailing.xrr.resultimport,
com.sap.sailing.datamining.shared,
diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/simulator/WindStreamletsCanvasOverlay.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/simulator/WindStreamletsCanvasOverlay.java
index ddc676661b3..9e0884443e7 100755
--- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/simulator/WindStreamletsCanvasOverlay.java
+++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/simulator/WindStreamletsCanvasOverlay.java
@@ -127,7 +127,7 @@ public class WindStreamletsCanvasOverlay extends FullCanvasOverlay implements Ti
macroWeather = false;
SimulatorJSBundle bundle = GWT.create(SimulatorJSBundle.class);
String jsonStr = bundle.windStreamletsDataJS().getText();
- RectField f = RectField.read(jsonStr.substring(19, jsonStr.length() - 1), false, streamletPars, coordinateSystem);
+ RectField f = RectField.read(jsonStr, false, streamletPars, coordinateSystem);
map.setZoom(5);
map.panTo(f.getCenter());
this.swarm = new Swarm(this, map, timer, f, streamletPars);
diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/simulator/streamlets/RectField.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/simulator/streamlets/RectField.java
index d462e54adf9..10d84306259 100755
--- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/simulator/streamlets/RectField.java
+++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/simulator/streamlets/RectField.java
@@ -64,7 +64,7 @@ public class RectField implements VectorField {
}
public static RectField read(String jsonData, boolean correctForSphere, StreamletParameters parameters, CoordinateSystem coordinateSystem) {
- JSONObject data = JSONParser.parseLenient(jsonData).isObject();
+ JSONObject data = JSONParser.parseStrict(jsonData).isObject();
int w = (int) data.get("gridWidth").isNumber().doubleValue();
int h = (int) data.get("gridHeight").isNumber().doubleValue();
Vector[][] field = new Vector[w][h];
diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/simulator/streamlets/wind-data.js b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/simulator/streamlets/wind-data.js
index f975506d53c..685525784e3 100644
--- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/simulator/streamlets/wind-data.js
+++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/simulator/streamlets/wind-data.js
@@ -1,12 +1,12 @@
-var swarmDataExt = {
-timestamp: "1:55 pm on March 22, 2014",
-x0: -130.103438,
-y0: 20.191999,
-x1: -60.885558,
-y1: 52.807669,
-gridWidth: 501.0,
-gridHeight: 237.0,
-field: [
+{
+"timestamp": "1:55 pm on March 22, 2014",
+"x0": -130.103438,
+"y0": 20.191999,
+"x1": -60.885558,
+"y1": 52.807669,
+"gridWidth": 501.0,
+"gridHeight": 237.0,
+"field": [
0,0,
0,0,
0,0,
@@ -118745,4 +118745,4 @@ field: [
0,0,
0,0
]
-};
\ No newline at end of file
+}
\ No newline at end of file
diff --git a/java/com.sap.sailing.xrr.structureimport/META-INF/MANIFEST.MF b/java/com.sap.sailing.xrr.structureimport/META-INF/MANIFEST.MF
index ce1964a8e1a..d16f4fcd8ac 100644
--- a/java/com.sap.sailing.xrr.structureimport/META-INF/MANIFEST.MF
+++ b/java/com.sap.sailing.xrr.structureimport/META-INF/MANIFEST.MF
@@ -9,8 +9,8 @@ Export-Package: .,
com.sap.sailing.xrr.structureimport.buildstructure;uses:="com.sap.sailing.xrr.resultimport.schema",
com.sapsailing.xrr.structureimport.eventimport
Bundle-ActivationPolicy: lazy
-Require-Bundle: com.google.gwt.user;bundle-version="2.8.1";resolution:=optional,
- com.google.gwt.servlet;bundle-version="2.8.1",
+Require-Bundle: com.google.gwt.user;bundle-version="2.8.2";resolution:=optional,
+ com.google.gwt.servlet;bundle-version="2.8.2",
com.sap.sailing.domain.common;bundle-version="1.0.0",
com.sap.sailing.domain,
com.sap.sailing.xrr.schema;bundle-version="1.0.0",
diff --git a/java/com.sap.sse.feature.runtime/feature.xml b/java/com.sap.sse.feature.runtime/feature.xml
index 84a89f7d7bb..28e87763f9f 100644
--- a/java/com.sap.sse.feature.runtime/feature.xml
+++ b/java/com.sap.sse.feature.runtime/feature.xml
@@ -253,7 +253,7 @@
id="com.google.gwt.servlet"
download-size="0"
install-size="0"
- version="2.8.1"
+ version="2.8.2"
unpack="false"/>
true if the browser is IE8, false if IE9
- * or any other browser
- */
- static boolean isIE8() {
- if (!isIE8Detected) {
- isIE8 = isIE8Impl();
- isIE8Detected = true;
- }
- return isIE8;
- }
-
- // Stolen and modified from UserAgentPropertyGenerator
- private static native boolean isIE8Impl() /*-{
- var ua = navigator.userAgent.toLowerCase();
- if (ua.indexOf("msie") != -1 && $doc.documentMode == 8) {
- return true;
- }
- return false;
- }-*/;
-
- @Override
- public void cssClearOpacity(Style style) {
- if (isIE8()) {
- cssClearOpacityImpl(style);
- } else {
- super.cssClearOpacity(style);
- }
- }
-
- @Override
- public void cssSetOpacity(Style style, double value) {
- if (isIE8()) {
- cssSetOpacityImpl(style, value);
- } else {
- super.cssSetOpacity(style, value);
- }
- }
-
- @Override
- public int getAbsoluteLeft(Element elem) {
- Document doc = elem.getOwnerDocument();
- return getBoundingClientRectLeft(elem) + doc.getScrollLeft();
- }
-
- @Override
- public int getAbsoluteTop(Element elem) {
- Document doc = elem.getOwnerDocument();
- return getBoundingClientRectTop(elem) + doc.getScrollTop();
- }
-
- @Override
- public int getScrollLeft(Element elem) {
- if (isRTL(elem)) {
- // IE8 returns increasingly *positive* values as you scroll left in RTL.
- return -super.getScrollLeft(elem);
- }
- return super.getScrollLeft(elem);
- }
-
- @Override
- public void setScrollLeft(Element elem, int left) {
- if (isRTL(elem)) {
- // IE8 returns increasingly *positive* values as you scroll left in RTL.
- left = -left;
- }
- super.setScrollLeft(elem, left);
- }
-
- private native void cssClearOpacityImpl(Style style) /*-{
- style.filter = '';
- }-*/;
-
- private native void cssSetOpacityImpl(Style style, double value) /*-{
- style.filter = 'alpha(opacity=' + (value * 100) + ')';
- }-*/;
-}
diff --git a/java/com.sap.sse.gwt/src/com/google/gwt/dom/client/DOMImplIE9Patched.java b/java/com.sap.sse.gwt/src/com/google/gwt/dom/client/DOMImplIE9Patched.java
deleted file mode 100644
index 485755ebd3a..00000000000
--- a/java/com.sap.sse.gwt/src/com/google/gwt/dom/client/DOMImplIE9Patched.java
+++ /dev/null
@@ -1,139 +0,0 @@
-/*
- * Copyright 2011 Google Inc.
- *
- * Licensed under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- */
-package com.google.gwt.dom.client;
-
-/**
- * IE9 based implementation of {@link com.google.gwt.dom.client.DOMImplStandardBase}.
- */
-class DOMImplIE9Patched extends DOMImplStandardBasePatched {
-
- @Override
- public int getAbsoluteLeft(Element elem) {
- double left = getBoundingClientRectLeft(elem) + getDocumentScrollLeftImpl();
- if (isRTL(elem)) { // in RTL, account for the scroll bar shift if present
- left += getParentOffsetDelta(elem);
- }
- return toInt32(left);
- }
-
- @Override
- public int getAbsoluteTop(Element elem) {
- return toInt32(getBoundingClientRectTop(elem) + getDocumentScrollTopImpl());
- }
-
- /**
- * Coerce numeric values a string. In IE, some values can be stored as numeric
- * types.
- */
- @Override
- public native String getNumericStyleProperty(Style style, String name) /*-{
- return typeof(style[name]) == "number" ? "" + style[name] : style[name];
- }-*/;
-
- @Override
- public int getScrollLeft(Document doc) {
- return toInt32(getDocumentScrollLeftImpl());
- }
-
- @Override
- public int getScrollLeft(Element elem) {
- int left = toInt32(getScrollLeftImpl(elem));
- if (isRTL(elem)) {
- left = -left;
- }
- return left;
- }
-
- @Override
- public int getScrollTop(Document doc) {
- return toInt32(getDocumentScrollTopImpl());
- }
-
- @Override
- public native int getTabIndex(Element elem) /*-{
- return elem.tabIndex < 65535 ? elem.tabIndex : -(elem.tabIndex % 65535) - 1;
- }-*/;
-
- @Override
- public boolean isOrHasChild(Node parent, Node child) {
- // IE9 still behaves like IE8 for this method
- return DOMImplTridentPatched.isOrHasChildImpl(parent, child);
- }
-
- @Override
- public native void selectRemoveOption(SelectElement select, int index) /*-{
- try {
- // IE9 throws if elem at index is an optgroup
- select.remove(index);
- } catch(e) {
- select.removeChild(select.childNodes[index]);
- }
- }-*/;
-
- @Override
- public void setScrollLeft(Element elem, int left) {
- if (isRTL(elem)) {
- left = -left;
- }
- setScrollLeftImpl(elem, left);
- }
-
- private native double getBoundingClientRectLeft(Element elem) /*-{
- // getBoundingClientRect() throws a JS exception if the elem is not attached
- // to the document, so we wrap it in a try/catch block
- try {
- return elem.getBoundingClientRect().left;
- } catch (e) {
- // if not attached return 0
- return 0;
- }
- }-*/;
-
- private native double getBoundingClientRectTop(Element elem) /*-{
- // getBoundingClientRect() throws a JS exception if the elem is not attached
- // to the document, so we wrap it in a try/catch block
- try {
- return elem.getBoundingClientRect().top;
- } catch (e) {
- // if not attached return 0
- return 0;
- }
- }-*/;
-
- private native double getDocumentScrollLeftImpl() /*-{
- return $wnd.pageXOffset;
- }-*/;
-
- private native double getDocumentScrollTopImpl() /*-{
- return $wnd.pageYOffset;
- }-*/;
-
- private native double getParentOffsetDelta(Element elem) /*-{
- var offsetParent = elem.offsetParent;
- if (offsetParent) {
- return offsetParent.offsetWidth - offsetParent.clientWidth;
- }
- return 0;
- }-*/;
-
- private native double getScrollLeftImpl(Element elem) /*-{
- return elem.scrollLeft || 0;
- }-*/;
-
- private native void setScrollLeftImpl(Element elem, int left) /*-{
- elem.scrollLeft = left;
- }-*/;
-}
diff --git a/java/com.sap.sse.gwt/src/com/google/gwt/dom/client/DOMImplMozillaPatched.java b/java/com.sap.sse.gwt/src/com/google/gwt/dom/client/DOMImplMozillaPatched.java
deleted file mode 100644
index 9f37be30fe1..00000000000
--- a/java/com.sap.sse.gwt/src/com/google/gwt/dom/client/DOMImplMozillaPatched.java
+++ /dev/null
@@ -1,288 +0,0 @@
-/*
- * Copyright 2008 Google Inc.
- *
- * Licensed under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- */
-package com.google.gwt.dom.client;
-
-/**
- * Mozilla implementation of StandardBrowser.
- */
-class DOMImplMozillaPatched extends DOMImplStandardPatched {
-
- private static native int getGeckoVersion() /*-{
- var result = /rv:([0-9]+)\.([0-9]+)(\.([0-9]+))?.*?/.exec(navigator.userAgent.toLowerCase());
- if (result && result.length >= 3) {
- var version = (parseInt(result[1]) * 1000000) + (parseInt(result[2]) * 1000) +
- parseInt(result.length >= 5 && !isNaN(result[4]) ? result[4] : 0);
- return version;
- }
- return -1; // not gecko
- }-*/;
-
- /**
- * Return true if using Gecko 1.9 (Firefox 3) or later.
- *
- * @return true if using Gecko 1.9 (Firefox 3) or later
- */
- private static boolean isGecko19() {
- int geckoVersion = getGeckoVersion();
- return (geckoVersion != -1) && (geckoVersion >= 1009000);
- }
-
- /**
- * Return true if using Gecko 1.9.0 (Firefox 3) or earlier.
- *
- * @return true if using Gecko 1.9.0 (Firefox 3) or earlier
- */
- private static boolean isGecko190OrBefore() {
- int geckoVersion = getGeckoVersion();
- return (geckoVersion != -1) && (geckoVersion <= 1009000);
- }
-
- /**
- * Return true if using Gecko 1.9.1 (Firefox 3.5) or earlier.
- *
- * @return true if using Gecko 1.9.1 (Firefox 3.5) or earlier
- */
- private static boolean isGecko191OrBefore() {
- int geckoVersion = getGeckoVersion();
- return (geckoVersion != -1) && (geckoVersion <= 1009001);
- }
-
- /**
- * Return true if using Gecko 1.9.2 (Firefox 3.6) or earlier.
- *
- * @return true if using Gecko 1.9.2 (Firefox 3.6) or earlier
- */
- private static boolean isGecko192OrBefore() {
- int geckoVersion = getGeckoVersion();
- return (geckoVersion != -1) && (geckoVersion <= 1009002);
- }
-
- /**
- * Return true if using Gecko 2.0.0 (Firefox 4.0) or earlier.
- *
- * @return true if using Gecko 2.0.0 (Firefox 4.0) or earlier
- */
- private static boolean isGecko2OrBefore() {
- int geckoVersion = getGeckoVersion();
- return (geckoVersion != -1) && (geckoVersion < 2000000);
- }
-
- @Override
- public native void buttonClick(ButtonElement button) /*-{
- var doc = button.ownerDocument;
- if (doc != null) {
- var evt = doc.createEvent('MouseEvents');
- evt.initMouseEvent('click', true, true, null, 0, 0,
- 0, 0, 0, false, false, false, false, 0, null);
- button.dispatchEvent(evt);
- }
- }-*/;
-
- @Override
- public NativeEvent createKeyCodeEvent(Document doc, String type,
- boolean ctrlKey, boolean altKey, boolean shiftKey, boolean metaKey,
- int keyCode) {
- return createKeyEventImpl(doc, type, true, true, ctrlKey, altKey, shiftKey,
- metaKey, keyCode, 0);
- }
-
- @Override
- @Deprecated
- public NativeEvent createKeyEvent(Document doc, String type,
- boolean canBubble, boolean cancelable, boolean ctrlKey, boolean altKey,
- boolean shiftKey, boolean metaKey, int keyCode, int charCode) {
- return createKeyEventImpl(doc, type, canBubble, cancelable, ctrlKey,
- altKey, shiftKey, metaKey, keyCode, charCode);
- }
-
- @Override
- public NativeEvent createKeyPressEvent(Document doc, boolean ctrlKey,
- boolean altKey, boolean shiftKey, boolean metaKey, int charCode) {
- return createKeyEventImpl(doc, "keypress", true, true, ctrlKey, altKey,
- shiftKey, metaKey, 0, charCode);
- }
-
- @Override
- public native int eventGetMouseWheelVelocityY(NativeEvent evt) /*-{
- return evt.detail || 0;
- }-*/;
-
- @Override
- public native EventTarget eventGetRelatedTarget(NativeEvent evt) /*-{
- // Hack around Mozilla bug 497780 (relatedTarget sometimes returns XUL
- // elements). Trying to access relatedTarget.nodeName will throw an
- // exception if it's a XUL element.
- var relatedTarget = evt.relatedTarget;
- if (!relatedTarget) {
- return null;
- }
- try {
- var nodeName = relatedTarget.nodeName;
- return relatedTarget;
- } catch (e) {
- return null;
- }
- }-*/;
-
- @Override
- public int getAbsoluteLeft(Element elem) {
- return getAbsoluteLeftImpl(elem.getOwnerDocument().getViewportElement(),
- elem);
- }
-
- @Override
- public int getAbsoluteTop(Element elem) {
- return getAbsoluteTopImpl(elem.getOwnerDocument().getViewportElement(),
- elem);
- }
-
- @Override
- public native int getBodyOffsetLeft(Document doc) /*-{
- var style = $wnd.getComputedStyle(doc.documentElement, null);
- if (style == null) {
- // Works around https://bugzilla.mozilla.org/show_bug.cgi?id=548397
- return 0;
- }
- return parseInt(style.marginLeft, 10) + parseInt(style.borderLeftWidth, 10);
- }-*/;
-
- @Override
- public native int getBodyOffsetTop(Document doc) /*-{
- var style = $wnd.getComputedStyle(doc.documentElement, null);
- if (style == null) {
- // Works around https://bugzilla.mozilla.org/show_bug.cgi?id=548397
- return 0;
- }
- return parseInt(style.marginTop, 10) + parseInt(style.borderTopWidth, 10);
- }-*/;
-
- @Override
- public native int getNodeType(Node node) /*-{
- try {
- return node.nodeType;
- } catch (e) {
- // Give up on 'Permission denied to get property HTMLDivElement.nodeType'
- // '0' is not a valid node type, which is appropriate in this case, since
- // the node in question is completely inaccessible.
- //
- // See https://bugzilla.mozilla.org/show_bug.cgi?id=208427
- // and http://code.google.com/p/google-web-toolkit/issues/detail?id=1909
- return 0;
- }
- }-*/;
-
- @Override
- public int getScrollLeft(Element elem) {
- if (!isGecko19() && isRTL(elem)) {
- return super.getScrollLeft(elem)
- - (elem.getScrollWidth() - elem.getClientWidth());
- }
- return super.getScrollLeft(elem);
- }
-
- @Override
- public native boolean isOrHasChild(Node parent, Node child) /*-{
- // For more information about compareDocumentPosition, see:
- // http://www.quirksmode.org/blog/archives/2006/01/contains_for_mo.html
- return (parent === child) || !!(parent.compareDocumentPosition(child) & 16);
- }-*/;
-
- @Override
- public void setScrollLeft(Element elem, int left) {
- if (!isGecko19() && isRTL(elem)) {
- left += elem.getScrollWidth() - elem.getClientWidth();
- }
- super.setScrollLeft(elem, left);
- }
-
- @Override
- public native String toString(Element elem) /*-{
- // Basic idea is to use the innerHTML property by copying the node into a
- // div and getting the innerHTML
- var doc = elem.ownerDocument;
- var temp = elem.cloneNode(true);
- var tempDiv = doc.createElement("DIV");
- tempDiv.appendChild(temp);
- outer = tempDiv.innerHTML;
- temp.innerHTML = "";
- return outer;
- }-*/;
-
- private native NativeEvent createKeyEventImpl(Document doc, String type,
- boolean canBubble, boolean cancelable, boolean ctrlKey, boolean altKey,
- boolean shiftKey, boolean metaKey, int keyCode, int charCode) /*-{
- var evt = doc.createEvent('KeyboardEvent');
- if (evt.initKeyEvent) {
- // Gecko
- evt.initKeyEvent(type, canBubble, cancelable, null, ctrlKey, altKey,
- shiftKey, metaKey, keyCode, charCode);
- } else {
- // This happens to be IE11+ as of today
- if ($wnd.console) {
- $wnd.console.error("Synthetic keyboard events are not supported in this browser");
- }
- }
- return evt;
- }-*/;
-
- private native int getAbsoluteLeftImpl(Element viewport, Element elem) /*-{
- // Firefox 3 is actively throwing errors when getBoxObjectFor() is called,
- // so we use getBoundingClientRect() whenever possible (but it's not
- // supported on older versions). If changing this code, make sure to check
- // the museum entry for issue 1932.
- // (x) | 0 is used to coerce the value to an integer
- if (Element.prototype.getBoundingClientRect) {
- return (elem.getBoundingClientRect().left + viewport.scrollLeft) | 0;
- } else {
- // We cannot use DOMImpl here because offsetLeft/Top return erroneous
- // values when overflow is not visible. We have to difference screenX
- // here due to a change in getBoxObjectFor which causes inconsistencies
- // on whether the calculations are inside or outside of the element's
- // border.
- // If the element is in a scrollable div, getBoxObjectFor(elem) can return
- // a value that varies by 1 pixel.
- var doc = elem.ownerDocument;
- return doc.getBoxObjectFor(elem).screenX -
- doc.getBoxObjectFor(doc.documentElement).screenX;
- }
- }-*/;
-
- private native int getAbsoluteTopImpl(Element viewport, Element elem) /*-{
- // Firefox 3 is actively throwing errors when getBoxObjectFor() is called,
- // so we use getBoundingClientRect() whenever possible (but it's not
- // supported on older versions). If changing this code, make sure to check
- // the museum entry for issue 1932.
- // (x) | 0 is used to coerce the value to an integer
- if (Element.prototype.getBoundingClientRect) {
- return (elem.getBoundingClientRect().top + viewport.scrollTop) | 0;
- } else {
- // We cannot use DOMImpl here because offsetLeft/Top return erroneous
- // values when overflow is not visible. We have to difference screenX
- // here due to a change in getBoxObjectFor which causes inconsistencies
- // on whether the calculations are inside or outside of the element's
- // border.
- var doc = elem.ownerDocument;
- return doc.getBoxObjectFor(elem).screenY -
- doc.getBoxObjectFor(doc.documentElement).screenY;
- }
- }-*/;
-
- private native boolean isRTL(Element elem) /*-{
- var style = elem.ownerDocument.defaultView.getComputedStyle(elem, null);
- return style.direction == 'rtl';
- }-*/;
-}
-
diff --git a/java/com.sap.sse.gwt/src/com/google/gwt/dom/client/DOMImplPatched.java b/java/com.sap.sse.gwt/src/com/google/gwt/dom/client/DOMImplPatched.java
deleted file mode 100644
index 5b7aabae7e5..00000000000
--- a/java/com.sap.sse.gwt/src/com/google/gwt/dom/client/DOMImplPatched.java
+++ /dev/null
@@ -1,31 +0,0 @@
-package com.google.gwt.dom.client;
-
-abstract class DOMImplPatched extends DOMImpl {
-
- public int getScrollLeft(Document doc) {
- return ensureDocumentScrollingElement(doc).getScrollLeft();
- }
-
- public int getScrollTop(Document doc) {
- return ensureDocumentScrollingElement(doc).getScrollTop();
- }
-
- public void setScrollLeft(Document doc, int left) {
- ensureDocumentScrollingElement(doc).setScrollLeft(left);
- }
-
- public void setScrollTop(Document doc, int top) {
- ensureDocumentScrollingElement(doc).setScrollTop(top);
- }
-
- private Element ensureDocumentScrollingElement(Document document) {
- // In some case (e.g SVG document and old Webkit browsers), getDocumentScrollingElement can
- // return null. In this case, default to documentElement.
- Element scrollingElement = getDocumentScrollingElement(document);
- return scrollingElement != null ? scrollingElement : document.getDocumentElement();
- }
-
- Element getDocumentScrollingElement(Document doc) {
- return doc.getViewportElement();
- }
-}
diff --git a/java/com.sap.sse.gwt/src/com/google/gwt/dom/client/DOMImplStandardBasePatched.java b/java/com.sap.sse.gwt/src/com/google/gwt/dom/client/DOMImplStandardBasePatched.java
deleted file mode 100644
index edd683ce812..00000000000
--- a/java/com.sap.sse.gwt/src/com/google/gwt/dom/client/DOMImplStandardBasePatched.java
+++ /dev/null
@@ -1,270 +0,0 @@
-/*
- * Copyright 2011 Google Inc.
- *
- * Licensed under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- */
-package com.google.gwt.dom.client;
-
-import com.google.gwt.core.client.JavaScriptObject;
-
-/**
- * StandardBase implementation of {@link com.google.gwt.user.client.impl.DOMImpl}.
- */
-class DOMImplStandardBasePatched extends DOMImplStandardPatched {
-
- private static class ClientRect extends JavaScriptObject {
-
- protected ClientRect() {
- }
-
- public final int getLeft() {
- return toInt32(getSubPixelLeft());
- }
-
- public final int getTop() {
- return toInt32(getSubPixelTop());
- }
-
- private final native double getSubPixelLeft() /*-{
- return this.left;
- }-*/;
-
- private final native double getSubPixelTop() /*-{
- return this.top;
- }-*/;
- }
-
- private static native double getAbsoluteLeftUsingOffsets(Element elem) /*-{
- // Unattached elements and elements (or their ancestors) with style
- // 'display: none' have no offsetLeft.
- if (elem.offsetLeft == null) {
- return 0;
- }
-
- var left = 0;
- var doc = elem.ownerDocument;
- var curr = elem.parentNode;
- if (curr) {
- // This intentionally excludes body which has a null offsetParent.
- while (curr.offsetParent) {
- left -= curr.scrollLeft;
-
- // In RTL mode, offsetLeft is relative to the left edge of the
- // scrollable area when scrolled all the way to the right, so we need
- // to add back that difference.
- if (doc.defaultView.getComputedStyle(curr, '').getPropertyValue('direction') == 'rtl') {
- left += (curr.scrollWidth - curr.clientWidth);
- }
-
- curr = curr.parentNode;
- }
- }
-
- while (elem) {
- left += elem.offsetLeft;
-
- if (doc.defaultView.getComputedStyle(elem, '')['position'] == 'fixed') {
- left += doc.body.scrollLeft;
- return left;
- }
-
- // Safari 3 does not include borders with offsetLeft, so we need to add
- // the borders of the parent manually.
- var parent = elem.offsetParent;
- if (parent && $wnd.devicePixelRatio) {
- left += parseInt(doc.defaultView.getComputedStyle(parent, '').getPropertyValue('border-left-width'));
- }
-
- // Safari bug: a top-level absolutely positioned element includes the
- // body's offset position already.
- if (parent && (parent.tagName == 'BODY') &&
- (elem.style.position == 'absolute')) {
- break;
- }
-
- elem = parent;
- }
- return left;
- }-*/;
-
- private static native double getAbsoluteTopUsingOffsets(Element elem) /*-{
- // Unattached elements and elements (or their ancestors) with style
- // 'display: none' have no offsetTop.
- if (elem.offsetTop == null) {
- return 0;
- }
-
- var top = 0;
- var doc = elem.ownerDocument;
- var curr = elem.parentNode;
- if (curr) {
- // This intentionally excludes body which has a null offsetParent.
- while (curr.offsetParent) {
- top -= curr.scrollTop;
- curr = curr.parentNode;
- }
- }
-
- while (elem) {
- top += elem.offsetTop;
-
- if (doc.defaultView.getComputedStyle(elem, '')['position'] == 'fixed') {
- top += doc.body.scrollTop;
- return top;
- }
-
- // Safari 3 does not include borders with offsetTop, so we need to add the
- // borders of the parent manually.
- var parent = elem.offsetParent;
- if (parent && $wnd.devicePixelRatio) {
- top += parseInt(doc.defaultView.getComputedStyle(parent, '').getPropertyValue('border-top-width'));
- }
-
- // Safari bug: a top-level absolutely positioned element includes the
- // body's offset position already.
- if (parent && (parent.tagName == 'BODY') &&
- (elem.style.position == 'absolute')) {
- break;
- }
-
- elem = parent;
- }
- return top;
- }-*/;
-
- private static native ClientRect getBoundingClientRect(Element element) /*-{
- return element.getBoundingClientRect && element.getBoundingClientRect();
- }-*/;
-
- /**
- * The type property on a button element is read-only in safari, so we need to
- * set it using setAttribute.
- */
- @Override
- public native ButtonElement createButtonElement(Document doc, String type) /*-{
- var e = doc.createElement("BUTTON");
- e.setAttribute('type', type);
- return e;
- }-*/;
-
- @Override
- public native NativeEvent createKeyCodeEvent(Document doc, String type,
- boolean ctrlKey, boolean altKey, boolean shiftKey, boolean metaKey,
- int keyCode) /*-{
- var evt = this.@com.google.gwt.dom.client.DOMImplStandardBase::createKeyEvent(Lcom/google/gwt/dom/client/Document;Ljava/lang/String;ZZZZZZ)(doc, type, true, true, ctrlKey, altKey, shiftKey, metaKey)
- evt.keyCode = keyCode;
- return evt;
- }-*/;
-
- @Override
- @Deprecated
- public native NativeEvent createKeyEvent(Document doc, String type,
- boolean canBubble, boolean cancelable, boolean ctrlKey, boolean altKey,
- boolean shiftKey, boolean metaKey, int keyCode, int charCode) /*-{
- var evt = this.@com.google.gwt.dom.client.DOMImplStandardBase::createKeyEvent(Lcom/google/gwt/dom/client/Document;Ljava/lang/String;ZZZZZZ)(doc, type, canBubble, cancelable, ctrlKey, altKey, shiftKey, metaKey)
- evt.keyCode = keyCode;
- evt.charCode = charCode;
- return evt;
- }-*/;
-
- @Override
- public native NativeEvent createKeyPressEvent(Document doc,
- boolean ctrlKey, boolean altKey, boolean shiftKey, boolean metaKey,
- int charCode) /*-{
- var evt = this.@com.google.gwt.dom.client.DOMImplStandardBase::createKeyEvent(Lcom/google/gwt/dom/client/Document;Ljava/lang/String;ZZZZZZ)(doc, 'keypress', true, true, ctrlKey, altKey, shiftKey, metaKey)
- evt.charCode = charCode;
- return evt;
- }-*/;
-
- /**
- * Safari 2 does not support {@link ScriptElement#setText(String)}.
- */
- @Override
- public ScriptElement createScriptElement(Document doc, String source) {
- ScriptElement elem = (ScriptElement) createElement(doc, "script");
- elem.setInnerText(source);
- return elem;
- }
-
- @Override
- public native EventTarget eventGetCurrentTarget(NativeEvent event) /*-{
- return event.currentTarget || $wnd;
- }-*/;
-
- @Override
- public native int eventGetMouseWheelVelocityY(NativeEvent evt) /*-{
- return Math.round(-evt.wheelDelta / 40) || 0;
- }-*/;
-
- @Override
- public int getAbsoluteLeft(Element elem) {
- ClientRect rect = getBoundingClientRect(elem);
- double left = rect != null ? rect.getSubPixelLeft()
- + getScrollLeft(elem.getOwnerDocument())
- : getAbsoluteLeftUsingOffsets(elem);
- return toInt32(left);
- }
-
- @Override
- public int getAbsoluteTop(Element elem) {
- ClientRect rect = getBoundingClientRect(elem);
- double top = rect != null ? rect.getSubPixelTop()
- + getScrollTop(elem.getOwnerDocument())
- : getAbsoluteTopUsingOffsets(elem);
- return toInt32(top);
- }
-
- @Override
- public int getScrollLeft(Element elem) {
- if (!elem.hasTagName(BodyElement.TAG) && isRTL(elem)) {
- return super.getScrollLeft(elem)
- - (elem.getScrollWidth() - elem.getClientWidth());
- }
- return super.getScrollLeft(elem);
- }
-
- @Override
- public native int getTabIndex(Element elem) /*-{
- // tabIndex is undefined for divs and other non-focusable elements prior to
- // Safari 4.
- return typeof elem.tabIndex != 'undefined' ? elem.tabIndex : -1;
- }-*/;
-
- @Override
- public void setScrollLeft(Element elem, int left) {
- if (!elem.hasTagName(BodyElement.TAG) && isRTL(elem)) {
- left += elem.getScrollWidth() - elem.getClientWidth();
- }
- super.setScrollLeft(elem, left);
- }
-
- protected native boolean isRTL(Element elem) /*-{
- return elem.ownerDocument.defaultView.getComputedStyle(elem, '').direction == 'rtl';
- }-*/;
-
- private native NativeEvent createKeyEvent(Document doc, String type,
- boolean canBubble, boolean cancelable, boolean ctrlKey, boolean altKey,
- boolean shiftKey, boolean metaKey) /*-{
- // WebKit's KeyboardEvent cannot set or even initialize charCode, keyCode, etc.
- // And UIEvent's charCode and keyCode are read-only.
- // So we "fake" an event using a raw Event and expandos
- var evt = doc.createEvent('Event');
- evt.initEvent(type, canBubble, cancelable);
- evt.ctrlKey = ctrlKey;
- evt.altKey = altKey;
- evt.shiftKey = shiftKey;
- evt.metaKey = metaKey;
- return evt;
- }-*/;
-}
-
diff --git a/java/com.sap.sse.gwt/src/com/google/gwt/dom/client/DOMImplStandardPatched.java b/java/com.sap.sse.gwt/src/com/google/gwt/dom/client/DOMImplStandardPatched.java
deleted file mode 100644
index 28b13d60fb6..00000000000
--- a/java/com.sap.sse.gwt/src/com/google/gwt/dom/client/DOMImplStandardPatched.java
+++ /dev/null
@@ -1,154 +0,0 @@
-/*
- * Copyright 2007 Google Inc.
- *
- * Licensed under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- */
-package com.google.gwt.dom.client;
-
-/**
- * Base implementation of {@link com.google.gwt.user.client.impl.DOMImpl} shared
- * by those browsers that come a bit closer to supporting a common standard (ie,
- * not IE).
- */
-abstract class DOMImplStandardPatched extends DOMImplPatched {
-
- @Override
- public native NativeEvent createHtmlEvent(Document doc, String type,
- boolean canBubble, boolean cancelable) /*-{
- var evt = doc.createEvent('HTMLEvents');
- evt.initEvent(type, canBubble, cancelable);
-
- return evt;
- }-*/;
-
- @Override
- public native InputElement createInputRadioElement(Document doc, String name) /*-{
- var elem = doc.createElement("INPUT");
- elem.type = 'radio';
- elem.name = name;
- elem.value = 'on';
- return elem;
- }-*/;
-
- @Override
- public native NativeEvent createMouseEvent(Document doc, String type,
- boolean canBubble, boolean cancelable, int detail, int screenX,
- int screenY, int clientX, int clientY, boolean ctrlKey, boolean altKey,
- boolean shiftKey, boolean metaKey, int button, Element relatedTarget) /*-{
- // Because Event.getButton() returns bitfield values [1, 4, 2] for [left,
- // middle, right], we need to translate them to the standard [0, 1, 2]
- // button constants.
- if (button == 1) {
- button = 0;
- } else if (button == 4) {
- button = 1;
- } else {
- button = 2;
- }
-
- var evt = doc.createEvent('MouseEvents');
- evt.initMouseEvent(type, canBubble, cancelable, null, detail, screenX,
- screenY, clientX, clientY, ctrlKey, altKey, shiftKey, metaKey, button,
- relatedTarget);
-
- return evt;
- }-*/;
-
- @Override
- public native void dispatchEvent(Element target, NativeEvent evt) /*-{
- target.dispatchEvent(evt);
- }-*/;
-
- @Override
- public native int eventGetButton(NativeEvent evt) /*-{
- // All modern browsers return 0, 1, and 2 for left, middle, and right,
- // respectively. Because eventGetButton() is expected to return the IE
- // bitfield norms of 1, 4, and 2, we translate them here.
- var button = evt.button;
- if (button == 1) {
- return 4;
- } else if (button == 2) {
- return 2;
- }
- return 1;
- }-*/;
-
- @Override
- public native int eventGetCharCode(NativeEvent evt) /*-{
- return evt.charCode || 0;
- }-*/;
-
- @Override
- public native EventTarget eventGetRelatedTarget(NativeEvent evt) /*-{
- return evt.relatedTarget;
- }-*/;
-
- @Override
- public native EventTarget eventGetTarget(NativeEvent evt) /*-{
- return evt.target;
- }-*/;
-
- @Override
- public native void eventPreventDefault(NativeEvent evt) /*-{
- evt.preventDefault();
- }-*/;
-
- @Override
- public native String eventToString(NativeEvent evt) /*-{
- return evt.toString();
- }-*/;
-
- /*
- * textContent is used over innerText for two reasons:
- * 1 - It is consistent across browsers. textContent
- * does not convert
's to new lines.
- * 2 - textContent is faster on retreival because WebKit
- * does not recalculate styles as it does for innerText.
- */
- @Override
- public native String getInnerText(Element elem) /*-{
- return elem.textContent;
- }-*/;
-
- @Override
- public native boolean isOrHasChild(Node parent, Node child) /*-{
- return parent.contains(child);
- }-*/;
-
- /*
- * See getInnerText for why textContent is used instead of innerText.
- */
- @Override
- public native void setInnerText(Element elem, String text) /*-{
- elem.textContent = text || '';
- }-*/;
-
- @Override
- Element getDocumentScrollingElement(Document doc) {
- // Uses http://dev.w3.org/csswg/cssom-view/#dom-document-scrolling element to
- // avoid trying to guess about browser behavior.
- if (getNativeDocumentScrollingElement(doc) != null) {
- return getNativeDocumentScrollingElement(doc);
- }
-
- return getLegacyDocumentScrollingElement(doc);
- }
-
- Element getLegacyDocumentScrollingElement(Document doc) {
- return doc.getViewportElement();
- }
-
- final native Element getNativeDocumentScrollingElement(Document doc) /*-{
- return doc.scrollingElement;
- }-*/;
-}
diff --git a/java/com.sap.sse.gwt/src/com/google/gwt/dom/client/DOMImplTridentPatched.java b/java/com.sap.sse.gwt/src/com/google/gwt/dom/client/DOMImplTridentPatched.java
deleted file mode 100644
index 275b2dea011..00000000000
--- a/java/com.sap.sse.gwt/src/com/google/gwt/dom/client/DOMImplTridentPatched.java
+++ /dev/null
@@ -1,350 +0,0 @@
-/*
- * Copyright 2009 Google Inc.
- *
- * Licensed under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- */
-package com.google.gwt.dom.client;
-
-import com.google.gwt.safehtml.shared.annotations.SuppressIsSafeHtmlCastCheck;
-
-abstract class DOMImplTridentPatched extends DOMImplPatched {
-
- /**
- * This field *must* be filled in from JSNI code before dispatching an event
- * on IE. It should be set to the 'this' context of the handler that receives
- * the event, then restored to its initial value when the dispatcher is done.
- * See
- * {@link com.google.gwt.user.client.impl.DOMImplTrident#initEventSystem()}
- * for an example of how this should be done.
- */
- private static EventTarget currentEventTarget;
-
- static native boolean isOrHasChildImpl(Node parent, Node child) /*-{
- // Element.contains() doesn't work with non-Element nodes on IE, so we have
- // to deal explicitly with non-Element nodes here.
-
- // Only Element (1) and Document (9) can contain other nodes.
- if ((parent.nodeType != 1) && (parent.nodeType != 9)) {
- return parent == child;
- }
-
- // If the child is not an Element, check its parent instead.
- if (child.nodeType != 1) {
- child = child.parentNode;
- if (!child) {
- return false;
- }
- }
-
- if (parent.nodeType == 9) {
- // In IE8 and IE9 (at least), document.contains does not exist, so use body.contains instead
- return (parent === child) || (parent.body && parent.body.contains(child));
- } else {
- // An extra equality check is required due to the fact that
- // elem.contains(elem) is false if elem is not attached to the DOM.
- return (parent === child) || parent.contains(child);
- }
- }-*/;
-
- @Override
- public native ButtonElement createButtonElement(Document doc, String type) /*-{
- return doc.createElement("");
- }-*/;
-
- @Override
- @SuppressIsSafeHtmlCastCheck
- public Element createElement(Document doc, String tagName) {
- if (tagName.contains(":")) {
- // Special implementation for tag names with namespace-prefixes. The only
- // way to get IE to reliably create namespace-prefixed elements is
- // through innerHTML.
- Element container = ensureContainer(doc);
- container.setInnerHTML("<" + tagName + "/>");
-
- // Remove the element before returning it, so that there's no chance of
- // it getting clobbered later.
- Element elem = container.getFirstChildElement();
- container.removeChild(elem);
- return elem;
- }
-
- // No prefix. Just use the default implementation (don't use super impl
- // here in case it changes at some point in the future).
- return createElementInternal(doc, tagName);
- }
-
- @Override
- public native NativeEvent createHtmlEvent(Document doc, String type,
- boolean canBubble, boolean cancelable) /*-{
- // NOTE: IE doesn't support changing bubbling and canceling behavior (this
- // is documented publicly in Document.createHtmlEvent()).
- var evt = doc.createEventObject();
- evt.type = type;
- return evt;
- }-*/;
-
- @Override
- public native InputElement createInputRadioElement(Document doc, String name) /*-{
- return doc.createElement("");
- }-*/;
-
- @Override
- public native NativeEvent createKeyCodeEvent(Document doc, String type,
- boolean ctrlKey, boolean altKey, boolean shiftKey, boolean metaKey,
- int keyCode) /*-{
- var evt = doc.createEventObject();
- evt.type = type;
- evt.ctrlKey = ctrlKey;
- evt.altKey = altKey;
- evt.shiftKey = shiftKey;
- evt.metaKey = metaKey;
- evt.keyCode = keyCode;
- return evt;
- }-*/;
-
- @Override
- @Deprecated
- public native NativeEvent createKeyEvent(Document doc, String type,
- boolean canBubble, boolean cancelable, boolean ctrlKey, boolean altKey,
- boolean shiftKey, boolean metaKey, int keyCode, int charCode) /*-{
- // NOTE: IE doesn't support changing bubbling and canceling behavior (this
- // is documented publicly in Document.createKeyEvent()).
- var evt = this.@com.google.gwt.dom.client.DOMImplTrident::createKeyCodeEvent(Lcom/google/gwt/dom/client/Document;Ljava/lang/String;ZZZZI)(doc, type, ctrlKey, altKey, shiftKey, metaKey, charCode);
- evt.charCode = charCode;
- return evt;
- }-*/;
-
- @Override
- public NativeEvent createKeyPressEvent(Document doc, boolean ctrlKey,
- boolean altKey, boolean shiftKey, boolean metaKey, int charCode) {
- // NOTE: in IE, keyCode is used in both keydown/keyup and keypress, so we
- // delegate to createKeyCodeEvent instead of duplicating code.
- return createKeyCodeEvent(doc, "keypress", ctrlKey, altKey, shiftKey,
- metaKey, charCode);
- }
-
- @Override
- public native NativeEvent createMouseEvent(Document doc, String type,
- boolean canBubble, boolean cancelable, int detail, int screenX,
- int screenY, int clientX, int clientY, boolean ctrlKey, boolean altKey,
- boolean shiftKey, boolean metaKey, int button, Element relatedTarget) /*-{
- // NOTE: IE doesn't support changing bubbling and canceling behavior (this
- // is documented publicly in Document.createMouseEvent()).
- var evt = doc.createEventObject();
- evt.type = type;
- evt.detail = detail;
- evt.screenX = screenX;
- evt.screenY = screenY;
- evt.clientX = clientX;
- evt.clientY = clientY;
- evt.ctrlKey = ctrlKey;
- evt.altKey = altKey;
- evt.shiftKey = shiftKey;
- evt.metaKey = metaKey;
- evt.button = button;
-
- // It would make sense to set evt.[fromElement | toElement] here, because
- // that's what IE uses. However, setting these properties has no effect for
- // some reason. So instead we set releatedTarget, and explicitly check for
- // its existence in eventGetFromElement() and eventGetToElement().
- evt.relatedTarget = relatedTarget;
-
- return evt;
- }-*/;
-
- @Override
- public String cssFloatPropertyName() {
- return "styleFloat";
- }
-
- @Override
- public native void dispatchEvent(Element target, NativeEvent evt) /*-{
- target.fireEvent("on" + evt.type, evt);
- }-*/;
-
- @Override
- public native int eventGetCharCode(NativeEvent evt) /*-{
- return evt.keyCode || 0;
- }-*/;
-
- @Override
- public EventTarget eventGetCurrentTarget(NativeEvent event) {
- return currentEventTarget;
- }
-
- @Override
- public native int eventGetMouseWheelVelocityY(NativeEvent evt) /*-{
- return Math.round(-evt.wheelDelta / 40) || 0;
- }-*/;
-
- @Override
- public native EventTarget eventGetRelatedTarget(NativeEvent evt) /*-{
- // Prefer 'relatedTarget' if it's set (see createMouseEvent(), which
- // explicitly sets relatedTarget when synthesizing mouse events).
- return evt.relatedTarget ||
- (evt.type == "mouseout" ? evt.toElement:evt.fromElement);
- }-*/;
-
- @Override
- public native EventTarget eventGetTarget(NativeEvent evt) /*-{
- return evt.srcElement;
- }-*/;
-
- @Override
- public native void eventPreventDefault(NativeEvent evt) /*-{
- evt.returnValue = false;
- }-*/;
-
- @Override
- public native void eventStopPropagation(NativeEvent evt) /*-{
- evt.cancelBubble = true;
- }-*/;
-
- @Override
- public native String eventToString(NativeEvent evt) /*-{
- if (evt.toString) return evt.toString();
- return "[event" + evt.type + "]";
- }-*/;
-
- /**
- * IE returns a numeric type for some attributes that are really properties,
- * such as offsetWidth. We need to coerce these to strings to prevent a
- * runtime JS exception.
- */
- @Override
- public native String getAttribute(Element elem, String name) /*-{
- var attr = elem.getAttribute(name);
- return attr == null ? '' : attr + '';
- }-*/;
-
- @Override
- public int getBodyOffsetLeft(Document doc) {
- return getClientLeft(doc.getViewportElement());
- }
-
- @Override
- public int getBodyOffsetTop(Document doc) {
- return getClientTop(doc.getViewportElement());
- }
-
- @Override
- public native String getInnerText(Element elem) /*-{
- return elem.innerText;
- }-*/;
-
- /**
- * Coerce numeric values a string. In IE, some values can be stored as numeric
- * types.
- */
- @Override
- public native String getNumericStyleProperty(Style style, String name) /*-{
- return typeof(style[name]) == "number" ? "" + style[name] : style[name];
- }-*/;
-
- @Override
- public String getTagName(Element elem) {
- String tagName = getTagNameInternal(elem);
- String scopeName = getScopeNameInternal(elem);
-
- if ((scopeName == null) || "html".equalsIgnoreCase(scopeName)) {
- return tagName;
- }
-
- return scopeName + ":" + tagName;
- }
-
- @Override
- public native boolean hasAttribute(Element elem, String name) /*-{
- var node = elem.getAttributeNode(name);
- return !!(node && node.specified);
- }-*/;
-
- @Override
- public boolean isOrHasChild(Node parent, Node child) {
- return isOrHasChildImpl(parent, child);
- }
-
- @Override
- public native void selectAdd(SelectElement select, OptionElement option,
- OptionElement before) /*-{
- // IE only accepts indices for the second argument.
- if (before) {
- select.add(option, before.index);
- } else {
- select.add(option);
- }
- }-*/;
-
- @Override
- public native void setInnerText(Element elem, String text) /*-{
- elem.innerText = text || '';
- }-*/;
-
- protected native int getBoundingClientRectLeft(Element elem) /*-{
- // getBoundingClientRect() throws a JS exception if the elem is not attached
- // to the document, so we wrap it in a try/catch block
- try {
- return elem.getBoundingClientRect().left;
- } catch (e) {
- return 0;
- }
- }-*/;
-
- protected native int getBoundingClientRectTop(Element elem) /*-{
- // getBoundingClientRect() throws a JS exception if the elem is not attached
- // to the document, so we wrap it in a try/catch block
- try {
- return elem.getBoundingClientRect().top;
- } catch (e) {
- return 0;
- }
- }-*/;
-
- protected native boolean isRTL(Element elem) /*-{
- return elem.currentStyle.direction == 'rtl';
- }-*/;
-
- private native Element createElementInternal(Document doc, String tagName) /*-{
- return doc.createElement(tagName);
- }-*/;
-
- // IE needs a container div *for each document* for use by createElement().
- private native Element ensureContainer(Document doc) /*-{
- if (!doc.__gwt_container) {
- doc.__gwt_container = doc.createElement('div');
- }
- return doc.__gwt_container;
- }-*/;
-
- /**
- * clientLeft is non-standard and not implemented on all browsers.
- */
- private native int getClientLeft(Element elem) /*-{
- return elem.clientLeft;
- }-*/;
-
- /**
- * clientTop is non-standard and not implemented on all browsers.
- */
- private native int getClientTop(Element elem) /*-{
- return elem.clientTop;
- }-*/;
-
- private native String getScopeNameInternal(Element elem) /*-{
- return elem.scopeName;
- }-*/;
-
- private native String getTagNameInternal(Element elem) /*-{
- return elem.tagName;
- }-*/;
-}
diff --git a/java/com.sap.sse.gwt/src/com/google/gwt/dom/client/DOMImplWebkitPatched.java b/java/com.sap.sse.gwt/src/com/google/gwt/dom/client/DOMImplWebkitPatched.java
deleted file mode 100644
index 05d34de6182..00000000000
--- a/java/com.sap.sse.gwt/src/com/google/gwt/dom/client/DOMImplWebkitPatched.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * Copyright 2011 Google Inc.
- *
- * Licensed under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- */
-package com.google.gwt.dom.client;
-
-/**
- * WebKit based implementation of {@link com.google.gwt.dom.client.DOMImplStandardBase}.
- */
-class DOMImplWebkitPatched extends DOMImplStandardBasePatched {
-
- /**
- * Return true if using Webkit 525.x (Safari 3) or earlier.
- *
- * @return true if using Webkit 525.x (Safari 3) or earlier.
- */
- private static native boolean isWebkit525OrBefore() /*-{
- var result = /safari\/([\d.]+)/.exec(navigator.userAgent.toLowerCase());
- if (result) {
- var version = (parseFloat(result[1]));
- if (version < 526) {
- return true;
- }
- }
- return false;
- }-*/;
-
- /**
- * Webkit events sometimes target the text node inside of the element instead
- * of the element itself, so we need to get the parent of the text node.
- */
- @Override
- public native EventTarget eventGetTarget(NativeEvent evt) /*-{
- var target = evt.target;
- if (target && target.nodeType == 3) {
- target = target.parentNode;
- }
- return target;
- }-*/;
-
- /**
- * Webkit based browsers require that we set the webkit-user-drag style
- * attribute to make an element draggable.
- */
- @Override
- public void setDraggable(Element elem, String draggable) {
- super.setDraggable(elem, draggable);
- if ("true".equals(draggable)) {
- elem.getStyle().setProperty("webkitUserDrag", "element");
- } else {
- elem.getStyle().clearProperty("webkitUserDrag");
- }
- }
-
- @Override
- Element getLegacyDocumentScrollingElement(Document doc) {
- // Old WebKit needs body.scrollLeft in both quirks mode and strict mode.
- return doc.getBody();
- }
-}
-
diff --git a/java/com.sap.sse.gwt/src/com/sap/sse/gwt/SSESharedGWT.gwt.xml b/java/com.sap.sse.gwt/src/com/sap/sse/gwt/SSESharedGWT.gwt.xml
index d7dd620bf2b..f454ba6bc60 100644
--- a/java/com.sap.sse.gwt/src/com/sap/sse/gwt/SSESharedGWT.gwt.xml
+++ b/java/com.sap.sse.gwt/src/com/sap/sse/gwt/SSESharedGWT.gwt.xml
@@ -3,7 +3,6 @@