E' necessario il codice del caso di studio trattato
nelle lezioni 12
e 13 cioe' i file:
Oppure tutti i file java insieme nel file tutti.zip.
Questi esercizi sono simili a quelli che potrebbero essere chiesti
all'esame.
NOTA: alcuni sono brevi, e in un esame sarebbero messi insieme
ad altri.
I vari esercizi si possono svolgere in qualsiasi ordine.
Fare in modo che le voci di menu' "non valide" in questo momento
(cioe' "presta", "restituisci", "salva", "dismetti"
in caso di biblioteca vuota)
restino disabilitate.
Usare la funzione setEnabled(true/false) per abilitare/disabilitare una voce.
Alla partenza del programma, le voci suddette
vanno disabilitate se sussiste una di queste condizioni:
-- non ci sono argomenti sulla command-line
-- ci sono argomenti sulla command-line, ma risulta che
abbiamo letto zero libri dal file (controllare valore di
ritorno di read)
Non dimenticare di riabilitare tutte le voci non appena la biblioteca acquisisce un nuovo libro. E ri-disabilitarle se viene dismesso dalla biblioteca l'ultimo libro.
Fare si' che la finestra di dialogo per la restituzione mostri solo
i libri che hanno qualche copia prestata.
Nella callback del bottone di avanzamento controllare se il prossimo libro ha copie prestate. Se ne ha, comportarsi some al solito. Se non ne ha, passare al libro ancora successivo, se si arriva in fondo allora significa che il libro da cui siamo partiti e' l'ultimo di quelli prestati (percio' non andiamo avanti).
Fare si' che non sia possibile prestare l'ultima copia di
un libro (cioe' quando numero di copie prestate == numero
di copie totali - 1).
Mettere in EseguiPrestito un controllo se resta una sola copia. Se una sola, manda messaggio di errore e non fa nulla. Se piu' di una, esegue il prestito normalmente.
Scrivere in rosso i dati dei libri non prestabili nella finestra per
il prestito e in verde i dati dei libri non restituibili nella
finestra per la restituzione.
Aggiungere alla finestra Dialog3 in alto (nello stesso pannello dei bottoni)
un bottone "cerca" e un campo di testo in cui l'utente puo' digitare
la stringa con cui deve iniziare il titolo del libro.
Aggiungere la callback del bottone "cerca" che
Aggiungere al menu' generale una voce "salva con nome".
Associare a questa voce una callback (event listener)
che fa apparire una finestra di dialogo che chiede un nome di file.
Bisogna definire un'altra sotto-classe di dialog1 (chiamiamola Dialog5)
che contiene nella parte centrale un pannello con una label "nome file:"
e un campo di testo (scegliete voi il layout).
La finestra per chiedere il nome file sara' istanza di questa classe.
Associare al bottone Ok di detta finestra una callback (event listener)
che preleva il nome file dal campo di testo e lo usa per
salvarci la biblioteca.