Subversion Repositories eFlore/Applications.cel

Compare Revisions

Ignore whitespace Rev 215 → Rev 216

/trunk/src/org/tela_botanica/client/vues/observation/ListeObservationVue.java
311,8 → 311,8
// gestion du clic sur une ligne
public void onRowClick(GridPanel grid, int rowIndex,
EventObject e) {
// on notifie le médiateur et on lui passe le nuémro de ligne
Record rd = getSelectionModel().getSelected();
// on notifie le médiateur et on lui passe le numéro de ligne
Record rd = getStore().getAt(rowIndex);
String ordreObservation = rd.getAsString("ordre_observation") ;
observationMediateur.onClicListeObservation(rowIndex,ordreObservation);
759,6 → 759,8
private String fabriquerLieu(Observation obs) {
String lieuModele = modeleLieu;
String commune = obs.getLocalite();
String lieuDit = obs.getLieudit();
String station = obs.getStation();
778,27 → 780,27
lieuCommuneFormate += idLoc+" - ";
}
lieuCommuneFormate += commune;
modeleLieu = modeleLieu.replaceAll("IDLOCCOMMUNE", lieuCommuneFormate);
lieuModele = lieuModele.replaceAll("IDLOCCOMMUNE", lieuCommuneFormate);
} else {
modeleLieu = modeleLieu.replaceAll("IDLOCCOMMUNE,", lieuCommuneFormate);
lieuModele = lieuModele.replaceAll("IDLOCCOMMUNE,", lieuCommuneFormate);
}
if(lieuDit != null && !lieuDit.contains("000null") && !lieuDit.trim().equals("")) {
lieuDitFormate += lieuDit;
modeleLieu = modeleLieu.replaceAll("LIEUDIT", lieuDitFormate);
lieuModele = lieuModele.replaceAll("LIEUDIT", lieuDitFormate);
} else {
modeleLieu = modeleLieu.replaceAll("LIEUDIT,", lieuDitFormate);
lieuModele = lieuModele.replaceAll("LIEUDIT,", lieuDitFormate);
}
if(station != null && !station.contains("000null") && !station.trim().equals("")) {
stationFormatee += station;
modeleLieu = modeleLieu.replaceAll("STATION", stationFormatee);
lieuModele = lieuModele.replaceAll("STATION", stationFormatee);
} else {
modeleLieu = modeleLieu.replaceAll("STATION,", stationFormatee);
lieuModele = lieuModele.replaceAll("STATION,", stationFormatee);
}
return modeleLieu;
return lieuModele;
}
 
}
/trunk/src/org/tela_botanica/client/vues/observation/FormulaireSaisieObservationVue.java
5,6 → 5,7
import java.util.Iterator;
 
import org.tela_botanica.client.interfaces.Rafraichissable;
import org.tela_botanica.client.modeles.ListeObservation;
import org.tela_botanica.client.modeles.ListeReferentielCommune;
import org.tela_botanica.client.modeles.ListeReferentielNom;
import org.tela_botanica.client.modeles.Observation;
12,6 → 13,7
import org.tela_botanica.client.modeles.ReferentielNom;
import org.tela_botanica.client.observation.ObservationMediateur;
 
import com.google.gwt.user.client.Window;
import com.gwtext.client.core.EventCallback;
import com.gwtext.client.core.EventObject;
import com.gwtext.client.core.ListenerConfig;
34,6 → 36,7
import com.gwtext.client.widgets.event.PanelListenerAdapter;
import com.gwtext.client.widgets.form.ComboBox;
import com.gwtext.client.widgets.form.DateField;
import com.gwtext.client.widgets.form.Field;
import com.gwtext.client.widgets.form.FormPanel;
import com.gwtext.client.widgets.form.TextArea;
import com.gwtext.client.widgets.form.TextField;
73,7 → 76,37
// Pour remise a zero partielle lors d'une validation
private enum Champs {
DATE, LIEUDIT, STATION, MILIEU, COMMENT, COMMUNE, ESPECE, TOUT
DATE, LIEUDIT, STATION, MILIEU, COMMENT, COMMUNE, ESPECE, TOUT ;
public String toString() {
switch(this) {
case DATE:
return "date";
case COMMUNE:
return "commune";
case LIEUDIT:
return "lieu dit";
case STATION:
return "station";
case MILIEU:
return "milieu";
case COMMENT:
return "commentaire";
case ESPECE:
return "espèce";
case TOUT:
return "date, commune, lieu dit, station, milieu, espèce, commentaire";
}
return TOUT.toString();
}
};
88,6 → 121,17
private boolean modification = false ;
private Toolbar bt = null ;
private final String VALEURS_MULTIPLES = "(Valeurs multiples)";
private final String modeleMessageModif = "commune lieu dit station milieu date espece commentaire";
private boolean communeModifiee = false;
private boolean LieuDitModifie = false;
private boolean StationModifiee = false;
private boolean milieuModifie = false;
private boolean dateModifiee = false;
private boolean especeModifiee = false;
private boolean commModifie = false;
private final int KEY_ALT = 18;
private final int KEY_BACKSPACE = 8;
private final int KEY_CTRL = 17;
124,6 → 168,8
private Panel panneauPremierColonne;
 
private Panel panneauSecondeColonne;
 
private boolean masseModification =false ;
/**
* Constructeur sans argument (privé car ne doit pas être utilisé)
283,7 → 329,6
panneauIntermediaire.setHeight(rawHeight);
}});
// on ajoute les listeners
293,10 → 338,6
private void ajouterListeners()
{
// Listener completion communne
commune.addListener(new ComboBoxListenerAdapter() {
339,6 → 380,7
case KEY_ENTER:
if (selectionCommune) {
communeModifiee= true;
selectionCommune=false;
}
else {
352,6 → 394,7
departement="";
obtenirListeReferentielCommune();
communeModifiee= true;
break;
}
363,6 → 406,7
 
public void execute(EventObject e) {
// TODO Auto-generated method stub
dateModifiee = true;
switch(e.getKey()) {
case KEY_ENTER:
378,6 → 422,7
 
public void execute(EventObject e) {
// TODO Auto-generated method stub
StationModifiee = true;
switch(e.getKey()) {
case KEY_ENTER:
435,7 → 480,8
case KEY_ENTER:
if(selectionEspece) {
selectionEspece=false;
especeModifiee = true;
selectionEspece=false;
}
else {
validerSaisie(Champs.ESPECE);
447,6 → 493,7
numeroNom="";
obtenirListeReferentielNom();
especeModifiee = true;
break;
}
463,6 → 510,7
 
public void execute(EventObject e) {
// TODO Auto-generated method stub
LieuDitModifie = true;
switch(e.getKey()) {
case KEY_ENTER:
478,6 → 526,7
 
public void execute(EventObject e) {
// TODO Auto-generated method stub
milieuModifie = true;
switch(e.getKey()) {
case KEY_ENTER:
489,20 → 538,13
}
});
/*comment.addKeyPressListener(new EventCallback() {
comment.addKeyPressListener(new EventCallback() {
 
public void execute(EventObject e) {
// TODO Auto-generated method stub
switch(e.getKey()) {
case KEY_ENTER:
validerSaisie(Champs.COMMENT);
break;
default:
}
commModifie = true;
}
});*/
});
 
 
511,7 → 553,11
public void onClick(Button button, EventObject e) {
if(modification) {
modifierObservation() ;
if(masseModification) {
modifierObservationEnMasse(null);
} else {
modifierObservation() ;
}
}
else {
ajouterObservation();
555,8 → 601,13
private void validerSaisie(Champs champs) {
if(modification) {
modifierObservation() ;
if(masseModification) {
modifierObservationEnMasse(champs);
} else {
modifierObservation();
}
raz(champs);
}
else {
ajouterObservation();
672,6 → 723,11
afficherDetailsObservation(obs) ;
}
if(nouvelleDonnees instanceof ListeObservation) {
ListeObservation listeObs = (ListeObservation)nouvelleDonnees;
calculerAfficherDifferences(listeObs);
}
// Sur Mise à jour ou suppression d'une suppression ?
if(nouvelleDonnees instanceof String)
688,8 → 744,6
}
 
}
 
public void obtenirListeReferentielCommune() {
String com=commune.getText().replaceAll(" ","/");
740,19 → 794,86
}
private void modifierObservation() {
Observation obs=new Observation(espece.getText(),numeroNom,commune.getText(),departement,lieudit.getText(),station.getText(),milieu.getText(), comment.getText(),date.getRawValue());
obs.setNumeroOrdre(numeroOrdre);
observationMediateur.modifierObservation(obs);
 
selecteurMode.setValue("création");
setModification("false");
}
private void modifierObservationEnMasse(Champs champModifie) {
String communeM = null;
String departementM = null;
String lieuDitM = null;
String stationM = null;
String milieuM = null;
String dateM = null;
String especeM = null;
String commM = null;
String champs = modeleMessageModif;
if(communeModifiee) {
communeM = commune.getText();
} else {
champs = champs.replaceAll("commune ", "");
}
if(LieuDitModifie) {
lieuDitM = lieudit.getText();
}else {
champs = champs.replaceAll("lieu dit ", "");
}
if(StationModifiee) {
stationM = station.getText();
}else {
champs = champs.replaceAll("station ", "");
}
 
if(milieuModifie) {
milieuM = milieu.getText();
}else {
champs = champs.replaceAll("milieu ", "");
}
 
if(dateModifiee) {
dateM = date.getRawValue();
}else {
champs = champs.replaceAll("date ", "");
}
 
if(especeModifiee) {
especeM = espece.getText();
}else {
champs = champs.replaceAll("espece ", "");
}
 
if(commModifie) {
commM = comment.getText();
}else {
champs = champs.replaceAll("commentaire", "");
}
String message = "Voulez vous modifier les champs suivants : "+champs+" pour les observations selectionnées ?" ;
if(champs.trim().equals("")) {
Window.alert("Aucun champ n'a été modifié");
} else {
Observation obs = new Observation(especeM,numeroNom,communeM,departementM,lieuDitM,stationM,milieuM, commM,dateM);
obs.setNumeroOrdre(numeroOrdre);
if(Window.confirm(message)) {
observationMediateur.modifierObservationEnMasse(obs);
}
}
}
private void supprimerObservation() {
observationMediateur.supprimerObservation(this, numeroOrdre);
observationMediateur.supprimerObservation(this, numeroOrdre);
}
 
759,14 → 880,17
public void afficherDetailsObservation(Observation obs)
{
raz() ;
char g ;
String idLoc ;
if(obs.getIdentifiantLocalite() != VALEURS_MULTIPLES) {
idLoc =obs.getIdentifiantLocalite().replaceAll(" ","/");
idLoc = idLoc.replaceAll("%","");
idLoc = idLoc.replaceAll("\"","");
idLoc = idLoc.replace('\\',' ');
idLoc = idLoc.trim();
} else {
idLoc = obs.getIdentifiantLocalite();
}
String idLoc =obs.getIdentifiantLocalite().replaceAll(" ","/");
idLoc = idLoc.replaceAll("%","");
idLoc = idLoc.replaceAll("\"","");
idLoc = idLoc.replace('\\',' ');
idLoc = idLoc.trim();
if(!obs.getDate().equals("null") && !obs.getDate().equals("000null")) {
String[] dateEtHeure = obs.getDate().split(" ", 2);
if(verifierFormatDate(dateEtHeure[0])) {
790,7 → 914,7
comment.setValue(obs.getCommentaire()) ;
}
if(!obs.getLocalite().equals("null") && !obs.getLocalite().equals("000null")) {
if(!idLoc.equals("000null")) {
if(!idLoc.equals("000null") && !idLoc.equals(VALEURS_MULTIPLES)) {
commune.setValue(obs.getLocalite()+" ("+idLoc+")") ;
}
else
884,11 → 1008,10
modification = true ;
selecteurMode.removeClass("x-selec-crea") ;
selecteurMode.setCls("x-selec-modif") ;
observationMediateur.onModeModification();
}
else
{
 
boutonOK.setText("Ajouter") ;
setTitle("Saisir") ;
boutonAnnuler.setText("Réinitialiser") ;
908,6 → 1031,15
return modification ;
}
/**
* renvoie vrai si on est en mode modification de masse, faux sinon
* @return
*/
public boolean getMasseModification()
{
return masseModification ;
}
public boolean verifierFormatDate(String date) {
String regex = "[1-9][0-9]{3}-[0-9]{2}-[0-9]{2}" ;
918,6 → 1050,97
return false;
}
}
 
public void setMasseModification(boolean masseModification) {
this.masseModification = masseModification;
if(masseModification) {
reinitialiserValeurModifiees();
}
}
 
private void calculerAfficherDifferences(ListeObservation listeObs) {
String departement = null;
String commune = null;
String lieuDit = null;
String station = null;
String milieu = null;
String espece = null;
String date = null;
String notes = null;
String ordreObs = "";
for(Iterator<String> it = listeObs.keySet().iterator();it.hasNext();) {
Observation obsEnCours = listeObs.get(it.next());
departement = comparerDifferencesChamps(departement, obsEnCours.getIdentifiantLocalite());
commune = comparerDifferencesChamps(commune, obsEnCours.getLocalite());
lieuDit = comparerDifferencesChamps(lieuDit, obsEnCours.getLieudit());
station = comparerDifferencesChamps(station, obsEnCours.getStation());
milieu = comparerDifferencesChamps(milieu, obsEnCours.getMilieu());
espece = comparerDifferencesChamps(espece, obsEnCours.getNomSaisi());
date = comparerDifferencesChamps(date, obsEnCours.getDate());
notes = comparerDifferencesChamps(notes, obsEnCours.getCommentaire());
ordreObs += obsEnCours.getNumeroOrdre()+",";
}
Observation obs=new Observation(espece,numeroNom,commune,departement,lieuDit,station,milieu, notes,date);
obs.setNumeroOrdre(ordreObs);
rafraichir(obs, false);
}
private String comparerDifferencesChamps(String valeurActuelle, String nouvelleValeur) {
String retour = "000null";
if(valeurActuelle == null) {
retour = nouvelleValeur;
} else {
if(valeurActuelle.equals(nouvelleValeur)) {
retour = valeurActuelle;
} else {
retour = VALEURS_MULTIPLES;
}
}
return retour;
}
private void reinitialiserValeurModifiees() {
communeModifiee = false;
LieuDitModifie = false;
StationModifiee = false;
milieuModifie = false;
dateModifiee = false;
especeModifiee = false;
commModifie = false;
}
private Field obtenirCorrespondanceChampsEnum(Champs champ) {
switch(champ) {
case DATE:
return date;
case COMMUNE:
return commune;
case LIEUDIT:
return lieudit;
case STATION:
return station;
case MILIEU:
return milieu;
case COMMENT:
return comment;
case ESPECE:
return espece;
}
return null;
}
}