package au.com.vaadinutils.editors;
import com.vaadin.data.Validator;
import com.vaadin.ui.FormLayout;
import com.vaadin.ui.TextField;
import com.vaadin.ui.UI;
public class InputDialog implements InputFormDialogRecipient
{
final Recipient recipient;
final TextField field = new TextField();
private InputFormDialog dialog;
public InputDialog(final UI parent, String title, String question, Recipient recipient)
{
this.recipient = recipient;
FormLayout form = new FormLayout();
form.setMargin(true);
form.setSizeFull();
field.setCaption(question);
field.setSizeFull();
form.addComponent(field);
dialog = new InputFormDialog(parent, title, field, form, this);
}
public void setOkButtonLabel(String label)
{
dialog.setOkButtonLabel(label);
}
public void setCancelButtonLabel(String label)
{
dialog.setCancelButtonLabel(label);
}
public void setFieldWidth(String width)
{
field.setWidth(width);
}
public void setFieldHeight(String width)
{
field.setHeight(width);
}
public void setDefaultValue(String value)
{
field.setValue(value);
}
/**
* Add validators to the field which will be run when the user clicks OK.
*
* The OK button will not succeed whilst there are field validation errors.
*
* @param validator
*/
public void addValidator(Validator validator)
{
field.addValidator(validator);
}
@Override
public boolean onOK()
{
return recipient.onOK(field.getValue());
}
@Override
public boolean onCancel()
{
return recipient.onCancel();
}
}