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 */
016package com.github.gwtbootstrap.client.ui;
017
018import com.github.gwtbootstrap.client.ui.base.HasType;
019import com.github.gwtbootstrap.client.ui.base.HtmlWidget;
020import com.github.gwtbootstrap.client.ui.base.StyleHelper;
021import com.github.gwtbootstrap.client.ui.constants.Constants;
022import com.github.gwtbootstrap.client.ui.constants.ControlGroupType;
023
024/**
025 * ControlGroup is a form widget.
026 * <p>
027 * ControlGroup can include html and widget
028 * <h3>UiBinder Usage:</h3>
029 * 
030 * <pre>
031 * {@code
032 * <b:ControlGroup>
033 *      ControlGroup can include html and widgets<br/>
034 *      <b:Controls/>
035 *      <a href="#"></a>
036 * </b:ControlGroup>
037 * }
038 * </pre>
039 * </p>
040 * 
041 * @since 2.0.4.0
042 * 
043 * @author kokubo yusuke 
044 * @author ohashi keisuke
045 * 
046 * @see Controls
047 * @see Fieldset
048 * @see <a href="http://twitter.github.com/bootstrap/base-css.html#forms">Bootstrap documentation</a>
049 */
050public class ControlGroup extends HtmlWidget implements HasType<ControlGroupType> {
051
052        /**
053         * Creates a widget with  the html set..
054         * @param html content html
055         */
056        public ControlGroup(String html) {
057                super("div", html);
058                setStyleName(Constants.CONTROL_GROUP);
059        }
060
061        /**
062         * Creates an empty widget.
063         */
064        public ControlGroup() {
065                this("");
066        }
067        
068        /**
069         * {@inheritDoc}
070         */
071        public void setType(ControlGroupType type) {
072                StyleHelper.changeStyle(this, type, ControlGroupType.class);
073        }
074}