/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; |
100,30 → 101,21 |
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); |
} |
} |
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(); |
for (Iterator<EvenementObs> iterator = evts.iterator(); iterator.hasNext();) { |
EvenementObs evt = iterator.next(); |
stb.append("<li>"); |
stb.append(StringUtils.getCorrespondanceChaineEvenementObs(evtNom, nbEventsParEvent.get(evtNom))); |
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(); |
/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/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); |
} |
} |