001 /*
002 * Copyright 2012 GWT-Bootstrap
003 *
004 * Licensed under the Apache License, Version 2.0 (the "License");
005 * you may not use this file except in compliance with the License.
006 * You may obtain a copy of the License at
007 *
008 * http://www.apache.org/licenses/LICENSE-2.0
009 *
010 * Unless required by applicable law or agreed to in writing, software
011 * distributed under the License is distributed on an "AS IS" BASIS,
012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013 * See the License for the specific language governing permissions and
014 * limitations under the License.
015 */
016 package com.github.gwtbootstrap.client.ui;
017
018 import com.github.gwtbootstrap.client.ui.base.HasType;
019 import com.github.gwtbootstrap.client.ui.base.StyleHelper;
020 import com.github.gwtbootstrap.client.ui.constants.Constants;
021 import com.github.gwtbootstrap.client.ui.constants.LabelType;
022 import com.google.gwt.user.client.ui.InlineLabel;
023
024 //@formatter:off
025 /**
026 * Colored label to show warnings, tags, ... You could have multiple types :)
027 *
028 * <p>
029 * <h3>UiBinder Usage:</h3>
030 *
031 * <pre>
032 * {@code
033 * <b:Label type="INFO">I'm the text!</b:Label>
034 * }
035 * </pre>
036 * All arguments are optional.
037 * </p>
038 *
039 * @since 2.0.4.0
040 *
041 * @author Carlos Alexandro Becker
042 *
043 * @author Dominik Mayer
044 *
045 * @see <a href="http://twitter.github.com/bootstrap/components.html#labels">Bootstrap documentation</a>
046 * @see Badge
047 */
048 //@formatter:on
049 public class Label extends InlineLabel implements HasType<LabelType> {
050
051 /**
052 * Creates an empty Label.
053 */
054 public Label() {
055 setStyleName(Constants.LABEL);
056 }
057
058 /**
059 * Creates a Label with the given text.
060 *
061 * @param text
062 * the text for the Label
063 */
064 public Label(String text) {
065 this();
066 setText(text);
067 }
068
069 /**
070 * Creates a Label of given Type with the given text.
071 *
072 * @param type
073 * the type of the Label
074 * @param text
075 * the text of the Label
076 */
077 public Label(LabelType type, String text) {
078 this(text);
079 setType(type);
080 }
081
082 /**
083 * {@inheritDoc}
084 */
085 public void setType(LabelType type) {
086 StyleHelper.changeStyle(this, type, LabelType.class);
087 }
088
089 }