package au.com.vaadinutils.fields; import com.vaadin.addon.jpacontainer.EntityItemProperty; import com.vaadin.data.Property.ValueChangeListener; import com.vaadin.data.util.converter.Converter; import com.vaadin.server.Resource; import com.vaadin.ui.CustomComponent; import com.vaadin.ui.HorizontalLayout; import com.vaadin.ui.Label; import com.vaadin.ui.TextField; @SuppressWarnings("serial") public class TextFieldWithLabel extends CustomComponent { protected TextField textField; private Label label; public TextFieldWithLabel(String caption) { final HorizontalLayout layout = new HorizontalLayout(); layout.setSizeFull(); layout.setSpacing(true); textField = new TextField(); textField.setSizeFull(); layout.addComponent(textField); label = new Label(); label.setSizeFull(); layout.addComponent(label); setCompositionRoot(layout); setCaption(caption); } public void setPropertyDataSource(EntityItemProperty newDataSource) { textField.setPropertyDataSource(newDataSource); } public void setNullRepresentation(String nullRepresentation) { textField.setNullRepresentation(nullRepresentation); } public void setLabelCaption(String caption) { label.setCaption(caption); } public void setLabelIcon(Resource icon) { label.setIcon(icon); } public String getValue() { return textField.getValue(); } public void setButtonDescription(String description) { label.setDescription(description); } public void setReadOnly(boolean readOnly) { textField.setReadOnly(readOnly); } public void setLabelReadOnly(boolean readOnly) { label.setReadOnly(readOnly); } public void addValueChangeListener(ValueChangeListener listener) { textField.addValueChangeListener(listener); } public void setConverter(Class<?> datamodelType) { textField.setConverter(datamodelType); } public void setConverter(Converter<String, ?> converter) { textField.setConverter(converter); } public TextField getTextField() { return textField; } }