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.AbstractInputGroupAddon;
024    import org.gwtbootstrap3.client.ui.constants.Styles;
025    
026    import com.google.gwt.dom.client.Element;
027    import com.google.gwt.user.client.ui.Widget;
028    
029    /**
030     * Prepends or appends buttons to input fields.
031     * <p/>
032     * For prepending/appending text see {@link InputGroupAddon}.
033     * Needs to be encapsulated in an {@link InputGroup}.
034     * <p/>
035     * <strong>Note:</strong> This is not a button itself! A {@link Button} needs to be added to this container.
036     * <h3>UiBinder example</h3>
037     * <pre>{@code
038     *     <b:InputGroup>
039     *         <b:InputGroupButton>
040     *             <b:Button>Prepend</b:Button>
041     *         </b:InputGroupButton>
042     *         <b:TextBox/>
043     *         <b:InputGroupButton>
044     *             <b:Button>Append</b:Button>
045     *         </b:InputGroupButton>
046     *     </b:InputGroup>
047     * }</pre>
048     * <p/>
049     * Also see Bootstrap <a href="http://getbootstrap.com/components/#input-groups">documentation</a>.
050     *
051     * @author Sven Jacobs
052     * @see InputGroupAddon
053     */
054    public class InputGroupButton extends AbstractInputGroupAddon {
055    
056        public InputGroupButton() {
057            super(Styles.INPUT_GROUP_BTN);
058        }
059    
060        @Override
061        public void add(final Widget child) {
062            add(child, (Element) getElement());
063        }
064    }