dtkHour.setText("0");
dtkMin.setText("0");
dtkSec.setText("0");
// handler per impedire che l'utente inserisca Minuti e Secondi con formato errato
KeyDownHandler time = new KeyDownHandler() {
@Override
public void onKeyDown(KeyDownEvent event) {
// inputbox interessata
TextBox input = (TextBox)(event.getSource());
char carattere = (char)event.getNativeKeyCode();
// il carattere inserito � un numero?
if (Character.isDigit(carattere)){
// effettuo il controllo sul contenuto solo se necessario
if (!input.getText().isEmpty()){
int limit;
// l'ora pu� assumere valori 0-23, minuti/secondi 0-59
if (input==dtkHour){
limit = 23; }else{ limit = 59; }
// ci stiamo allargando troppo, elimina il carattere!
if (Integer.parseInt(input.getText()+carattere) > limit) {
input.cancelKey(); }
// se il testo inizia per '0' e contiene altri 2 caratteri allora eliminalo!
if (input.getText().startsWith("0")){
if (input.getText().length()==2){
input.setText(Integer.toString(Integer.parseInt(input.getText())));}}
}
}else{
// Il carattere inserito non � un numero? Eliminalo!
// il controllo per il Backspace non pu� avvenire assieme a
// quello del formato del carattere
if(carattere != (char) KeyCodes.KEY_BACKSPACE &&
carattere != (char) KeyCodes.KEY_TAB){input.cancelKey();}
}
}
};
KeyDownHandler fDown = new KeyDownHandler() {
@Override
public void onKeyDown(KeyDownEvent event) {
// inputbox interessata
TextBox input = (TextBox)(event.getSource());
char carattere = (char)event.getNativeKeyCode();