com.github.gwtbootstrap.showcase.client.Buttons.java Source code

Java tutorial

Introduction

Here is the source code for com.github.gwtbootstrap.showcase.client.Buttons.java

Source

/*
 *  Copyright 2012 GWT-Bootstrap
 *
 *  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.github.gwtbootstrap.showcase.client;

import java.util.Arrays;

import com.github.gwtbootstrap.client.ui.Button;
import com.github.gwtbootstrap.client.ui.ValueListBox;
import com.github.gwtbootstrap.client.ui.constants.ButtonType;
import com.github.gwtbootstrap.client.ui.constants.IconPosition;
import com.github.gwtbootstrap.client.ui.constants.IconSize;
import com.github.gwtbootstrap.client.ui.constants.IconType;
import com.github.gwtbootstrap.showcase.client.util.EnumRenderer;
import com.google.gwt.core.client.GWT;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.logical.shared.ValueChangeEvent;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.uibinder.client.UiHandler;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.Widget;

public class Buttons extends Composite {

    @UiField
    Button effectiveButton;

    @UiField(provided = true)
    ValueListBox<IconType> icons = new ValueListBox<IconType>(new EnumRenderer<IconType>("Choose icon"));

    @UiField(provided = true)
    ValueListBox<IconSize> iconSize = new ValueListBox<IconSize>(new EnumRenderer<IconSize>("Choose icon size"));

    @UiField(provided = true)
    ValueListBox<IconPosition> iconPosition = new ValueListBox<IconPosition>(
            new EnumRenderer<IconPosition>("Choose icon position"));

    private static ButtonsUiBinder uiBinder = GWT.create(ButtonsUiBinder.class);

    interface ButtonsUiBinder extends UiBinder<Widget, Buttons> {
    }

    public Buttons() {

        icons.setValue(null);
        icons.setAcceptableValues(Arrays.asList(IconType.values()));

        iconSize.setValue(null);
        iconSize.setAcceptableValues(Arrays.asList(IconSize.values()));

        iconPosition.setValue(null);
        iconPosition.setAcceptableValues(Arrays.asList(IconPosition.values()));

        initWidget(uiBinder.createAndBindUi(this));
    }

    @UiHandler({ "defaultType", "primary", "info", "success", "warning", "danger", "inverse", "link" })
    void onClickTypeButton(ClickEvent e) {
        Button b = (Button) e.getSource();
        if (b.getType() != null) {
            effectiveButton.setType(b.getType());
        } else {
            effectiveButton.setType(ButtonType.DEFAULT);
        }

        effectiveButton.setText(b.getText());
    }

    @UiHandler({ "large", "small", "mini" })
    void onClickSizeButton(ClickEvent e) {
        Button b = (Button) e.getSource();
        effectiveButton.setSize(b.getSize());
    }

    @UiHandler("enableButton")
    void onClickEnabled(ClickEvent e) {
        effectiveButton.setEnabled(true);
    }

    @UiHandler("disableButton")
    void onClickDisabled(ClickEvent e) {
        effectiveButton.setEnabled(false);
    }

    @UiHandler("icons")
    void onChangeIcons(ValueChangeEvent<IconType> e) {
        effectiveButton.setIcon(e.getValue());
    }

    @UiHandler("iconSize")
    void onChangeIconSize(ValueChangeEvent<IconSize> e) {
        effectiveButton.setIconSize(e.getValue());
    }

    @UiHandler("iconPosition")
    void onChangeIconPosition(ValueChangeEvent<IconPosition> e) {
        effectiveButton.setIconPosition(e.getValue());
    }

    @UiHandler("toggle")
    void onChangeToggle(ValueChangeEvent<Boolean> e) {
        effectiveButton.setToggle(e.getValue());
    }

    @UiHandler("block")
    void onChangeBlock(ValueChangeEvent<Boolean> e) {
        effectiveButton.setBlock(e.getValue());
    }

    @UiHandler("loadingText")
    void onChangeLoadingText(ValueChangeEvent<String> e) {
        effectiveButton.setLoadingText(e.getValue());
    }

    @UiHandler("completeText")
    void onChangeCompleteText(ValueChangeEvent<String> e) {
        effectiveButton.setCompleteText(e.getValue());
        GWT.log(e.getValue());
    }

    @UiHandler("loading")
    void onClickLoading(ClickEvent e) {
        effectiveButton.state().loading();
    }

    @UiHandler("complete")
    void onClickComplete(ClickEvent e) {
        effectiveButton.state().complete();
    }

    @UiHandler("reset")
    void onClickReset(ClickEvent e) {
        effectiveButton.state().reset();
    }

}