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: }