All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.googlecode.gwt.test.internal.patchers.dom.DOMImplUserPatcher Maven / Gradle / Ivy

There is a newer version: 0.63
Show newest version
package com.googlecode.gwt.test.internal.patchers.dom;

import com.google.gwt.dom.client.Element;
import com.google.gwt.user.client.Event;
import com.google.gwt.user.client.EventListener;
import com.google.gwt.user.client.impl.DOMImpl;
import com.googlecode.gwt.test.internal.utils.EventUtils;
import com.googlecode.gwt.test.internal.utils.JsoProperties;
import com.googlecode.gwt.test.patchers.PatchClass;
import com.googlecode.gwt.test.patchers.PatchMethod;
import com.googlecode.gwt.test.utils.JavaScriptObjects;

@PatchClass(DOMImpl.class)
class DOMImplUserPatcher {

    private static final String ELEM_EVENTLISTENER = "ELEM_EVENTLISTENER";

    @PatchMethod
    static void eventCancelBubble(DOMImpl domImpl, Event evt, boolean cancel) {
        JavaScriptObjects.setProperty(evt, JsoProperties.EVENT_IS_STOPPED, cancel);
    }

    @PatchMethod
    static int eventGetTypeInt(DOMImpl domImpl, String type) {
        return EventUtils.getEventTypeInt(type);
    }

    @PatchMethod
    static Element getChild(DOMImpl domImpl, Element userElem, int index) {
        if (index >= userElem.getChildNodes().getLength()) {
            return null;
        }

        return userElem.getChildNodes().getItem(index).cast();
    }

    @PatchMethod
    static int getChildCount(Object domImpl, Element elem) {
        return elem.getChildCount();
    }

    @PatchMethod
    static int getChildIndex(DOMImpl domImpl, Element parent, Element child) {
        if (parent == null || child == null) {
            return -1;
        }

        for (int i = 0; i < parent.getChildNodes().getLength(); i++) {
            if (child.equals(parent.getChildNodes().getItem(i))) {
                return i;
            }
        }

        return -1;
    }

    @PatchMethod
    static EventListener getEventListener(Element elem) {
        return JavaScriptObjects.getObject(elem, ELEM_EVENTLISTENER);
    }

    @PatchMethod
    static int getEventsSunk(DOMImpl domImpl, Element elem) {
        return 1;
    }

    @PatchMethod
    static void initEventSystem(DOMImpl domImpl) {
    }

    @PatchMethod
    static void insertChild(DOMImpl domImpl, Element userParent, Element userChild, int index) {
        NodePatcher.insertAtIndex(userParent, userChild, index);
    }

    @PatchMethod
    static void releaseCapture(Object domImpl, Element elem) {

    }

    @PatchMethod
    static void setCapture(Object domImpl, Element elem) {

    }

    @PatchMethod
    static void setEventListener(Element elem, EventListener listener) {
        JavaScriptObjects.setProperty(elem, ELEM_EVENTLISTENER, listener);
    }

    @PatchMethod
    static void sinkEvents(DOMImpl domImpl, Element elem, int eventBits) {

    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy