001package gwt.material.design.client.ui; 002 003/* 004 * #%L 005 * GwtMaterial 006 * %% 007 * Copyright (C) 2015 GwtMaterialDesign 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//@formatter:off 024 025/** 026 * Material Integer Box is an input field that accepts any Integer based string 027 * from user. <h3>UiBinder Usage:</h3> 028 * 029 * <pre> 030 * {@code <m:MaterialIntegerBox placeholder="Your integer" step=100/>} 031 * </pre> 032 * 033 * The parsing and formatting of the number are done natively by the browser, 034 * using the i18n settings from the user. 035 * 036 * @see <a href="http://gwt-material-demo.herokuapp.com/#forms">Material 037 * IntegerBox</a> 038 * @author paulux84 039 */ 040// @formatter:on 041public class MaterialIntegerBox extends MaterialNumberBox<Integer> { 042 043 public MaterialIntegerBox() { 044 setStep("1"); 045 } 046 047 @Override 048 public Integer getValue() { 049 double number = getValueAsNumber(); 050 if (Double.isNaN(number)) { 051 return null; 052 } 053 return (int) Math.rint(number); 054 } 055 056}