protected void addMouseHandlers() { // To record the original position MouseDownHandler mouseDownHandler = new MouseDownHandler() { @Override public void onMouseDown(MouseDownEvent event) { event.stopPropagation(); if (event.getNativeEvent().getButton() == NativeEvent.BUTTON_LEFT) mouseDown(event); } }; MouseMoveHandler mouseMoveHandler = new MouseMoveHandler() { @Override public void onMouseMove(MouseMoveEvent event) { event.stopPropagation(); mouseMove(event); } }; MouseUpHandler mouseUpHandler = new MouseUpHandler() { @Override public void onMouseUp(MouseUpEvent event) { event.stopPropagation(); mouseUp(event); } }; MouseOutHandler mouseOutHandler = new MouseOutHandler() { @Override public void onMouseOut(MouseOutEvent event) { event.stopPropagation(); mouseOut(event); } }; MouseWheelHandler mouseWheelHandler = new MouseWheelHandler() { @Override public void onMouseWheel(MouseWheelEvent event) { event.stopPropagation(); event.preventDefault(); mouseWheel(event); } }; DoubleClickHandler doubleClickHandler = new DoubleClickHandler() { @Override public void onDoubleClick(DoubleClickEvent event) { event.stopPropagation(); doubleClick(event); } }; canvas.addMouseDownHandler(mouseDownHandler); canvas.addMouseUpHandler(mouseUpHandler); canvas.addMouseMoveHandler(mouseMoveHandler); canvas.addMouseOutHandler(mouseOutHandler); canvas.addMouseWheelHandler(mouseWheelHandler); canvas.addDoubleClickHandler(doubleClickHandler); }