Subversion Repositories eFlore/Applications.coel

Compare Revisions

Ignore whitespace Rev 90 → Rev 91

/trunk/src/org/tela_botanica/client/modeles/ValeurListe.java
3,7 → 3,9
import java.util.LinkedHashMap;
 
import com.google.gwt.json.client.JSONArray;
import com.google.gwt.json.client.JSONNumber;
import com.google.gwt.json.client.JSONObject;
import com.google.gwt.json.client.JSONString;
 
/**
* Table de hachage composée d'informations sur les Valeurs des listes, renvoyé par un objet de type DAO
19,6 → 21,8
*/
private static final long serialVersionUID = 7784635999621813450L;
private int id = 0;
/**
* Constructeur sans paramètres
*/
30,8 → 34,7
* Constructeur avec paramètre
* @param taille la taille de la table de hachage
*/
public ValeurListe(int taille)
{
public ValeurListe(int taille) {
super(taille);
}
/**
38,9 → 41,19
* Constructeur pour une liste d'institutions
* @param dates
*/
public ValeurListe(JSONArray liste)
public ValeurListe(JSONArray liste) {
super(liste.size());
this.constuireObjet(liste);
}
 
public ValeurListe(JSONString listeId, JSONArray listeValeurs) {
super(listeValeurs.size());
this.setId(Integer.parseInt(listeId.stringValue()));
this.constuireObjet(listeValeurs);
}
 
private void constuireObjet(JSONArray liste)
{
super(liste.size()) ;
final int taillemax = liste.size();
for (int i = 0; i < taillemax; i++) {
52,4 → 65,18
}
}
}
/**
* @param id l'identifiant à définir
*/
public void setId(int id) {
this.id = id;
}
 
/**
* @return l'identifiant de la liste
*/
public Integer getId() {
return id;
}
}
/trunk/src/org/tela_botanica/client/modeles/ValeurListeAsyncDao.java
4,6 → 4,7
import org.tela_botanica.client.interfaces.Rafraichissable;
 
import com.extjs.gxt.ui.client.Registry;
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;
10,7 → 11,9
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;
import com.google.gwt.json.client.JSONParser;
import com.google.gwt.json.client.JSONString;
import com.google.gwt.json.client.JSONValue;
 
public class ValeurListeAsyncDao {
21,11 → 24,12
rafraichissement = r;
}
public void obtenirListe(String cle) {
// Demande de toutes les structures
public void obtenirListe(Integer cle) {
// Demande de toutes les structures
String url = ((Configuration) Registry.get(RegistreId.CONFIG)).getServiceBaseUrl();
RequestBuilder rb = new RequestBuilder(RequestBuilder.GET, url+"CoelListe/id/"+cle);
 
url = url+"CoelValeurListe/id/"+cle.toString();
RequestBuilder rb = new RequestBuilder(RequestBuilder.GET, url);
GWT.log(url, null);
try {
rb.sendRequest(null, new RequestCallback() {
 
35,15 → 39,22
}
 
public void onResponseReceived(Request request, Response response) {
final JSONValue responseValue = JSONParser.parse(response.getText());
 
// Si la requête est un succès, reception d'un tableau
if (responseValue.isArray() != null) {
final JSONArray reponse = responseValue.isArray();
// Transformation du tableau JSON réponse en Liste
ValeurListe liste = new ValeurListe(reponse);
// et on met à jour le demandeur des données
rafraichissement.rafraichir(liste);
if (responseValue.isObject() != null) {
try {
final JSONObject reponse = responseValue.isObject();
JSONString listeId = reponse.get("id").isString();
JSONArray listeValeurs = reponse.get("valeurs").isArray();
// Transformation du tableau JSON réponse en Liste
ValeurListe liste = new ValeurListe(listeId, listeValeurs);
// et on met à jour le demandeur des données
rafraichissement.rafraichir(liste);
} catch (NullPointerException e) {
e.printStackTrace();
}
}
 
}
/trunk/src/org/tela_botanica/client/Mediateur.java
8,6 → 8,7
import org.tela_botanica.client.modeles.Structure;
import org.tela_botanica.client.modeles.StructureListe;
import org.tela_botanica.client.modeles.Utilisateur;
import org.tela_botanica.client.modeles.ValeurListe;
import org.tela_botanica.client.vues.ContenuPanneauVue;
import org.tela_botanica.client.vues.EntetePanneauVue;
import org.tela_botanica.client.vues.FormStructureVue;
21,6 → 22,7
import com.extjs.gxt.ui.client.widget.Viewport;
import com.extjs.gxt.ui.client.widget.layout.BorderLayout;
import com.extjs.gxt.ui.client.widget.layout.BorderLayoutData;
import com.google.gwt.core.client.GWT;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.RootPanel;
 
167,7 → 169,16
panneauCentre.removeAll();
FormStructureVue formStructureVue = new FormStructureVue();
panneauCentre.add(formStructureVue);
panneauCentre.setId(ComposantId.PANNEAU_FORM_STRUCTURE);
panneauCentre.layout();
}
 
public void afficherListeValeurs(ValeurListe nouvelleDonnees) {
if (panneauCentre.getId().equals(ComposantId.PANNEAU_FORM_STRUCTURE)) {
((FormStructureVue) panneauCentre.getItem(0)).rafraichir(nouvelleDonnees);
} else {
GWT.log("Aucun panneau trouvé pour afficher la liste de valeur", null);
}
}
 
}
/trunk/src/org/tela_botanica/client/ComposantId.java
9,4 → 9,5
public static final String MENU_BEL = "coel-id-menu-bel";
public static final String BTN_DECONNEXION = "coel-id-btn-deconnexion";
public static final String PANNEAU_AIDE = "coel-id-pano-aide";
public static final String PANNEAU_FORM_STRUCTURE = "coel-id_pano-form-structure";
}
/trunk/src/org/tela_botanica/client/vues/FormStructureVue.java
1,11 → 1,22
package org.tela_botanica.client.vues;
 
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Iterator;
import java.util.List;
 
import org.tela_botanica.client.Mediateur;
import org.tela_botanica.client.Modele;
import org.tela_botanica.client.RegistreId;
import org.tela_botanica.client.interfaces.Rafraichissable;
import org.tela_botanica.client.modeles.Configuration;
import org.tela_botanica.client.modeles.Structure;
import org.tela_botanica.client.modeles.StructureListe;
import org.tela_botanica.client.modeles.Valeur;
import org.tela_botanica.client.modeles.ValeurListe;
 
import com.extjs.gxt.ui.client.Registry;
import com.extjs.gxt.ui.client.Style.HorizontalAlignment;
import com.extjs.gxt.ui.client.data.BasePagingLoadResult;
import com.extjs.gxt.ui.client.data.BasePagingLoader;
32,12 → 43,22
import com.extjs.gxt.ui.client.widget.layout.FitLayout;
import com.extjs.gxt.ui.client.widget.layout.FlowLayout;
import com.extjs.gxt.ui.client.widget.layout.FormLayout;
import com.google.gwt.core.client.GWT;
 
public class FormStructureVue extends LayoutContainer implements Rafraichissable {
 
private Modele coelModele = null ;
private ListStore<Valeur> magazinLstpr = null;
private ComboBox<Valeur> comboLstpr = null;
private ListStore<Valeur> magazinLstpu = null;
private ComboBox<Valeur> comboLstpu = null;
public FormStructureVue() {
setLayout(new FitLayout());
// Initialisation de variables
coelModele = Registry.get(RegistreId.MODELE);
// Création du panneau Formulaire
FormPanel panel = new FormPanel();
panel.setFrame(true);
80,42 → 101,67
gauche.add(mnhnChp);
// Combobox
String url = "http://localhost/jrest/CoelValeurListe/ab/12";
ScriptTagProxy<Object, PagingLoadResult<ModelData>> proxy = new ScriptTagProxy<Object, PagingLoadResult<ModelData>>(url);
ModelType type = new ModelType();
type.root = "topics";
type.totalName = "totalCount";
type.addField("cmlv_id_valeur", "id");
type.addField("cmlv_ce_parent", "ce_parent");
type.addField("cmlv_ce_projet", "ce_projet");
type.addField("cmlv_nom", "nom");
type.addField("cmlv_abreviation", "abreviation");
type.addField("cmlv_description", "description");
type.addField("cmlv_ce_meta", "ce_meta");
coelModele.obtenirListeValeurs(((Configuration) Registry.get(RegistreId.CONFIG)).getListeId("stpu"));
magazinLstpu = new ListStore<Valeur>();
magazinLstpu.add(new ArrayList<Valeur>());
comboLstpu = new ComboBox<Valeur>();
comboLstpu.setFieldLabel("Statut des structures publiques");
comboLstpu.setDisplayField("nom");
comboLstpu.setTriggerAction(TriggerAction.ALL);
comboLstpu.setStore(magazinLstpu);
gauche.add(comboLstpu);
JsonReader<PagingLoadConfig> reader = new JsonReader<PagingLoadConfig>(type) {
protected ListLoadResult newLoadResult(PagingLoadConfig loadConfig, List<ModelData> models) {
PagingLoadResult result = new BasePagingLoadResult(models, loadConfig.getOffset(),
loadConfig.getLimit());
return result;
}
};
coelModele.obtenirListeValeurs(((Configuration) Registry.get(RegistreId.CONFIG)).getListeId("stpr"));
magazinLstpr = new ListStore<Valeur>();
magazinLstpr.add(new ArrayList<Valeur>());
comboLstpr = new ComboBox<Valeur>();
comboLstpr.setFieldLabel("Statut des structures privées");
comboLstpr.setDisplayField("nom");
comboLstpr.setTriggerAction(TriggerAction.ALL);
comboLstpr.setStore(magazinLstpr);
gauche.add(comboLstpr);
PagingLoader loader = new BasePagingLoader(proxy, reader);
TextField<String> adrChp = new TextField<String>();
adrChp.setFieldLabel("Adresse");
gauche.add(adrChp);
ListStore<ModelData> store = new ListStore<ModelData>(loader);
TextField<String> cpChp = new TextField<String>();
cpChp.setFieldLabel("Code postal");
gauche.add(cpChp);
ComboBox<ModelData> combo = new ComboBox<ModelData>();
combo.setFieldLabel("Statut des structures publiques");
combo.setDisplayField("nom");
combo.setItemSelector("div.search-item");
//combo.setTemplate(getTemplate());
combo.setStore(store);
combo.setHideTrigger(false);
combo.setPageSize(5);
gauche.add(combo);
TextField<String> villeChp = new TextField<String>();
villeChp.setFieldLabel("Ville");
gauche.add(villeChp);
TextField<String> regionChp = new TextField<String>();
regionChp.setFieldLabel("Région");
gauche.add(regionChp);
TextField<String> paysChp = new TextField<String>();
paysChp.setFieldLabel("Pays");
gauche.add(paysChp);
TextField<String> telChp = new TextField<String>();
telChp.setFieldLabel("Téléphone");
gauche.add(telChp);
TextField<String> faxChp = new TextField<String>();
faxChp.setFieldLabel("Fax");
gauche.add(faxChp);
TextField<String> emailChp = new TextField<String>();
emailChp.setFieldLabel("Courriel");
emailChp.setToolTip("Saisir le courriel de l'organisation, pas de courriel individuel. Ex. : accueil@organisation.org");
gauche.add(emailChp);
TextField<String> urlChp = new TextField<String>();
urlChp.setFieldLabel("Site web");
gauche.add(urlChp);
TextField<String> dateFondationChp = new TextField<String>();
dateFondationChp.setFieldLabel("Date de fondation");
gauche.add(dateFondationChp);
// Formulaire DROITE
RadioGroup group = new RadioGroup();
group.setFieldLabel("Type");
144,8 → 190,31
}
 
public void rafraichir(Object nouvelleDonnees) {
// TODO Auto-generated method stub
if (nouvelleDonnees instanceof ValeurListe) {
ValeurListe listeValeurs = (ValeurListe) nouvelleDonnees;
List<Valeur> liste = new ArrayList<Valeur>();
for (Iterator<String> it = listeValeurs.keySet().iterator(); it.hasNext();) {
liste.add(listeValeurs.get(it.next()));
}
// Test pour savoir si la liste contient des éléments
if (liste.size() > 0) {
Configuration config = (Configuration) Registry.get(RegistreId.CONFIG);
if (listeValeurs.getId().equals(config.getListeId("stpr"))) {
GWT.log("La liste #"+listeValeurs.getId()+" a été reçue!", null);
magazinLstpr.removeAll();
magazinLstpr.add(liste);
comboLstpr.setStore(magazinLstpr);
}
if (listeValeurs.getId().equals(config.getListeId("stpu"))) {
GWT.log("La liste #"+listeValeurs.getId()+" a été reçue!", null);
magazinLstpu.removeAll();
magazinLstpu.add(liste);
comboLstpu.setStore(magazinLstpu);
}
} else {
GWT.log("La liste #"+listeValeurs.getId()+" ne contient aucune valeurs!", null);
}
}
}
 
}
/trunk/src/org/tela_botanica/client/Modele.java
5,8 → 5,11
import org.tela_botanica.client.modeles.StructureListeAsyncDao;
import org.tela_botanica.client.modeles.Utilisateur;
import org.tela_botanica.client.modeles.UtilisateurAsyncDao;
import org.tela_botanica.client.modeles.ValeurListe;
import org.tela_botanica.client.modeles.ValeurListeAsyncDao;
 
import com.extjs.gxt.ui.client.Registry;
import com.google.gwt.core.client.GWT;
 
// TODO : le transformer en SINGLETON
public class Modele implements Rafraichissable {
20,9 → 23,16
((Mediateur) Registry.get(RegistreId.MEDIATEUR)).afficherListeInstitutions((StructureListe) nouvelleDonnees);
} else if (nouvelleDonnees instanceof Utilisateur) {
((Mediateur) Registry.get(RegistreId.MEDIATEUR)).mettreAJourEtatIdentification((Utilisateur) nouvelleDonnees);
} else if (nouvelleDonnees instanceof ValeurListe) {
((Mediateur) Registry.get(RegistreId.MEDIATEUR)).afficherListeValeurs((ValeurListe) nouvelleDonnees);
}
}
public void obtenirListeValeurs(Integer id) {
ValeurListeAsyncDao lsDao = new ValeurListeAsyncDao(this);
lsDao.obtenirListe(id);
}
public void obtenirListeInstitutions() {
StructureListeAsyncDao lsDao = new StructureListeAsyncDao(this);
lsDao.obtenirListeInstitution();