Java tutorial
/* * Copyright (c) 2011 Zhihua (Dennis) Jiang * * 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.gwtm.ui.client.core.widgets; import java.beans.Beans; import com.google.gwt.event.dom.client.ClickEvent; import com.google.gwt.event.dom.client.ClickHandler; import com.google.gwt.event.logical.shared.ResizeHandler; import com.google.gwt.user.client.Window; import com.google.gwt.user.client.ui.Widget; import com.gwtm.ui.client.core.InputController; import com.gwtm.ui.client.core.Utils; import com.gwtm.ui.client.events.DraggingHandler; import com.gwtm.ui.client.events.SwipeHandler; import com.gwtm.ui.client.widgets.ScrollPanel; public class PanelBase extends com.google.gwt.user.client.ui.FlowPanel { private String uuid = null; private DraggingHandler draggingHandler = null; private ClickHandler clickHandler = null; private ResizeHandler resizeHandler = null; private SwipeHandler swipeHandler = null; public PanelBase() { uuid = Utils.UUID.uuid(8, 16); // this panel needs to be handled differently !! // for scrollpanel, the designtime message cannot be added in this super class // it will be handled by its own class if (Beans.isDesignTime() && !(this instanceof ScrollPanel)) { super.add(new DesignTimePanel(this)); } } public String getUUID() { return uuid; } @Override public void add(Widget w) { if (Beans.isDesignTime()) { if (getWidgetCount() == 1 && getWidget(0) instanceof DesignTimePanel) { DesignTimePanel designTimePanel = (DesignTimePanel) getWidget(0); if (!designTimePanel.hasError()) { super.clear(); } } } super.add(w); } public void addDesignTimeMessage(String message) { if (Beans.isDesignTime()) { if (getWidgetCount() == 1 && getWidget(0) instanceof DesignTimePanel) { DesignTimePanel designTimePanel = (DesignTimePanel) getWidget(0); designTimePanel.addMessage(message); } } } public void addDesignTimeError(String error) { if (Beans.isDesignTime()) { if (getWidgetCount() == 1 && getWidget(0) instanceof DesignTimePanel) { DesignTimePanel designTimePanel = (DesignTimePanel) getWidget(0); designTimePanel.addErrorMessage(error); } } } public void addDraggingHandler(DraggingHandler draggingHandler) { this.draggingHandler = draggingHandler; } public void removeDraggingHandler() { this.draggingHandler = null; } public void addSwipeHandler(SwipeHandler swipeHandler) { this.swipeHandler = swipeHandler; } public void removeSwipeHandler() { this.swipeHandler = null; } public void addClickTapHandler(ClickHandler clickHandler) { this.clickHandler = clickHandler; } public void removeClickTapHandler() { this.clickHandler = null; } public void addResizeHandler(ResizeHandler resizeHandler) { this.resizeHandler = resizeHandler; } public void removeResizeHandler() { this.resizeHandler = null; } @Override protected void onLoad() { super.onLoad(); if (draggingHandler != null) InputController.get().addDraggingHandler(draggingHandler); if (swipeHandler != null) InputController.get().addSwipeHandler(swipeHandler); if (clickHandler != null) InputController.get().registerHandler(uuid + clickHandler.getClass().getName(), addDomHandler(clickHandler, ClickEvent.getType())); if (resizeHandler != null) InputController.get().registerHandler(uuid + resizeHandler.getClass().getName(), Window.addResizeHandler(resizeHandler)); } @Override protected void onUnload() { if (draggingHandler != null) { InputController.get().removeDraggingHandler(draggingHandler); } if (swipeHandler != null) { InputController.get().removeSwipeHandler(swipeHandler); } if (clickHandler != null) { InputController.get().unregisterHandler(uuid + clickHandler.getClass().getName()); } if (resizeHandler != null) { InputController.get().unregisterHandler(uuid + resizeHandler.getClass().getName()); } super.onUnload(); } }