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}