@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 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 void cssClearOpacity(Style style) { if (isIE8()) { cssClearOpacityImpl(style); } else { super.cssClearOpacity(style); } }
@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 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 int getBodyOffsetTop(Document doc) { return getClientTop(doc.getViewportElement()); }
@Override public void cssSetOpacity(Style style, double value) { if (isIE8()) { cssSetOpacityImpl(style, value); } else { super.cssSetOpacity(style, value); } }
@Override public int getBodyOffsetLeft(Document doc) { return getClientLeft(doc.getViewportElement()); }
@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 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 int getBodyOffsetTop(Document doc) { return getClientTop(doc.getViewportElement()); }
@Override public void cssSetOpacity(Style style, double value) { if (isIE8()) { cssSetOpacityImpl(style, value); } else { super.cssSetOpacity(style, value); } }
@Override public int getBodyOffsetLeft(Document doc) { return getClientLeft(doc.getViewportElement()); }
@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 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 void cssClearOpacity(Style style) { if (isIE8()) { cssClearOpacityImpl(style); } else { super.cssClearOpacity(style); } }
@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 int getBodyOffsetTop(Document doc) { return getClientTop(doc.getViewportElement()); }
@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 void cssSetOpacity(Style style, double value) { if (isIE8()) { cssSetOpacityImpl(style, value); } else { super.cssSetOpacity(style, value); } }