/*
* Copyright 2014 Daniel Kurka
*
* 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.googlecode.mgwt.ui.client.widget.panel;
import com.google.gwt.core.shared.GWT;
import com.google.gwt.event.dom.client.TouchCancelHandler;
import com.google.gwt.event.dom.client.TouchEndHandler;
import com.google.gwt.event.dom.client.TouchMoveHandler;
import com.google.gwt.event.dom.client.TouchStartHandler;
import com.google.gwt.event.shared.HandlerRegistration;
import com.google.gwt.uibinder.client.UiFactory;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.HasWidgets;
import com.google.gwt.user.client.ui.InsertPanel;
import com.google.gwt.user.client.ui.IsWidget;
import com.google.gwt.user.client.ui.Widget;
import com.googlecode.mgwt.dom.client.event.tap.HasTapHandlers;
import com.googlecode.mgwt.dom.client.event.tap.TapHandler;
import com.googlecode.mgwt.dom.client.event.touch.HasTouchHandlers;
import com.googlecode.mgwt.dom.client.event.touch.TouchHandler;
import com.googlecode.mgwt.dom.client.recognizer.longtap.HasLongTapHandlers;
import com.googlecode.mgwt.dom.client.recognizer.longtap.LongTapHandler;
import com.googlecode.mgwt.dom.client.recognizer.pinch.HasPinchHandlers;
import com.googlecode.mgwt.dom.client.recognizer.pinch.PinchHandler;
import com.googlecode.mgwt.dom.client.recognizer.swipe.HasSwipeHandlers;
import com.googlecode.mgwt.dom.client.recognizer.swipe.SwipeEndHandler;
import com.googlecode.mgwt.dom.client.recognizer.swipe.SwipeMoveHandler;
import com.googlecode.mgwt.dom.client.recognizer.swipe.SwipeStartHandler;
import com.googlecode.mgwt.ui.client.widget.touch.TouchPanel;
import java.util.Iterator;
public class Panel extends Composite implements HasTouchHandlers, HasTapHandlers, HasPinchHandlers,
HasSwipeHandlers, HasLongTapHandlers, InsertPanel.ForIsWidget, HasWidgets {
private static final PanelAppearance DEFAULT_APPERANCE = GWT.create(PanelAppearance.class);
private PanelAppearance apperance;
@UiField
public TouchPanel container;
public Panel() {
this(DEFAULT_APPERANCE);
}
public Panel(PanelAppearance apperance) {
this.apperance = apperance;
initWidget(this.apperance.uiBinder().createAndBindUi(this));
}
public void setRound(boolean round) {
if (round) {
addStyleName(this.apperance.css().panelRound());
} else {
removeStyleName(this.apperance.css().panelRound());
}
}
@Override
public HandlerRegistration addLongTapHandler(LongTapHandler handler) {
return container.addLongTapHandler(handler);
}
@Override
public HandlerRegistration addSwipeStartHandler(SwipeStartHandler handler) {
return container.addSwipeStartHandler(handler);
}
@Override
public HandlerRegistration addSwipeMoveHandler(SwipeMoveHandler handler) {
return container.addSwipeMoveHandler(handler);
}
@Override
public HandlerRegistration addSwipeEndHandler(SwipeEndHandler handler) {
return container.addSwipeEndHandler(handler);
}
@Override
public HandlerRegistration addPinchHandler(PinchHandler handler) {
return container.addPinchHandler(handler);
}
@Override
public HandlerRegistration addTapHandler(TapHandler handler) {
return container.addTapHandler(handler);
}
@Override
public HandlerRegistration addTouchStartHandler(TouchStartHandler handler) {
return container.addTouchStartHandler(handler);
}
@Override
public HandlerRegistration addTouchMoveHandler(TouchMoveHandler handler) {
return container.addTouchMoveHandler(handler);
}
@Override
public HandlerRegistration addTouchCancelHandler(TouchCancelHandler handler) {
return container.addTouchCancelHandler(handler);
}
@Override
public HandlerRegistration addTouchEndHandler(TouchEndHandler handler) {
return container.addTouchEndHandler(handler);
}
@Override
public HandlerRegistration addTouchHandler(TouchHandler handler) {
return container.addTouchHandler(handler);
}
@Override
public void add(Widget w) {
container.add(w);
}
@Override
public void insert(Widget w, int beforeIndex) {
container.insert(w, beforeIndex);
}
@Override
public Widget getWidget(int index) {
return container.getWidget(index);
}
@Override
public int getWidgetCount() {
return container.getWidgetCount();
}
@Override
public int getWidgetIndex(Widget child) {
return container.getWidgetIndex(child);
}
@Override
public boolean remove(int index) {
return container.remove(index);
}
@Override
public int getWidgetIndex(IsWidget child) {
return container.getWidgetIndex(child);
}
@Override
public void add(IsWidget w) {
container.add(w);
}
@Override
public void insert(IsWidget w, int beforeIndex) {
container.insert(w, beforeIndex);
}
@UiFactory
public PanelAppearance getApperance() {
return apperance;
}
@Override
public void clear() {
container.clear();
}
@Override
public Iterator<Widget> iterator() {
return container.iterator();
}
@Override
public boolean remove(Widget w) {
return container.remove(w);
}
}