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
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
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
public class ClientPlace extends Place<Client> {}
Partager