org.gwtbootstrap3.client.ui.base.button.CustomButton.java Source code

Java tutorial

Introduction

Here is the source code for org.gwtbootstrap3.client.ui.base.button.CustomButton.java

Source

package org.gwtbootstrap3.client.ui.base.button;

/*
 * #%L
 * GwtBootstrap3
 * %%
 * Copyright (C) 2013 GwtBootstrap3
 * %%
 * 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.
 * #L%
 */

import org.gwtbootstrap3.client.ui.constants.IconType;

import cc.kune.common.shared.res.KuneIcon;

import com.google.gwt.dom.client.Document;
import com.google.gwt.dom.client.Element;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.event.dom.client.DragEndEvent;
import com.google.gwt.event.dom.client.DragEndHandler;
import com.google.gwt.event.dom.client.DragEnterEvent;
import com.google.gwt.event.dom.client.DragEnterHandler;
import com.google.gwt.event.dom.client.DragEvent;
import com.google.gwt.event.dom.client.DragHandler;
import com.google.gwt.event.dom.client.DragLeaveEvent;
import com.google.gwt.event.dom.client.DragLeaveHandler;
import com.google.gwt.event.dom.client.DragOverEvent;
import com.google.gwt.event.dom.client.DragOverHandler;
import com.google.gwt.event.dom.client.DragStartEvent;
import com.google.gwt.event.dom.client.DragStartHandler;
import com.google.gwt.event.dom.client.DropEvent;
import com.google.gwt.event.dom.client.DropHandler;
import com.google.gwt.event.dom.client.HasAllDragAndDropHandlers;
import com.google.gwt.event.dom.client.HasClickHandlers;
import com.google.gwt.event.shared.HandlerRegistration;
import com.google.gwt.resources.client.ImageResource;

/**
 * Button based on {@code <button>} element with different types and sizes.
 * <p/>
 * <h3>UiBinder example</h3>
 * <p/>
 *
 * <pre>
 * {@code
 *     <b:Button type="PRIMARY">Save</b:Button>
 *     <b:Button type="DANGER">Delete</b:Button>
 *     <b:Button type="INFO" block="true>I'm a block level button</b:Button>
 * }
 * </pre>
 *
 * @author Sven Jacobs
 * @author Vicente J. Ruiz Jurado (added drag&drop, and other kind of icons, see
 *         <a href="https://github.com/gwtbootstrap3/gwtbootstrap3/issues/213">
 *         this bug</a>)
 * @see org.gwtbootstrap3.client.ui.base.button.CustomAbstractToggleButton
 */
public class CustomButton extends CustomAbstractToggleButton
        implements HasClickHandlers, HasAllDragAndDropHandlers {

    /**
     * Creates button with DEFAULT type.
     */
    public CustomButton() {
    }

    /**
     * Creates button with specified text
     *
     * @param text
     *          Text contents of button
     */
    public CustomButton(final String text) {
        setText(text);
    }

    public CustomButton(final String text, final ClickHandler handler) {
        this(text);
        super.addClickHandler(handler);
    }

    public CustomButton(final String text, final IconType iconType, final ClickHandler clickHandler) {
        this(text, clickHandler);
        setIcon(iconType);
    }

    @Override
    public HandlerRegistration addDragEndHandler(final DragEndHandler handler) {
        return addDomHandler(handler, DragEndEvent.getType());
    }

    @Override
    public HandlerRegistration addDragEnterHandler(final DragEnterHandler handler) {
        return addDomHandler(handler, DragEnterEvent.getType());
    }

    @Override
    public HandlerRegistration addDragHandler(final DragHandler handler) {
        return addDomHandler(handler, DragEvent.getType());
    }

    @Override
    public HandlerRegistration addDragLeaveHandler(final DragLeaveHandler handler) {
        return addDomHandler(handler, DragLeaveEvent.getType());
    }

    @Override
    public HandlerRegistration addDragOverHandler(final DragOverHandler handler) {
        return addDomHandler(handler, DragOverEvent.getType());
    }

    @Override
    public HandlerRegistration addDragStartHandler(final DragStartHandler handler) {
        return addDomHandler(handler, DragStartEvent.getType());
    }

    @Override
    public HandlerRegistration addDropHandler(final DropHandler handler) {
        return addDomHandler(handler, DropEvent.getType());
    }

    @Override
    protected Element createElement() {
        return Document.get().createPushButtonElement().cast();
    }

    @Override
    public void setIcon(final KuneIcon icon) {
        super.setIcon(icon);
    }

    @Override
    public void setIconBackColor(final String backgroundColor) {
        super.setIconBackColor(backgroundColor);
    }

    @Override
    public void setIconResource(final ImageResource icon) {
        super.setIconResource(icon);
    }

    @Override
    public void setIconRightResource(final ImageResource icon) {
        super.setIconRightResource(icon);
    }

    @Override
    public void setIconStyle(final String style) {
        super.setIconStyle(style);
    }

    @Override
    public void setIconUrl(final String url) {
        super.setIconUrl(url);
    }

}