3,6 → 3,7 |
// TODO Detecter redim et supprimer ajuster |
|
import java.util.Date; |
import java.util.HashMap; |
import java.util.Iterator; |
|
import org.tela_botanica.client.CarnetEnLigneMediateur; |
20,6 → 21,8 |
import org.tela_botanica.client.util.AutoCompletionRefComboBox; |
import org.tela_botanica.client.util.Util; |
|
import com.google.gwt.event.dom.client.KeyCodes; |
import com.google.gwt.event.dom.client.KeyEvent; |
import com.google.gwt.maps.client.geom.LatLng; |
import com.google.gwt.user.client.Timer; |
import com.google.gwt.user.client.Window; |
97,7 → 100,7 |
// Pour remise a zero partielle lors d'une validation |
|
private enum Champs { |
DATE, LIEUDIT, STATION, MILIEU, COMMENT, COMMUNE, ESPECE, TOUT, LATITUDE, LONGITUDE ; |
DATE, LIEUDIT, STATION, MILIEU, COMMENT, COMMUNE, ESPECE, TOUT, LATITUDE, LONGITUDE, ABONDANCE, CERTITUDE; |
|
@Override |
public String toString() { |
129,9 → 132,15 |
|
case LONGITUDE: |
return "longitude"; |
|
case ABONDANCE: |
return "abondance"; |
|
case CERTITUDE: |
return "certitude"; |
|
case TOUT: |
return "date, commune, lieu dit, station, milieu, espèce, commentaire, latitude, longitude"; |
return "date, commune, lieu dit, station, milieu, espèce, commentaire, latitude, longitude, abondance, certitude"; |
} |
return TOUT.toString(); |
} |
143,12 → 152,14 |
|
private boolean selectionCommune=false; |
private boolean selectionEspece=false; |
private boolean selectionAbondance = false; |
private boolean selectionCertitude = false; |
|
private boolean modification = false ; |
private Toolbar bt = null ; |
|
private final String VALEURS_MULTIPLES = "(Valeurs multiples)"; |
private final String modeleMessageModif = "commune:lieu-dit:station:milieu:latitude:longitude:date:espece:commentaire"; |
private final String modeleMessageModif = "commune:lieu-dit:station:milieu:latitude:longitude:date:espece:commentaire:abondance:certitude"; |
private boolean communeModifiee = false; |
private boolean lieuDitModifie = false; |
private boolean stationModifiee = false; |
156,8 → 167,9 |
private boolean dateModifiee = false; |
private boolean especeModifiee = false; |
private boolean commModifie = false; |
private boolean abondanceModifiee = false; |
private boolean certitudeModifiee = false; |
|
|
private final int KEY_ALT = 18; |
private final int KEY_BACKSPACE = 8; |
private final int KEY_CTRL = 17; |
223,8 → 235,12 |
|
private Timer tCoord; |
|
final String resultTplRefPerso = "<div class=\"search-item-commune\">{element_referentiel}</div>"; |
final String resultTplRefPerso = "<div class=\"search-item-commune\">{element_referentiel}</div>"; |
|
private ComboBox selecteurAbondance = null; |
|
private ComboBox selecteurCertitude = null; |
|
/** |
* Constructeur sans argument (privé car ne doit pas être utilisé) |
*/ |
458,6 → 474,26 |
|
panneauPremierColonne.add(espece, new AnchorLayoutData("95%")); |
|
selecteurAbondance = new ComboBox(); |
selecteurAbondance.setLabel("Abondance"); |
selecteurAbondance.setStore(getValeursAbondance()); |
selecteurAbondance.setDisplayField("label") ; |
selecteurAbondance.setValueField("valeur"); |
selecteurAbondance.setEditable(true); |
selecteurAbondance.setHideTrigger(false); |
selecteurAbondance.setForceSelection(false); |
panneauPremierColonne.add(selecteurAbondance, new AnchorLayoutData("50%")); |
|
selecteurCertitude = new ComboBox(); |
selecteurCertitude.setLabel("Certitude"); |
selecteurCertitude.setStore(getValeursCertitude()); |
selecteurCertitude.setDisplayField("label") ; |
selecteurCertitude.setValueField("valeur"); |
selecteurCertitude.setEditable(true); |
selecteurCertitude.setHideTrigger(false); |
selecteurCertitude.setForceSelection(false); |
panneauPremierColonne.add(selecteurCertitude, new AnchorLayoutData("50%")); |
|
lieudit = new AutoCompletionRefComboBox("Lieu-dit", "lieudit",observationMediateur,TypesReferentiels.REFERENTIEL_LIEU_DIT) { |
|
@Override |
571,14 → 607,35 |
}}); |
|
// on ajoute les listeners |
|
|
ajouterListeners() ; |
|
saisieTabindex(); |
|
} |
|
private Store getValeursAbondance() { |
Object[][] valeurs = {{"i : un seul individu","i"}, |
{"r : rare (quelques pieds)","r"}, |
{"+ : recouvrement R < 1%","+"}, |
{"1 : 1% < R < 5%","1"}, |
{"2 : 5% < R < 25%","2"}, |
{"3 : 25% < R < 50%","3"}, |
{"4 : 50% < R < 75%","4"}, |
{"5 : recouvrement R > 75%","5"} |
}; |
SimpleStore storeAbondance = new SimpleStore(new String[] {"label","valeur"},valeurs); |
storeAbondance.load(); |
return storeAbondance; |
} |
|
private Store getValeursCertitude() { |
Object[][] valeurs = {{"Certain","certain"}, |
{"Douteux","douteux"}, |
{"A déterminer","aDeterminer"} |
}; |
SimpleStore storeCertitude = new SimpleStore(new String[] {"label","valeur"},valeurs); |
storeCertitude.load(); |
return storeCertitude; |
} |
|
private void ajouterListeners() |
{ |
// Listener completion communne |
883,7 → 940,101 |
} |
} |
}); |
|
selecteurAbondance.addListener(new ComboBoxListenerAdapter() { |
|
@Override |
public void onSelect(ComboBox comboBox, Record record, int index) { |
selectionAbondance=true; |
abondanceModifiee = true; |
} |
}); |
|
selecteurAbondance.addKeyPressListener(new EventCallback() { |
|
@Override |
public void execute(EventObject e) { |
switch(e.getKey()) { |
case KEY_ALT: |
case KEY_CTRL: |
case KEY_DOWN: |
case KEY_END: |
case KEY_ESCAPE: |
case KEY_HOME: |
case KEY_LEFT: |
case KEY_PAGEDOWN: |
case KEY_PAGEUP: |
case KEY_RIGHT: |
case KEY_SHIFT: |
case KEY_TAB: |
case KEY_UP: |
break; |
|
case KEY_ENTER: |
if(!selectionAbondance) { |
validerSaisie(Champs.ABONDANCE); |
} else { |
selectionAbondance = false; |
} |
break; |
|
default: |
selecteurAbondance.setRawValue(selecteurAbondance.getRawValue()); |
selecteurAbondance.setValue(selecteurAbondance.getRawValue()); |
abondanceModifiee = true; |
selectionAbondance = false; |
break; |
} |
} |
}); |
|
selecteurCertitude.addListener(new ComboBoxListenerAdapter() { |
|
@Override |
public void onSelect(ComboBox comboBox, Record record, int index) { |
selectionCertitude=true; |
certitudeModifiee = true; |
} |
}); |
|
selecteurCertitude.addKeyPressListener(new EventCallback() { |
|
@Override |
public void execute(EventObject e) { |
switch(e.getKey()) { |
case KEY_ALT: |
case KEY_CTRL: |
case KEY_DOWN: |
case KEY_END: |
case KEY_ESCAPE: |
case KEY_HOME: |
case KEY_LEFT: |
case KEY_PAGEDOWN: |
case KEY_PAGEUP: |
case KEY_RIGHT: |
case KEY_SHIFT: |
case KEY_TAB: |
case KEY_UP: |
break; |
|
case KEY_ENTER: |
if(!selectionCertitude) { |
validerSaisie(Champs.CERTITUDE); |
} else { |
selectionCertitude = false; |
} |
break; |
|
default: |
selecteurCertitude.setRawValue(selecteurCertitude.getRawValue()); |
selecteurCertitude.setValue(selecteurCertitude.getRawValue()); |
certitudeModifiee = true; |
selectionCertitude = false; |
break; |
} |
} |
}); |
|
boutonOK.addListener(new ButtonListenerAdapter() { |
|
@Override |
1256,6 → 1407,9 |
obs.setLatitude(coords[0]); |
obs.setLongitude(coords[1]); |
|
obs.setAbondance(getAbondance()); |
obs.setCertitude(getCertitude()); |
|
observationMediateur.ajouterObservation(obs); |
} |
|
1300,6 → 1454,9 |
obs.setLatitude(coords[0]); |
obs.setLongitude(coords[1]); |
|
obs.setAbondance(getAbondance()); |
obs.setCertitude(getCertitude()); |
|
observationMediateur.modifierObservation(obs); |
|
selecteurMode.setValue("création"); |
1319,6 → 1476,8 |
String commM = null; |
String latM = null; |
String longM = null; |
String abondanceM = null; |
String certitudeM = null; |
|
String champs = modeleMessageModif; |
|
1403,6 → 1562,18 |
champs = champs.replaceAll(":longitude", ""); |
} |
|
if(abondanceModifiee && !selecteurAbondance.getRawValue().equals(VALEURS_MULTIPLES)) { |
abondanceM = getAbondance(); |
} else { |
champs = champs.replaceAll(":abondance", ""); |
} |
|
if(certitudeModifiee && !selecteurCertitude.getRawValue().equals(VALEURS_MULTIPLES)) { |
certitudeM = getCertitude(); |
} else { |
champs = champs.replaceAll(":certitude", ""); |
} |
|
champs = champs.replaceAll(":",", "); |
if(champs.startsWith(",")) { |
champs = champs.replaceFirst(",", ""); |
1417,6 → 1588,8 |
obs.setNumeroOrdre(numeroOrdre); |
obs.setLatitude(latM); |
obs.setLongitude(longM); |
obs.setAbondance(abondanceM); |
obs.setCertitude(certitudeM); |
if(Window.confirm(message)) { |
observationMediateur.modifierObservationEnMasse(obs); |
reinitialiserValeurModifiees(); |
1507,6 → 1680,12 |
latitude.setValue(obs.getLatitude()) ; |
longitude.setValue(obs.getLongitude()) ; |
} |
|
selecteurAbondance.getStore().load(); |
selecteurAbondance.setValue(obs.getAbondance()); |
|
selecteurCertitude.getStore().load(); |
selecteurCertitude.setValue(obs.getCertitude()); |
} |
|
|
1564,6 → 1743,14 |
afficherIndicationCommune(null); |
break; |
|
case ABONDANCE: |
selecteurAbondance.setValue(""); |
break; |
|
case CERTITUDE: |
selecteurCertitude.setValue(""); |
break; |
|
case TOUT: |
commune.reset(); |
date.reset() ; |
1576,6 → 1763,8 |
longitude.reset(); |
departement =""; |
espece.reset(); |
selecteurAbondance.clearValue(); |
selecteurCertitude.clearValue(); |
numeroNom = "" ; |
numeroOrdre = ""; |
afficherIndicationCommune(null); |
1657,6 → 1846,8 |
String notes = null; |
String lat = null; |
String lon = null; |
String abondance = null; |
String certitude = null; |
|
String ordreObs = ""; |
|
1672,6 → 1863,8 |
notes = comparerDifferencesChamps(notes, obsEnCours.getCommentaire()); |
lat = comparerDifferencesChamps(lat, obsEnCours.getLatitude()); |
lon = comparerDifferencesChamps(lon, obsEnCours.getLongitude()); |
abondance = comparerDifferencesChamps(abondance, obsEnCours.getAbondance()); |
certitude = comparerDifferencesChamps(certitude, obsEnCours.getCertitude()); |
|
ordreObs += obsEnCours.getNumeroOrdre()+","; |
} |
1680,8 → 1873,9 |
obs.setNumeroOrdre(ordreObs); |
obs.setLatitude(lat); |
obs.setLongitude(lon); |
rafraichir(obs, false); |
|
obs.setAbondance(abondance); |
obs.setCertitude(certitude); |
rafraichir(obs, false); |
} |
|
private String comparerDifferencesChamps(String valeurActuelle, String nouvelleValeur) { |
1700,8 → 1894,7 |
return retour; |
} |
|
private void reinitialiserValeurModifiees() { |
|
private void reinitialiserValeurModifiees() { |
communeModifiee = false; |
lieuDitModifie = false; |
stationModifiee = false; |
1711,6 → 1904,8 |
commModifie = false; |
latModifiee = false; |
longModifiee = false; |
abondanceModifiee = false; |
certitudeModifiee = false; |
} |
|
public void saisieTabindex() |
1739,8 → 1934,10 |
comment.setTabIndex(10); |
date.setTabIndex(11); |
espece.setTabIndex(12); |
boutonOK.setTabIndex(13); |
boutonAnnuler.setTabIndex(14); |
selecteurAbondance.setTabIndex(13); |
selecteurCertitude.setTabIndex(14); |
boutonOK.setTabIndex(15); |
boutonAnnuler.setTabIndex(16); |
|
} |
|
1847,6 → 2044,36 |
public String getCommuneSansDepartement() { |
return Util.supprimerNumDepartementChaineLocalite(getCommune()); |
} |
|
//TODO fusionner les deux fonctions et les objets qu'elles utilisent |
// car leur code est à 99% identique |
public String getAbondance() { |
String valeurAbondance = selecteurAbondance.getValue(); |
String valeurAbondanceBrute = selecteurAbondance.getRawValue(); |
|
// Test idiot qui permet de savoir si l'on utilise la valeur saisie directement ou bien la valeur |
// selectionnee car lors du setValue sur le keypress, gwtext ne prends pas en compte le dernier |
// caractère |
if(valeurAbondance.equals(valeurAbondanceBrute.substring(0, valeurAbondanceBrute.length() -1))) { |
valeurAbondance = selecteurAbondance.getRawValue(); |
} |
|
return valeurAbondance; |
} |
|
public String getCertitude() { |
String valeurCertitude = selecteurCertitude.getValue(); |
String valeurCertitudeBrute = selecteurCertitude.getRawValue(); |
|
// Test idiot qui permet de savoir si l'on utilise la valeur saisie directement ou bien la valeur |
// selectionnee car lors du setValue sur le keypress, gwtext ne prends pas en compte le dernier |
// caractère |
if(valeurCertitude.equals(valeurCertitudeBrute.substring(0, valeurCertitudeBrute.length() -1))) { |
valeurCertitude = selecteurCertitude.getRawValue(); |
} |
|
return valeurCertitude; |
} |
|
public boolean communeInitialisee() { |
return communeModifiee; |