package au.com.vaadinutils.fields;
import com.vaadin.addon.jpacontainer.EntityItemProperty;
import com.vaadin.data.Property.ValueChangeListener;
import com.vaadin.server.Resource;
import com.vaadin.ui.Button;
import com.vaadin.ui.Button.ClickListener;
import com.vaadin.ui.CustomComponent;
import com.vaadin.ui.HorizontalLayout;
import com.vaadin.ui.TextField;
@SuppressWarnings("serial")
public class TextFieldWithButton extends CustomComponent
{
private TextField textField;
private Button button;
public TextFieldWithButton(String caption)
{
final HorizontalLayout layout = new HorizontalLayout();
layout.setSizeFull();
layout.setSpacing(true);
textField = new TextField();
textField.setSizeFull();
layout.addComponent(textField);
layout.setExpandRatio(textField, 1);
button = new Button();
layout.addComponent(button);
setCompositionRoot(layout);
setCaption(caption);
}
public void setPropertyDataSource(EntityItemProperty newDataSource)
{
textField.setPropertyDataSource(newDataSource);
}
public void setNullRepresentation(String nullRepresentation)
{
textField.setNullRepresentation(nullRepresentation);
}
public void setButtonCaption(String caption)
{
button.setCaption(caption);
}
public void setButtonIcon(Resource icon)
{
button.setIcon(icon);
}
public String getValue()
{
return textField.getValue();
}
public void addButtonClickListener(ClickListener listener)
{
button.addClickListener(listener);
}
public void addTextFieldValueChangeListener(ValueChangeListener listener)
{
textField.addValueChangeListener(listener);
}
public void setButtonDescription(String description)
{
button.setDescription(description);
}
public void setReadOnly(boolean readOnly)
{
textField.setReadOnly(readOnly);
}
public void setButtonEnabled(boolean enabled)
{
button.setEnabled(enabled);
}
}