package ste.pendu.wordeditor;

import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JOptionPane;

/**
 * Contrôle l'ajout d'un mot.
 * 
 */
public class ControlAjouter extends AbstractControl
{

  public ControlAjouter()
  {
    super();
  }

  public ControlAjouter(WordListModel model, View view)
  {
    super(model, view);
  }

  /**
   * Action à effectuer.
   * 
   * <p>Lorsqu'un bouton a été pressé ou la touche <code>ENTER</code> a
   * été pressée dans un JTextField, et que l'action est à l'écoute,
   * cette méthode est exécutée. On peut récupérer le paramètre pour
   * savoir quel composant a propagé l'événement et les informations
   * qu'il y a enfermées.</p>
   * 
   * @param action l'action transmise par l'événement
   */
  public void actionPerformed(ActionEvent action)
  {
    String mot = super.view.getWord();
    if (this.check(mot))
      {
        this.model.addWord(mot);
        this.view.clean();
      }
    else
      {
        JOptionPane.showMessageDialog
          (null,
           "Uniquement des lettres de 'a' à 'z'!\nEt au moins trois lettres!",
           "WordList", JOptionPane.ERROR_MESSAGE);
      }
  }

  protected boolean check(String mot)
  {
    char[] c=mot.toCharArray();
    boolean valide= (c.length>=3);
    int i=0;
    while (valide && i<c.length)
      {
        valide = (c[i] >= 'a' && c[i] <= 'z');
        i++;
      }
    return valide;
  }

}
