package org.beanfabrics.swing.formatting;
import java.util.regex.Pattern;
import org.beanfabrics.model.PMManager;
import org.beanfabrics.model.TextPM;
import org.beanfabrics.support.Validation;
public class PhoneNumberPM extends TextPM {
private Pattern pattern = Pattern.compile("[0-9]{3}-[0-9]{7}"); // e.g. 605-8889999
public PhoneNumberPM() {
PMManager.setup(this);
}
@Validation(message="Not a valid phone number! Expecting format xxx-xxxxxxx")
public boolean isPhoneNumber() {
return pattern.matcher(getText()).matches();
}
/** {@inheritDoc} */
@Override
public void reformat() {
String text = getText().replaceAll("[^0-9-]", "");
if ( !text.contains("-") && text.length()>3) {
text = text.substring(0,3).concat("-").concat( text.substring(3));
}
setText(text);
}
}