| /* |
| * Copyright 2007 Google Inc. |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); you may not |
| * use this file except in compliance with the License. You may obtain a copy of |
| * the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT |
| * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the |
| * License for the specific language governing permissions and limitations under |
| * the License. |
| */ |
| package com.google.gwt.user.client.ui; |
| |
| import com.google.gwt.event.dom.client.BlurEvent; |
| import com.google.gwt.event.dom.client.BlurHandler; |
| import com.google.gwt.event.dom.client.ClickEvent; |
| import com.google.gwt.event.dom.client.ClickHandler; |
| import com.google.gwt.event.dom.client.DoubleClickEvent; |
| import com.google.gwt.event.dom.client.DoubleClickHandler; |
| import com.google.gwt.event.dom.client.FocusEvent; |
| import com.google.gwt.event.dom.client.FocusHandler; |
| import com.google.gwt.event.dom.client.GestureChangeEvent; |
| import com.google.gwt.event.dom.client.GestureChangeHandler; |
| import com.google.gwt.event.dom.client.GestureEndEvent; |
| import com.google.gwt.event.dom.client.GestureEndHandler; |
| import com.google.gwt.event.dom.client.GestureStartEvent; |
| import com.google.gwt.event.dom.client.GestureStartHandler; |
| import com.google.gwt.event.dom.client.HasAllFocusHandlers; |
| import com.google.gwt.event.dom.client.HasAllGestureHandlers; |
| import com.google.gwt.event.dom.client.HasAllKeyHandlers; |
| import com.google.gwt.event.dom.client.HasAllMouseHandlers; |
| import com.google.gwt.event.dom.client.HasAllTouchHandlers; |
| import com.google.gwt.event.dom.client.HasClickHandlers; |
| import com.google.gwt.event.dom.client.HasDoubleClickHandlers; |
| import com.google.gwt.event.dom.client.KeyDownEvent; |
| import com.google.gwt.event.dom.client.KeyDownHandler; |
| import com.google.gwt.event.dom.client.KeyPressEvent; |
| import com.google.gwt.event.dom.client.KeyPressHandler; |
| import com.google.gwt.event.dom.client.KeyUpEvent; |
| import com.google.gwt.event.dom.client.KeyUpHandler; |
| import com.google.gwt.event.dom.client.MouseDownEvent; |
| import com.google.gwt.event.dom.client.MouseDownHandler; |
| import com.google.gwt.event.dom.client.MouseMoveEvent; |
| import com.google.gwt.event.dom.client.MouseMoveHandler; |
| import com.google.gwt.event.dom.client.MouseOutEvent; |
| import com.google.gwt.event.dom.client.MouseOutHandler; |
| import com.google.gwt.event.dom.client.MouseOverEvent; |
| import com.google.gwt.event.dom.client.MouseOverHandler; |
| import com.google.gwt.event.dom.client.MouseUpEvent; |
| import com.google.gwt.event.dom.client.MouseUpHandler; |
| import com.google.gwt.event.dom.client.MouseWheelEvent; |
| import com.google.gwt.event.dom.client.MouseWheelHandler; |
| import com.google.gwt.event.dom.client.TouchCancelEvent; |
| import com.google.gwt.event.dom.client.TouchCancelHandler; |
| import com.google.gwt.event.dom.client.TouchEndEvent; |
| import com.google.gwt.event.dom.client.TouchEndHandler; |
| import com.google.gwt.event.dom.client.TouchMoveEvent; |
| import com.google.gwt.event.dom.client.TouchMoveHandler; |
| import com.google.gwt.event.dom.client.TouchStartEvent; |
| import com.google.gwt.event.dom.client.TouchStartHandler; |
| import com.google.gwt.event.shared.HandlerRegistration; |
| import com.google.gwt.user.client.ui.impl.FocusImpl; |
| |
| /** |
| * A simple panel that makes its contents focusable, and adds the ability to |
| * catch mouse and keyboard events. |
| */ |
| @SuppressWarnings("deprecation") |
| public class FocusPanel extends SimplePanel implements HasFocus, |
| SourcesClickEvents, SourcesMouseEvents, SourcesMouseWheelEvents, |
| HasAllMouseHandlers, HasClickHandlers, HasDoubleClickHandlers, |
| HasAllKeyHandlers, HasAllFocusHandlers, HasAllGestureHandlers, HasAllTouchHandlers { |
| |
| static final FocusImpl impl = FocusImpl.getFocusImplForPanel(); |
| |
| public FocusPanel() { |
| super(impl.createFocusable()); |
| } |
| |
| public FocusPanel(Widget child) { |
| this(); |
| setWidget(child); |
| } |
| |
| public HandlerRegistration addBlurHandler(BlurHandler handler) { |
| return addDomHandler(handler, BlurEvent.getType()); |
| } |
| |
| public HandlerRegistration addClickHandler(ClickHandler handler) { |
| return addDomHandler(handler, ClickEvent.getType()); |
| } |
| |
| /** |
| * @deprecated Use {@link #addClickHandler} instead |
| */ |
| @Deprecated |
| public void addClickListener(ClickListener listener) { |
| ListenerWrapper.WrappedClickListener.add(this, listener); |
| } |
| |
| public HandlerRegistration addDoubleClickHandler(DoubleClickHandler handler) { |
| return addDomHandler(handler, DoubleClickEvent.getType()); |
| } |
| |
| public HandlerRegistration addFocusHandler(FocusHandler handler) { |
| return addDomHandler(handler, FocusEvent.getType()); |
| } |
| |
| /** |
| * @deprecated Use {@link #addFocusHandler} instead |
| */ |
| @Deprecated |
| public void addFocusListener(FocusListener listener) { |
| ListenerWrapper.WrappedFocusListener.add(this, listener); |
| } |
| |
| public HandlerRegistration addGestureChangeHandler(GestureChangeHandler handler) { |
| return addDomHandler(handler, GestureChangeEvent.getType()); |
| } |
| |
| public HandlerRegistration addGestureEndHandler(GestureEndHandler handler) { |
| return addDomHandler(handler, GestureEndEvent.getType()); |
| } |
| |
| public HandlerRegistration addGestureStartHandler(GestureStartHandler handler) { |
| return addDomHandler(handler, GestureStartEvent.getType()); |
| } |
| |
| /** |
| * @deprecated Use {@link #addKeyDownHandler}, {@link |
| * #addKeyUpHandler} and {@link #addKeyPressHandler} instead |
| */ |
| @Deprecated |
| public void addKeyboardListener(KeyboardListener listener) { |
| ListenerWrapper.WrappedKeyboardListener.add(this, listener); |
| } |
| |
| public HandlerRegistration addKeyDownHandler(KeyDownHandler handler) { |
| return addDomHandler(handler, KeyDownEvent.getType()); |
| } |
| |
| public HandlerRegistration addKeyPressHandler(KeyPressHandler handler) { |
| return addDomHandler(handler, KeyPressEvent.getType()); |
| } |
| |
| public HandlerRegistration addKeyUpHandler(KeyUpHandler handler) { |
| return addDomHandler(handler, KeyUpEvent.getType()); |
| } |
| |
| public HandlerRegistration addMouseDownHandler(MouseDownHandler handler) { |
| return addDomHandler(handler, MouseDownEvent.getType()); |
| } |
| |
| /** |
| * @deprecated Use {@link #addMouseOverHandler}, {@link |
| * #addMouseMoveHandler}, {@link #addMouseDownHandler}, {@link |
| * #addMouseUpHandler} and {@link #addMouseOutHandler} instead |
| */ |
| @Deprecated |
| public void addMouseListener(MouseListener listener) { |
| ListenerWrapper.WrappedMouseListener.add(this, listener); |
| } |
| |
| public HandlerRegistration addMouseMoveHandler(MouseMoveHandler handler) { |
| return addDomHandler(handler, MouseMoveEvent.getType()); |
| } |
| |
| public HandlerRegistration addMouseOutHandler(MouseOutHandler handler) { |
| return addDomHandler(handler, MouseOutEvent.getType()); |
| } |
| |
| public HandlerRegistration addMouseOverHandler(MouseOverHandler handler) { |
| return addDomHandler(handler, MouseOverEvent.getType()); |
| } |
| |
| public HandlerRegistration addMouseUpHandler(MouseUpHandler handler) { |
| return addDomHandler(handler, MouseUpEvent.getType()); |
| } |
| |
| public HandlerRegistration addMouseWheelHandler(MouseWheelHandler handler) { |
| return addDomHandler(handler, MouseWheelEvent.getType()); |
| } |
| |
| /** |
| * @deprecated Use {@link #addMouseWheelHandler} instead |
| */ |
| @Deprecated |
| public void addMouseWheelListener(MouseWheelListener listener) { |
| ListenerWrapper.WrappedMouseWheelListener.add(this, listener); |
| } |
| |
| public HandlerRegistration addTouchCancelHandler(TouchCancelHandler handler) { |
| return addDomHandler(handler, TouchCancelEvent.getType()); |
| } |
| |
| public HandlerRegistration addTouchEndHandler(TouchEndHandler handler) { |
| return addDomHandler(handler, TouchEndEvent.getType()); |
| } |
| |
| public HandlerRegistration addTouchMoveHandler(TouchMoveHandler handler) { |
| return addDomHandler(handler, TouchMoveEvent.getType()); |
| } |
| |
| public HandlerRegistration addTouchStartHandler(TouchStartHandler handler) { |
| return addDomHandler(handler, TouchStartEvent.getType()); |
| } |
| |
| public int getTabIndex() { |
| return impl.getTabIndex(getElement()); |
| } |
| |
| /** |
| * @deprecated Use the {@link HandlerRegistration#removeHandler} method on |
| * the object returned by {@link #addClickHandler} instead |
| */ |
| @Deprecated |
| public void removeClickListener(ClickListener listener) { |
| ListenerWrapper.WrappedClickListener.remove(this, listener); |
| } |
| |
| /** |
| * @deprecated Use the {@link HandlerRegistration#removeHandler} method on |
| * the object returned by {@link #addFocusHandler} instead |
| */ |
| @Deprecated |
| public void removeFocusListener(FocusListener listener) { |
| ListenerWrapper.WrappedFocusListener.remove(this, listener); |
| } |
| |
| /** |
| * @deprecated Use the {@link HandlerRegistration#removeHandler} |
| * method on the object returned by an add*Handler method instead |
| */ |
| @Deprecated |
| public void removeKeyboardListener(KeyboardListener listener) { |
| ListenerWrapper.WrappedKeyboardListener.remove(this, listener); |
| } |
| |
| /** |
| * @deprecated Use the {@link HandlerRegistration#removeHandler} |
| * method on the object returned by an add*Handler method instead |
| */ |
| @Deprecated |
| public void removeMouseListener(MouseListener listener) { |
| ListenerWrapper.WrappedMouseListener.remove(this, listener); |
| } |
| |
| /** |
| * @deprecated Use the {@link HandlerRegistration#removeHandler} |
| * method on the object returned by {@link #addMouseWheelHandler} instead |
| */ |
| @Deprecated |
| public void removeMouseWheelListener(MouseWheelListener listener) { |
| ListenerWrapper.WrappedMouseWheelListener.remove(this, listener); |
| } |
| |
| public void setAccessKey(char key) { |
| impl.setAccessKey(getElement(), key); |
| } |
| |
| public void setFocus(boolean focused) { |
| if (focused) { |
| impl.focus(getElement()); |
| } else { |
| impl.blur(getElement()); |
| } |
| } |
| |
| public void setTabIndex(int index) { |
| impl.setTabIndex(getElement(), index); |
| } |
| } |