Rev 1881 | Blame | Compare with Previous | Last modification | View Log | RSS feed
package org.tela_botanica.client.modeles;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
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.util.Debug;
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;
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
* La clé est le nom de l'entite + le nom de l'entite parente
*
* @author david delon
*
*/
public class ValeurListe extends aDonneeListe<Valeur> {
/**
* Identifiant pour sérialisé l'objet...
*/
private static final long serialVersionUID = 7784635999621813450L;
private Mediateur mediateur = (Mediateur) Registry.get(RegistreId.MEDIATEUR);
private int nbElementsTotal;
// Id de la meta-liste dans la base de données
private int id = 0;
private String abv = "";
/**
* Constructeur sans paramètres
*/
public ValeurListe() {
super();
}
/**
* Constructeur avec paramètre
* @param taille la taille de la table de hachage
*/
public ValeurListe(int taille) {
super(taille);
}
/**
* Constructeur pour une liste d'institutions
* @param dates
*/
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);
}
public ValeurListe(JSONString listeId, String abv, JSONArray listeValeurs, JSONNumber nbElements) {
super(listeValeurs.size());
this.setId(Integer.parseInt(listeId.stringValue()));
this.abv = abv;
this.setNbElementsTotal(nbElements.toString());
this.constuireObjet(listeValeurs);
}
protected void constuireObjet(JSONArray liste) {
final int taillemax = liste.size();
for (int i = 0; i < taillemax; i++) {
JSONObject listeValeur = liste.get(i).isObject();
if (listeValeur != null) {
Valeur valeur = new Valeur(listeValeur);
this.put(valeur.getId(), valeur);
}
}
}
/**
* @param id l'identifiant à définir
*/
public void setId(int id) {
this.id = id;
}
public void setNbElementsTotal(String nbElements) {
this.nbElementsTotal = Integer.parseInt(nbElements);
}
/**
* @return l'identifiant de la liste
*/
public Integer getId() {
return id;
}
public String getFullId() {
return (id+abv);
}
public void ajouter(Valeur val) {
this.put(val.getId(), val);
}
public ValeurListe cloner()
{
ValeurListe l = new ValeurListe();
Iterator i = this.keySet().iterator();
while (i.hasNext())
{
String clef = (String)i.next();
Valeur valeur = this.get(clef);
l.put(clef, valeur);
}
return l;
}
public void concatenerListe(ValeurListe lv) {
this.putAll(lv);
this.setId(lv.getId());
}
}