Subversion Repositories eFlore/Applications.del

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
836 aurelien 1
package org.tela_botanica.del.client.services.rest.async;
2
 
3
import com.google.gwt.http.client.Request;
4
import com.google.gwt.http.client.RequestCallback;
5
import com.google.gwt.http.client.Response;
6
import com.google.gwt.user.client.Window;
7
 
880 aurelien 8
public abstract class VoteDeterminationCallback implements RequestCallback {
836 aurelien 9
	//TODO: voir si l'on fusionne les deux classes de vote callback qui sont tout à fait semblables
10
	// pour ne pas dire identiques
11
	public enum ModeRequete {
899 aurelien 12
		LECTURE, AJOUT, MODIFICATION
836 aurelien 13
	}
14
 
15
	protected ModeRequete mode;
16
 
880 aurelien 17
	public VoteDeterminationCallback(ModeRequete mode) {
836 aurelien 18
		this.mode = mode;
19
	}
20
 
880 aurelien 21
	public VoteDeterminationCallback() {
836 aurelien 22
		// TODO Auto-generated constructor stub
23
	}
24
 
25
	public void setMode(ModeRequete mode) {
26
		this.mode = mode;
27
	}
28
 
29
	@Override
30
	public void onResponseReceived(Request request, Response response){
31
		int statusCode = response.getStatusCode();
32
		int codeAttendu = 500;
33
		switch (mode) {
34
			case AJOUT:
35
				codeAttendu = 201;
36
				break;
37
			case MODIFICATION:
38
				codeAttendu = 200;
39
				break;
899 aurelien 40
			case LECTURE:
41
				codeAttendu = 200;
42
				break;
836 aurelien 43
			default:
44
				codeAttendu = 500;
45
				break;
46
		}
47
 
48
		if (statusCode == codeAttendu) {
49
			surRetour(response.getText());
50
		} else {
51
			surErreur("Erreur " + statusCode + ": " + response.getText());
52
		}
53
	}
54
 
55
	@Override
56
	public void onError(Request request, Throwable exception) {
57
		Window.alert(exception.getMessage());
58
	}
59
 
60
	public abstract void surRetour(String messageRetour);
61
	public abstract void surErreur(String messageErreur);
62
}