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 :

Sessions et enchainement d'écran GWT


Sujet :

GWT et Vaadin Java

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    258
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 258
    Points : 171
    Points
    171
    Par défaut Sessions et enchainement d'écran GWT
    Bonjour,
    L'avantage de GWT est que la partie IHM peut être générée en JS et tourne dans le navigateur, les appels au serveurs d'application s'effectuent par RCP d'après ce que j'ai compris.
    Donc il n'y a plus de session au niveau du serveur par contre peut on en utiliser une côté client et comment doit on faire ?
    De plus comment je fais pour à partir d'un écran en appeler un autre ?

    Question subsidiaire:
    J'ai développé une application SWT et il y a JFace qui permet d'afficher mes objets métiers dans les composants graphiques SWT y a t-il l'équivalent en GWT.

    Merci de vos réponses.

  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
    Points : 4 265
    Points
    4 265
    Par défaut
    Bonjour,

    Tu peux créer ta propre session coté client, une classe où tu mets ce dont tu as besoin. Si tu ne connais pas tous tes paramètres, tu peux référencer une hashmap. En revanche, il faut que tu prennes soins de ne stocker que des données qui pourront être compilées en javascript (c'est à dire les types simples et les objets de données de tes packages "clients")

    Une architecture relativement simple pour répondre à tes besoins peut consister à :
    - créer ta GUI (classe GUI) qui implémente l'interface EntryPoint (le point d'entrée de ton module).
    - cette GUI peut référencer une instance d'objet session créé initialement (classe Session)
    - cette GUI peut référencer également une multitude de vues (tu crées une superclasse View dont dériverons tes vues HomeView, AccountView, ... etc ..., chacune de ces vues ayant également une référence sur la GUI, ce qui te permettra d'appeler une autre vue ou d'accéder à ta session depuis n'importe quelle autre vue)

    Rapidement et en live, un truc dans le genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    public class GUI implement EntryPoint
    {
        onModuleLoad()
        {
            session = new Session(...);
            views.put("home", new HomeView(this));
            views.put("account", new AccountView(this));
         ...
            display("home");
        }
     
        public void display(String viewName)
        {
             View view = views.get(viewName);
             RootPanel.get().clear();
             RootPanel.get().add(view.getContent());
        }
     
        public Session getSession() {return session};
     
        Session session;
     
        Map<String, View> views = new HashMap<String, View>();
    }
     
    public class Session
    {
         public String getUserName() { ...};
     
         Map<String, String> parameters = new HashMap<String, String>();
    }
     
    public abstract class View
    {
          public View() {...}
          public View(GUI gui) {this.gui=gui;}
          public abstract Widget getContent();
          protected GUI gui; 
    }
     
    public class HomeView extends View
    {
          public HomeView() {...}
          public HomeView(GUI gui) {super(gui);}
          ...
     
          public Widget getContent()
          {
               if (content == null)
                   content = build();
                return content;
          }
     
          public Widget build()
          {
               Label l = new Label(super.gui.getSession().getUserName());
     
               Button b = new Button("Test change de vue");
               b.addClickLestener(new ClickListener()
                                         {
                                             public void onClick(...)
                                             {
                                                   gui.display("account");
                                             }
                                         });
     
     
               Panel p = new Panel();
               p.add(l);
               p.add(b);
     
     
     
               return p;
          }
     
          Widget content;
    }

    Pour la dernière question, il faut soit écrire des composants GWT qui font des choses équivalentes, soit en utiliser qui existent déjà (cf MyGWT) ou (GWT EXT Js qui wrap les composants EXT JS), l'utilisation de librairies amenant ces avantages mais aussi son lot d'inconvénient.

    Tout le monde savait que c'était impossible. Il est venu un imbécile qui ne le savait pas et qui l'a fait. Marcel PAGNOL
    On ne savait pas que c'était impossible, alors on l'a fait. John Fitzgerald KENNEDY.
    L'inexpérience est ce qui permet à la jeunesse d'accomplir ce que la vieillesse sait impossible. Paul (Tristant) BERNARD
    La meilleure façon de prédire l'avenir, c'est de l'inventer.

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    258
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 258
    Points : 171
    Points
    171
    Par défaut
    Merci beaucoup

  4. #4
    Membre à l'essai
    Homme Profil pro
    ingénieur informaticien
    Inscrit en
    Mars 2008
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : ingénieur informaticien

    Informations forums :
    Inscription : Mars 2008
    Messages : 11
    Points : 18
    Points
    18
    Par défaut
    Bonjour à tous.
    D'abord, excusez moi de relancer un sujet vieux de deux ans mais j'aimerai si possible avoir votre avis.
    Je suis en train d'appréhender GWT 2.0 dans l'objectif de créer une application web dont le but principale est d'afficher des informations contenues dans une base de données et dont on peut ajouter/modifier/supprimer un élément (on aura donc l'affichage d'un tableau).
    Voici ma question :
    -Comment gériez-vous l'affichage d'un menu adapté à un type d'utilisateur ?
    (gestion des droits)
    -Es possible de récupérer des informations non gérer par GWT ? En gros l'utilisation d'autres technologie type Struts 2 avec GWT est-il facile d'implémentation ?

    Bonne journée.

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Bonjour,

    "D'abord, excusez moi de relancer un sujet vieux de deux ans mais j'aimerai si possible avoir votre avis." +1

    Je me pose exactement la même question que robertjul sur la façon de gérer l'application mais surtout au niveau de la connexion avec le serveur.

    J'utilise actuellement un objet connexion statique (sur le serveur d'application Tomcat 7) que j'utilise pour effectuer mes requêtes au serveur (de données, Oracle). Ce qui a mon avis est la cause d'un "memory leak" de la part de Tomcat puisque les objets statiques ne sont pas supprimés par le carbage collector. Donc comment gérer cela ?

    Je pense que je vais utiliser la solution de benwit pour les écrans et la session mais je ne sais pas comment "faire la même chose" (réutiliser la même connexion pour les requêtes, mais unique à chaque utilisateur de l'application et qui est détruite lorsque l'application est fermée) pour la connexion à Oracle.

    Je ne sais pas si je suis très clair mais en gros j'aurai besoin de quelques éclaircissements sur le fonctionnement global de GWT avec Appli Web / Tomcat / Oracle.

    Merci pour votre aide.

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

Discussions similaires

  1. Enchainement des écrans
    Par Roght dans le forum Cas d'utilisation
    Réponses: 2
    Dernier message: 14/05/2012, 10h40
  2. GWT et sessions PHP
    Par Migosh59 dans le forum GWT et Vaadin
    Réponses: 5
    Dernier message: 10/03/2008, 12h36
  3. Blocage windows Xp sur écran choix sessions
    Par Nicomart dans le forum Windows XP
    Réponses: 5
    Dernier message: 08/11/2006, 11h21
  4. Sauvegarde des enchainements IHM en session
    Par Rocket dans le forum Spring Web
    Réponses: 1
    Dernier message: 01/09/2006, 09h59
  5. [IHM] Enchainement des écrans
    Par CanardJM dans le forum Composants VCL
    Réponses: 6
    Dernier message: 22/06/2004, 16h01

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