protected void processMouseEvent(NativeMouseEvent e) {
		int id = e.getID();

		EventListener[] listeners;
		if (id == NativeMouseEvent.NATIVE_MOUSE_MOVED || id == NativeMouseEvent.NATIVE_MOUSE_DRAGGED) {
			listeners = eventListeners.getListeners(NativeMouseMotionListener.class);
		}
		else {
			listeners = eventListeners.getListeners(NativeMouseListener.class);
		}

		for (int i = 0; i < listeners.length; i++) {
			switch (id) {
				case NativeMouseEvent.NATIVE_MOUSE_CLICKED:
					((NativeMouseListener) listeners[i]).nativeMouseClicked(e);
					break;

				case NativeMouseEvent.NATIVE_MOUSE_PRESSED:
					((NativeMouseListener) listeners[i]).nativeMousePressed(e);
					break;

				case NativeMouseEvent.NATIVE_MOUSE_RELEASED:
					((NativeMouseListener) listeners[i]).nativeMouseReleased(e);
					break;

				case NativeMouseEvent.NATIVE_MOUSE_MOVED:
					((NativeMouseMotionListener) listeners[i]).nativeMouseMoved(e);
					break;

				case NativeMouseEvent.NATIVE_MOUSE_DRAGGED:
					((NativeMouseMotionListener) listeners[i]).nativeMouseDragged(e);
					break;
			}
		}
	}