1 16 package com.google.gwt.user.client.ui; 17 18 import com.google.gwt.user.client.DOM; 19 import com.google.gwt.user.client.Element; 20 import com.google.gwt.user.client.Event; 21 import com.google.gwt.user.client.Window; 22 23 import java.util.ArrayList ; 24 import java.util.Iterator ; 25 26 31 public class MouseListenerCollection extends ArrayList { 32 33 40 public void fireMouseDown(Widget sender, int x, int y) { 41 for (Iterator it = iterator(); it.hasNext();) { 42 MouseListener listener = (MouseListener) it.next(); 43 listener.onMouseDown(sender, x, y); 44 } 45 } 46 47 52 public void fireMouseEnter(Widget sender) { 53 for (Iterator it = iterator(); it.hasNext();) { 54 MouseListener listener = (MouseListener) it.next(); 55 listener.onMouseEnter(sender); 56 } 57 } 58 59 65 public void fireMouseEvent(Widget sender, Event event) { 66 final Element senderElem = sender.getElement(); 67 int x = DOM.eventGetClientX(event) 68 - DOM.getAbsoluteLeft(sender.getElement()) 69 + DOM.getElementPropertyInt(senderElem, "scrollLeft") 70 + Window.getScrollLeft(); 71 int y = DOM.eventGetClientY(event) 72 - DOM.getAbsoluteTop(sender.getElement()) 73 + DOM.getElementPropertyInt(senderElem, "scrollTop") 74 + Window.getScrollTop(); 75 76 switch (DOM.eventGetType(event)) { 77 case Event.ONMOUSEDOWN: 78 fireMouseDown(sender, x, y); 79 break; 80 case Event.ONMOUSEUP: 81 fireMouseUp(sender, x, y); 82 break; 83 case Event.ONMOUSEMOVE: 84 fireMouseMove(sender, x, y); 85 break; 86 case Event.ONMOUSEOVER: 87 Element from = DOM.eventGetFromElement(event); 90 if (!DOM.isOrHasChild(sender.getElement(), from)) { 91 fireMouseEnter(sender); 92 } 93 break; 94 case Event.ONMOUSEOUT: 95 Element to = DOM.eventGetToElement(event); 98 if (!DOM.isOrHasChild(sender.getElement(), to)) { 99 fireMouseLeave(sender); 100 } 101 break; 102 } 103 } 104 105 110 public void fireMouseLeave(Widget sender) { 111 for (Iterator it = iterator(); it.hasNext();) { 112 MouseListener listener = (MouseListener) it.next(); 113 listener.onMouseLeave(sender); 114 } 115 } 116 117 124 public void fireMouseMove(Widget sender, int x, int y) { 125 for (Iterator it = iterator(); it.hasNext();) { 126 MouseListener listener = (MouseListener) it.next(); 127 listener.onMouseMove(sender, x, y); 128 } 129 } 130 131 138 public void fireMouseUp(Widget sender, int x, int y) { 139 for (Iterator it = iterator(); it.hasNext();) { 140 MouseListener listener = (MouseListener) it.next(); 141 listener.onMouseUp(sender, x, y); 142 } 143 } 144 } 145 | Popular Tags |