- Vero
- Falso
- Indifferente
Nell'object model è abbastanza agevole svilupparlo con un attributo di tipo Boolean che ammette i valori: true, false, null. Ma cosa succede nell'interfaccia utente?
Non è possibile usare un check-box, perchè ammette soltanto due valori, sembra più adatto un listbox!
Per poter usare agevolmente il listbox è però più opportuno avere un'enumerazione invece del Boolean. Si possono però prendere due piccioni con una sola fava creando l'enumerazione come segue:
public enum TreStati {
VERO(Boolean.TRUE),
FALSO(Boolean.FALSE),
INDIFFERENTE(null);
private Boolean val;
private TreStati(Boolean val) {
this.val = val;
}
public Boolean getVal() {
return val;
}
public static TreStati fromBoolean(Boolean val) {
if (val == null) {
return INDIFFERENTE;
} else if (val) {
return VERO;
} else {
return FALSO;
}
}
}
A questo punto nella classe dell'object model potete usarlo così:
private Boolean attr;
public TreStati getAttr() {
return TreStati.fromBoolean(attr);
}
public void setAttr(TreStati attr) {
this.attr = attr.getVal();
}
Ovviamente, se necessario, potete anche aggiungere degli accessor method che manipolano direttamente l'attributo Boolean