1: package ste.pendu.wordeditor;

  3: import java.awt.event.ActionListener;
  4: import java.awt.event.ActionEvent;
  5: import javax.swing.JOptionPane;

  7: /**
  8:  * Contrôle pour quitter l'application.
  9:  * 
 10:  */
 11: public class ControlQuitter extends AbstractControl
 12: {

 14:   public ControlQuitter()
 15:   {
 16:     super();
 17:   }

 19:   public ControlQuitter(WordListModel model, View view)
 20:   {
 21:     super(model, view);
 22:   }

 24:   /**
 25:    * Action à effectuer.
 26:    * 
 27:    * <p>Lorsqu'un bouton a été pressé ou la touche <code>ENTER</code> a
 28:    * été pressée dans un JTextField, et que l'action est à l'écoute,
 29:    * cette méthode est exécutée. On peut récupérer le paramètre pour
 30:    * savoir quel composant a propagé l'événement et les informations
 31:    * qu'il y a enfermées.</p>
 32:    * 
 33:    * @param action l'action transmise par l'événement
 34:    */
 35:   public void actionPerformed(ActionEvent action)
 36:   {
 37:     boolean saved = this.model.isSaved();
 38:     boolean doExit = saved;
 39:     if(!saved)
 40:       {
 41:         int i = JOptionPane.showConfirmDialog
 42:           (null, "Les mots n'ont pas été sauvé! Voulez-vous vraiment quitter?",
 43:            "WordEditor!", JOptionPane.YES_NO_OPTION, JOptionPane.ERROR_MESSAGE);
 44:         doExit = (JOptionPane.YES_OPTION==i);
 45:       }

 47:     if (doExit)
 48:       {
 49:         System.exit(0);
 50:       }
 51:   }
 52:   
 53: }