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