Subversion Repositories eFlore/Applications.del

Rev

Details | Last modification | View Log | RSS feed

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