package org.vaadin.viritin.fields;
import org.apache.commons.lang3.StringUtils;
import com.vaadin.event.FieldEvents;
/**
* An field to edit integers.
*
* The actual field implementation uses HTML5 input type "number" so you'll have
* up/down arrows available in addition to simply typing the value. The client
* side also prevent non numeric characters to be typed. Some of these advanced
* UX helpers may work in modern browsers only, but the field should be
* perfectly usable with older browsers as well.
*
* @author Matti Tahvonen
*/
public class IntegerField extends AbstractNumberField<IntegerField, Integer> {
private static final long serialVersionUID = 377246000306551089L;
public IntegerField() {
setSizeUndefined();
}
public IntegerField(String caption) {
setCaption(caption);
}
@Override
protected void userInputToValue(String str) {
if (StringUtils.isNotBlank(str)) {
value = Integer.parseInt(str);
} else {
value = null;
}
}
@Override
public IntegerField withBlurListener(FieldEvents.BlurListener listener) {
return (IntegerField) super.withBlurListener(listener);
}
@Override
public IntegerField withFocusListener(FieldEvents.FocusListener listener) {
return (IntegerField) super.withFocusListener(listener);
}
@Override
public Integer getValue() {
return value;
}
}