Subversion Repositories eFlore/Applications.del

Compare Revisions

Ignore whitespace Rev 2066 → Rev 2067

/trunk/src/org/tela_botanica/del/client/modeles/EvenementObs.java
New file
0,0 → 1,28
package org.tela_botanica.del.client.modeles;
 
public class EvenementObs {
public String type = "";
public String infosComplementaires = "";
public EvenementObs(String type, String infosComplementaires) {
this.type = type;
this.infosComplementaires = infosComplementaires;
}
 
public String getType() {
return type;
}
 
public void setType(String type) {
this.type = type;
}
 
public String getInfosComplementaires() {
return infosComplementaires;
}
 
public void setInfosComplementaires(String infosComplementaires) {
this.infosComplementaires = infosComplementaires;
}
}
/trunk/src/org/tela_botanica/del/client/modeles/Observation.java
14,7 → 14,7
milieu, commentaire, dateReleve, station, referentiel, pays;
 
private List<String> motsClefs = new ArrayList<String>();
private List<String> evenements = new ArrayList<String>();
private List<EvenementObs> evenements = new ArrayList<EvenementObs>();
 
// les propositions sont une liste ordonnée qui contient soit des
// proposition de determinations, soit des commentaires
310,11 → 310,11
this.pays = pays;
}
public List<String> setEvenementsAssocies(List<String> evenements) {
public List<EvenementObs> setEvenementsAssocies(List<EvenementObs> evenements) {
return this.evenements = evenements;
}
public List<String> getEvenementsAssocies() {
public List<EvenementObs> getEvenementsAssocies() {
return evenements;
}
}
/trunk/src/org/tela_botanica/del/client/i18n/Vocabulary.properties
139,7 → 139,7
nouvellePropositionVousAObsAutre = Vous avez proposé un nom pour cette observation
nouvellePropositionAutreSurObsVous = Un utilisateur a proposé un nom pour votre observation
nouveauVoteVousAComAutre = Vous avez voté pour une proposition
nouveauVoteAutreSurComVous = Un utilisateur a voté pour votre proposition
nouveauVoteAutreSurComVous = Un utilisateur a voté pour votre proposition
nouvelleValidationVousAPropAutre = Vous avez validé une proposition
nouvelleValidationAutreAPropVous = Un utilisateur a validé votre proposition
nouveauVoteAutreSurComAutreObsVous = Un utilisateur à voté sur une proposition sur votre observation
/trunk/src/org/tela_botanica/del/client/utils/UtilitairesServiceResultat.java
14,6 → 14,7
import org.tela_botanica.del.client.modeles.ActiviteUtilisateur;
import org.tela_botanica.del.client.modeles.Commentaire;
import org.tela_botanica.del.client.modeles.Contributeur;
import org.tela_botanica.del.client.modeles.EvenementObs;
import org.tela_botanica.del.client.modeles.Image;
import org.tela_botanica.del.client.modeles.ImageServiceResultat;
import org.tela_botanica.del.client.modeles.InterventionForum;
108,11 → 109,14
JSONValue propositions = observationJson.get("commentaires");
JSONValue evenements = observationJson.get("evenements");
List<String> evenementsObs = new ArrayList<String>();
List<EvenementObs> evenementsObs = new ArrayList<EvenementObs>();
if (evenements != null && evenements.isArray() != null) {
JSONArray evenementsTab = evenements.isArray();
for (int i = 0; i < evenementsTab.size(); i++) {
evenementsObs.add(evenementsTab.get(i).isString().stringValue());
String type = evenementsTab.get(i).isObject().get("type").isString().stringValue();
String infosComplementaires = evenementsTab.get(i).isObject().get("infos_complementaires").isString().stringValue();
EvenementObs evtObs = new EvenementObs(type, infosComplementaires);
evenementsObs.add(evtObs);
}
}
observation.setEvenementsAssocies(evenementsObs);
/trunk/src/org/tela_botanica/del/client/utils/StringUtils.java
3,6 → 3,7
import org.tela_botanica.del.client.i18n.I18n;
 
import com.google.gwt.i18n.client.NumberFormat;
import com.google.gwt.user.client.Window;
 
public class StringUtils {
49,17 → 50,17
return NumberFormat.getFormat(patternNb.toString()).format(valeur);
}
public static String getCorrespondanceChaineEvenementObs(String evenement, int nb) {
public static String getCorrespondanceChaineEvenementObs(String evenement) {
String trad = "";
// Arghhhh pourquoi on ne peut pas faire de switch sur une string !!!!!!
// arggh arrrghghhhhhh
if(evenement.equals("nouveau_vote")) {
trad = nb > 1 ? I18n.getMessages().nouveauxVotes(nb+"") : I18n.getVocabulary().nouveauVote();
trad = I18n.getVocabulary().nouveauVote();
}
if(evenement.equals("nouveau_commentaire")) {
trad = nb > 1 ? I18n.getMessages().nouveauxCommentaires(nb+"") : I18n.getVocabulary().nouveauCommentaire();
trad = I18n.getVocabulary().nouveauCommentaire();
}
if(evenement.equals("nouvelle_observation")) {
112,4 → 113,31
return trad;
}
public static String getClasseEvenementObs(String evenement) {
String classeEvt = "";
if(evenement.equals("nouveau_commentaire_vous_a_obs_autre") ||
evenement.equals("nouveau_commentaire_autre_sur_obs_vous") ||
evenement.equals("nouvelle_reponse_autre_sur_commentaire_vous") ||
evenement.equals("nouvelle_reponse_autre_sur_proposition_vous")) {
classeEvt = "evtObsCitation";
} else {
classeEvt = "evtObsAction";
}
return classeEvt;
}
/**
* Puts ellipses in input strings that are longer than than maxCharacters. Shorter strings or
* null is returned unchanged.
* @param input the input string that may be subjected to shortening
* @param maxCharacters the maximum characters that are acceptable for the unshortended string. Must be at least 3, otherwise a string with ellipses is too long already.
* @param the number of characters that should appear after the ellipsis (0 or larger)
*/
public static String ellipsize(String input, int maxCharacters, int charactersAfterEllipsis) {
if (input == null || input.length() < maxCharacters) {
return input;
}
return input.substring(0, maxCharacters - 3 - charactersAfterEllipsis) + "..." + input.substring(input.length() - charactersAfterEllipsis);
}
}
/trunk/src/org/tela_botanica/del/client/vues/identiplante/resultats/observations/ObservationPresenteur.java
11,6 → 11,7
import org.tela_botanica.del.client.composants.observations.ObservationImagesPresenteur;
import org.tela_botanica.del.client.composants.observations.ObservationImagesVue;
import org.tela_botanica.del.client.composants.presenteur.Presenteur;
import org.tela_botanica.del.client.modeles.EvenementObs;
import org.tela_botanica.del.client.modeles.Image;
import org.tela_botanica.del.client.modeles.ModeRecherche;
import org.tela_botanica.del.client.modeles.Observation;
99,31 → 100,22
}
 
private void gererAffichageEvenementsObs() {
if(!observation.getEvenementsAssocies().isEmpty()) {
Map<String, Integer> nbEventsParEvent = new HashMap<String, Integer>();
List<String> evts = observation.getEvenementsAssocies();
for (Iterator<String> iterator = evts.iterator(); iterator.hasNext();) {
String evenement = iterator.next();
if(nbEventsParEvent.containsKey(evenement)) {
Integer nbEvent = nbEventsParEvent.get(evenement);
nbEvent++;
nbEventsParEvent.put(evenement, nbEvent);
} else {
nbEventsParEvent.put(evenement, 1);
}
}
if(!observation.getEvenementsAssocies().isEmpty()) {
List<EvenementObs> evts = observation.getEvenementsAssocies();
StringBuilder stb = new StringBuilder();
stb.append("<ul class=\"listeEvenementsObs\">");
for (Iterator<String> iterator = nbEventsParEvent.keySet().iterator(); iterator.hasNext();) {
String evtNom = (String) iterator.next();
stb.append("<li>");
stb.append(StringUtils.getCorrespondanceChaineEvenementObs(evtNom, nbEventsParEvent.get(evtNom)));
stb.append("</li>");
for (Iterator<EvenementObs> iterator = evts.iterator(); iterator.hasNext();) {
EvenementObs evt = iterator.next();
stb.append("<li>");
stb.append(StringUtils.getCorrespondanceChaineEvenementObs(evt.getType()));
if(!evt.getInfosComplementaires().isEmpty()) {
String infos = StringUtils.ellipsize(evt.getInfosComplementaires(), 50, 10);
String classeEvt = StringUtils.getClasseEvenementObs(evt.getType());
stb.append("<span class=\"evtObsinfosComplementaires "+classeEvt+"\">"+infos+"</span>");
}
stb.append("</li>");
}
stb.append("</ul>");
vue.afficherEvenementsObservation(stb.toString());
} else {
vue.cacherEvenementsObservation();