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> {}