Subversion Repositories eFlore/Applications.cel

Compare Revisions

Ignore whitespace Rev 2667 → Rev 2668

/trunk/src/org/tela_botanica/client/util/Util.java
13,10 → 13,15
 
import org.tela_botanica.client.i18n.Msg;
import org.tela_botanica.client.modeles.objets.ChampEtendu;
import org.tela_botanica.client.modeles.objets.Configuration;
import org.tela_botanica.client.modeles.objets.Observation;
import org.tela_botanica.client.modeles.objets.ReferentielLocalite;
import org.tela_botanica.client.modeles.objets.ReferentielNom;
 
import com.google.gwt.core.client.Callback;
import com.google.gwt.http.client.Request;
import com.google.gwt.http.client.RequestCallback;
import com.google.gwt.http.client.RequestException;
import com.google.gwt.http.client.Response;
import com.google.gwt.json.client.JSONArray;
import com.google.gwt.json.client.JSONObject;
538,7 → 543,31
return retourImport;
}
public static void envoyerRequeteStatsUpload(final Callback<String, String> cb) {
RequestBuilderWithCredentials rb = new RequestBuilderWithCredentials(RequestBuilderWithCredentials.GET,Configuration.getServiceBaseUrl()
+"/ImportXLS") ;
try {
rb.sendRequest(null, new RequestCallback() {
 
@Override
public void onError(Request request, Throwable exception) {
// TODO Auto-generated method stub
}
 
@Override
public void onResponseReceived(Request request,
Response response) {
cb.onSuccess(response.getText());
}
}) ;
 
} catch (RequestException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
 
public static native void LogVersFirebug(Object o) /*-{
if (!!($wnd.console && $wnd.console.log)) {
console.log(o);
/trunk/src/org/tela_botanica/client/vues/observation/FormulaireImportObservationVue.java
9,12 → 9,12
import org.tela_botanica.client.observation.ObservationMediateur;
import org.tela_botanica.client.util.Util;
 
import com.google.gwt.core.client.Callback;
import com.google.gwt.user.client.ui.FileUpload;
import com.google.gwt.user.client.ui.FormPanel;
import com.google.gwt.user.client.ui.FormPanel.SubmitCompleteEvent;
import com.google.gwt.user.client.ui.FormPanel.SubmitCompleteHandler;
import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.HasAlignment;
import com.google.gwt.user.client.ui.HasHorizontalAlignment;
import com.google.gwt.user.client.ui.Hidden;
import com.google.gwt.user.client.ui.VerticalPanel;
56,11 → 56,8
holder.add(identifiant);
HTML lienVersDocumentModele = new HTML("<a href=\"modele_import.xls\">" + Msg.get("telecharger-modele") + "</a>");
holder.add(lienVersDocumentModele);
 
holder.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_RIGHT);
holder.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_RIGHT);
boutonValidation.addListener(new ButtonListenerAdapter() {
@Override
74,29 → 71,59
nPan.add(form);
form.setAction(Configuration.getServiceBaseUrl() + "/ImportXLS");
form.addSubmitCompleteHandler(new SubmitCompleteHandler() {
form.addSubmitCompleteHandler(new SubmitCompleteHandler() {
@Override
public void onSubmitComplete(SubmitCompleteEvent event) {
nPan.close();
String message = "";
Map<String, String> retourImport = Util.parserRetourImportObs(event.getResults());
for (Iterator<String> iterator = retourImport.keySet().iterator(); iterator
.hasNext();) {
String indexRapport = iterator.next();
// on ne met pas de "-" dans les clés json, mais par contre nos clé i18n
// sont séparées par des tirets, donc on remplace
String cleI18n = indexRapport.replace("_", "-");
Util.LogVersFirebug(cleI18n);
String[] StrParams = {retourImport.get(indexRapport).replace("\"", "")};
message += Msg.get(cleI18n, StrParams)+"\n";
// Certains client ne savent pas lire le retour d'upload correctement
// notamment à cause des requêtes CORS, donc en cas de problème on
// appelle manuellement les stats d'upload en lecture
if(event.getResults() != null) {
try {
Map<String, String> retourImport = Util.parserRetourImportObs(event.getResults());
surRetourImport(retourImport);
} catch (Exception e) {
demanderStatsUpload();
}
} else {
demanderStatsUpload();
}
com.google.gwt.user.client.Window.alert(message);
oMediateur.obtenirDernierePageObservation();
}
});
}
private void demanderStatsUpload() {
Util.envoyerRequeteStatsUpload(new Callback<String, String>() {
@Override
public void onSuccess(String resultats) {
Map<String, String> retourImport = Util.parserRetourImportObs(resultats);
surRetourImport(retourImport);
}
@Override
public void onFailure(String reason) {
// TODO: rien à faire, si la requête échoue c'est que le serveur
// ne répond pas et donc on a déjà eu des problèmes en amont
}
});
}
private void surRetourImport(Map<String, String> retourImport) {
String message = "";
for (Iterator<String> iterator = retourImport.keySet().iterator(); iterator
.hasNext();) {
String indexRapport = iterator.next();
// on ne met pas de "-" dans les clés json, mais par contre nos clé i18n
// sont séparées par des tirets, donc on remplace
String cleI18n = indexRapport.replace("_", "-");
Util.LogVersFirebug(cleI18n);
String[] StrParams = {retourImport.get(indexRapport).replace("\"", "")};
message += Msg.get(cleI18n, StrParams)+"\n";
}
com.google.gwt.user.client.Window.alert(message);
nPan.close();
oMediateur.obtenirDernierePageObservation();
}
public void afficher() {
nPan.show();
}