/trunk/src/org/tela_botanica/client/modeles/StructureAsyncDao.java |
---|
8,17 → 8,10 |
import org.tela_botanica.client.util.UtilDAO; |
import com.extjs.gxt.ui.client.Registry; |
import com.extjs.gxt.ui.client.widget.Info; |
import com.google.gwt.core.client.GWT; |
import com.google.gwt.http.client.Request; |
import com.google.gwt.http.client.RequestBuilder; |
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.http.client.URL; |
import com.google.gwt.json.client.JSONArray; |
import com.google.gwt.json.client.JSONObject; |
import com.google.gwt.json.client.JSONParser; |
import com.google.gwt.json.client.JSONValue; |
public class StructureAsyncDao { |
92,140 → 85,41 |
} |
public void modifier(String structureId, Structure str, StructureConservation conservation, StructureValorisation valorisation) { |
final String url = ((Configuration) Registry.get(RegistreId.CONFIG)).getServiceBaseUrl() + |
SERVICE_NOM + "/" + structureId; |
RequestBuilder rb = new RequestBuilder(RequestBuilder.POST, url); |
String postDonneesEncodees = construirePost(structureId, str, conservation, valorisation); |
try { |
rb.sendRequest(postDonneesEncodees, new RequestCallback() { |
public void onError(Request request, Throwable exception) { |
// Gestion des exceptions déclenchées par l'exécution de la requête |
GWT.log("Erreur à l'exécution du service "+SERVICE_NOM+" (modif)", exception); |
Info.display("Erreur de Requête", "Une erreur s'est produite lors de l'exécution de la requête."); |
} |
public void onErrorHTTP(Request request, Response reponse) { |
// Gestion des erreurs HTTP renvoyé par Apache ou JRest |
Information info = new Information("erreur_jrest", JSONParser.parse(reponse.getText()).isArray()); |
GWT.log("Erreur JREST - Code "+reponse.getStatusCode()+"\n"+info.getMessages().toString(), null); |
Info.display("Erreur JREST - Code "+reponse.getStatusCode(), info.toString()); |
} |
public void onResponseReceived(Request request, Response response) { |
// Si le code de réponse HTTP ne vaut pas 200 OK, on lance le mécanise d'erreur HTTP |
if (response.getStatusCode() != 200) { |
onErrorHTTP(request, response); |
} else { |
Information info = new Information("modif_structure"); |
if (response.getHeader("X-DebugJrest-Data") != null && response.getHeader("X-DebugJrest-Data").length() != 0) { |
final JSONValue reponseEnteteDeboguage = JSONParser.parse(response.getHeader("X-DebugJrest-Data")); |
if (reponseEnteteDeboguage.isArray() != null) { |
info.setDeboguages(reponseEnteteDeboguage.isArray()); |
GWT.log("DEBOGUAGE:\n"+info.getDeboguages().toString(), null); |
} |
} |
if (response.getText() != null && response.getText().length() != 0) { |
final JSONValue responseValue = JSONParser.parse(response.getText()); |
String[] parametres = {structureId}; |
final JsonRestRequestBuilder rb = UtilDAO.construireRequetePost(SERVICE_NOM, parametres); |
rb.envoyerRequete(postDonneesEncodees, new JsonRestRequestCallback() { |
@Override |
public void surReponse(JSONValue responseValue) { |
// Si la requête est un succès, reception d'une chaine |
if (responseValue.isString() != null) { |
Information info = new Information("modif_structure"); |
info.setMessage(responseValue.isString().stringValue()); |
vueARafraichir.rafraichir(info); |
} else { |
info.setDeboguage("La réponse n'est pas une chaine JSON."); |
GWT.log(rb.getUrl()+"\n\tLa réponse n'est pas une chaine JSON.", null); |
} |
} else { |
if (response.getText() == null) { |
info.setDeboguage("La réponse vaul null"); |
} else if (response.getText().length() == 0) { |
info.setDeboguage("La réponse a une taille de 0"); |
} |
} |
vueARafraichir.rafraichir(info); |
} |
} |
}) ; |
} catch (RequestException e) { |
// Gestion des exceptions déclenchées par la création de la requête (url non-valide ?) |
GWT.log("Erreur à la création du service "+SERVICE_NOM+" (modif)", e); |
Info.display("Erreur de Requête", "Une erreur s'est produite lors de la création de la requête."); |
} |
} |
public void supprimer(String structureId) { |
// Ajout des paramètres et données à supprimer dans l'URL |
final String url = ((Configuration) Registry.get(RegistreId.CONFIG)).getServiceBaseUrl() + |
SERVICE_NOM + "/" + |
utilisateurId + "/" + |
structureId + |
""; |
// DELETE n'étant pas disponible comme méthode HTTP, nous utilisons POST avec le paramètre action=DELETE |
RequestBuilder rb = new RequestBuilder(RequestBuilder.POST, url); |
String postDonnees = "action=DELETE"; |
try { |
rb.sendRequest(postDonnees, new RequestCallback() { |
public void onError(Request request, Throwable exception) { |
// Gestion des exceptions déclenchées par l'exécution de la requête |
GWT.log("Erreur à l'exécution du service "+SERVICE_NOM+" (suppression)", exception); |
Info.display("Erreur de Requête", "Une erreur s'est produite lors de l'exécution de la requête."); |
} |
public void onErrorHTTP(Request request, Response reponse) { |
// Gestion des erreurs HTTP renvoyé par Apache ou JRest |
Information info = new Information("erreur_jrest", JSONParser.parse(reponse.getText()).isArray()); |
GWT.log("Erreur JREST - Code "+reponse.getStatusCode()+"\n"+info.getMessages().toString(), null); |
Info.display("Erreur JREST - Code "+reponse.getStatusCode(), info.toString()); |
} |
public void onResponseReceived(Request request, Response response) { |
// Si le code de réponse HTTP ne vaut pas 200 OK, on lance le mécanise d'erreur HTTP |
if (response.getStatusCode() != 200) { |
onErrorHTTP(request, response); |
} else { |
public void supprimer(String structuresId) { |
String[] parametres = {utilisateurId, structuresId}; |
final JsonRestRequestBuilder rb = UtilDAO.construireRequetePost(SERVICE_NOM, parametres); |
rb.envoyerRequeteSuppression(new JsonRestRequestCallback() { |
@Override |
public void surReponse(JSONValue responseValue) { |
if (responseValue.isString() != null) { |
Information info = new Information("suppression_structure"); |
if (response.getHeader("X-DebugJrest-Data") != null && response.getHeader("X-DebugJrest-Data").length() != 0) { |
final JSONValue reponseEnteteDeboguage = JSONParser.parse(response.getHeader("X-DebugJrest-Data")); |
if (reponseEnteteDeboguage.isArray() != null) { |
info.setDeboguages(reponseEnteteDeboguage.isArray()); |
GWT.log("DEBOGUAGE:\n"+info.getDeboguages().toString(), null); |
} |
} |
if (response.getText().length() != 0 && response.getText() != null) { |
final JSONValue responseValue = JSONParser.parse(response.getText()); |
// Si la requête est un succès, reception d'une chaine |
if (responseValue.isString() != null) { |
info.setMessage(responseValue.isString().stringValue()); |
vueARafraichir.rafraichir(info); |
} else { |
GWT.log(url+"\n\tLa réponse n'est pas une chaine JSON.", null); |
GWT.log(rb.getUrl()+"\n\tLa réponse n'est pas une chaine JSON.", null); |
} |
} else { |
GWT.log(url, null); |
if (response.getText().length() == 0) { |
GWT.log("\tLa réponse a une taille de 0", null); |
} |
if (response.getText() == null) { |
GWT.log("\tLa réponse vaul null", null); |
} |
} |
} |
} |
}) ; |
} catch (RequestException e) { |
// Gestion des exceptions déclenchées par la création de la requête (url non-valide ?) |
GWT.log("Erreur à la création du service "+SERVICE_NOM+" (suppression)", e); |
Info.display("Erreur de Requête", "Une erreur s'est produite lors de la création de la requête."); |
} |
} |
private String construirePost(String structureId, Structure str, StructureConservation conservation, StructureValorisation valorisation) { |
String postDonnees = "cmhl_ce_modifier_par=" + URL.encodeComponent(utilisateurId); |
/trunk/src/org/tela_botanica/client/modeles/PersonneAsyncDao.java |
---|
71,7 → 71,8 |
@Override |
public void surReponse(JSONValue responseValue) { |
if (responseValue.isString() != null) { |
Information info = new Information("ajout_personne", responseValue.isString().stringValue()); |
Information info = new Information("ajout_personne"); |
info.setMessage(responseValue.isString().stringValue()); |
vueARafraichir.rafraichir(info); |
} else { |
GWT.log(rb.getUrl()+"\n\tLa réponse n'est pas une chaine JSON.", null); |
91,7 → 92,8 |
public void surReponse(JSONValue responseValue) { |
// Si la requête est un succès, reception d'une chaine |
if (responseValue.isString() != null) { |
Information info = new Information("modification_personne", responseValue.isString().stringValue()); |
Information info = new Information("modification_personne"); |
info.setMessage(responseValue.isString().stringValue()); |
vueARafraichir.rafraichir(info); |
} else { |
GWT.log(rb.getUrl()+"\n\tLa réponse n'est pas une chaine JSON.", null); |
100,14 → 102,15 |
}); |
} |
public void supprimer(String structureId) { |
String[] parametres = {utilisateurId, structureId}; |
public void supprimer(String personnesId) { |
String[] parametres = {utilisateurId, personnesId}; |
final JsonRestRequestBuilder rb = UtilDAO.construireRequetePost(SERVICE_NOM, parametres); |
rb.envoyerRequeteSuppression(new JsonRestRequestCallback() { |
@Override |
public void surReponse(JSONValue responseValue) { |
if (responseValue.isString() != null) { |
Information info = new Information("suppression_personne", responseValue.isString().stringValue()); |
Information info = new Information("suppression_personne"); |
info.setMessage(responseValue.isString().stringValue()); |
vueARafraichir.rafraichir(info); |
} else { |
GWT.log(rb.getUrl()+"\n\tLa réponse n'est pas une chaine JSON.", null); |
/trunk/src/org/tela_botanica/client/modeles/UtilisateurAsyncDao.java |
---|
1,6 → 1,8 |
package org.tela_botanica.client.modeles; |
import org.tela_botanica.client.RegistreId; |
import org.tela_botanica.client.http.JsonRestRequestBuilder; |
import org.tela_botanica.client.http.JsonRestRequestCallback; |
import org.tela_botanica.client.interfaces.Rafraichissable; |
import org.tela_botanica.client.util.UtilDAO; |
26,7 → 28,6 |
private static final String SERVICE_NOM = "CoelUtilisateur"; |
private Utilisateur utilisateur = null; |
private String urlServiceBase = null; |
private Rafraichissable vueARafraichir = null; |
/** |
33,9 → 34,8 |
* Constructeur |
* @param retour : méthode appellée en retour d'appel. |
*/ |
public UtilisateurAsyncDao(Rafraichissable r) { |
vueARafraichir = r; |
urlServiceBase = ((Configuration) Registry.get(RegistreId.CONFIG)).getServiceBaseUrl(); |
public UtilisateurAsyncDao(Rafraichissable vueARafraichirCourrante) { |
vueARafraichir = vueARafraichirCourrante; |
utilisateur = (Utilisateur) Registry.get(RegistreId.UTILISATEUR_COURANT); |
} |
43,23 → 43,16 |
* Méthode de classe d'appel du service des gestion d'identification. |
*/ |
public void getEtatUtilisateur() { |
// Recherche identifiant utilisateur identifie |
RequestBuilder rb = new RequestBuilder(RequestBuilder.GET, urlServiceBase+SERVICE_NOM+"/") ; |
try { |
rb.sendRequest(null, new RequestCallback() { |
public void onError(Request request, Throwable exception) { |
// TODO : ajouter un message d'erreur en cas d'erreur de requête HTTP |
} |
public void onResponseReceived(Request request, Response response) { |
JSONValue jsonValue = JSONParser.parse(response.getText()); |
JSONArray jsonArray; |
if ((jsonArray = jsonValue.isArray()) != null) { |
final JsonRestRequestBuilder rb = UtilDAO.construireRequete(SERVICE_NOM); |
rb.envoyerRequete(null, new JsonRestRequestCallback() { |
@Override |
public void surReponse(JSONValue responseValue) { |
if (responseValue.isArray() != null) { |
final JSONArray reponse = responseValue.isArray(); |
// Identifiant utilisateur ou identifiant de session si non identifié |
String login = ((JSONString) jsonArray.get(0)).stringValue(); |
String login = ((JSONString) reponse.get(0)).stringValue(); |
// Drapeau leve si utilisateur deja identifié |
boolean identifie = ((JSONBoolean) jsonArray.get(1)).booleanValue(); |
boolean identifie = ((JSONBoolean) reponse.get(1)).booleanValue(); |
utilisateur.setIdentification(identifie); |
utilisateur.setLogin(login); |
vueARafraichir.rafraichir(utilisateur); |
66,10 → 59,7 |
} |
} |
}) ; |
} catch (RequestException e) { |
e.printStackTrace(); |
} |
} |
/** |
* Méthode déconnectant un utilisateur de l'application. |
76,22 → 66,18 |
* @param identifiant de l'utilisateur à déconnecter. |
*/ |
public void deconnecterUtilisateur() { |
RequestBuilder rb = new RequestBuilder(RequestBuilder.GET, urlServiceBase+SERVICE_NOM+"/"+utilisateur.getId()) ; |
try { |
rb.sendRequest(null, new RequestCallback() { |
String[] parametres = {utilisateur.getId()}; |
public void onError(Request request, Throwable exception) { |
// TODO : ajouter un message d'erreur en cas d'erreur de requête HTTP |
} |
public void onResponseReceived(Request request, Response response) { |
JSONValue jsonValue = JSONParser.parse(response.getText()); |
JSONArray jsonArray; |
if ((jsonArray = jsonValue.isArray()) != null) { |
final JsonRestRequestBuilder rb = UtilDAO.construireRequete(SERVICE_NOM, parametres); |
rb.envoyerRequete(null, new JsonRestRequestCallback() { |
@Override |
public void surReponse(JSONValue responseValue) { |
if (responseValue.isArray() != null) { |
final JSONArray reponse = responseValue.isArray(); |
// Identifiant utilisateur ou identifiant de session si non identifié |
String id = ((JSONString) jsonArray.get(0)).stringValue(); |
String id = ((JSONString) reponse.get(0)).stringValue(); |
// Drapeau levé si l'utilisateur est déjà identifié |
boolean identifie = ((JSONBoolean) jsonArray.get(1)).booleanValue(); |
boolean identifie = ((JSONBoolean) reponse.get(1)).booleanValue(); |
// Nous réinitialisons l'utilisateur |
utilisateur = new Utilisateur(id, identifie); |
101,10 → 87,7 |
} |
} |
}) ; |
} catch (RequestException e) { |
e.printStackTrace(); |
} |
} |
/** |
* Méthode connectant un utilisateur à l'application. |
111,54 → 94,35 |
* @param Utilisateur l'utilisateur courant. |
*/ |
public void connecterUtilisateur () { |
String[] parametres = new String[2]; |
parametres[0] = utilisateur.getLogin(); |
parametres[1] = utilisateur.getMotDePasse(); |
String[] parametres = {utilisateur.getLogin(), utilisateur.getMotDePasse()}; |
RequestBuilder rb = UtilDAO.construireRequete(SERVICE_NOM, parametres); |
try { |
rb.sendRequest(null, new RequestCallback() { |
public void onError(Request request, Throwable exception) { |
GWT.log("Erreur à l'exécution du service " + SERVICE_NOM + " (selection)", exception); |
Info.display("Erreur de Requête", "Une erreur s'est produite lors de l'exécution de la requête."); |
} |
public void onErrorHTTP(Request request, Response reponse) { |
// Gestion des erreurs HTTP renvoyé par Apache ou JRest |
Information info = new Information("erreur_jrest", JSONParser.parse(reponse.getText()).isArray()); |
GWT.log("Erreur JREST - Code "+reponse.getStatusCode()+"\n"+info.getMessages().toString(), null); |
Info.display("Erreur JREST - Code "+reponse.getStatusCode(), info.toString()); |
} |
public void onResponseReceived(Request request, Response response) { |
if (response.getStatusCode() != 200) { |
onErrorHTTP(request, response); |
} else { |
JSONValue jsonValue = JSONParser.parse(response.getText()); |
JSONArray jsonArray; |
if ((jsonArray = jsonValue.isArray()) != null) { |
if (jsonArray.size() > 0) { |
final JsonRestRequestBuilder rb = UtilDAO.construireRequete(SERVICE_NOM, parametres); |
rb.envoyerRequete(null, new JsonRestRequestCallback() { |
@Override |
public void surReponse(JSONValue responseValue) { |
if (responseValue.isArray() != null) { |
final JSONArray reponse = responseValue.isArray(); |
if (reponse.size() > 0) { |
// Identifiant de l'utilisateur ou identifiant de session si non identifié |
utilisateur.setId(((JSONString) jsonArray.get(0)).stringValue()); |
utilisateur.setId(((JSONString) reponse.get(0)).stringValue()); |
// Drapeau levé si l'utilisateur est déjà identifié |
GWT.log(jsonArray.toString(), null); |
utilisateur.setIdentification(((JSONBoolean) jsonArray.get(1)).booleanValue()); |
GWT.log(reponse.toString(), null); |
utilisateur.setIdentification(((JSONBoolean) reponse.get(1)).booleanValue()); |
// Plus de deux valeurs, l'utilisateur est identifié nous récupérons des données supplémentaires |
if (jsonArray.size() > 2) { |
if (reponse.size() > 2) { |
// Nom complet de l'utilisateur |
if (jsonArray.get(2).isString() != null) { |
utilisateur.setNomComplet(((JSONString) jsonArray.get(2)).stringValue()); |
if (reponse.get(2).isString() != null) { |
utilisateur.setNomComplet(((JSONString) reponse.get(2)).stringValue()); |
} |
// Prénom de l'utilisateur |
if (jsonArray.get(3).isString() != null) { |
utilisateur.setPrenom(((JSONString) jsonArray.get(3)).stringValue()); |
if (reponse.get(3).isString() != null) { |
utilisateur.setPrenom(((JSONString) reponse.get(3)).stringValue()); |
} |
// Nom de l'utilisateur |
if (jsonArray.get(4).isString() != null) { |
utilisateur.setNom(((JSONString) jsonArray.get(4)).stringValue()); |
if (reponse.get(4).isString() != null) { |
utilisateur.setNom(((JSONString) reponse.get(4)).stringValue()); |
} |
GWT.log(utilisateur.toString(), null); |
} |
166,10 → 130,6 |
} |
} |
} |
} |
}) ; |
} catch (RequestException e) { |
e.printStackTrace(); |
} |
} |
} |
/trunk/src/org/tela_botanica/client/Mediateur.java |
---|
599,7 → 599,7 |
for (int i=0; i < personneSelection.size(); i++) { |
Personne courante = personneSelection.get(i); |
if (courante.getId().equals(getUtilisateurId())) { |
Info.display("Information", "Vous ne pouvez supprimer votre compte"); |
Info.display("Information", "Vous ne pouvez pas supprimer votre compte"); |
personneSelection.remove(courante); |
} |
} |
618,14 → 618,14 |
Button btn = ce.getButtonClicked(); |
if (btn.getText().equals(dialog.yesText)) { |
String idStr = "" ; |
String idPersonneSepareParVirgule = "" ; |
Iterator<Personne> itPersonne = personneSelection.iterator(); |
while (itPersonne.hasNext()) { |
Personne personneCourante = itPersonne.next(); |
idStr += personneCourante.getId(); |
idStr +=","; |
idPersonneSepareParVirgule += personneCourante.getId(); |
idPersonneSepareParVirgule +=","; |
} |
modele.supprimerPersonne(vue, idStr); |
modele.supprimerPersonne(vue, idPersonneSepareParVirgule); |
} |
} |
}; |
/trunk/src/org/tela_botanica/client/Modele.java |
---|
167,9 → 167,9 |
pDao.selectionner(personneId, projetId, nomComplet, start, nbElements); |
} |
public void supprimerPersonne(Rafraichissable vueARafraichir, String idStr) { |
public void supprimerPersonne(Rafraichissable vueARafraichir, String idPersonneSepareParVirgule) { |
PersonneAsyncDao personneDao = new PersonneAsyncDao(vueARafraichir); |
personneDao.supprimer(idStr); |
personneDao.supprimer(idPersonneSepareParVirgule); |
} |