package com.smartgwt.sample.showcase.client.forms.validation;
import com.smartgwt.client.data.DataSource;
import com.smartgwt.client.data.fields.DataSourceTextField;
import com.smartgwt.client.widgets.Canvas;
import com.smartgwt.client.widgets.IButton;
import com.smartgwt.client.widgets.events.ClickEvent;
import com.smartgwt.client.widgets.events.ClickHandler;
import com.smartgwt.client.widgets.form.DynamicForm;
import com.smartgwt.client.widgets.form.validator.MaskValidator;
import com.smartgwt.client.widgets.layout.VLayout;
import com.smartgwt.sample.showcase.client.PanelFactory;
import com.smartgwt.sample.showcase.client.ShowcasePanel;
public class FormValueTransformSample extends ShowcasePanel {
private static final String DESCRIPTION = "Enter a 10 digit US phone number with any typical punctuation " +
"press \"Validate\" to see it transformed to a canonical format.";
public static class Factory implements PanelFactory {
private String id;
public ShowcasePanel create() {
FormValueTransformSample panel = new FormValueTransformSample();
id = panel.getID();
return panel;
}
public String getID() {
return id;
}
public String getDescription() {
return DESCRIPTION;
}
}
public Canvas getViewPanel() {
DataSource dataSource = new DataSource();
dataSource.setID("valueTransform");
MaskValidator maskValidator = new MaskValidator();
maskValidator.setMask("^\\s*(1?)\\s*\\(?\\s*(\\d{3})\\s*\\)?\\s*-?\\s*(\\d{3})\\s*-?\\s*(\\d{4})\\s*$");
maskValidator.setTransformTo("$1($2) $3 - $4");
DataSourceTextField dsTextField = new DataSourceTextField("phone");
dsTextField.setTitle("Phone");
dsTextField.setValidators(maskValidator);
dataSource.setFields(dsTextField);
final DynamicForm form = new DynamicForm();
form.setWidth(300);
form.setDataSource(dataSource);
IButton validateButton = new IButton();
validateButton.setTitle("Validate");
validateButton.addClickHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
form.validate();
}
});
VLayout vLayout = new VLayout();
vLayout.setMembersMargin(10);
vLayout.addMember(form);
vLayout.addMember(validateButton);
return vLayout;
}
public String getIntro() {
return DESCRIPTION;
}
}