001/*
002 * #%L
003 * GwtMaterial
004 * %%
005 * Copyright (C) 2015 - 2017 GwtMaterialDesign
006 * %%
007 * Licensed under the Apache License, Version 2.0 (the "License");
008 * you may not use this file except in compliance with the License.
009 * You may obtain a copy of the License at
010 * 
011 *      http://www.apache.org/licenses/LICENSE-2.0
012 * 
013 * Unless required by applicable law or agreed to in writing, software
014 * distributed under the License is distributed on an "AS IS" BASIS,
015 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
016 * See the License for the specific language governing permissions and
017 * limitations under the License.
018 * #L%
019 */
020package gwt.material.design.client.ui;
021
022import com.google.gwt.user.client.ui.TextBox;
023import gwt.material.design.client.constants.InputType;
024
025//@formatter:off
026
027/**
028 * Material Text Box is an input field that accepts any text based string from user.
029 * <h3>UiBinder Usage:</h3>
030 * <pre>
031 * {@code <m:MaterialTextBox placeholder="First Name" /> }
032 * </pre>
033 *
034 * @author kevzlou7979
035 * @author Ben Dol
036 * @author paulux84
037 * @see <a href="http://gwtmaterialdesign.github.io/gwt-material-demo/#textfields">Material TextBox</a>
038 * @see <a href="https://material.io/guidelines/components/text-fields.html#">Material Design Specification</a>
039 */
040//@formatter:on
041public class MaterialTextBox extends MaterialValueBox<String> {
042
043    public MaterialTextBox() {
044        super(new TextBox());
045        setType(InputType.TEXT);
046    }
047
048    public MaterialTextBox(String placeholder) {
049        this();
050        setPlaceholder(placeholder);
051    }
052
053    public void setMaxLength(int length) {
054        asTextBox().setMaxLength(length);
055    }
056
057    public int getMaxLength() {
058        return asTextBox().getMaxLength();
059    }
060
061    public void setVisibleLength(int length) {
062        asTextBox().setVisibleLength(length);
063    }
064
065    public int getVisibleLength() {
066        return asTextBox().getVisibleLength();
067    }
068
069    @Ignore
070    public TextBox asTextBox() {
071        return (TextBox) valueBoxBase;
072    }
073}