InterfacciaRubrica.java
Created with JBuilder |
import javabook.*;
class InterfacciaRubrica {
// Attributi relativi all'interfaccia grafica
private MainWindow finestra;
private ListBox menu;
private MultiInputBox scheda;
private InputBox richiesta;
private OutputBox uscita;
private MessageBox messaggio;
// Attributo relativo alla rubrica da gestire
private Rubrica rubrica;
// Costruttore dell'interfaccia grafica. L'oggetto rubrica è
// già stato creato all'esterno
public InterfacciaRubrica(Rubrica rubrica) {
this.rubrica = rubrica;
// Imposta la finestra principale, un InputBox e un OutputBox
finestra = new MainWindow("Gestione rubrica");
finestra.show();
richiesta = new InputBox(finestra, "Richiesta Dati");
uscita = new OutputBox(finestra, "Visualizzazione Risultati");
messaggio = new MessageBox(finestra);
// Crea la scheda per l'inserimento di un nominativo
String[] etichette = {"Nome", "Indirizzo", "Civico", "Telefono"};
scheda = new MultiInputBox(finestra, etichette);
scheda.setTitle("Scheda persona");
// Crea il menu principale
String[] vociMenu = {"Inserisci nominativo", "Cerca per nome",
"Cerca per indirizzo", "Cancella nominativo",
"Termine operazioni"};
menu = new ListBox(finestra, "Menu Principale", false);
for (int i = 0; i < vociMenu.length; i++) {
menu.addItem(vociMenu[i]);
}
}
public void esegui() {
// Presenta all'utente il menu principale in un ciclo continuo
while (true) {
int selection = menu.getSelectedIndex();
switch (selection) {
case 0 : inserisciPersona(); break;
case 1 : cercaPersona(); break;
case 2 : cercaIndirizzi(); break;
case 3 : cancellaPersona(); break;
case 4 : System.exit(0);
default : break;
}
}
}
private void inserisciPersona() {
String[] campi = scheda.getInputs();
if (campi != null) {
for (int i = 0; i < campi.length; i++) {
if (campi[i].length() == 0){
messaggio.show("Non hai inserito correttamente un campo ");
return;
}
}
Persona p = new Persona(campi[0], campi[1],
Integer.parseInt(campi[2]), campi[3]);
rubrica.aggiungi(p);
messaggio.show("Inserimento effettuato ");
}
}
private void cercaPersona() {
String nome = richiesta.getString("Inserisci il nome da cercare: ");
Persona p = rubrica.cercaPersonaPerNome(nome);
if (p == null) {
// La persona non è stata trovata
messaggio.show("La persona di nome " + nome + " non è nell'elenco. ");
} else {
// La persona è nella rubrica, visualizziamo i dati
uscita.clear();
uscita.printLine("La seguente persona è stata trovata nella rubrica.");
visualizzaPersona(uscita, p);
uscita.show();
}
}
private void cercaIndirizzi() {
String indirizzo =
richiesta.getString("Inserisci l'indirizzo da cercare: ");
Persona[] elenco = rubrica.cercaPersonePerIndirizzo(indirizzo);
// La persona è nella rubrica, visualizziamo i dati
uscita.clear();
int i = 0;
while (i < elenco.length && elenco[i] != null) {
uscita.printLine("Nominativo " + (i+1));
visualizzaPersona(uscita, elenco[i]);
++i;
}
uscita.show();
}
private void cancellaPersona() {
String nome = richiesta.getString("Inserisci il nome da cancellare: ");
Persona p = rubrica.cercaPersonaPerNome(nome);
if (p == null) {
// La persona non è stata trovata
messaggio.show("La persona di nome " + nome + " non è nell'elenco. ");
} else {
uscita.clear();
uscita.printLine("La seguente persona è stata rimossa dalla rubrica.");
visualizzaPersona(uscita, p);
uscita.show();
}
}
private void visualizzaPersona(OutputBox ob, Persona p) {
// La persona è nella rubrica, visualizziamo i dati
ob.printLine("Nome: " + p.restituisciNome());
ob.printLine("Indirizzo e numero: " +
p.restituisciIndirizzo() + " " + p.restituisciCivico());
ob.printLine("Telefono: " + p.restituisciTelefono());
}
}
InterfacciaRubrica.java
Created with JBuilder |