Subversion Repositories eFlore/Applications.coel

Compare Revisions

Ignore whitespace Rev 1135 → Rev 1136

/branches/v1.0-syrah/src/org/tela_botanica/client/modeles/projet/Projet.java
New file
0,0 → 1,122
package org.tela_botanica.client.modeles.projet;
 
import org.tela_botanica.client.modeles.aDonnee;
 
import com.google.gwt.json.client.JSONObject;
 
public class Projet extends aDonnee {
private static final long serialVersionUID = 6733053168274995082L;
 
private static final String PREFIXE = "cpr";
 
public Projet() {}
public Projet(JSONObject liste) {
initialiserModele(liste);
}
@Override
protected String getPrefixe() {
return PREFIXE;
}
public String getId() {
return renvoyerValeurCorrecte("id_projet");
}
public void setId(String projetId) {
set("id_projet", projetId);
}
public String getNom() {
return renvoyerValeurCorrecte("nom");
}
public void setNom(String nom) {
set("nom", nom);
}
public String getAbreviation() {
return renvoyerValeurCorrecte("abreviation");
}
public void setAbreviation(String abrev) {
set("abreviation", abrev);
}
public String getResume() {
return renvoyerValeurCorrecte("resume");
}
public void setResume(String valeur) {
set("resume", valeur);
}
public String getDescription() {
return renvoyerValeurCorrecte("description");
}
public void setDescription(String valeur) {
set("description", valeur);
}
public String getUrl() {
return renvoyerValeurCorrecte("url");
}
public void setUrl(String valeur) {
set("url", valeur);
}
public String getMotsCles() {
return renvoyerValeurCorrecte("mot_cles");
}
public void setMotsCles(String valeur) {
set("mot_cles", valeur);
}
public String getCitation() {
return renvoyerValeurCorrecte("citation");
}
public void setCitation(String valeur) {
set("citation", valeur);
}
public String getLicence() {
return renvoyerValeurCorrecte("licence");
}
public void setLicence(String valeur) {
set("licence", valeur);
}
public String getLangue() {
return renvoyerValeurCorrecte("ce_langue");
}
public void setLangue(String valeur) {
set("ce_langue", valeur);
}
public String getIndexationHeure() {
return renvoyerValeurCorrecte("indexation_heure");
}
public void setIndexationHeure(String valeur) {
set("indexation_heure", valeur);
}
public String getIndexationDuree() {
return renvoyerValeurCorrecte("ce_indexation_duree");
}
public void setIndexationDuree(String valeur) {
set("ce_indexation_duree", valeur);
}
public String getIndexationFreq() {
return renvoyerValeurCorrecte("ce_indexation_freq");
}
public void setIndexationFreq(String valeur) {
set("ce_indexation_freq", valeur);
}
public String getMarkPublic() {
return renvoyerValeurCorrecte("mark_public");
}
public void setMarkPublic(String valeur) {
set("mark_public", valeur);
}
}
/branches/v1.0-syrah/src/org/tela_botanica/client/modeles/projet/ProjetListe.java
New file
0,0 → 1,151
package org.tela_botanica.client.modeles.projet;
 
import org.tela_botanica.client.Mediateur;
import org.tela_botanica.client.RegistreId;
import org.tela_botanica.client.interfaces.ListePaginable;
import org.tela_botanica.client.interfaces.Rafraichissable;
import org.tela_botanica.client.modeles.aDonneeListe;
import org.tela_botanica.client.modeles.structure.Structure;
 
import com.extjs.gxt.ui.client.Registry;
import com.google.gwt.i18n.client.Dictionary;
import com.google.gwt.json.client.JSONArray;
import com.google.gwt.json.client.JSONNumber;
import com.google.gwt.json.client.JSONObject;
 
/**
* Table de hachage composée d'informations sur les Valeurs des listes, renvoyé par un objet de type DAO
* La clé est l'id de l'entite.
*
* @author Grégoire DUCHÉ
*
*/
public class ProjetListe extends aDonneeListe<Projet> implements ListePaginable {
private static final long serialVersionUID = -9030260944108896455L;
private int currentPage = 0;
private int nbElementsPage = Integer.valueOf(((Dictionary) Dictionary.getDictionary("configuration")).get("nbElementsPage"));
private int nbElementsTotal;
private Rafraichissable vueARafraichir;
/**
* Constructeur sans paramètres
*/
public ProjetListe() {
super();
}
/**
* Constructeur avec paramètre
* @param taille la taille de la table de hachage
*/
public ProjetListe(int taille) {
super(taille);
}
/**
* Constructeur pour une liste de projets
* @param dates
*/
public ProjetListe(JSONArray projetsListe) {
super(projetsListe.size());
final int taillemax = projetsListe.size();
for (int i = 0; i < taillemax; i++) {
JSONObject projetCourant = projetsListe.get(i).isObject() ;
if (projetCourant != null) {
Projet projet = new Projet(projetCourant);
this.put(projet.getId(), projet);
}
}
}
public ProjetListe(JSONArray projetListe, JSONNumber nbElements, Rafraichissable vueARafraichir) {
super(projetListe.size());
this.nbElementsTotal = Integer.valueOf(nbElements.toString());
final int taillemax = projetListe.size();
for (int i = 0; i < taillemax; i++) {
JSONObject projet = projetListe.get(i).isObject() ;
if (projet != null) {
Projet projetCourant = new Projet(projet);
this.put(projetCourant.getId(), projetCourant);
}
}
this.vueARafraichir = vueARafraichir;
}
public void changerNumeroPage(int pageCourante) {
currentPage = pageCourante;
selectionnerStructure();
}
 
public void changerTaillePage(int nouvelleTaillePage) {
nbElementsPage = nouvelleTaillePage;
selectionnerStructure();
}
public void recharger() {
selectionnerStructure();
}
public void setPageCourante(int pageCourante) {
this.currentPage = pageCourante;
}
 
public void setTaillePage(int taillePage) {
this.nbElementsPage = taillePage;
}
public int[] getPageTable() {
int[] page = new int[4];
 
// nombre de pages au total
page[0] = calculerNbPages();
 
// Page En Cours
page[1] = currentPage;
 
// nbElementsParPage
page[2] = nbElementsPage;
 
// et le dernier le nombre total d'éléments
page[3] = nbElementsTotal;
 
return page;
}
/**
* Calcule le nombre de pages nécessaires pour afficher un nombre d'élements
* donnés en fonction de la taille de page en cours
*
* @return le nombre de pages
*/
public int calculerNbPages() {
// A cause de la betise de java pour les conversion implicite on fait
// quelques conversions manuellement
// pour eviter qu'il arrondisse mal la division
// nombre de pages = (nombre d'element / taille de la page) arrondie à
// l'entier superieur
 
double nPage = (1.0 * nbElementsTotal) / (1.0 * nbElementsPage);
double nPageRound = Math.ceil(nPage);
Double nPageInt = new Double(nPageRound);
 
// on convertit en entier
return nPageInt.intValue();
}
public void selectionnerStructure() {
Mediateur mediateur =(Mediateur) Registry.get(RegistreId.MEDIATEUR);
mediateur.selectionnerProjet(vueARafraichir, null, null, currentPage, nbElementsPage);
}
public void filtrerParNom(String nom) {
Mediateur mediateur =(Mediateur) Registry.get(RegistreId.MEDIATEUR);
mediateur.selectionnerProjet(vueARafraichir, null, "%" + nom + "%", 0, nbElementsPage);
}
}
/branches/v1.0-syrah/src/org/tela_botanica/client/modeles/projet/ProjetAsyncDao.java
New file
0,0 → 1,141
package org.tela_botanica.client.modeles.projet;
 
import java.util.HashMap;
 
import org.tela_botanica.client.Mediateur;
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.modeles.Information;
import org.tela_botanica.client.modeles.structure.StructureListe;
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.json.client.JSONArray;
import com.google.gwt.json.client.JSONObject;
import com.google.gwt.json.client.JSONValue;
 
public class ProjetAsyncDao {
private static final String SERVICE_NOM = "CoelProjet";
String utilisateurId = null;
private Rafraichissable vueARafraichir = null;
public ProjetAsyncDao(Rafraichissable vueARafraichirCourrante) {
vueARafraichir = vueARafraichirCourrante;
utilisateurId = ((Mediateur) Registry.get(RegistreId.MEDIATEUR)).getUtilisateurId();
}
public void selectionner(final String projetId, final String nom, final int pageCourante, final int nbElements) {
String[] param = {projetId, nom};
HashMap<String, String> restrictions = new HashMap<String, String>();
restrictions.put("start", String.valueOf(pageCourante*nbElements));
if (nbElements != -1) {
restrictions.put("limit", String.valueOf(nbElements));
}
final JsonRestRequestBuilder rb = UtilDAO.construireRequete(SERVICE_NOM, param, restrictions);
rb.envoyerRequete(null, new JsonRestRequestCallback() {
@Override
public void surReponse(JSONValue responseValue) {
if (responseValue != null) {
// Si la requête est un succès, reception d'un objet ou d'un tableau
JSONArray responseArray = responseValue.isArray();
if (responseArray.get(1).isObject() != null) {
final JSONObject reponse = responseArray.get(1).isObject();
Projet projet = new Projet(reponse);
Information info = new Information("selection_projet");
info.setDonnee(0, projet);
vueARafraichir.rafraichir(info);
} else if (responseArray.get(1).isArray() != null) {
final JSONArray reponse = responseValue.isArray();
ProjetListe projets;
if (responseArray.get(1).isObject() != null) {
projets = new ProjetListe(reponse.get(1).isArray());
} else {
projets = new ProjetListe(reponse.get(1).isArray(), reponse.get(0).isNumber(), vueARafraichir);
}
projets.setTaillePage(nbElements);
projets.setPageCourante(pageCourante);
vueARafraichir.rafraichir(projets);
} else {
GWT.log(rb.getUrl()+"\n\tLa réponse n'est pas un objet ou un talbeau JSON et vaut : "+responseValue.toString(), null);
}
} else {
// Dans le cas, où nous demandons tous les projets et qu'il n'y en a pas, nous retournons un objet vide
if (projetId == null) {
ProjetListe projets = new ProjetListe(0);
vueARafraichir.rafraichir(projets);
}
}
}
});
}
public void ajouter(Projet projet) {
String postDonneesEncodees = projet.obtenirChainePOST()+"&cmhl_ce_modifier_par="+utilisateurId;
final JsonRestRequestBuilder rb = UtilDAO.construireRequetePost(SERVICE_NOM);
rb.envoyerRequete(postDonneesEncodees, new JsonRestRequestCallback() {
@Override
public void surReponse(JSONValue reponseValeur) {
traiterReponse(reponseValeur, "ajout_projet");
}
}) ;
}
public void modifier(Projet projet) {
String[] parametres = {projet.getId()};
final JsonRestRequestBuilder rb = UtilDAO.construireRequetePost(SERVICE_NOM, parametres);
String postDonneesEncodees = projet.obtenirChainePOST()+"&cmhl_ce_modifier_par="+utilisateurId;
rb.envoyerRequete(postDonneesEncodees, new JsonRestRequestCallback() {
@Override
public void surReponse(JSONValue reponseValeur) {
traiterReponse(reponseValeur, "modif_projet");
}
});
}
 
public void supprimer(String projetsId) {
String[] parametres = {utilisateurId, projetsId};
final JsonRestRequestBuilder rb = UtilDAO.construireRequetePost(SERVICE_NOM, parametres);
rb.envoyerRequeteSuppression(new JsonRestRequestCallback() {
@Override
public void surReponse(JSONValue reponseValeur) {
traiterReponse(reponseValeur, "suppression_projet");
}
});
}
private void traiterReponse(JSONValue reponseValeur, String type) {
Information info = new Information(type);
String idsNonSuppr = "";
// Si la requête est un succès, réception d'une chaîne
if (type.equals("suppression_projet") && reponseValeur.isArray() != null) {
JSONArray tableauInfo = reponseValeur.isArray();
idsNonSuppr = tableauInfo.get(0).isString().stringValue();
} else if (reponseValeur.isString() != null) {
String idOuMessage = reponseValeur.isString().stringValue();
if (idOuMessage.matches("^[0-9]+$")) {
info.setDonnee(idOuMessage);
} else {
info.setDonnee("");
info.setMessage(idOuMessage);
}
} else {
info.setDeboguage("La réponse n'est pas une chaine JSON.");
}
info.setDonnee(1, idsNonSuppr);
vueARafraichir.rafraichir(info);
}
}
/branches/v1.0-syrah/src/org/tela_botanica/client/modeles/projet/ProjetVersion.java
New file
0,0 → 1,79
package org.tela_botanica.client.modeles.projet;
 
import java.util.Iterator;
import java.util.Set;
 
import org.tela_botanica.client.modeles.aDonnee;
 
import com.google.gwt.json.client.JSONObject;
 
public class ProjetVersion extends aDonnee {
 
/**
*
*/
private static final long serialVersionUID = 1L;
 
private static final String PREFIXE = "cprv";
 
public ProjetVersion() {
//this.set("mark_contact", false);
super();
}
public ProjetVersion(JSONObject liste) {
// l'objet JSON est une table de hachage
Set<String> im = liste.keySet();
 
// Parcourt pour chaque clé
for (Iterator<String> it = im.iterator(); it.hasNext();) {
// Si elle est associée à une valeur, nous l'ajoutons
String cle = it.next();
// Suppression de l'abréviation du champ. Inutile dans le contexte d'un objet
String cleObjet = cle.replaceFirst("^"+PREFIXE+"_", "");
if (liste.get(cle).isString() != null) {
String valeur = liste.get(cle).isString().stringValue();
this.set(cleObjet, valeur);
} else {
// Sinon, nous ajoutons la clé avec une valeur vide
String valeur = " ";
this.set(cleObjet, valeur);
}
}
}
@Override
protected String getPrefixe() {
return PREFIXE;
}
public String getIdVersion() {
return renvoyerValeurCorrecte("id_version");
}
public String getIdProjet() {
return renvoyerValeurCorrecte("id_projet");
}
public String getNom() {
return renvoyerValeurCorrecte("nom");
}
public String getCode() {
return renvoyerValeurCorrecte("code");
}
public String getDateDebut() {
return renvoyerValeurCorrecte("date_debut");
}
public String getDateFin() {
return renvoyerValeurCorrecte("date_fin");
}
public String getMeta() {
return renvoyerValeurCorrecte("ce_meta ");
}
 
 
}