package org.vaadin.viritin.v7.fields;
import java.util.Collection;
import com.vaadin.v7.data.Property;
import com.vaadin.v7.data.Validator;
import com.vaadin.v7.ui.AbstractSelect;
import com.vaadin.v7.ui.NativeSelect;
public class EnumSelect<T> extends TypedSelect<T> {
private static final long serialVersionUID = -4871997560701783780L;
public EnumSelect() {
withSelectType(NativeSelect.class);
setWidthUndefined();
}
public EnumSelect(String caption) {
super(caption);
}
@Override
public void setPropertyDataSource(Property newDataSource) {
if (newDataSource != null) {
Class<T> type = newDataSource.getType();
setOptions(type.getEnumConstants());
}
super.setPropertyDataSource(newDataSource);
}
@Override
public EnumSelect<T> setBeans(Collection<T> options) {
return (EnumSelect<T>) super.setBeans(options);
}
@Override
public EnumSelect<T> setFieldType(Class<T> type) {
return (EnumSelect<T>) super.setFieldType(type);
}
@Override
public EnumSelect<T> withWidth(String width) {
return (EnumSelect<T>) super.withWidth(width);
}
@Override
public EnumSelect<T> withWidth(float width, Unit unit) {
return (EnumSelect<T>) super.withWidth(width, unit);
}
@Override
public EnumSelect<T> withValidator(Validator validator) {
return (EnumSelect<T>) super.withValidator(validator);
}
@Override
public TypedSelect<T> withReadOnly(boolean readOnly) {
return super.withReadOnly(readOnly);
}
@Override
public EnumSelect<T> withFullWidth() {
return (EnumSelect<T>) super.withFullWidth();
}
@Override
public EnumSelect<T> addMValueChangeListener(MValueChangeListener<T> listener) {
return (EnumSelect<T>) super.addMValueChangeListener(listener);
}
@Override
public EnumSelect<T> withSelectType(Class<? extends AbstractSelect> selectType) {
return (EnumSelect<T>) super.withSelectType(selectType);
}
@Override
public EnumSelect<T> withCaption(String caption) {
return (EnumSelect<T>) super.withCaption(caption);
}
public EnumSelect<T> withNullSelection(boolean allowNullSelection) {
getSelect().setNullSelectionAllowed(allowNullSelection);
return this;
}
}