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 l'ajout d'un mot.
  9:  * 
 10:  */
 11: public class ControlAjouter extends AbstractControl
 12: {

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

 19:   public ControlAjouter(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:     String mot = super.view.getWord();
 38:     if (this.check(mot))
 39:       {
 40:         this.model.addWord(mot);
 41:         this.view.clean();
 42:       }
 43:     else
 44:       {
 45:         JOptionPane.showMessageDialog
 46:           (null,
 47:            "Uniquement des lettres de 'a' à 'z'!\nEt au moins trois lettres!",
 48:            "WordList", JOptionPane.ERROR_MESSAGE);
 49:       }
 50:   }

 52:   protected boolean check(String mot)
 53:   {
 54:     char[] c=mot.toCharArray();
 55:     boolean valide= (c.length>=3);
 56:     int i=0;
 57:     while (valide && i<c.length)
 58:       {
 59:         valide = (c[i] >= 'a' && c[i] <= 'z');
 60:         i++;
 61:       }
 62:     return valide;
 63:   }

 65: }