Mask Validator based text field (Smart GWT)
/* * SmartGWT (GWT for SmartClient) * Copyright 2008 and beyond, Isomorphic Software, Inc. * * SmartGWT is free software; you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License version 3 * as published by the Free Software Foundation. SmartGWT is also * available under typical commercial license terms - see * http://smartclient.com/license * This software is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. */ package com.smartgwt.sample.showcase.client; import com.google.gwt.core.client.EntryPoint; import com.google.gwt.user.client.ui.RootPanel; import com.smartgwt.client.data.DataSource; import com.smartgwt.client.data.fields.DataSourceTextField; import com.smartgwt.client.types.TitleOrientation; 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; public class Showcase implements EntryPoint { public void onModuleLoad() { RootPanel.get().add(getViewPanel()); } TitleOrientation titleOrientation = TitleOrientation.LEFT; 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; } }