Subversion Repositories eFlore/Applications.del

Compare Revisions

Ignore whitespace Rev 886 → Rev 887

/trunk/src/org/tela_botanica/del/client/services/rest/async/PropositionDeterminationCallBack.java
New file
0,0 → 1,68
package org.tela_botanica.del.client.services.rest.async;
 
import org.tela_botanica.del.client.utils.UtilitairesServiceResultat;
 
import com.google.gwt.http.client.Request;
import com.google.gwt.http.client.RequestCallback;
import com.google.gwt.http.client.Response;
import com.google.gwt.json.client.JSONParser;
import com.google.gwt.user.client.Window;
 
public abstract class PropositionDeterminationCallBack implements RequestCallback {
 
//TODO: voir si l'on fusionne les classes de vote callback qui sont tout à fait semblables
// pour ne pas dire identiques
public enum ModeRequete {
AJOUT, MODIFICATION, SUPPRESSION
}
protected ModeRequete mode;
public PropositionDeterminationCallBack(ModeRequete mode) {
this.mode = mode;
}
 
public PropositionDeterminationCallBack() {
// TODO Auto-generated constructor stub
}
public void setMode(ModeRequete mode) {
this.mode = mode;
}
 
@Override
public void onResponseReceived(Request request, Response response){
int statusCode = response.getStatusCode();
int codeAttendu = 500;
switch (mode) {
case AJOUT:
codeAttendu = 201;
break;
case MODIFICATION:
codeAttendu = 200;
break;
case SUPPRESSION:
codeAttendu = 200;
break;
default:
codeAttendu = 500;
break;
}
if (statusCode == codeAttendu) {
String id = UtilitairesServiceResultat.parserRetourAjoutCommentaire(JSONParser.parseStrict(response.getText()).isObject());
surRetour(id);
} else {
surErreur("Erreur " + statusCode + ": " + response.getText());
}
}
 
@Override
public void onError(Request request, Throwable exception) {
Window.alert(exception.getMessage());
}
public abstract void surRetour(String messageRetour);
public abstract void surErreur(String messageErreur);
 
}