001package 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 023import org.gwtbootstrap3.client.ui.base.HasInputType; 024import org.gwtbootstrap3.client.ui.base.ValueBoxBase; 025import org.gwtbootstrap3.client.ui.constants.ElementTags; 026import org.gwtbootstrap3.client.ui.constants.InputType; 027import org.gwtbootstrap3.client.ui.constants.Styles; 028 029import com.google.gwt.dom.client.Document; 030import com.google.gwt.text.shared.Parser; 031import com.google.gwt.text.shared.Renderer; 032import com.google.gwt.text.shared.testing.PassthroughParser; 033import com.google.gwt.text.shared.testing.PassthroughRenderer; 034import com.google.gwt.uibinder.client.UiConstructor; 035 036/** 037 * @author Joshua Godi 038 */ 039public class Input extends ValueBoxBase<String> implements HasInputType { 040 041 private static final String MIN = "min"; 042 043 private static final String MAX = "max"; 044 045 public Input() { 046 this(PassthroughRenderer.instance(), PassthroughParser.instance()); 047 } 048 049 public Input(Renderer<String> renderer, Parser<String> parser) { 050 super(Document.get().createElement(ElementTags.INPUT), renderer, parser); 051 addStyleName(Styles.FORM_CONTROL); 052 } 053 054 @UiConstructor 055 public Input(final InputType type) { 056 this(); 057 setType(type); 058 } 059 060 public void setMin(final String min) { 061 getElement().setAttribute(MIN, min); 062 } 063 064 public void setMax(final String max) { 065 getElement().setAttribute(MAX, max); 066 } 067 068 @Override 069 public void setType(final InputType inputType) { 070 getElement().setAttribute(TYPE, inputType.getType()); 071 } 072 073 @Override 074 public InputType getType() { 075 if (getElement().getAttribute(TYPE) == null || getElement().getAttribute(TYPE).isEmpty()) { return null; } 076 return InputType.valueOf(getElement().getAttribute(TYPE)); 077 } 078 079 @Override 080 public void setPlaceholder(final String placeHolder) { 081 getElement().setAttribute(PLACEHOLDER, placeHolder != null ? placeHolder : ""); 082 } 083 084 @Override 085 public String getPlaceholder() { 086 return getElement().getAttribute(PLACEHOLDER); 087 } 088 089}