IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

GWT et Vaadin Java Discussion :

[GWT - Navigation] Gestion du bouton précédent du navigateur


Sujet :

GWT et Vaadin Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2008
    Messages : 5
    Par défaut [GWT - Navigation] Gestion du bouton précédent du navigateur
    Bonjour à tous,


    Postulat :

    - J'ai 2 applis Web en GWT.
    - Chacune de ses applis nécessite une authentification (log/pass).
    - Chacune de ses applis dispose de boutons de navigation internes à l'appli.

    Les faits :

    - Je me logge sur l'appli 1...
    - J'utilise l'appli...
    - Je me délogge avec le bouton qui va bien...

    - Je me logge sur l'appli 2...
    - J'utilise l'appli...

    Si j'ai le malheur de cliquer sur le bouton "Précédent" du navigateur...
    ==> je me retrouve sur la page de login de l'appli 1 !


    Le souci :

    ...dans un sens tout va bien car je suis bien obligé de me relogger, donc, mon mécanisme de login fonctionne !!!

    ... seulement ce que je voudrais c'est me retrouver sur l'"EntryPoint" de l'appli 2


    Solutions ?

    => Quelqu'un a-t-il déja implémenté les fonctions de gestion de l'historique GWT (Hyperlink, History...), a priori, la solution est quelque part par là, mais les tutos sur le sujet sont pour moi complètements abscons...


    Si un "pro" ou un "sachant" de la gestion de l'historique de navigation passait par là... ce serait un grand merci tout plein !

  2. #2
    Rédacteur
    Avatar de benwit
    Profil pro
    dev
    Inscrit en
    Septembre 2004
    Messages
    1 676
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 676
    Par défaut
    Je ne pense pas trop me tromper en disant que la gestion de l'historique de GWT ne résoudra pas ton problème.
    La gestion de l'historique sert à l'intérieur d'une application GWT, pas en dehors !

    Autrement dit, dans une application GWT, par défaut, tu n'as pas d'historique et par conséquent, tu n'as pas la possibilité de naviguer "ailleurs" une fois "à l'intérieur" de l'appli (au gré des changement ajax). En revanche, la navigation "à l'extérieur" est toujours possible.
    Si tu as une flèche "back" dans le navigateur, c'est pour revenir à la page précédent celle du module gwt.

    Dans ton cas, cela s'explique bien :

    Ouvre le navigateur et va directement sur ta 1° application GWT. Tu n'as pas d'historique, donc pas de flèche de retour.
    Si après cela, tu vas sur l'application GWT n° 2, la page de ce module vient remplacer la page du premier module. Ce qui explique pourquoi en cliquant sur back tu retournes sur ta première application.

    Si tu essayes :
    d'aller sur ton appli GWT 1 (connecte, ...., deconnecte interne à l'appli)
    puis d'aller sur developpez.com (sans naviguer dans le site)
    puis d'aller sur ton appli GWT 2 (connecte, ... )
    puis bouton "back" une fois te ramène sur developpez
    puis bouton "back" une 2° fois te ramène à ton appli GWT 1
    cqfd

    Le seul truc qui te faudrait, c'est que ton application gwt "aille" effacer l'historique du navigateur dès qu'elle se connecte mais je ne pense pas qu'elle est y accès.
    Pour preuve, la doc (http://google-web-toolkit.googlecode...1.4/index.html) te montre qu'elle peut ajouter des items, avancer et reculer mais rien pour enlever des items de l'historique.

  3. #3
    Membre du Club
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2008
    Messages : 5
    Par défaut
    Citation Envoyé par benwit Voir le message
    Je ne pense pas trop me tromper en disant que la gestion de l'historique de GWT ne résoudra pas ton problème........
    Le seul truc qui te faudrait, c'est que ton application gwt "aille" effacer l'historique du navigateur dès qu'elle se connecte mais je ne pense pas qu'elle est y accès.
    Pour preuve, la doc (http://google-web-toolkit.googlecode...1.4/index.html) te montre qu'elle peut ajouter des items, avancer et reculer mais rien pour enlever des items de l'historique.

    C'est précisement ce que je cherche à faire et qui est a priori possible avec GWT :

    http://code.google.com/webtoolkit/overview.html

    Voir :
    Browser history management
    No, AJAX applications don't need to break the browser's back button. GWT lets you make your site more usable by easily adding state to the browser's back button history.
    Mon souci étant que je ne pige pas trop (voir pas du tout) comment fonctionnent les classes History et Hyperlink dont il est fait mention pour gérer les boutons de navigation et l'historique du navigateur...

  4. #4
    Rédacteur
    Avatar de benwit
    Profil pro
    dev
    Inscrit en
    Septembre 2004
    Messages
    1 676
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 676
    Par défaut
    C'est précisement ce que je cherche à faire et qui est a priori possible avec GWT

    1° cas) Comportement d'une application web classique :
    SiteVisite1Page1 -> SiteVisité1Page2 -> AppliWebClassique1Page1 -> AppliWebClassique1Page2 -> AppliWebClassique1Page3

    2° cas) Comportement d'une application web GWT sans gestion de l'historique :
    SiteVisite1Page1 -> SiteVisité1Page2 -> AppliWebGWT (le contenu, les "vues" changent à l'intérieur mais le navigateur ne l'historise pas !

    3° cas) Comportement d'une application web GWT avec gestion de l'historique :
    SiteVisite1Page1 -> SiteVisité1Page2 -> AppliWebGWT#vue1 -> AppliWebGWT#vue2 -> AppliWebGWT#vue3


    Donc pour résumer :

    A)
    Si tu es dans la 3° vue de ton appli GWT et que tu es dans le 2° cas, le bouton back te ramène à "SiteVisité1Page2".

    Si tu es dans la 3° vue de ton appli GWT et que tu es dans le 3° cas (avec gestion de l'historique, le bouton back te ramène à "AppliWebGWT#vue2".

    Avec l'historique GWT, tu peux donc gérer l'historique de tes vues (à l'intérieur de l'application).

    B)
    En revanche, si tu es sur la 1° vue de ton application GWT, dans les deux cas (2° (sans gestion histo) et 3°(avec gestion histo)), le bouton back te ramène à "SiteVisité1Page2".

    Avec l'historique GWT, tu ne peux donc pas gérer l'historique "en dehors" de ton appli.


    Donc
    A) --> c'est possible.
    B) --> c'est pas possible.

    Si c'est A que tu veux faire, il faut :
    • que ton module contiennent l'iframe pour la gestion de l'historique,
    • qu'une de tes classes (celle qui veut gérer l'historique) implémente HistoryListener pour être informé des actions "back/forward" du navigateur.
    • Ensuite, soit tu fais des actions qui modifient l'historique (cas des hyperliens internes dans l'exemple de la classe History de la doc GWT) ou soit tu le dis explicitement au niveau du code avec newItem(java.lang.String historyToken) (exemple du showcase gwt)
    • Dans la méthode onHistoryChanged(), tu sais donc où tu te trouves mais c'est à toi te gérer le comportement ...


    Rien de bien compliquer en "théorie" mais dans la mise en œuvre, c'est plus ou moins évident suivant ce que tu veux faire (c'est pour cela que sans être un inconvénient, je parle de faiblesse GWT (cf mon post sur les faiblesses GWT))

  5. #5
    Membre du Club
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2008
    Messages : 5
    Par défaut Merci !
    @benwit : merci tout plein !

    Au final, entre ton explication et une petite recherche complémentaire, j'ai quelque chose qui fonctionne comme je veux.

    Si ça peut intéresser quelqu'un, voilà deux liens vers des pages en "nanglé" qui ont été plus parlantes pour moi que la doc Gwt :

    http://developerlife.com/tutorials/?p=232

    http://examples.roughian.com/#Tutorials~History_Support

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 7
    Dernier message: 07/04/2011, 09h35
  2. Réponses: 2
    Dernier message: 12/01/2010, 13h53
  3. Réponses: 3
    Dernier message: 29/12/2008, 16h31
  4. Réponses: 3
    Dernier message: 23/07/2006, 17h15
  5. [JSP][Barre de navigation] Gestion du bouton precedent
    Par lando dans le forum Servlets/JSP
    Réponses: 11
    Dernier message: 09/09/2003, 16h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo