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 - MVP classe Place générique


Sujet :

GWT et Vaadin Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2005
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 19
    Par défaut GWT - MVP classe Place générique
    Bonjour,

    j'ai un projet GWT avec de nombreuses vues (View)

    j'utilise MVP et je vais être obligé de créé un packet de Place
    exemple ci-dessous

    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
    package my.project.client;
     
    import com.google.gwt.place.shared.Place;
    import com.google.gwt.place.shared.PlaceTokenizer;
    import com.google.gwt.place.shared.Prefix;
     
    public class ClientPlace extends Place {
     
    	private static final String PREFIX = "client";
     
     
        @Prefix(PREFIX)
        public static class Tokenizer implements PlaceTokenizer<ClientPlace> {
            public ClientPlace getPlace(String token) {
                return new ClientPlace(token);
            }
     
            public String getToken(ClientPlace place) {
                return place.getToken();
            }
        }
     
     
        private String token;
     
        public ClientPlace() {
        }
     
        public ClientPlace(String token) {
            this.token = token;
        }
     
        @Override
        public boolean equals(Object obj) {
            if (this == obj) {
                return true;
            }
            if (obj == null) {
                return false;
            }
            if (getClass() != obj.getClass()) {
                return false;
            }
            ClientPlace other = (ClientPlace) obj;
            if (token == null) {
                if (other.token != null) {
                    return false;
                }
            } else if (!token.equals(other.token)) {
                return false;
            }
            return true;
        }
     
        public String getToken() {
            return token;
        }
     
        @Override
        public int hashCode() {
            return PREFIX.hashCode();
        }
     
    }

    Toutes mes Places vont être articulées de la même façon et pour éviter d'avoir à faire des copier / coller dans tous les sens j'aimerais savoir si vous aviez une place "Générique"

    j'ai essayé d'uiliser les Generic java mais je ne suis pas assez bon

    Ci dessous code pourri

    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
     
    package package my.project.mvp;
     
    import com.google.gwt.place.shared.Place;
    import com.google.gwt.place.shared.PlaceTokenizer;
    import com.google.gwt.place.shared.Prefix;
     
    public class GenericPlace<T> extends Place {
     
    	protected Class<T> clazz;
     
     
        @Prefix(Class<T>.getName())
        public static class Tokenizer implements laceTokenizer<GenericPlace<T>> {
            public GenericPlace<T> getPlace(String token) {
                return new T(token);
            }
     
            public String getToken(GenericPlace<T> place) {
                return place.getToken();
            }
        }
     
     
        private String token;
     
     
     
        public GenericPlace(String token) {
            this.token = token;
        }
     
        @Override
        public boolean equals(Object obj) {
            if (this == obj) {
                return true;
            }
            if (obj == null) {
                return false;
            }
            if (getClass() != obj.getClass()) {
                return false;
            }
            GenericPlace other = (GenericPlace) obj;
            if (token == null) {
                if (other.token != null) {
                    return false;
                }
            } else if (!token.equals(other.token)) {
                return false;
            }
            return true;
        }
     
        public String getToken() {
            return token;
        }
     
        @Override
        public int hashCode() {
            return PREFIX.hashCode();
        }
     
     
    }
    Si vous avez des idées ou des suggestions je vous en serais reconnaissant,

    l'idée c'est de faire une place par vue avec le minimum de code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public class ClientPlace extends Place<Client> {}

  2. #2
    Rédacteur
    Avatar de longbeach
    Profil pro
    Architecte de système d’information
    Inscrit en
    Avril 2003
    Messages
    943
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d’information

    Informations forums :
    Inscription : Avril 2003
    Messages : 943
    Par défaut
    Je pense pas que tu devrais t'embarquer dans une classe Place générique.
    Cela ajoute de la complexité, sachant que l'API Activities and Places est déjà bien complexe comme ça.

    Par contre tu peux très bien créer une classe abstract PlaceAbstract qui fournit qques implémentations de méthodes communes (lesquelles dans ton cas ???) aux Places et tu fais hériter tes Places de cette classe.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2005
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 19
    Par défaut
    Merci pour ta réponse
    C'est vrai que c'est complexe (trop ?) mais pour chaque écran avoir 10 classes à écrire c'est long

Discussions similaires

  1. Classe Liste générique avec template
    Par TNT89 dans le forum Langage
    Réponses: 9
    Dernier message: 09/05/2009, 15h14
  2. C# => VB.net classe, interface générique
    Par Gr@nd@x dans le forum VB.NET
    Réponses: 2
    Dernier message: 27/10/2008, 13h27
  3. Classe SQL Générique : Garder Connexion à une DB ?
    Par ExSter dans le forum Accès aux données
    Réponses: 7
    Dernier message: 16/04/2008, 17h20
  4. classe date générique ?
    Par lili_bzh dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 07/09/2004, 10h59

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