salut,
je suis débutant en GWT, j'ai trouvé des documentations sur l'initialisation en GWT et j'ai essayer des exemples et ça marche bien.
mais par contre je sais pas comment faire pour developpez un site complet (navigation, ensembles des page...).
salut,
je suis débutant en GWT, j'ai trouvé des documentations sur l'initialisation en GWT et j'ai essayer des exemples et ça marche bien.
mais par contre je sais pas comment faire pour developpez un site complet (navigation, ensembles des page...).
Salut,
http://code.google.com/intl/fr/webtoolkit/
ensuite, pour le design pattern MVP
http://mikaelkrok.net/le-design-patt...1-introduction
http://mikaelkrok.net/le-design-patt...-mvp-en-detail
http://mikaelkrok.net/le-design-patt...tre-presenters
mais surtout la doc Google est très bien faite. Essaye de jouer avec les sources eclipse dispo.
Salut Volcon,
Grosso modo il faut jouer avec les ancres et le mécanisme d'historisation de GWT.
Tu crée un manager de vues qui sera appeler par l'historique du navigateur. Ce manager ouvrira une vue en fonction de l'ancre de l'URL. Donc en fonction de ce qu'il y a derriere le # de l'URL.
Exemple avec l'url http://monappliGWT/mon/appli#maVue
Tu récupères la variable maVue et tu la mappes avec une vue que tu construiras selon ton humeur (MVP, MVC ou autre chose).
Imaginons que ton application ait une div dans laquel tu ouvres tes vues. Dans ce cas, lorsque tu passes dans ton manager, tu attaches la vue dans la div. Lorsque tu repasses dans le manager pour afficher une autre vue, tu détaches la vue que tu avais attaché en faisant un clear() sur la div et ensuite tu attaches la seconde vue.
Ce que dit pvoncken est juste.
Tu peux également mettre tes vues dans un CardLayout, ce qui évite de les attacher/détacher. Une seule est visible à un instant t.
Du coup tu utilises un seul Presenter/Controller pour préparer plusieurs affichages.Salut Volcon,
Grosso modo il faut jouer avec les ancres et le mécanisme d'historisation de GWT.
Tu crée un manager de vues qui sera appeler par l'historique du navigateur. Ce manager ouvrira une vue en fonction de l'ancre de l'URL. Donc en fonction de ce qu'il y a derriere le # de l'URL.
Exemple avec l'url http://monappliGWT/mon/appli#maVue
Tu récupères la variable maVue et tu la mappes avec une vue que tu construiras selon ton humeur (MVP, MVC ou autre chose).
Imaginons que ton application ait une div dans laquel tu ouvres tes vues. Dans ce cas, lorsque tu passes dans ton manager, tu attaches la vue dans la div. Lorsque tu repasses dans le manager pour afficher une autre vue, tu détaches la vue que tu avais attaché en faisant un clear() sur la div et ensuite tu attaches la seconde vue.
Dans son exemple, Google fait comme ça (exemple des Contacts dans la partie MVP). A l'usage, ça ne me convient pas car le presenter principal devient énorme et ingérable. Du coup sur mon projet, je laisse l'
AppController (notion de point d'entrée) vide ou presque et chaque triptyque MVP possède son propre objectif avec ses propres évènements. Au final, coté graphique/présentation ça revient à peu près à la même chose sauf que dans une vue, je chargerai le Presenter qui chargera sa propre vue.
Comment faîtes vous dans vos projets?
PS : J'utilise également la méthode de l'URL avec l'objet History (.newItem(""), .back(),.forward()...)
merci pour la reponse,
mais j'ai pas compris exactement le mecanisme,
est ce que vous avez un lien qui l'explique ?.
comme indiqué dans son message : c'est juste un exemple!Envoyé par volcon
http://monappliGWT/mon/appli#maVue
signifie que dans ton application tu récupérera un tag "maVue" qui te servira à rediriger vers une action.
As tu regardé les exemples chez google?
Forcément si tu modifies ta réponse en cours, la mienne ne veut plus rien dire :p
Perso, pour gérer les pages, j'utilise des MVP (un par page). Ensuite, je navigue dans mon application grâce à un "eventBus". J'abonne mes différents MPV à un évènement "changerEcran" et quand je souhaite changer d'écran, je lance l'évènement. Tous mes MVP étant abonnés, ils ont la possibilité de traiter le changement d'écran. Après, tu passes en paramètres de l'eventBus un nom d'écran. En fonction de ce nom d'écran, tu gères la vue qu'il faut.
Regarde sur Internet ces deux choses là avant de te lancer dans un projet complexe (site Internet...) :
- MVP (c'est un MVC pour GWT)
- EventBus
Encore une fois, il faut faire l'exemple que donne Google.
Et si c'est vrai qu'il conseille d'utiliser le MVP. Ce dernier n'est pas le MVC pour GWT mais bien un design pattern à part entière (créé par Martin Fowler au passage) et qui pourrait être implémenter avec n'importe quel langage.
@womannosky: oui c'est cette methode que je cherche !!
je veux utiliser mvp par page, je vais voir ça.
merci
Si vous utilisez MVP, vous le faites avec des composants GWT standard ou bien également avec des composants type GXT (EXT-GWT) ?
En effet, je trouve que le code des composants GXT (exemple : le composant grid) est très difficilement décomposable en 2 parties (présentation / alimentation).
Merci pour vos retours
Je n'utilise que GWT. Je trouve que GXT et les autres framework sont trop lourds par rapport à leurs valeurs ajoutées que je trouve assez faible par rapport à GWT seul.
En passant, je vais mettre à dispo, d'ici une ou deux semaines, un framework que j'ai réalisé et qui permet de gérer toutes ses problématiques. Le framework est pret à etre utilisé, il ne me reste plus qu'à finir la doc. Pour ceux que ca interesse l'adresse du projet est http://gwtop.tuxfamily.org/
Partager