1: package ste.pendu.wordeditor;
3: import java.awt.event.ActionListener;
4: import java.awt.event.ActionEvent;
6: /**
7: * Interface pour les contrôleurs.
8: *
9: * <p>Tous les contrôleurs de l'éditeur des mots doivent implémenter
10: * cette interface pour interagir sans problème avec les autres
11: * composants du bean.</p>
12: *
13: * <p>Comme il s'agit d'une interface, aucune information ne vous est
14: * donnée sur le constructeur. En fait, en observant l'interface, vous
15: * pouvez deviner quels vont être vos besoins au niveau du
16: * constructeur.</p>
17: *
18: * <p>Toutes les classes <b>Action</b> (c'est-à-dire les classes qui
19: * vont étendre celle-ci), devront connaître le modèle et la vue pour
20: * pouvoir manipuler l'un et obtenir ou manipuler l'autre. Vous pouvez
21: * donc faire quatre constructeurs (dans la pratique, les deux premiers
22: * seront suffisants:</p>
23: *
24: * <ul><li>MonControl()</li>
25: * <li>MonControl(WordListModel model, View view)</li>
26: * <li>MonControl(WordListModel model)</li>
27: * <li>MonControl(View view)</li>
28: * </ul>
29: *
30: * <p>De toutes manières, il y a les méthodes <i>set</i> et <i>get</i>
31: * qui vont vous permettre de remettre les valeurs à jour.</p>
32: */
33: public interface Control extends ActionListener
34: {
36: /**
37: * Mise à jour du WordListModel.
38: *
39: * @param wordListModel le modèle dont va se servir le controleur pour
40: * exécuter les demandes de l'utilisateur
41: */
42: public void setWordListModel(WordListModel wordListModel);
44: /**
45: * Retourne le WordListModel.
46: *
47: * @return le WordListModel actuel
48: */
49: public WordListModel getWordListModel();
51: /**
52: * Mise à jour de la vue.
53: *
54: * @param view la vue qui sera utilisée pour récupérer les sélections
55: * de l'utilisateur, le texte qu'il aurait pu encoder, et effacer le
56: * texte (par exemple)
57: */
58: public void setView(View view);
60: /**
61: * Retourne la vue.
62: *
63: * @return la vue actuelle
64: */
65: public View getView();
67: /**
68: * Action à effectuer.
69: *
70: * <p>Lorsqu'un bouton a été pressé ou la touche <code>ENTER</code> a
71: * été pressée dans un JTextField, et que l'action est à l'écoute,
72: * cette méthode est exécutée. On peut récupérer le paramètre pour
73: * savoir quel composant a propagé l'événement et les informations
74: * qu'il y a enfermées.</p>
75: *
76: * @param action l'action transmise par l'événement
77: */
78: public void actionPerformed(ActionEvent action);
80: }