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 - 2025 Weber Informatics LLC | Privacy Policy