001 package org.gwtbootstrap3.client.ui;
002
003 /*
004 * #%L
005 * GwtBootstrap3
006 * %%
007 * Copyright (C) 2013 GwtBootstrap3
008 * %%
009 * Licensed under the Apache License, Version 2.0 (the "License");
010 * you may not use this file except in compliance with the License.
011 * You may obtain a copy of the License at
012 *
013 * http://www.apache.org/licenses/LICENSE-2.0
014 *
015 * Unless required by applicable law or agreed to in writing, software
016 * distributed under the License is distributed on an "AS IS" BASIS,
017 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
018 * See the License for the specific language governing permissions and
019 * limitations under the License.
020 * #L%
021 */
022
023 import org.gwtbootstrap3.client.ui.base.button.AbstractToggleButton;
024 import org.gwtbootstrap3.client.ui.constants.IconType;
025
026 import com.google.gwt.dom.client.Document;
027 import com.google.gwt.dom.client.Element;
028 import com.google.gwt.event.dom.client.ClickHandler;
029
030 /**
031 * Button based on {@code <button>} element with different types and sizes.
032 * <p/>
033 * <h3>UiBinder example</h3>
034 * <p/>
035 * <pre>
036 * {@code
037 * <b:Button type="PRIMARY">Save</b:Button>
038 * <b:Button type="DANGER">Delete</b:Button>
039 * <b:Button type="INFO" block="true>I'm a block level button</b:Button>
040 * }
041 * </pre>
042 *
043 * @author Sven Jacobs
044 * @see org.gwtbootstrap3.client.ui.base.button.AbstractToggleButton
045 * @see SubmitButton
046 */
047 public class Button extends AbstractToggleButton {
048
049 /**
050 * Creates button with DEFAULT type.
051 */
052 public Button() {
053 }
054
055 /**
056 * Creates button with specified text
057 *
058 * @param text Text contents of button
059 */
060 public Button(final String text) {
061 setText(text);
062 }
063
064 public Button(final String text, final ClickHandler handler) {
065 this(text);
066 super.addClickHandler(handler);
067 }
068
069 public Button(final String text, final IconType iconType, final ClickHandler clickHandler) {
070 this(text, clickHandler);
071 setIcon(iconType);
072 }
073
074 @Override
075 protected Element createElement() {
076 return Document.get().createPushButtonElement().cast();
077 }
078 }