Example usage for com.google.gwt.event.dom.client TouchCancelHandler TouchCancelHandler

List of usage examples for com.google.gwt.event.dom.client TouchCancelHandler TouchCancelHandler

Introduction

In this page you can find the example usage for com.google.gwt.event.dom.client TouchCancelHandler TouchCancelHandler.

Prototype

TouchCancelHandler

Source Link

Usage

From source file:com.ait.lienzo.client.widget.LienzoHandlerManager.java

License:Open Source License

private final void addHandlers() {
    m_lienzo.addClickHandler(new ClickHandler() {
        @Override//from  ww  w . j  ava2 s. c om
        public void onClick(final ClickEvent event) {
            event.preventDefault();

            onNodeMouseClick(new NodeMouseClickEvent(event));
        }
    });
    m_lienzo.addDoubleClickHandler(new DoubleClickHandler() {
        @Override
        public void onDoubleClick(final DoubleClickEvent event) {
            event.preventDefault();

            onNodeMouseDoubleClick(new NodeMouseDoubleClickEvent(event));
        }
    });
    m_lienzo.addMouseMoveHandler(new MouseMoveHandler() {
        @Override
        public void onMouseMove(final MouseMoveEvent event) {
            event.preventDefault();

            if ((m_dragging) && (m_dragging_using_touches)) {
                return; // Ignore weird Mouse Move (0,0) in the middle of a Touch Drag on iOS/Safari
            }
            final NodeMouseMoveEvent nevent = new NodeMouseMoveEvent(event);

            if (m_mediators.handleEvent(nevent)) {
                return;
            }
            onNodeMouseMove(nevent);
        }
    });
    m_lienzo.addMouseUpHandler(new MouseUpHandler() {
        @Override
        public void onMouseUp(final MouseUpEvent event) {
            final NodeMouseUpEvent nevent = new NodeMouseUpEvent(event);

            if (m_mediators.handleEvent(nevent)) {
                return;
            }
            onNodeMouseUp(nevent);
        }
    });
    m_lienzo.addMouseDownHandler(new MouseDownHandler() {
        @Override
        public void onMouseDown(final MouseDownEvent event) {
            event.preventDefault();

            final NodeMouseDownEvent nevent = new NodeMouseDownEvent(event);

            if (m_mediators.handleEvent(nevent)) {
                return;
            }
            onNodeMouseDown(nevent);
        }
    });
    m_lienzo.addMouseOutHandler(new MouseOutHandler() {
        @Override
        public void onMouseOut(final MouseOutEvent event) {
            final NodeMouseOutEvent nevent = new NodeMouseOutEvent(event);

            if (m_mediators.handleEvent(nevent)) {
                return;
            }
            onNodeMouseOut(nevent);
        }
    });
    m_lienzo.addMouseOverHandler(new MouseOverHandler() {
        @Override
        public void onMouseOver(final MouseOverEvent event) {
            final NodeMouseOverEvent nevent = new NodeMouseOverEvent(event);

            if (m_mediators.handleEvent(nevent)) {
                return;
            }
            onNodeMouseOver(nevent);
        }
    });
    m_lienzo.addMouseWheelHandler(new MouseWheelHandler() {
        @Override
        public void onMouseWheel(final MouseWheelEvent event) {
            final NodeMouseWheelEvent nevent = new NodeMouseWheelEvent(event);

            if (m_mediators.handleEvent(nevent)) {
                event.preventDefault();

                event.stopPropagation();
            } else {
                fireEvent(nevent);
            }
        }
    });
    m_lienzo.addTouchCancelHandler(new TouchCancelHandler() {
        @Override
        public void onTouchCancel(final TouchCancelEvent event) {
            event.preventDefault();

            final NodeTouchCancelEvent nevent = new NodeTouchCancelEvent(event, getTouches(event));

            if (m_mediators.handleEvent(event)) {
                return;
            }
            onNodeMouseOut(nevent);
        }
    });
    m_lienzo.addTouchEndHandler(new TouchEndHandler() {
        @Override
        public void onTouchEnd(final TouchEndEvent event) {
            event.preventDefault();

            final NodeTouchEndEvent nevent = new NodeTouchEndEvent(event, m_touches);

            if (m_mediators.handleEvent(nevent)) {
                return;
            }
            onNodeMouseUp(nevent);
        }
    });
    m_lienzo.addTouchMoveHandler(new TouchMoveHandler() {
        @Override
        public void onTouchMove(final TouchMoveEvent event) {
            event.preventDefault();

            m_touches = getTouches(event);

            final NodeTouchMoveEvent nevent = new NodeTouchMoveEvent(event, m_touches);

            if (m_mediators.handleEvent(nevent)) {
                return;
            }
            onNodeMouseMove(nevent);
        }
    });
    m_lienzo.addTouchStartHandler(new TouchStartHandler() {
        @Override
        public void onTouchStart(final TouchStartEvent event) {
            event.preventDefault();

            m_touches = getTouches(event);

            final NodeTouchStartEvent nevent = new NodeTouchStartEvent(event, m_touches);

            if (m_mediators.handleEvent(nevent)) {
                return;
            }
            onNodeMouseDown(nevent);
        }
    });
    m_lienzo.addGestureStartHandler(new GestureStartHandler() {
        @Override
        public void onGestureStart(final GestureStartEvent event) {
            event.preventDefault();

            final NodeGestureStartEvent nevent = new NodeGestureStartEvent(event.getScale(),
                    event.getRotation());

            if (m_mediators.handleEvent(nevent)) {
                return;
            }
            fireEvent(nevent);
        }
    });
    m_lienzo.addGestureEndHandler(new GestureEndHandler() {
        @Override
        public void onGestureEnd(final GestureEndEvent event) {
            event.preventDefault();

            final NodeGestureEndEvent nevent = new NodeGestureEndEvent(event.getScale(), event.getRotation());

            if (m_mediators.handleEvent(nevent)) {
                return;
            }
            fireEvent(nevent);
        }
    });
    m_lienzo.addGestureChangeHandler(new GestureChangeHandler() {
        @Override
        public void onGestureChange(final GestureChangeEvent event) {
            event.preventDefault();

            final NodeGestureChangeEvent nevent = new NodeGestureChangeEvent(event.getScale(),
                    event.getRotation());

            if (m_mediators.handleEvent(nevent)) {
                return;
            }
            fireEvent(nevent);
        }
    });
}

From source file:com.ait.lienzo.client.widget.panel.impl.LienzoPanelHandlerManager.java

License:Open Source License

private final void addHandlers() {
    handlerRegistrationManager.register(m_lienzo.addClickHandler(new ClickHandler() {
        @Override//from   ww  w  .  j a  va  2s.c  om
        public void onClick(final ClickEvent event) {
            if (!m_viewport.getOnEventHandlers().getOnMouseClickEventHandle().onMouseEventBefore(event)) {
                m_dragging_mouse_pressed = false; // could have been set previously by a mousedown, it will need cleaning up
                m_dragging_ignore_clicks = false;
                m_dragging = false;
                return;
            }

            onNodeMouseClick(new NodeMouseClickEvent(event));
            checkPressedMouseButton(event.getNativeButton());

            m_viewport.getOnEventHandlers().getOnMouseClickEventHandle().onMouseEventAfter(event);
        }
    }));
    handlerRegistrationManager.register(m_lienzo.addDoubleClickHandler(new DoubleClickHandler() {
        @Override
        public void onDoubleClick(final DoubleClickEvent event) {
            if (!m_viewport.getOnEventHandlers().getOnMouseDoubleClickEventHandle().onMouseEventBefore(event)) {
                return;
            }

            onNodeMouseDoubleClick(new NodeMouseDoubleClickEvent(event));
            checkPressedMouseButton(event.getNativeButton());

            event.preventDefault();

            m_viewport.getOnEventHandlers().getOnMouseDoubleClickEventHandle().onMouseEventBefore(event);
        }
    }));
    handlerRegistrationManager.register(m_lienzo.addMouseMoveHandler(new MouseMoveHandler() {
        @Override
        public void onMouseMove(final MouseMoveEvent event) {
            if (!m_viewport.getOnEventHandlers().getOnMouseMoveEventHandle().onMouseEventBefore(event)) {
                return;
            }

            if ((m_dragging) && (m_dragging_using_touches)) {
                event.preventDefault();

                return;// Ignore weird Mouse Move (0,0) in the middle of a Touch Drag on iOS/Safari
            }
            final NodeMouseMoveEvent nevent = new NodeMouseMoveEvent(event);

            if (m_mediators.handleEvent(nevent)) {
                event.preventDefault();

                return;
            }
            checkPressedMouseButton(event.getNativeButton());

            onNodeMouseMove(nevent);

            event.preventDefault();

            m_viewport.getOnEventHandlers().getOnMouseMoveEventHandle().onMouseEventBefore(event);
        }
    }));
    handlerRegistrationManager.register(m_lienzo.addMouseUpHandler(new MouseUpHandler() {
        @Override
        public void onMouseUp(final MouseUpEvent event) {
            if (!m_viewport.getOnEventHandlers().getOnMouseUpEventHandle().onMouseEventBefore(event)) {
                m_dragging_mouse_pressed = false; // could have been set previously by a mousedown, it will need cleaning up
                m_dragging_ignore_clicks = false;
                m_dragging = false;
                return;
            }

            final NodeMouseUpEvent nevent = new NodeMouseUpEvent(event);

            if (m_mediators.handleEvent(nevent)) {
                return;
            }

            checkPressedMouseButton(event.getNativeButton());

            onNodeMouseUp(nevent);

            m_viewport.getOnEventHandlers().getOnMouseUpEventHandle().onMouseEventBefore(event);
        }
    }));
    handlerRegistrationManager.register(m_lienzo.addMouseDownHandler(new MouseDownHandler() {
        @Override
        public void onMouseDown(final MouseDownEvent event) {
            if (!m_viewport.getOnEventHandlers().getOnMouseDownEventHandle().onMouseEventBefore(event)) {
                return;
            }

            final NodeMouseDownEvent nevent = new NodeMouseDownEvent(event);

            if (m_mediators.handleEvent(nevent)) {
                event.preventDefault();

                return;
            }

            checkPressedMouseButton(event.getNativeButton());

            onNodeMouseDown(nevent);

            m_viewport.getOnEventHandlers().getOnMouseDownEventHandle().onMouseEventBefore(event);
        }
    }));
    handlerRegistrationManager.register(m_lienzo.addMouseOutHandler(new MouseOutHandler() {
        @Override
        public void onMouseOut(final MouseOutEvent event) {
            final NodeMouseOutEvent nevent = new NodeMouseOutEvent(event);

            if (m_mediators.handleEvent(nevent)) {
                return;
            }
            onNodeMouseOut(nevent);
        }
    }));
    handlerRegistrationManager.register(m_lienzo.addMouseOverHandler(new MouseOverHandler() {
        @Override
        public void onMouseOver(final MouseOverEvent event) {
            final NodeMouseOverEvent nevent = new NodeMouseOverEvent(event);

            if (m_mediators.handleEvent(nevent)) {
                return;
            }
            onNodeMouseOver(nevent);
        }
    }));
    handlerRegistrationManager.register(m_lienzo.addMouseWheelHandler(new MouseWheelHandler() {
        @Override
        public void onMouseWheel(final MouseWheelEvent event) {
            final NodeMouseWheelEvent nevent = new NodeMouseWheelEvent(event);

            if (m_mediators.handleEvent(nevent)) {
                event.preventDefault();

                event.stopPropagation();
            } else {
                fireEvent(nevent);
            }
        }
    }));
    handlerRegistrationManager.register(m_lienzo.addTouchCancelHandler(new TouchCancelHandler() {
        @Override
        public void onTouchCancel(final TouchCancelEvent event) {
            final NodeTouchCancelEvent nevent = new NodeTouchCancelEvent(event, getTouches(event));

            if (m_mediators.handleEvent(event)) {
                event.preventDefault();

                return;
            }
            onNodeMouseOut(nevent);

            event.preventDefault();
        }
    }));
    handlerRegistrationManager.register(m_lienzo.addTouchEndHandler(new TouchEndHandler() {
        @Override
        public void onTouchEnd(final TouchEndEvent event) {
            final NodeTouchEndEvent nevent = new NodeTouchEndEvent(event, m_touches);

            if (m_mediators.handleEvent(nevent)) {
                event.preventDefault();

                return;
            }
            onNodeMouseUp(nevent);

            event.preventDefault();
        }
    }));
    handlerRegistrationManager.register(m_lienzo.addTouchMoveHandler(new TouchMoveHandler() {
        @Override
        public void onTouchMove(final TouchMoveEvent event) {
            m_touches = getTouches(event);

            final NodeTouchMoveEvent nevent = new NodeTouchMoveEvent(event, m_touches);

            if (m_mediators.handleEvent(nevent)) {
                event.preventDefault();

                return;
            }
            onNodeMouseMove(nevent);

            event.preventDefault();
        }
    }));
    handlerRegistrationManager.register(m_lienzo.addTouchStartHandler(new TouchStartHandler() {
        @Override
        public void onTouchStart(final TouchStartEvent event) {
            m_touches = getTouches(event);

            final NodeTouchStartEvent nevent = new NodeTouchStartEvent(event, m_touches);

            if (m_mediators.handleEvent(nevent)) {
                event.preventDefault();

                return;
            }
            onNodeMouseDown(nevent);

            event.preventDefault();
        }
    }));
    handlerRegistrationManager.register(m_lienzo.addGestureStartHandler(new GestureStartHandler() {
        @Override
        public void onGestureStart(final GestureStartEvent event) {
            final NodeGestureStartEvent nevent = new NodeGestureStartEvent(event.getScale(),
                    event.getRotation());

            if (m_mediators.handleEvent(nevent)) {
                event.preventDefault();

                return;
            }
            fireEvent(nevent);

            event.preventDefault();
        }
    }));
    handlerRegistrationManager.register(m_lienzo.addGestureEndHandler(new GestureEndHandler() {
        @Override
        public void onGestureEnd(final GestureEndEvent event) {
            final NodeGestureEndEvent nevent = new NodeGestureEndEvent(event.getScale(), event.getRotation());

            if (m_mediators.handleEvent(nevent)) {
                event.preventDefault();

                return;
            }
            fireEvent(nevent);

            event.preventDefault();
        }
    }));
    handlerRegistrationManager.register(m_lienzo.addGestureChangeHandler(new GestureChangeHandler() {
        @Override
        public void onGestureChange(final GestureChangeEvent event) {
            final NodeGestureChangeEvent nevent = new NodeGestureChangeEvent(event.getScale(),
                    event.getRotation());

            if (m_mediators.handleEvent(nevent)) {
                event.preventDefault();

                return;
            }
            fireEvent(nevent);

            event.preventDefault();
        }
    }));
}

From source file:com.emitrom.lienzo.client.widget.LienzoHandlerManager.java

License:Open Source License

private final void addHandlers() {
    m_lienzo.addClickHandler(new ClickHandler() {
        @Override//  w  w w . j a va2s .c o m
        public void onClick(ClickEvent event) {
            event.preventDefault();

            onNodeMouseClick(new NodeMouseClickEvent(event));
        }
    });
    m_lienzo.addDoubleClickHandler(new DoubleClickHandler() {
        @Override
        public void onDoubleClick(DoubleClickEvent event) {
            onNodeMouseDoubleClick(new NodeMouseDoubleClickEvent(event));
        }
    });
    m_lienzo.addMouseMoveHandler(new MouseMoveHandler() {
        @Override
        public void onMouseMove(MouseMoveEvent event) {
            event.preventDefault();

            NodeMouseMoveEvent nodeEvent = new NodeMouseMoveEvent(event);

            if ((m_dragging) && (m_dragging_using_touches)) {
                return; // Ignore weird Mouse Move (0,0) in the middle of a Touch Drag on iOS/Safari
            }
            if (m_mediators.handleEvent(nodeEvent)) {
                return;
            }
            onNodeMouseMove(nodeEvent);
        }
    });
    m_lienzo.addMouseUpHandler(new MouseUpHandler() {
        @Override
        public void onMouseUp(MouseUpEvent event) {
            NodeMouseUpEvent nodeEvent = new NodeMouseUpEvent(event);

            if (m_mediators.handleEvent(nodeEvent)) {
                return;
            }
            onNodeMouseUp(nodeEvent);
        }
    });
    m_lienzo.addMouseDownHandler(new MouseDownHandler() {
        @Override
        public void onMouseDown(MouseDownEvent event) {
            event.preventDefault();

            NodeMouseDownEvent nodeEvent = new NodeMouseDownEvent(event);

            if (m_mediators.handleEvent(nodeEvent)) {
                return;
            }
            onNodeMouseDown(nodeEvent);
        }
    });
    m_lienzo.addMouseOutHandler(new MouseOutHandler() {
        @Override
        public void onMouseOut(MouseOutEvent event) {
            NodeMouseOutEvent nodeEvent = new NodeMouseOutEvent(event);

            if (m_mediators.handleEvent(nodeEvent)) {
                return;
            }
            onNodeMouseOut(nodeEvent);
        }
    });
    m_lienzo.addMouseOverHandler(new MouseOverHandler() {
        @Override
        public void onMouseOver(MouseOverEvent event) {
            NodeMouseOverEvent nodeEvent = new NodeMouseOverEvent(event);

            if (m_mediators.handleEvent(nodeEvent)) {
                return;
            }
            onNodeMouseOver(nodeEvent);
        }
    });
    m_lienzo.addMouseWheelHandler(new MouseWheelHandler() {
        @Override
        public void onMouseWheel(MouseWheelEvent event) {
            NodeMouseWheelEvent nodeEvent = new NodeMouseWheelEvent(event);

            if (false == m_mediators.handleEvent(nodeEvent)) {
                fireEvent(nodeEvent);
            } else {
                event.preventDefault();

                event.stopPropagation();
            }
        }
    });
    m_lienzo.addTouchCancelHandler(new TouchCancelHandler() {
        @Override
        public void onTouchCancel(TouchCancelEvent event) {
            event.preventDefault();

            NodeTouchCancelEvent nodeEvent = new NodeTouchCancelEvent(getTouches(event));

            if (m_mediators.handleEvent(event)) {
                return;
            }
            onNodeMouseOut(nodeEvent);
        }
    });
    m_lienzo.addTouchEndHandler(new TouchEndHandler() {
        @Override
        public void onTouchEnd(TouchEndEvent event) {
            event.preventDefault();

            NodeTouchEndEvent nodeEvent = new NodeTouchEndEvent(m_touches);

            if (m_mediators.handleEvent(nodeEvent)) {
                return;
            }
            onNodeMouseUp(nodeEvent);
        }
    });
    m_lienzo.addTouchMoveHandler(new TouchMoveHandler() {
        @Override
        public void onTouchMove(TouchMoveEvent event) {
            event.preventDefault();

            m_touches = getTouches(event);

            NodeTouchMoveEvent nodeEvent = new NodeTouchMoveEvent(m_touches);

            if (m_mediators.handleEvent(nodeEvent)) {
                return;
            }
            onNodeMouseMove(nodeEvent);
        }
    });
    m_lienzo.addTouchStartHandler(new TouchStartHandler() {
        @Override
        public void onTouchStart(TouchStartEvent event) {
            event.preventDefault();

            m_touches = getTouches(event);

            NodeTouchStartEvent nodeEvent = new NodeTouchStartEvent(m_touches);

            if (m_mediators.handleEvent(nodeEvent)) {
                return;
            }
            onNodeMouseDown(nodeEvent);
        }
    });
    m_lienzo.addGestureStartHandler(new GestureStartHandler() {
        @Override
        public void onGestureStart(GestureStartEvent event) {
            event.preventDefault();

            NodeGestureStartEvent nodeEvent = new NodeGestureStartEvent(event.getScale(), event.getRotation());

            if (m_mediators.handleEvent(nodeEvent)) {
                return;
            }
            fireEvent(nodeEvent);
        }
    });
    m_lienzo.addGestureEndHandler(new GestureEndHandler() {
        @Override
        public void onGestureEnd(GestureEndEvent event) {
            event.preventDefault();

            NodeGestureEndEvent nodeEvent = new NodeGestureEndEvent(event.getScale(), event.getRotation());

            if (m_mediators.handleEvent(nodeEvent)) {
                return;
            }
            fireEvent(nodeEvent);
        }
    });
    m_lienzo.addGestureChangeHandler(new GestureChangeHandler() {
        @Override
        public void onGestureChange(GestureChangeEvent event) {
            event.preventDefault();

            NodeGestureChangeEvent nodeEvent = new NodeGestureChangeEvent(event.getScale(),
                    event.getRotation());

            if (m_mediators.handleEvent(nodeEvent)) {
                return;
            }
            fireEvent(nodeEvent);
        }
    });
}

From source file:com.vaadin.client.ui.VAbstractSplitPanel.java

License:Apache License

public VAbstractSplitPanel(Orientation orientation) {
    setElement(DOM.createDiv());// w w w  .  java 2  s  . c  o  m
    switch (orientation) {
    case HORIZONTAL:
        setStyleName(CLASSNAME + "-horizontal");
        break;
    case VERTICAL:
    default:
        setStyleName(CLASSNAME + "-vertical");
        break;
    }
    // size below will be overridden in update from uidl, initial size
    // needed to keep IE alive
    setWidth(MIN_SIZE + "px");
    setHeight(MIN_SIZE + "px");
    constructDom();
    setOrientation(orientation);
    sinkEvents(Event.MOUSEEVENTS);

    makeScrollable();

    addDomHandler(new TouchCancelHandler() {
        @Override
        public void onTouchCancel(TouchCancelEvent event) {
            // TODO When does this actually happen??
            VConsole.log("TOUCH CANCEL");
        }
    }, TouchCancelEvent.getType());
    addDomHandler(new TouchStartHandler() {
        @Override
        public void onTouchStart(TouchStartEvent event) {
            Node target = event.getTouches().get(0).getTarget().cast();
            if (splitter.isOrHasChild(target)) {
                onMouseDown(Event.as(event.getNativeEvent()));
            }
        }
    }, TouchStartEvent.getType());
    addDomHandler(new TouchMoveHandler() {
        @Override
        public void onTouchMove(TouchMoveEvent event) {
            if (resizing) {
                onMouseMove(Event.as(event.getNativeEvent()));
            }
        }
    }, TouchMoveEvent.getType());
    addDomHandler(new TouchEndHandler() {
        @Override
        public void onTouchEnd(TouchEndEvent event) {
            if (resizing) {
                onMouseUp(Event.as(event.getNativeEvent()));
            }
        }
    }, TouchEndEvent.getType());

}

From source file:com.vaadin.terminal.gwt.client.ui.VSplitPanel.java

License:Open Source License

public VSplitPanel(int orientation) {
    setElement(DOM.createDiv());// w w  w .j ava 2 s  . co  m
    switch (orientation) {
    case ORIENTATION_HORIZONTAL:
        setStyleName(CLASSNAME + "-horizontal");
        break;
    case ORIENTATION_VERTICAL:
    default:
        setStyleName(CLASSNAME + "-vertical");
        break;
    }
    // size below will be overridden in update from uidl, initial size
    // needed to keep IE alive
    setWidth(MIN_SIZE + "px");
    setHeight(MIN_SIZE + "px");
    constructDom();
    setOrientation(orientation);
    sinkEvents(Event.MOUSEEVENTS);

    addDomHandler(new TouchCancelHandler() {
        public void onTouchCancel(TouchCancelEvent event) {
            // TODO When does this actually happen??
            VConsole.log("TOUCH CANCEL");
        }
    }, TouchCancelEvent.getType());
    addDomHandler(new TouchStartHandler() {
        public void onTouchStart(TouchStartEvent event) {
            Node target = event.getTouches().get(0).getTarget().cast();
            if (splitter.isOrHasChild(target)) {
                onMouseDown(Event.as(event.getNativeEvent()));
            } else {
                getTouchScrollDelegate().onTouchStart(event);
            }
        }

    }, TouchStartEvent.getType());
    addDomHandler(new TouchMoveHandler() {
        public void onTouchMove(TouchMoveEvent event) {
            if (resizing) {
                onMouseMove(Event.as(event.getNativeEvent()));
            }
        }
    }, TouchMoveEvent.getType());
    addDomHandler(new TouchEndHandler() {
        public void onTouchEnd(TouchEndEvent event) {
            if (resizing) {
                onMouseUp(Event.as(event.getNativeEvent()));
            }
        }
    }, TouchEndEvent.getType());

}

From source file:gwt.material.design.client.base.helper.UiHelper.java

License:Apache License

/**
 * Adds a mouse pressed handler to a widget. Adds a CSS style to the widget
 * as long as the mouse is pressed (or the user touches the widget on mobile browser).
 *
 * @param widget The widget to which the style must be applied for mouse/touch event
 * @param cssStyleName CSS style name to be applied
 *//*from  w  ww. j av a2s  .co  m*/
public static void addMousePressedHandlers(final Widget widget, final String cssStyleName) {
    widget.sinkEvents(Event.ONMOUSEDOWN);
    widget.sinkEvents(Event.ONMOUSEUP);
    widget.sinkEvents(Event.ONMOUSEOUT);
    widget.sinkEvents(Event.TOUCHEVENTS);

    widget.addHandler(new MouseDownHandler() {
        @Override
        public void onMouseDown(MouseDownEvent event) {
            widget.addStyleName(cssStyleName);
        }
    }, MouseDownEvent.getType());

    widget.addHandler(new MouseUpHandler() {
        @Override
        public void onMouseUp(MouseUpEvent event) {
            widget.removeStyleName(cssStyleName);
        }
    }, MouseUpEvent.getType());

    widget.addHandler(new MouseOutHandler() {
        @Override
        public void onMouseOut(MouseOutEvent event) {
            widget.removeStyleName(cssStyleName);
        }
    }, MouseOutEvent.getType());

    // Touch Events
    widget.addHandler(new TouchStartHandler() {
        @Override
        public void onTouchStart(TouchStartEvent event) {
            widget.addStyleName(cssStyleName);
        }
    }, TouchStartEvent.getType());

    widget.addHandler(new TouchEndHandler() {
        @Override
        public void onTouchEnd(TouchEndEvent event) {
            widget.removeStyleName(cssStyleName);

        }
    }, TouchEndEvent.getType());

    widget.addHandler(new TouchCancelHandler() {
        @Override
        public void onTouchCancel(TouchCancelEvent event) {
            widget.removeStyleName(cssStyleName);
        }
    }, TouchCancelEvent.getType());
}