Subversion Repositories eFlore/Applications.coel

Compare Revisions

Ignore whitespace Rev 947 → Rev 948

/trunk/src/org/tela_botanica/client/util/UtilString.java
10,16 → 10,20
*/
public static String ucFirst(String inputStr) {
if (isEmpty(inputStr)) {
return "";
}
return inputStr.substring(0,1).toUpperCase() + inputStr.substring(1, inputStr.length());
}
public static boolean isEmpty(String inputStr) {
return inputStr == null || inputStr.equals("");
}
public static double formaterEnDouble(String nombre) {
if (!isEmpty(nombre)) {
return Double.parseDouble(nombre);
}
return new Double(0);
}
}
/trunk/src/org/tela_botanica/client/util/Pattern.java
29,7 → 29,7
public static String quote(String chaine) {
chaine.replace("\\", "\\\\");
String[] caracteresSpeciaux = {".", "$", "[", "]", "(", ")", "{", "}", "^", "?", "*", "+", "-"};
String[] caracteresSpeciaux = {".", "$", "[", "]", "(", ")", "{", "}", "^", "?", "*", "+", "-", "|"};
for (int i = 0; i < caracteresSpeciaux.length; i++) {
chaine = chaine.replace(caracteresSpeciaux[i], "\\"+caracteresSpeciaux[i]);
}
/trunk/src/org/tela_botanica/client/util/UtilNombre.java
New file
0,0 → 1,12
package org.tela_botanica.client.util;
 
import com.google.gwt.i18n.client.NumberFormat;
 
public class UtilNombre {
public static String formaterEnEntier(double nombre) {
NumberFormat formatNbreEntier = NumberFormat.getFormat("#");
return formatNbreEntier.format(nombre);
}
}
/trunk/src/org/tela_botanica/client/vues/collection/CollectionForm.java
9,6 → 9,7
import org.tela_botanica.client.modeles.MenuApplicationId;
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.UtilArray;
import org.tela_botanica.client.util.UtilString;
import org.tela_botanica.client.vues.Formulaire;
226,6 → 227,7
 
private void peuplerOnglets() {
generalOnglet.peupler();
descriptionOnglet.peupler();
}
 
private void actualiserTitrePanneau() {
237,24 → 239,24
 
public boolean soumettreFormulaire() {
// Vérification de la validité des champs du formulaire
boolean fomulaireValide = verifierFormulaire();
if (fomulaireValide) {
boolean formulaireValide = verifierFormulaire();
if (formulaireValide) {
// Collecte des données du formulaire
Collection collection = collecterCollection();
Collection collectionCollectee = collecterCollection();
if (mode.equals(MODE_AJOUTER)) {
mediateur.ajouterCollection(this, collection);
mediateur.ajouterCollection(this, collectionCollectee);
} else if (mode.equals(MODE_MODIFIER)) {
if (collection == null) {
if (collectionCollectee == null) {
Info.display("Modification d'une collection", "Rien n'a été enregistré car le formulaire n'a pas été modifié.");
} else {
mediateur.modifierCollection(this, collection);
mediateur.modifierCollection(this, collectionCollectee);
}
}
soumettreOnglets();
}
return fomulaireValide;
return formulaireValide;
}
private void soumettreOnglets() {
292,6 → 294,7
generalOnglet.collecter();
personneOnglet.collecter();
publicationOnglet.collecter();
descriptionOnglet.collecter();
}
public boolean verifierFormulaire() {
/trunk/src/org/tela_botanica/client/vues/collection/CollectionFormDescription.java
1,6 → 1,7
package org.tela_botanica.client.vues.collection;
 
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
 
16,6 → 17,14
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.util.Debug;
import org.tela_botanica.client.util.Pattern;
import org.tela_botanica.client.util.UtilNombre;
import org.tela_botanica.client.util.UtilString;
import org.tela_botanica.client.vues.Formulaire;
import org.tela_botanica.client.vues.FormulaireOnglet;
 
39,9 → 48,11
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;
55,11 → 66,16
 
public class CollectionFormDescription extends FormulaireOnglet implements Rafraichissable {
private Collection collection = null;
private CollectionBotanique collectionBotanique = null;
private Collection collectionCollectee = null;
private CollectionBotanique collectionBotaniqueCollectee = null;
private ChampComboBoxListeValeurs typesCollectionBotaCombo = null;
private NumberField nbreEchantillonChp = null;
private Grid<UniteRangement> uniteRangementGrille = null;
private EditorGrid<UniteRangement> uniteRangementGrille = null;
private ChampComboBoxListeValeurs etatUniteRangementCombo = null;
private Grid<UniteBase> uniteBaseGrille = null;
private EditorGrid<UniteBase> uniteBaseGrille = null;
private ChampCaseACocher typePapierConservationChp = null;
private ChampCaseACocher methodeConservationChp = null;
private ChampSliderPourcentage specimenFixationPourcentChp = null;
75,6 → 91,7
private ChampComboBoxListeValeurs determinationCombo = null;
private ChampMultiValeursMultiTypes specimenDegradationChp = null;
private ChampMultiValeursMultiTypes presentationDegradationChp = null;
private ComboBox<InterneValeur> precisionCombo;
public CollectionFormDescription(Formulaire formulaireCourrant) {
initialiserOnglet(formulaireCourrant);
141,7 → 158,7
return panneau;
}
private Grid<UniteRangement> creerGrilleUniteRangement() {
private EditorGrid<UniteRangement> creerGrilleUniteRangement() {
ListStore<UniteRangement> storeGrille = new ListStore<UniteRangement>();
List<ColumnConfig> colonnes = new ArrayList<ColumnConfig>();
149,10 → 166,10
NumberField champNombre = new NumberField();
champNombre.setFormat(NumberFormat.getFormat("#"));
CellEditor editeurNombre = new CellEditor(champNombre);
ColumnConfig nombreColonne = new ColumnConfig("nombre", i18nC.collectionUniteNbre(), 50);
nombreColonne.setEditor(editeurNombre);
nombreColonne.setEditor(new CellEditor(champNombre));
nombreColonne.setNumberFormat(NumberFormat.getFormat("#"));
colonnes.add(nombreColonne);
ListStore<InterneValeur> precisionStore = new ListStore<InterneValeur>();
159,7 → 176,7
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 = new ComboBox<InterneValeur>();
precisionCombo.setForceSelection(true);
precisionCombo.setTriggerAction(TriggerAction.ALL);
precisionCombo.setDisplayField("nom");
190,7 → 207,7
}
}
return retour;
}
}
};
ColumnConfig precisionColonne = new ColumnConfig("precision", i18nC.collectionUnitePrecision(), 50);
207,6 → 224,12
GridSelectionModel<UniteRangement> modeleDeSelection = new GridSelectionModel<UniteRangement>();
ColumnModel modeleDeColonnes = new ColumnModel(colonnes);
AggregationRowConfig<UniteBase> total = new AggregationRowConfig<UniteBase>();
total.setHtml("type", "TOTAL");
total.setSummaryType("nombre", SummaryType.SUM);
total.setSummaryFormat("nombre", NumberFormat.getFormat("#"));
modeleDeColonnes.addAggregationRow(total);
EditorGrid<UniteRangement> grilleUniteRangement = new EditorGrid<UniteRangement>(storeGrille, modeleDeColonnes);
grilleUniteRangement.setHeight(300);
grilleUniteRangement.setBorders(true);
220,6 → 243,66
return grilleUniteRangement;
}
private String collecterGrilleUniteRangement() {
String truk = "";
int nbreUnite = uniteRangementGrille.getStore().getCount();
for (int i = 0; i < nbreUnite; i++) {
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 += unite.getFormat();
truk += (i == (nbreUnite - 1)) ? "" : aDonnee.SEPARATEUR_VALEURS;
}
return truk;
}
private void peuplerGrilleUniteRangement(String valeurTruk) {
if (!UtilString.isEmpty(valeurTruk)) {
HashMap<String,UniteRangement> unitesEnregistrees = new HashMap<String,UniteRangement>();
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));
UniteRangement uniteRangement = new UniteRangement();
uniteRangement.setId(uniteTypeIdDonnees[0]);
if (uniteDonnees.length > 0) {
uniteRangement.setNombre(UtilString.formaterEnDouble(uniteDonnees[0]));
}
if (uniteDonnees.length > 1) {
uniteRangement.setPrecision(uniteDonnees[1]);
}
if (uniteDonnees.length > 2) {
uniteRangement.setFormat(uniteDonnees[2]);
Debug.log(uniteTypeIdDonnees[0]+"/"+uniteTypeIdDonnees[1]+"/"+uniteDonnees[0]+"-"+uniteDonnees[1]+"-"+uniteDonnees[2]);
}
unitesEnregistrees.put(uniteTypeIdDonnees[0], uniteRangement);
}
ArrayList<UniteRangement> listeUniteMaj = new ArrayList<UniteRangement>();
int nbreUnite = uniteRangementGrille.getStore().getCount();
for (int i = 0; i < nbreUnite; i++) {
UniteRangement uniteDansGrille = uniteRangementGrille.getStore().getAt(i);
UniteRangement uniteEnregistree = unitesEnregistrees.get(uniteDansGrille.getId());
if (uniteEnregistree != null) {
listeUniteMaj.add(uniteEnregistree);
} else {
listeUniteMaj.add(uniteDansGrille);
}
}
uniteRangementGrille.getStore().removeAll();
uniteRangementGrille.getStore().add(listeUniteMaj);
layout();
}
}
private ToolBar creerBarreOutilsGrilleUniteRangement() {
ToolBar barreOutils = new ToolBar();
295,7 → 378,7
add(panneauGrille);
}
private Grid<UniteBase> creerGrilleUniteBase() {
private EditorGrid<UniteBase> creerGrilleUniteBase() {
ListStore<UniteBase> storeGrille = new ListStore<UniteBase>();
List<ColumnConfig> colonnes = new ArrayList<ColumnConfig>();
307,6 → 390,7
ColumnConfig nombreColonne = new ColumnConfig("nombre", i18nC.collectionUniteNbre(), 50);
nombreColonne.setEditor(editeurNombre);
nombreColonne.setNumberFormat(NumberFormat.getFormat("#"));
colonnes.add(nombreColonne);
ListStore<InterneValeur> precisionStore = new ListStore<InterneValeur>();
360,6 → 444,7
ColumnConfig partNombreColonne = new ColumnConfig("nombre_part", i18nC.collectionUniteNbre(), 50);
partNombreColonne.setEditor(editeurNombre);
partNombreColonne.setNumberFormat(NumberFormat.getFormat("#"));
colonnes.add(partNombreColonne);
ColumnConfig partPrecisionColonne = new ColumnConfig("precision_part", i18nC.collectionUnitePrecision(), 50);
368,6 → 453,7
ColumnConfig spNombreColonne = new ColumnConfig("nombre_sp", i18nC.collectionUniteNbre(), 50);
spNombreColonne.setEditor(editeurNombre);
spNombreColonne.setNumberFormat(NumberFormat.getFormat("#"));
colonnes.add(spNombreColonne);
ColumnConfig spPrecisionColonne = new ColumnConfig("precision_sp", i18nC.collectionUnitePrecision(), 50);
548,6 → 634,39
this.add(etatFieldSet);
}
public void peupler() {
initialiserCollection();
if (collectionBotanique != null) {
typesCollectionBotaCombo.peupler(collectionBotanique.getType());
if (!UtilString.isEmpty(collectionBotanique.getNbreEchantillon())) {
nbreEchantillonChp.setValue(Integer.parseInt(collectionBotanique.getNbreEchantillon()));
}
peuplerGrilleUniteRangement(collectionBotanique.getUniteRangement());
}
}
public void collecter() {
initialiserCollection();
if (etreAccede()) {
collectionBotaniqueCollectee.setType(typesCollectionBotaCombo.getValeur());
collectionBotaniqueCollectee.setNbreEchantillon(Integer.toString(nbreEchantillonChp.getValue().intValue()));
collectionBotaniqueCollectee.setUniteRangement(collecterGrilleUniteRangement());
Debug.log(collecterGrilleUniteRangement());
}
}
 
private void initialiserCollection() {
collection = ((CollectionForm) formulaire).collection;
if (collection != null) {
collectionBotanique = collection.getBotanique();
}
collectionCollectee = ((CollectionForm) formulaire).collectionCollectee;
if (collectionCollectee != null) {
collectionBotaniqueCollectee = collectionCollectee.getBotanique();
}
}
public void rafraichir(Object nouvellesDonnees) {
if (nouvellesDonnees instanceof ValeurListe) {
ValeurListe listeValeurs = (ValeurListe) nouvellesDonnees;
565,6 → 684,7
while (it.hasNext()) {
Valeur valeur = listeValeurs.get(it.next());
UniteRangement unite = new UniteRangement();
unite.setId(valeur.getId());
unite.setType(valeur.getNom());
unite.setTypeAutre(false);
uniteRangementGrille.getStore().add(unite);
574,6 → 694,7
while (it.hasNext()) {
Valeur valeur = listeValeurs.get(it.next());
UniteBase unite = new UniteBase();
unite.setId(valeur.getId());
unite.setType(valeur.getNom());
unite.setTypeAutre(false);
uniteBaseGrille.getStore().add(unite);
/trunk/src/org/tela_botanica/client/vues/collection/CollectionDetailVue.java
308,7 → 308,7
private boolean avoirDonneesChargees() {
boolean ok = false;
Debug.log("projetsChargementOk:"+projetsChargementOk+"-collectionChargementOk:"+collectionChargementOk+"-ontologieChargementOk:"+ontologieChargementOk+"-personnesLieesChargementOk:"+personnesLieesChargementOk+"-publicationsLieesChargementOk:"+publicationsLieesChargementOk);
//Debug.log("projetsChargementOk:"+projetsChargementOk+"-collectionChargementOk:"+collectionChargementOk+"-ontologieChargementOk:"+ontologieChargementOk+"-personnesLieesChargementOk:"+personnesLieesChargementOk+"-publicationsLieesChargementOk:"+publicationsLieesChargementOk);
if (projetsChargementOk && collectionChargementOk && ontologieChargementOk && personnesLieesChargementOk && publicationsLieesChargementOk) {
ok = true;
}
/trunk/src/org/tela_botanica/client/modeles/UniteRangement.java
14,7 → 14,8
}
public UniteRangement(String type, int nombre, String precision, String format) {
public UniteRangement(String id, String type, int nombre, String precision, String format) {
setId(id);
setType(type);
setNombre(nombre);
setPrecision(precision);
22,6 → 23,13
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"));
}
29,10 → 37,13
set("type", type);
}
 
public String getNombre() {
public double getNombre() {
if (get("nombre") == null) {
return new Double(0);
}
return get("nombre");
}
public void setNombre(int nombre) {
public void setNombre(double nombre) {
set("nombre", nombre);
}
/trunk/src/org/tela_botanica/client/modeles/collection/Collection.java
27,6 → 27,9
// BOTANIQUE
public CollectionBotanique getBotanique() {
if (botanique == null) {
botanique = new CollectionBotanique();
}
return botanique;
}
public void setBotanique(CollectionBotanique botaniqueAStocker) {
/trunk/src/org/tela_botanica/client/modeles/collection/CollectionAsyncDao.java
40,10 → 40,10
final JSONObject reponse = responseValue.isObject();
Collection collection = new Collection(reponse);
CollectionBotanique collectionBotanique = new CollectionBotanique(reponse);
collection.setBotanique(collectionBotanique);
Information info = new Information("selection_collection");
info.setDonnee(0, collection);
info.setDonnee(1, collectionBotanique);
vueARafraichir.rafraichir(info);
} else if (responseValue.isArray() != null) {
final JSONArray reponse = responseValue.isArray();
/trunk/src/org/tela_botanica/client/modeles/UniteBase.java
14,7 → 14,8
}
public UniteBase(String type, int nombre, String precision, String format, int nombreParts, String precisionPart, int nombreSp, String precisionSp) {
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);
22,6 → 23,13
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"));
}