Subversion Repositories eFlore/Applications.coel

Compare Revisions

Ignore whitespace Rev 948 → Rev 949

/trunk/src/org/tela_botanica/client/modeles/UniteBase.java
File deleted
\ No newline at end of file
/trunk/src/org/tela_botanica/client/modeles/UniteRangement.java
File deleted
\ No newline at end of file
/trunk/src/org/tela_botanica/client/modeles/aDonnee.java
9,6 → 9,7
import java.util.Set;
import java.util.TreeSet;
 
import org.tela_botanica.client.util.Debug;
import org.tela_botanica.client.util.UtilArray;
 
import com.extjs.gxt.ui.client.core.FastMap;
375,7 → 376,7
for (Iterator<String> it = proprietesTriees.iterator(); it.hasNext();) {
String cle = it.next();
if (this.get(cle) != null && !this.get(cle).equals("")) {
sortie += cle+" : "+this.get(cle)+"\n";
sortie += cle+" : "+this.get(cle).toString()+"\n";
}
}
399,7 → 400,6
}
}
}
return retour;
}
/trunk/src/org/tela_botanica/client/modeles/collection/UniteBase.java
New file
0,0 → 1,112
package org.tela_botanica.client.modeles.collection;
 
import org.tela_botanica.client.util.UtilString;
 
import com.extjs.gxt.ui.client.data.BaseModelData;
 
public class UniteBase extends BaseModelData {
private static final long serialVersionUID = 394843761854792528L;
public static final String COMPTE_EXACT = "E";
public static final String COMPTE_APPROXIMATIF = "A";
public UniteBase() {
}
public UniteBase(String id, String type, int nombre, String precision, String format, int nombreParts, String precisionPart, int nombreSp, String precisionSp) {
setId(id);
setType(type);
setNombre(nombre);
setPrecision(precision);
setFormat(format);
setTypeAutre(false);
}
public String getId() {
return renvoyerValeurCorrecte((String) get("id"));
}
public void setId(String id) {
set("id", id);
}
public String getType() {
return renvoyerValeurCorrecte((String) get("type"));
}
public void setType(String type) {
set("type", type);
}
 
public double getNombre() {
if (get("nombre") == null) {
return new Double(0);
}
return get("nombre");
}
public void setNombre(double nombre) {
set("nombre", nombre);
}
public String getPrecision() {
return renvoyerValeurCorrecte((String) get("precision"));
}
public void setPrecision(String precision) {
set("precision", precision);
}
public String getFormat() {
return renvoyerValeurCorrecte((String) get("format"));
}
public void setFormat(String format) {
set("format", format);
}
public double getNombrePart() {
if (get("nombre_part") == null) {
return new Double(0);
}
return get("nombre_part");
}
public void setNombrePart(double nombre) {
set("nombre_part", nombre);
}
public String getPrecisionPart() {
return renvoyerValeurCorrecte((String) get("precision_part"));
}
public void setPrecisionPart(String precision) {
set("precision_part", precision);
}
public double getNombreSp() {
if (get("nombre_sp") == null) {
return new Double(0);
}
return get("nombre_sp");
}
public void setNombreSp(double nombre) {
set("nombre_sp", nombre);
}
public String getPrecisionSp() {
return renvoyerValeurCorrecte((String) get("precision_sp"));
}
public void setPrecisionSp(String precision) {
set("precision_sp", precision);
}
public boolean getTypeAutre() {
return get("type_autre");
}
public void setTypeAutre(boolean bool) {
set("type_autre", bool);
}
private String renvoyerValeurCorrecte(String valeur) {
String valeurCorrecte = "";
if (!UtilString.isEmpty(valeur)) {
valeurCorrecte = valeur;
}
return valeurCorrecte;
}
}
/trunk/src/org/tela_botanica/client/modeles/collection/UniteRangement.java
New file
0,0 → 1,78
package org.tela_botanica.client.modeles.collection;
 
import org.tela_botanica.client.util.UtilString;
 
import com.extjs.gxt.ui.client.data.BaseModelData;
 
public class UniteRangement extends BaseModelData {
private static final long serialVersionUID = 394843761854792528L;
public static final String COMPTE_EXACT = "E";
public static final String COMPTE_APPROXIMATIF = "A";
public UniteRangement() {
}
public UniteRangement(String id, String type, int nombre, String precision, String format) {
setId(id);
setType(type);
setNombre(nombre);
setPrecision(precision);
setFormat(format);
setTypeAutre(false);
}
public String getId() {
return renvoyerValeurCorrecte((String) get("id"));
}
public void setId(String id) {
set("id", id);
}
public String getType() {
return renvoyerValeurCorrecte((String) get("type"));
}
public void setType(String type) {
set("type", type);
}
 
public double getNombre() {
if (get("nombre") == null) {
return new Double(0);
}
return get("nombre");
}
public void setNombre(double nombre) {
set("nombre", nombre);
}
public String getPrecision() {
return renvoyerValeurCorrecte((String) get("precision"));
}
public void setPrecision(String precision) {
set("precision", precision);
}
public String getFormat() {
return renvoyerValeurCorrecte((String) get("format"));
}
public void setFormat(String format) {
set("format", format);
}
public boolean getTypeAutre() {
return get("type_autre");
}
public void setTypeAutre(boolean bool) {
set("type_autre", bool);
}
private String renvoyerValeurCorrecte(String valeur) {
String valeurCorrecte = "";
if (!UtilString.isEmpty(valeur)) {
valeurCorrecte = valeur;
}
return valeurCorrecte;
}
}
/trunk/src/org/tela_botanica/client/util/UtilNombre.java
7,6 → 7,5
public static String formaterEnEntier(double nombre) {
NumberFormat formatNbreEntier = NumberFormat.getFormat("#");
return formatNbreEntier.format(nombre);
}
}
}
/trunk/src/org/tela_botanica/client/util/UtilString.java
26,4 → 26,11
}
return new Double(0);
}
public static int formaterEnEntier(String nombre) {
if (!isEmpty(nombre)) {
return Integer.parseInt(nombre);
}
return new Integer(0);
}
}
/trunk/src/org/tela_botanica/client/vues/collection/CollectionForm.java
10,6 → 10,7
import org.tela_botanica.client.modeles.Valeur;
import org.tela_botanica.client.modeles.collection.Collection;
import org.tela_botanica.client.modeles.collection.CollectionBotanique;
import org.tela_botanica.client.util.Debug;
import org.tela_botanica.client.util.UtilArray;
import org.tela_botanica.client.util.UtilString;
import org.tela_botanica.client.vues.Formulaire;
242,15 → 243,15
boolean formulaireValide = verifierFormulaire();
if (formulaireValide) {
// Collecte des données du formulaire
Collection collectionCollectee = collecterCollection();
Collection collectionAEnregistrer = collecterCollection();
if (mode.equals(MODE_AJOUTER)) {
mediateur.ajouterCollection(this, collectionCollectee);
mediateur.ajouterCollection(this, collectionAEnregistrer);
} else if (mode.equals(MODE_MODIFIER)) {
if (collectionCollectee == null) {
if (collectionAEnregistrer == null) {
Info.display("Modification d'une collection", "Rien n'a été enregistré car le formulaire n'a pas été modifié.");
} else {
mediateur.modifierCollection(this, collectionCollectee);
mediateur.modifierCollection(this, collectionAEnregistrer);
}
}
274,12 → 275,12
private Collection collecterCollection() {
collectionCollectee = (Collection) collection.cloner(new Collection());
//Debug.log(collectionCollectee.toString());
this.collecter();
collecterOnglets();
//Debug.log(collectionCollectee.toString());
Collection collectionARetourner = null;
if (!collectionCollectee.comparer(collection)) {
if (!collectionCollectee.comparer(collection) || !collectionCollectee.getBotanique().comparer(collection.getBotanique())) {
collectionARetourner = collection = collectionCollectee;
}
return collectionARetourner;
/trunk/src/org/tela_botanica/client/vues/collection/CollectionFormDescription.java
13,14 → 13,13
import org.tela_botanica.client.images.Images;
import org.tela_botanica.client.interfaces.Rafraichissable;
import org.tela_botanica.client.modeles.InterneValeur;
import org.tela_botanica.client.modeles.UniteBase;
import org.tela_botanica.client.modeles.UniteRangement;
import org.tela_botanica.client.modeles.Valeur;
import org.tela_botanica.client.modeles.ValeurListe;
import org.tela_botanica.client.modeles.aDonnee;
import org.tela_botanica.client.modeles.collection.Collection;
import org.tela_botanica.client.modeles.collection.CollectionAPersonne;
import org.tela_botanica.client.modeles.collection.CollectionBotanique;
import org.tela_botanica.client.modeles.collection.UniteBase;
import org.tela_botanica.client.modeles.collection.UniteRangement;
import org.tela_botanica.client.util.Debug;
import org.tela_botanica.client.util.Pattern;
import org.tela_botanica.client.util.UtilNombre;
48,11 → 47,8
import com.extjs.gxt.ui.client.widget.grid.AggregationRowConfig;
import com.extjs.gxt.ui.client.widget.grid.CellEditor;
import com.extjs.gxt.ui.client.widget.grid.ColumnConfig;
import com.extjs.gxt.ui.client.widget.grid.ColumnData;
import com.extjs.gxt.ui.client.widget.grid.ColumnModel;
import com.extjs.gxt.ui.client.widget.grid.EditorGrid;
import com.extjs.gxt.ui.client.widget.grid.Grid;
import com.extjs.gxt.ui.client.widget.grid.GridCellRenderer;
import com.extjs.gxt.ui.client.widget.grid.GridSelectionModel;
import com.extjs.gxt.ui.client.widget.grid.HeaderGroupConfig;
import com.extjs.gxt.ui.client.widget.grid.SummaryType;
71,6 → 67,7
private Collection collectionCollectee = null;
private CollectionBotanique collectionBotaniqueCollectee = null;
private ListStore<InterneValeur> precisionStore = null;
private ChampComboBoxListeValeurs typesCollectionBotaCombo = null;
private NumberField nbreEchantillonChp = null;
private EditorGrid<UniteRangement> uniteRangementGrille = null;
91,8 → 88,8
private ChampComboBoxListeValeurs determinationCombo = null;
private ChampMultiValeursMultiTypes specimenDegradationChp = null;
private ChampMultiValeursMultiTypes presentationDegradationChp = null;
private ComboBox<InterneValeur> precisionCombo;
public CollectionFormDescription(Formulaire formulaireCourrant) {
initialiserOnglet(formulaireCourrant);
setId("description");
103,6 → 100,7
formulaireLayout.setLabelWidth(300);
creerFieldsetPrecision();
creerStorePrecision();
creerUniteRangement();
creerUniteBase();
creerFieldsetConservation();
132,6 → 130,40
this.add(precisionFieldSet);
}
private void creerStorePrecision() {
precisionStore = new ListStore<InterneValeur>();
precisionStore.add(new InterneValeur(UniteRangement.COMPTE_APPROXIMATIF, i18nC.precisionApproximatif()));
precisionStore.add(new InterneValeur(UniteRangement.COMPTE_EXACT, i18nC.precisionExact()));
}
private String getPrecisionNom(String precisionAbr) {
String precision = "";
InterneValeur precisionValeur = precisionStore.findModel("abr", precisionAbr);
if (precisionValeur != null) {
precision = precisionValeur.getNom();
}
return precision;
}
private String getPrecisionAbr(String precisionNom) {
String precision = "";
InterneValeur precisionValeur = precisionStore.findModel("nom", precisionNom);
if (precisionValeur != null) {
precision = precisionValeur.getAbr();
}
return precision;
}
private ComboBox<InterneValeur> getChampPrecision() {
ComboBox<InterneValeur> precisionCombo = new ComboBox<InterneValeur>();
precisionCombo.setForceSelection(true);
precisionCombo.setTriggerAction(TriggerAction.ALL);
precisionCombo.setDisplayField("nom");
precisionCombo.setStore(precisionStore);
precisionCombo.setEditable(false);
return precisionCombo;
}
private void creerUniteRangement() {
ContentPanel panneauGrille = creerPanneauContenantGrille(i18nC.collectionUniteRangementTitre());
171,27 → 203,16
nombreColonne.setEditor(new CellEditor(champNombre));
nombreColonne.setNumberFormat(NumberFormat.getFormat("#"));
colonnes.add(nombreColonne);
ListStore<InterneValeur> precisionStore = new ListStore<InterneValeur>();
precisionStore.add(new InterneValeur(UniteRangement.COMPTE_APPROXIMATIF, i18nC.precisionApproximatif()));
precisionStore.add(new InterneValeur(UniteRangement.COMPTE_EXACT, i18nC.precisionExact()));
precisionCombo = new ComboBox<InterneValeur>();
precisionCombo.setForceSelection(true);
precisionCombo.setTriggerAction(TriggerAction.ALL);
precisionCombo.setDisplayField("nom");
precisionCombo.setStore(precisionStore);
precisionCombo.setEditable(false);
CellEditor editeurPrecision = new CellEditor(precisionCombo) {
CellEditor editeurPrecision = new CellEditor(getChampPrecision()) {
@Override
public Object preProcessValue(Object valeur) {
InterneValeur retour = null;
if (valeur != null ) {
if (precisionCombo.getStore().findModel("nom", valeur.toString()) != null) {
retour = precisionCombo.getStore().findModel("nom", valeur.toString());
} else if (precisionCombo.getStore().findModel("abr", valeur.toString()) != null) {
retour = precisionCombo.getStore().findModel("abr", valeur.toString());
if (precisionStore.findModel("nom", valeur.toString()) != null) {
retour = precisionStore.findModel("nom", valeur.toString());
} else if (precisionStore.findModel("abr", valeur.toString()) != null) {
retour = precisionStore.findModel("abr", valeur.toString());
}
}
return retour;
250,12 → 271,7
UniteRangement unite = uniteRangementGrille.getStore().getAt(i);
truk += unite.getId()+aDonnee.SEPARATEUR_TYPE_VALEUR;
truk += UtilNombre.formaterEnEntier(unite.getNombre())+aDonnee.SEPARATEUR_DONNEES;
String precision = "";
InterneValeur precisionValeur = precisionCombo.getStore().findModel("nom", unite.getPrecision());
if (precisionValeur != null) {
precision = precisionValeur.getAbr();
}
truk += precision+aDonnee.SEPARATEUR_DONNEES;
truk += getPrecisionAbr(unite.getPrecision())+aDonnee.SEPARATEUR_DONNEES;
truk += unite.getFormat();
truk += (i == (nbreUnite - 1)) ? "" : aDonnee.SEPARATEUR_VALEURS;
}
274,10 → 290,10
UniteRangement uniteRangement = new UniteRangement();
uniteRangement.setId(uniteTypeIdDonnees[0]);
if (uniteDonnees.length > 0) {
uniteRangement.setNombre(UtilString.formaterEnDouble(uniteDonnees[0]));
uniteRangement.setNombre(UtilString.formaterEnEntier(uniteDonnees[0]));
}
if (uniteDonnees.length > 1) {
uniteRangement.setPrecision(uniteDonnees[1]);
uniteRangement.setPrecision(getPrecisionNom(uniteDonnees[1]));
}
if (uniteDonnees.length > 2) {
uniteRangement.setFormat(uniteDonnees[2]);
292,6 → 308,7
UniteRangement uniteDansGrille = uniteRangementGrille.getStore().getAt(i);
UniteRangement uniteEnregistree = unitesEnregistrees.get(uniteDansGrille.getId());
if (uniteEnregistree != null) {
uniteEnregistree.setType(uniteDansGrille.getType());
listeUniteMaj.add(uniteEnregistree);
} else {
listeUniteMaj.add(uniteDansGrille);
377,7 → 394,7
add(panneauGrille);
}
private EditorGrid<UniteBase> creerGrilleUniteBase() {
ListStore<UniteBase> storeGrille = new ListStore<UniteBase>();
393,26 → 410,15
nombreColonne.setNumberFormat(NumberFormat.getFormat("#"));
colonnes.add(nombreColonne);
ListStore<InterneValeur> precisionStore = new ListStore<InterneValeur>();
precisionStore.add(new InterneValeur(UniteRangement.COMPTE_APPROXIMATIF, i18nC.precisionApproximatif()));
precisionStore.add(new InterneValeur(UniteRangement.COMPTE_EXACT, i18nC.precisionExact()));
final ComboBox<InterneValeur> precisionCombo = new ComboBox<InterneValeur>();
precisionCombo.setForceSelection(true);
precisionCombo.setTriggerAction(TriggerAction.ALL);
precisionCombo.setDisplayField("nom");
precisionCombo.setStore(precisionStore);
precisionCombo.setEditable(false);
CellEditor editeurPrecision = new CellEditor(precisionCombo) {
CellEditor editeurPrecision = new CellEditor(getChampPrecision()) {
@Override
public Object preProcessValue(Object valeur) {
InterneValeur retour = null;
if (valeur != null ) {
if (precisionCombo.getStore().findModel("nom", valeur.toString()) != null) {
retour = precisionCombo.getStore().findModel("nom", valeur.toString());
} else if (precisionCombo.getStore().findModel("abr", valeur.toString()) != null) {
retour = precisionCombo.getStore().findModel("abr", valeur.toString());
if (precisionStore.findModel("nom", valeur.toString()) != null) {
retour = precisionStore.findModel("nom", valeur.toString());
} else if (precisionStore.findModel("abr", valeur.toString()) != null) {
retour = precisionStore.findModel("abr", valeur.toString());
}
}
return retour;
489,6 → 495,78
return grilleUniteBase;
}
private String collecterGrilleUniteBase() {
String truk = "";
int nbreUnite = uniteBaseGrille.getStore().getCount();
for (int i = 0; i < nbreUnite; i++) {
UniteBase unite = uniteBaseGrille.getStore().getAt(i);
truk += unite.getId()+aDonnee.SEPARATEUR_TYPE_VALEUR;
truk += UtilNombre.formaterEnEntier(unite.getNombre())+aDonnee.SEPARATEUR_DONNEES;
truk += getPrecisionAbr(unite.getPrecision())+aDonnee.SEPARATEUR_DONNEES;
truk += unite.getFormat()+aDonnee.SEPARATEUR_DONNEES;
truk += UtilNombre.formaterEnEntier(unite.getNombrePart())+aDonnee.SEPARATEUR_DONNEES;
truk += getPrecisionAbr(unite.getPrecisionPart())+aDonnee.SEPARATEUR_DONNEES;
truk += UtilNombre.formaterEnEntier(unite.getNombreSp())+aDonnee.SEPARATEUR_DONNEES;
truk += getPrecisionAbr(unite.getPrecisionSp());
truk += (i == (nbreUnite - 1)) ? "" : aDonnee.SEPARATEUR_VALEURS;
}
return truk;
}
private void peuplerGrilleUniteBase(String valeurTruk) {
if (!UtilString.isEmpty(valeurTruk)) {
HashMap<String,UniteBase> unitesEnregistrees = new HashMap<String,UniteBase>();
String[] unites = valeurTruk.split(Pattern.quote(aDonnee.SEPARATEUR_VALEURS));
for (int i = 0; i < unites.length; i++) {
String[] uniteTypeIdDonnees = unites[i].split(Pattern.quote(aDonnee.SEPARATEUR_TYPE_VALEUR));
String uniteChaineDonnees = uniteTypeIdDonnees[1];
String[] uniteDonnees = uniteChaineDonnees.split(Pattern.quote(aDonnee.SEPARATEUR_DONNEES));
UniteBase uniteBase = new UniteBase();
uniteBase.setId(uniteTypeIdDonnees[0]);
if (uniteDonnees.length > 0) {
uniteBase.setNombre(UtilString.formaterEnEntier(uniteDonnees[0]));
}
if (uniteDonnees.length > 1) {
uniteBase.setPrecision(getPrecisionNom(uniteDonnees[1]));
}
if (uniteDonnees.length > 2) {
uniteBase.setFormat(uniteDonnees[2]);
}
if (uniteDonnees.length > 3) {
uniteBase.setNombrePart(UtilString.formaterEnEntier(uniteDonnees[3]));
}
if (uniteDonnees.length > 4) {
uniteBase.setPrecisionPart(getPrecisionNom(uniteDonnees[4]));
}
if (uniteDonnees.length > 5) {
uniteBase.setNombreSp(UtilString.formaterEnEntier(uniteDonnees[5]));
}
if (uniteDonnees.length > 6) {
uniteBase.setPrecisionSp(getPrecisionNom(uniteDonnees[6]));
Debug.log(uniteTypeIdDonnees[0]+"/"+uniteTypeIdDonnees[1]+"/"+uniteDonnees[0]+"-"+uniteDonnees[1]+"-"+uniteDonnees[2]+uniteDonnees[3]+"-"+uniteDonnees[4]+"-"+uniteDonnees[5]);
}
unitesEnregistrees.put(uniteTypeIdDonnees[0], uniteBase);
}
ArrayList<UniteBase> listeUniteMaj = new ArrayList<UniteBase>();
int nbreUnite = uniteBaseGrille.getStore().getCount();
for (int i = 0; i < nbreUnite; i++) {
UniteBase uniteDansGrille = uniteBaseGrille.getStore().getAt(i);
UniteBase uniteEnregistree = unitesEnregistrees.get(uniteDansGrille.getId());
if (uniteEnregistree != null) {
uniteEnregistree.setType(uniteDansGrille.getType());
listeUniteMaj.add(uniteEnregistree);
} else {
listeUniteMaj.add(uniteDansGrille);
}
}
uniteBaseGrille.getStore().removeAll();
uniteBaseGrille.getStore().add(listeUniteMaj);
layout();
}
}
private ToolBar creerBarreOutilsGrilleUniteBase() {
ToolBar barreOutils = new ToolBar();
642,6 → 720,7
nbreEchantillonChp.setValue(Integer.parseInt(collectionBotanique.getNbreEchantillon()));
}
peuplerGrilleUniteRangement(collectionBotanique.getUniteRangement());
peuplerGrilleUniteBase(collectionBotanique.getUniteBase());
}
}
651,7 → 730,8
collectionBotaniqueCollectee.setType(typesCollectionBotaCombo.getValeur());
collectionBotaniqueCollectee.setNbreEchantillon(Integer.toString(nbreEchantillonChp.getValue().intValue()));
collectionBotaniqueCollectee.setUniteRangement(collecterGrilleUniteRangement());
Debug.log(collecterGrilleUniteRangement());
collectionBotaniqueCollectee.setUniteBase(collecterGrilleUniteBase());
Debug.log(collecterGrilleUniteBase());
}
}
 
/trunk/src/org/tela_botanica/client/vues/collection/CollectionFormPersonne.java
9,8 → 9,6
import org.tela_botanica.client.interfaces.Rafraichissable;
import org.tela_botanica.client.modeles.Information;
import org.tela_botanica.client.modeles.InterneValeur;
import org.tela_botanica.client.modeles.UniteBase;
import org.tela_botanica.client.modeles.UniteRangement;
import org.tela_botanica.client.modeles.Valeur;
import org.tela_botanica.client.modeles.ValeurListe;
import org.tela_botanica.client.modeles.aDonnee;
17,6 → 15,8
import org.tela_botanica.client.modeles.collection.Collection;
import org.tela_botanica.client.modeles.collection.CollectionAPersonne;
import org.tela_botanica.client.modeles.collection.CollectionAPersonneListe;
import org.tela_botanica.client.modeles.collection.UniteBase;
import org.tela_botanica.client.modeles.collection.UniteRangement;
import org.tela_botanica.client.modeles.personne.Personne;
import org.tela_botanica.client.modeles.personne.PersonneListe;
import org.tela_botanica.client.modeles.publication.Publication;