/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(); |
/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); |
} |
} |
} |
} |