Categorie

Archivio Articoli

Categorie

Commenti recenti

[GWT] Validazione dei campi di un form

closeQuesto articolo è stato pubblicato 10 anni 10 mesi 21 giorni giorni fa quindi alcuni contenuti o informazioni presenti in esso potrebbero non essere più validi. Questo sito non è responsabile per eventuali errori causati da questo problema.

eclipse-gwt

 

Ecco come validare i campi di un form con le GWT.

 

 

 

Prima di tutto occorre creare una classe personalizzata che estende la TextBox e che implementa alcuni metodi per la gestione dei validatori:

CustomTextBox.java

public class CustomTextBox extends TextBox {

	private static final String TEXTBOX_VALIDATION_ERROR_STYLE = "error-text-box";
	private String errorMessage = "";
	private ArrayList<Validator> validators = new ArrayList<Validator>();

	public CustomTextBox() {
	   }

	public CustomTextBox(String name) {
		setName(name);
	}

	public String getErrorMessage() {
		return errorMessage;
	}

	public void setErrorMessage(String errorMessage) {
		this.errorMessage = errorMessage;
	}

	public void addValidator(Validator validator) {
		validators.add(validator);
	}

	public boolean validate() {
		boolean validationResult = true;
		for (Validator validator : validators) {
			validationResult = validator.validate(getValue().trim());
			if (!validationResult) {
				errorMessage = validator.getErrorMessage();
				break;
			}
			errorMessage = validator.getErrorMessage();
		}
		setErrorStyles(validationResult);
		return validationResult;
	}

	private void setErrorStyles(boolean validationResult) {
		if (validationResult) {
			removeStyleName(TEXTBOX_VALIDATION_ERROR_STYLE);
			setTitle("");
		} else {
			addStyleName(TEXTBOX_VALIDATION_ERROR_STYLE);
			setTitle(errorMessage);
		}
	}

	@Override
	public void setValue(String s) {
		removeStyleDependentName(TEXTBOX_VALIDATION_ERROR_STYLE);
		super.setValue(s);
	}

	@Override
	public String getValue() {
		return super.getValue().trim();
	}
}

Quindi creiamo uno scheletro (classe astratta) per i nostri validatori:

Validator.java

public abstract class Validator {

    public String errorMessage;

    public abstract boolean validate(String value);

    public abstract String getErrorMessage();
}

Infine creiamo il validatore vero e proprio:

Sample Email validator

public class EmailValidator extends Validator {

 public boolean validate(String value) {
    if (value.matches("^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,}$")) {
            errorMessage = "";
            return true;
        } else {
            errorMessage = "Enter valid email Id";
            return false;
        }
    }

    public String getErrorMessage() {
        return errorMessage;
    }
}

Ecco lo stile...

CSS:

.error-text-box { 
	border: 1px solid red; 
	background: orange url("../symbol-error.png") no-repeat left center; 
	padding-left: 15px !important; 
}

Per ottenere un comportamento di questo tipo:

GWT-validator

A questo punto non ci resta che inserire il nostro campo CustomTextBox:

.
.
.
CustomTextBox myTB = new CustomTextBox();
myTB.addValidator(new EmailValidator());
.
.
.
// SALVATAGGIO
if(myTB.validate())
{
    salvaDati();
}
.
.
.

Fonte: http://stackoverflow.com/questions/6163893/form-validation-with-google-web-toolkit

Comments are closed.