Beh, io ho fatto in modo che il metodo "setComandi()" eseuga immediatamente l'elenco di istruzioni... tu se vuoi attendere la conferma dell'utente, fai pure. Mettici tutto quello che vuoi. Potrei anche generalizzare il tutto, estendere l'interfaccia e rendere la cosa più "complessa":
codice:
public interface Esecutore {
void eseguiComandi();
String getMessaggio();
}
Ho aggiunto un metodo all'interfaccia che prevede la restituzione di un messaggio da dare all'utente di cui ci si aspetta una risposta prima di procedere.
Così, modifico sia la classe che esegue, che quella che la richiama:
codice:
public class ChiEsegue {
...
public void setComandi(Esecutore e) {
// Prima di procedere, chiedo conferma all'utente,
// mostrandogli il messaggio
int retType = JOptionPane.showConfirmDialog(null, e.getMessaggio(), "Richiesta conferma", JOptionPane.YES_ON_OPTION)
// Se l'utente risponde di SI, eseguo, altrimenti no.
if (retType == JOptionPane.YES_OPTION) {
// Eseguo l'elenco di "comandi"
e.eseguiComandi();
}
}
}
...
public class ChiFaEseguire {
...
private ChiEsegue chiEsegue = ...;
...
public void metodo() {
// Devo far esegure a "chiEsegue" un elenco di comandi
Esecutore e = new Esecutore() {
@Override
public void eseguiComandi() {
... // Elenco di comandi che dovranno essere eseguiti da "chiEsegue"
}
// Il messaggio da presentare all'utente
@Override
public String getMessage() {
return "Vuoi avviare la procedura di salvataggio?";
}
}
chiEsegue.setComandi( e );
}
}
Ciao.