Subversion Repositories eFlore/Applications.cel

Compare Revisions

Ignore whitespace Rev 2391 → Rev 2392

/trunk/src/org/tela_botanica/client/modeles/objets/Configuration.java
66,6 → 66,14
private static List<InfosReferentielNom> referentielsDispos;
private static String activerSaisieChampsEtendus = "0";
private static String wikiDescriptionChampsEtendusPageUrl = "";
private static String wikiDescriptionChampsEtendusRestUrl = "";
private static String wikiDescriptionChampsEtendusRestUrlOptions = "";
private static String wikiDescriptionChampsEtendusUrlOptionsPageTpl = "";
 
/**
* Constructeur sans argument
129,6 → 137,18
activerSaisieChampsEtendus = Dictionary.getDictionary("configuration").get(
"activerSaisieChampsEtendus");
wikiDescriptionChampsEtendusPageUrl = Dictionary.getDictionary("configuration").get(
"wikiDescriptionChampsEtendusPageUrl");
wikiDescriptionChampsEtendusRestUrl = Dictionary.getDictionary("configuration").get(
"wikiDescriptionChampsEtendusRestUrl");
wikiDescriptionChampsEtendusRestUrlOptions = Dictionary.getDictionary("configuration").get(
"wikiDescriptionChampsEtendusRestUrlOptions");
wikiDescriptionChampsEtendusUrlOptionsPageTpl = Dictionary.getDictionary("configuration").get(
"wikiDescriptionChampsEtendusUrlOptionsPageTpl");
// Pour test, l'activation de l'ajout des champs étendus est activable ou désactivable par
// l'url
if(Location.getParameter("activerSaisieChampsEtendus") != null) {
265,4 → 285,20
public static boolean saisieChampsEtendusActivee() {
return activerSaisieChampsEtendus.equals("1");
}
public static String getWikiDescriptionChampsEtendusPageUrl() {
return wikiDescriptionChampsEtendusPageUrl;
}
public static String getWikiDescriptionChampsEtendusRestUrl() {
return wikiDescriptionChampsEtendusRestUrl;
}
public static String getWikiDescriptionChampsEtendusUrlOptions() {
return wikiDescriptionChampsEtendusRestUrlOptions;
}
public static String getWikiDescriptionChampsEtendusUrlOptionsPageTpl() {
return wikiDescriptionChampsEtendusUrlOptionsPageTpl;
}
}
/trunk/src/org/tela_botanica/client/modeles/objets/ListeGroupesChampsEtendus.java
3,6 → 3,9
import java.util.HashMap;
import java.util.Iterator;
 
import org.tela_botanica.client.cel2;
 
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;
9,26 → 12,40
 
public class ListeGroupesChampsEtendus extends HashMap<String,HashMap<String, String>> {
public HashMap<String, String> correspondancesClesLabels ;
public ListeGroupesChampsEtendus(String groupeChampsEtendusJson) {
super();
try {
JSONValue groupesJson = JSONParser.parse(groupeChampsEtendusJson);
JSONObject groupes = groupesJson.isObject();
correspondancesClesLabels = new HashMap<String, String>();
JSONValue groupesJson = JSONParser.parseStrict(groupeChampsEtendusJson);
JSONArray groupes = groupesJson.isArray();
for (Iterator<String> iterator = groupes.keySet().iterator(); iterator.hasNext();) {
String groupe = iterator.next();
JSONValue listeClesLabelsJson = groupes.get(groupe);
JSONObject listeClesLabels = listeClesLabelsJson.isObject();
for (int i = 0; i < groupes.size(); i++) {
JSONObject groupe = groupes.get(i).isObject();
String nomGroupe = groupe.get("nom").isString().stringValue();
JSONArray listeClesLabels = groupe.get("champs").isArray();
HashMap<String, String> groupesClesLabel = new HashMap<String, String>();
for (Iterator<String> itCleLabels = listeClesLabels.keySet().iterator(); itCleLabels.hasNext();) {
String cle = itCleLabels.next();
String label = listeClesLabels.get(cle).isString().stringValue();
for (int j = 0; j < listeClesLabels.size(); j++) {
JSONObject champ = listeClesLabels.get(j).isObject();
String cle = champ.get("cle").isString().stringValue();
String label = champ.get("label").isString().stringValue();
groupesClesLabel.put(cle, label);
correspondancesClesLabels.put(cle, label);
}
this.put(groupe, groupesClesLabel);
this.put(nomGroupe, groupesClesLabel);
}
} catch (Exception e) {
// TODO: handle exception
}
}
public HashMap<String, String> getCorrespondancesClesLabel() {
return correspondancesClesLabels;
}
}
/trunk/src/org/tela_botanica/client/modeles/dao/ListeReferentielChampsEtendusDAO.java
4,6 → 4,7
import java.util.HashMap;
import java.util.Iterator;
 
import org.tela_botanica.client.cel2;
import org.tela_botanica.client.interfaces.Rafraichissable;
import org.tela_botanica.client.modeles.objets.Configuration;
import org.tela_botanica.client.modeles.objets.ListeChampsEtendus;
11,6 → 12,7
import org.tela_botanica.client.modeles.objets.ListeReferentielPerso;
import org.tela_botanica.client.observation.ObservationModele;
 
import com.google.gwt.core.client.Callback;
import com.google.gwt.http.client.Request;
import org.tela_botanica.client.util.RequestBuilderWithCredentials;
import com.google.gwt.http.client.RequestCallback;
21,15 → 23,17
import com.google.gwt.json.client.JSONObject;
import com.google.gwt.json.client.JSONParser;
import com.google.gwt.json.client.JSONValue;
import com.google.gwt.user.client.Window;
 
public class ListeReferentielChampsEtendusDAO {
/**
* Cache
*
*/
private HashMap<String,ListeReferentielPerso> cache = new HashMap();
public static ListeGroupesChampsEtendus cacheGroupes;
public static HashMap<String, String> cacheClesLabels;
public static HashMap<String, String> cacheDescription = new HashMap<String, String>();
public static String prefixePageChampEtendu = "CE";
public ListeReferentielChampsEtendusDAO(ObservationModele obs) {
}
38,12 → 42,10
RequestBuilderWithCredentials rb = new RequestBuilderWithCredentials(RequestBuilderWithCredentials.GET, Configuration.getServiceBaseUrl() +
"/NomsChampsEtendus/cle"+
"?recherche="+URL.encode(recherche));
"?recherche="+URL.encode(recherche));
try {
rb.sendRequest(null, new RequestCallback() {
 
@Override
public void onResponseReceived(final Request request,
final Response response) {
54,10 → 56,8
 
@Override
public void onError(Request request, Throwable exception) {
// TODO Auto-generated method stub
}
// TODO Auto-generated method stub
}
});
} catch (RequestException e) {
75,7 → 75,6
try {
rb.sendRequest(null, new RequestCallback() {
 
@Override
public void onResponseReceived(final Request request,
final Response response) {
97,9 → 96,7
@Override
public void onError(Request request, Throwable exception) {
// TODO Auto-generated method stub
}
}
});
} catch (RequestException e) {
109,25 → 106,143
}
public void obtenirGroupesChampsEtendus(final Rafraichissable r) {
RequestBuilderWithCredentials rb = new RequestBuilderWithCredentials(RequestBuilderWithCredentials.GET, Configuration.getServiceBaseUrl() +
"/GroupesChampsEtendus/");
try {
rb.sendRequest(null, new RequestCallback() {
@Override
public void onResponseReceived(final Request request,
final Response response) {
ListeGroupesChampsEtendus valeurs = new ListeGroupesChampsEtendus(response.getText());
r.rafraichir(valeurs, true);
if(cacheGroupes == null) {
RequestBuilderWithCredentials rb = new RequestBuilderWithCredentials(RequestBuilderWithCredentials.GET, Configuration.getServiceBaseUrl() +
"/CatalogueChampsEtendus/groupes");
try {
rb.sendRequest(null, new RequestCallback() {
@Override
public void onResponseReceived(final Request request,
final Response response) {
ListeGroupesChampsEtendus valeurs = new ListeGroupesChampsEtendus(response.getText());
cacheGroupes = valeurs;
r.rafraichir(valeurs, true);
}
@Override
public void onError(Request request, Throwable exception) {
// TODO Auto-generated method stub
}
});
} catch (RequestException e) {
e.printStackTrace();
}
} else {
r.rafraichir(cacheGroupes, true);
}
}
public void obtenirCatalogueChampsEtendus(final Rafraichissable r) {
if(cacheClesLabels == null) {
RequestBuilderWithCredentials rb = new RequestBuilderWithCredentials(RequestBuilderWithCredentials.GET, Configuration.getServiceBaseUrl() +
"/CatalogueChampsEtendus/champs");
try {
rb.sendRequest(null, new RequestCallback() {
@Override
public void onResponseReceived(final Request request,
final Response response) {
try {
JSONValue champsJson = JSONParser.parseStrict(response.getText());
JSONArray champs = champsJson.isArray();
cacheClesLabels = new HashMap<String, String>(champs.size());
for (int i = 0; i < champs.size(); i++) {
JSONObject champ = champs.get(i).isObject();
String cle = champ.get("cle").isString().stringValue();
String label = champ.get("label").isString().stringValue();
cacheClesLabels.put(cle, label);
 
r.rafraichir(cacheClesLabels, true);
}
} catch (Exception e) {
// TODO: handle exception
}
}
@Override
public void onError(Request request, Throwable exception) {
// TODO Auto-generated method stub
}
});
@Override
public void onError(Request request, Throwable exception) {
// TODO Auto-generated method stub
}
});
} catch (RequestException e) {
e.printStackTrace();
}
} else {
r.rafraichir(cacheClesLabels, true);
}
}
public static void telechargerDescriptionWikini(final String champ, final Callback<String, String> callback) {
String url = Configuration.getWikiDescriptionChampsEtendusRestUrl()+prefixePageChampEtendu+champ+"?";
String options = Configuration.getWikiDescriptionChampsEtendusUrlOptions();
 
if(cacheDescription.containsKey(champ)) {
callback.onSuccess(cacheDescription.get(champ));
}
} catch (RequestException e) {
RequestBuilderWithCredentials rb = new RequestBuilderWithCredentials(RequestBuilderWithCredentials.GET,
url + options);
try {
rb.sendRequest(null, new RequestCallback() {
 
@Override
public void onResponseReceived(final Request request,
final Response response) {
final JSONValue responseValue = JSONParser.parse(response.getText());
String description = "";
JSONObject reponse = responseValue.isObject();
if(reponse != null && reponse.get("texte") != null && reponse.get("texte").isString() != null) {
description = reponse.get("texte").isString().stringValue();
}
cacheDescription.put(champ, description);
callback.onSuccess(description);
}
 
@Override
public void onError(Request request, Throwable exception) {
cacheDescription.put(champ, "");
callback.onFailure("");
}
});
} catch (RequestException e) {
e.printStackTrace();
}
}
// Pour obliger la page wiki a avoir été créée avant de rediriger, on utilise une requete synchrone
private static native String effectuerRequeteSynchrone(String url, String contenu, String typeRequete)/*-{
// tant pis pour les vieux navigateurs, ie6 etc...
// tous ceux que l'on supporte connaissent XMLHttpRequest
var xhReq = new XMLHttpRequest();
xhReq.open(typeRequete, url, false);
if(typeRequete == "POST") xhReq.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
xhReq.send(contenu);
var serverResponse = xhReq.status + xhReq.responseText;
return serverResponse;
}-*/;
public static void creerPageWikini(final String champ) {
String url = Configuration.getWikiDescriptionChampsEtendusRestUrl()+prefixePageChampEtendu+champ+"?";
String options = Configuration.getWikiDescriptionChampsEtendusUrlOptions();
String pageTpl = Configuration.getWikiDescriptionChampsEtendusUrlOptionsPageTpl();
effectuerRequeteSynchrone(url + options + pageTpl, "", "GET");
}
public static String obtenirUrlEditionDescriptionWiki(String cle) {
String url = Configuration.getWikiDescriptionChampsEtendusPageUrl()+prefixePageChampEtendu+cle+"/edit";
return url;
}
}