Bonjour à tous,
j'effectue ma première application en utilisant le pattern MVC, je m'interroge sur le couplage entre la vue et le contrôleur.
Mon application est une application web en GWT (~JAVA) qui doit permettre de gérer un formulaire.
Pour cela, je suis en train de créer les classes : VueFormulaireCreation & ControleurCreationPersonnage.
La vue comporte les différents widgets de l'IHM. l'écoute des widget est assurée par la classe ControleurCreationPersonnage qui gère cette tache (implements ClickHandler en GWT)
Pour cela , cela ma classe VueFormulaireCreation a un attribut de type controleurCreationPersonnage,
controleurCreationPersonnage = new ControleurCreationPersonnage(this, modeleCreationPerso) ;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
| public VueFormulaireCreation() {
controleurCreationPersonnage = new ControleurCreationPersonnage(this, modeleCreationPerso) ;
verticalPanelGeneral = new VerticalPanel();
verticalPanelGeneral.setSize("200px", "106px");
pNom = new HorizontalPanel();
pNom.setSpacing(80) ;
verticalPanelGeneral.add(pNom);
pNom.setSize("436px", "50px");
lNom = new Label("nom");
pNom.add(lNom);
tNom = new TextBox();
pNom.add(tNom);
pCaractPoint = new HorizontalPanel();
verticalPanelGeneral.add(pCaractPoint);
pCaractPoint.setSize("436px", "50px");
lCaractPoint = new Label("points de\n caracterisitique");
pCaractPoint.add(lCaractPoint);
tPointCaract = new TextBox();
pCaractPoint.add(tPointCaract);
pPointExp = new HorizontalPanel();
verticalPanelGeneral.add(pPointExp);
pPointExp.setSize("436px", "50px");
lPointExp = new Label("points d experience");
pPointExp.add(lPointExp);
tPointExp = new TextBox();
pPointExp.add(tPointExp);
bEnregistrerPerso = new Button("enregistrer mon perso");
verticalPanelGeneral.add(bEnregistrerPerso);
bEnregistrerPerso.addClickHandler(controleurCreationPersonnage) ;
// bEnregistrerPerso.addClickHandler(new ClickHandler() {
// public void onClick(ClickEvent event) {
// controleurCreationPersonnage.setNom(tNom.getText()) ;
// controleurCreationPersonnage.setCaractPoint(tPointCaract.getText()) ;
// controleurCreationPersonnage.setExpPoint(tPointExp.getText()) ;
// }
// });
lFeedback = new Label("feedback");
verticalPanelGeneral.add(lFeedback);
lFeedback.setSize("108px", "23px");
} |
et mon contrôleur a une référence sur la vue afin de pouvoir interagir. Comme par exemple, récupérer les valeurs des champs de texte de la vue :
1 2 3 4 5 6 7 8 9 10 11 12 13
| public class ControleurCreationPersonnage implements ClickHandler, ChangeHandler, FocusHandler{
private ModeleCreationPerso modeleCreationPerso;
private VueFormulaireCreation vueFormulaireCreation;
private String nom ;
private String CaractPoint ;
private String ExpPoint ;
public ControleurCreationPersonnage(VueFormulaireCreation vueFormulaireCreation, ModeleCreationPerso modeleCreationPerso) {
super();
this.modeleCreationPerso = modeleCreationPerso; |
Je me demande déjà si mon couplage est correcte, comment assure ton la relation entre la vue et le controleur.
La vue doit posséder un contrôleur pour vérifier ses données et le contrôleur doit bien être relié à la vue qui l'a créé afin de pouvoir interagir avec elle.
Je rencontre des difficultés, est ce que quelqu'un pourrait m'orienter sur l'implémentation de ce pattern ...
merci d'avance,
benilto
Partager