/* * Copyright 2012 Axel Winkler, Daniel Dunér * * This file is part of Daxplore Presenter. * * Daxplore Presenter is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 2.1 of the License, or * (at your option) any later version. * * Daxplore Presenter is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with Daxplore Presenter. If not, see <http://www.gnu.org/licenses/>. */ package org.daxplore.presenter.client.ui; import com.google.gwt.event.dom.client.ClickHandler; import com.google.gwt.event.dom.client.DragStartEvent; import com.google.gwt.event.dom.client.DragStartHandler; import com.google.gwt.event.dom.client.HasClickHandlers; import com.google.gwt.event.shared.HandlerRegistration; import com.google.gwt.user.client.ui.Composite; import com.google.gwt.user.client.ui.Image; import com.google.gwt.user.client.ui.SimplePanel; /** * A button widget that has an image on it. */ public class ImageButton extends Composite implements HasClickHandlers { private SimplePanel mainPanel; private Image buttonImage; /** * Instantiates a new image button. * * @param buttonImage * the image displayed on the button * @param titleText * the title text, displayed on mouse over */ public ImageButton(Image buttonImage, String titleText){ this.buttonImage = buttonImage; buttonImage.setTitle(titleText); mainPanel = new SimplePanel(); mainPanel.setWidget(buttonImage); mainPanel.setWidth(buttonImage.getWidth()+"px"); mainPanel.setHeight(buttonImage.getHeight()+"px"); initWidget(mainPanel); this.setStyleName("daxplore-ImageButton"); // Prevent dragging of the button's image buttonImage.addDragStartHandler(new DragStartHandler() { @Override public void onDragStart(DragStartEvent event) { event.preventDefault(); } }); } /** * {@inheritDoc} */ @Override public HandlerRegistration addClickHandler(ClickHandler handler){ return buttonImage.addClickHandler(handler); } }