1: package ste.pendu.wordeditor;

  3: import java.io.Serializable;
  4: import javax.swing.JList;
  5: import javax.swing.JPanel;
  6: import javax.swing.JTextField;

  8: /**
  9:  * Interface pour aider à la création de la vue.
 10:  * 
 11:  * <p>Pour créer votre vue, il faut implémenter cette classe. La
 12:  * fabrique de contrôleurs attendra comme information cette interface
 13:  * pour pouvoir construire un contrôleur.</p>
 14:  *
 15:  * <p><img src="doc-files/wordeditor-screenshot.png"/></p> 
 16:  * 
 17:  * <ul><ol>la liste des mots (Cette classe doit étendre JPanel, faites
 18:  * là comme un Bean et utilisez le composant javax.swing.JList)</ol>
 19:  * <ol>un JTextField où l'utilisateur encodera les mots qu'il veut
 20:  * ajouter ou supprimer</ol>
 21:  * </ul>
 22:  * 
 23:  * <p>Fonctions des trois boutons:</p>
 24:  * 
 25:  * <ul><li>Lorsque l'utilisateur clique sur <b>Ajouter</b>, il ajoute à
 26:  * la liste le mot qu'il a écrit dans le JTextField puis le champ se
 27:  * vide.</li>
 28:  * 
 29:  * <li>Lorsque l'utilisateur clique sur <b>Recommencer</b>,
 30:  * il vide le champ de texte</li>
 31:  * 
 32:  * <li>Lorsque l'utilisateur clique sur <b>Supprimer</b>, il supprime
 33:  * non seulement le mot qui correspond à celui qui a été encodé dans le
 34:  * champ, mais aussi tous les mots qui ont été sélectionnés</li></ul>
 35:  * 
 36:  * @see ControlFactory
 37:  * @see javax.swing.JPanel
 38:  * @see javax.swing.JList
 39:  * @see javax.swing.JTextField
 40:  */
 41: public interface View extends Serializable
 42: {

 44:   /**
 45:    * Retourne l'index sélectionné; -1 si aucun item n'est sélectionné.
 46:    * 
 47:    * @return l'index sélectionné; -1 si aucun n'est sélectionné
 48:    */
 49:   public int getSelectedIndex();

 51:   /**
 52:    * Retourne un tableau des indexes sélectionnés.
 53:    * 
 54:    * @return un tableau d'indices
 55:    */
 56:   public int[] getSelectedIndices();

 58:   /**
 59:    * Retourne le mot sélectionné, ou null s'il n'y en a aucun
 60:    * sélectionné.
 61:    * 
 62:    * @return le mot sélectionné
 63:    */
 64:   public String getSelectedWord();

 66:   /**
 67:    * Retourne un tableau des mots sélectionnés.
 68:    * 
 69:    * @return un tableau des mots sélectionnés
 70:    */
 71:   public String[] getSelectedWords();

 73:   /**
 74:    * Donne l'état de la sélection.
 75:    * 
 76:    * @return <code>true</code> si rien n'est sélectionné
 77:    */
 78:   public boolean isSelectionEmpty();

 80:   /**
 81:    * Retourne le mot qui a été encodé dans le JTextField.
 82:    * 
 83:    * @return le mot encodé par l'utilisateur
 84:    */
 85:   public String getWord();

 87:   /**
 88:    * Efface le contenu du JTextField.
 89:    */
 90:   public void clean();

 92:   /**
 93:    * Met à jour le modèle.
 94:    * 
 95:    * @param wordListModel le modèle
 96:    */
 97:   public void setWordListModel(WordListModel wordListModel);

 99:   /**
100:    * Récupère le modèle.
101:    * 
102:    * @return le modèle WordListModel
103:    */
104:   public WordListModel getWordListModel();

106:   /**
107:    * Retourne le ControlFactory de cette vue.
108:    * 
109:    * @return le ControlFactory
110:    */
111:   public ControlFactory getControlFactory();

113: }