Subversion Repositories eFlore/Applications.del

Compare Revisions

Ignore whitespace Rev 1151 → Rev 1152

/trunk/src/org/tela_botanica/del/client/i18n/Vocabulary.java
2,7 → 2,7
 
/**
* Interface to represent the constants contained in resource bundle:
* '/opt/www/del/src/org/tela_botanica/del/client/i18n/Vocabulary.properties'.
* '/home/aurelien/web/del/src/org/tela_botanica/del/client/i18n/Vocabulary.properties'.
*/
public interface Vocabulary extends com.google.gwt.i18n.client.Constants {
52,6 → 52,15
String afficher();
 
/**
* Translated "Saisissez des mots clés pour décrire l'image".
*
* @return translated "Saisissez des mots clés pour décrire l'image"
*/
@DefaultStringValue("Saisissez des mots clés pour décrire l'image")
@Key("aideSaisieMotCle")
String aideSaisieMotCle();
 
/**
* Translated "Ajouter un commentaire".
*
* @return translated "Ajouter un commentaire"
664,6 → 673,15
String motsClefs();
 
/**
* Translated "Mots Clés".
*
* @return translated "Mots Clés"
*/
@DefaultStringValue("Mots Clés")
@Key("motsCles")
String motsCles();
 
/**
* Translated "Moyenne".
*
* @return translated "Moyenne"
1114,6 → 1132,15
String voirMetadonnees();
 
/**
* Translated "Voir et modifier les mots clés associés à l'image".
*
* @return translated "Voir et modifier les mots clés associés à l'image"
*/
@DefaultStringValue("Voir et modifier les mots clés associés à l'image")
@Key("voirMotsCles")
String voirMotsCles();
 
/**
* Translated "Vote modifié".
*
* @return translated "Vote modifié"
/trunk/src/org/tela_botanica/del/client/i18n/Vocabulary.properties
69,6 → 69,9
introRechercheImages = Cette galerie vous permet de rechercher les illustrations des membres du réseau issues du Carnet en ligne... et de voter pour la qualité des images selon un protocole défini.
indicationActionClicImage = Cliquez sur l'image pour l'agrandir ou sur le bandeau contenant le nom pour accéder à la fiche de l'observation
voirMetadonnees = Voir la date, le lieu et l'auteur de l'image
voirMotsCles = Voir et modifier les mots clés associés à l'image
motsCles = Mots Clés
aideSaisieMotCle = Saisissez des mots clés pour décrire l'image
 
#ecran recherche observation
rechercherObservation = Identifier une plante
/trunk/src/org/tela_botanica/del/client/navigation/evenement/ajoutmotcleimage/EvenementAjoutMotCleImage.java
1,5 → 1,8
package org.tela_botanica.del.client.navigation.evenement.ajoutmotcleimage;
 
import java.util.ArrayList;
import java.util.List;
 
import com.google.gwt.event.shared.GwtEvent;
 
public class EvenementAjoutMotCleImage extends GwtEvent<GestionnaireEvenementAjoutMotCleImage> {
6,11 → 9,20
 
public static com.google.gwt.event.shared.GwtEvent.Type<GestionnaireEvenementAjoutMotCleImage> TYPE = new com.google.gwt.event.shared.GwtEvent.Type<GestionnaireEvenementAjoutMotCleImage>();
private String idImage;
private String motCle;
private List<String> motsCles;
 
public EvenementAjoutMotCleImage(String idImage, String motCle) {
this.idImage = idImage;
this.motCle = motCle;
if(motCle.indexOf(",") != -1) {
String[] motsClesTab = motCle.split(",");
motsCles = new ArrayList<String>(motsClesTab.length);
for (int i = 0; i < motsClesTab.length; i++) {
motsCles.add(motsClesTab[i]);
}
} else {
motsCles = new ArrayList<String>(1);
motsCles.add(motCle);
}
}
 
@Override
22,8 → 34,8
return idImage;
}
public String getMotCle() {
return motCle;
public List<String> getMotsCles() {
return motsCles;
}
 
@Override
/trunk/src/org/tela_botanica/del/client/vues/rechercheimages/resultats/images/image.css
28,7 → 28,7
background: #333;
opacity: 0.9;
color: white;
width: 250px;
width: 239px;
z-index: 1000;
margin-top: 30px;
}
45,7 → 45,7
 
.voirMotsCles {
position: absolute;
background: url(./img/loupe.png) no-repeat;
background: url(./img/tagger.png) no-repeat;
width: 30px;
height: 30px;
cursor: pointer;
/trunk/src/org/tela_botanica/del/client/vues/rechercheimages/resultats/images/ImagePresenteur.java
201,6 → 201,7
vue.afficherZoneMotsCles();
motsClesOuverts = true;
motsClesImagePresenteur.chargerMotsCles(image.getIdImage());
motsClesImagePresenteur.focuserChampsSaisie();
}
protected void cacherPanneauMotsCles() {
/trunk/src/org/tela_botanica/del/client/vues/rechercheimages/resultats/images/ImageVue.java
73,14 → 73,14
imagePrincipale.setTitle(I18n.getVocabulary().indicationActionClicImage());
imagePrincipale.setAltText(image.getObservation().getAuteur() + " - " + image.getObservation().getNomRetenu());
String styleZoneVote = "image_determinee";
String styleZonePlus = "image_determinee";
if(image.estADeterminer()) {
styleZoneVote = "image_non_determinee";
styleZonePlus = "image_non_determinee";
}
zoneVoter.addStyleName(styleZoneVote);
zonePlus.setTitle(I18n.getVocabulary().voirFicheIndividu());
zonePlus.addStyleName(styleZoneVote);
zonePlus.addStyleName(styleZonePlus);
voirMotsCles.setTitle(I18n.getVocabulary().voirMotsCles());
enSavoirPlus.setTitle(I18n.getVocabulary().voirMetadonnees());
}
 
/trunk/src/org/tela_botanica/del/client/services/CalculVoteDeterminationService.java
9,7 → 9,6
import org.tela_botanica.del.client.modeles.MoyenneVote;
import org.tela_botanica.del.client.modeles.PropositionDetermination;
import org.tela_botanica.del.client.modeles.VoteDetermination;
import com.google.gwt.user.client.Window;
 
 
public class CalculVoteDeterminationService {
/trunk/src/org/tela_botanica/del/client/composants/motsclesimages/MotsClesImageVue.ui.xml
8,11 → 8,12
 
<ui:style src="MotsClesImage.css" />
<g:HTMLPanel>
<g:HTML styleName="{style.titrePanneau}" text="{constants.motsCles}"></g:HTML>
<g:HTMLPanel>
<g:Label ui:field="motsCles"></g:Label>
<g:HTMLPanel styleName="{style.panneauSaisieMotsCles}" ui:field="saisieMotsCles"></g:HTMLPanel>
</g:HTMLPanel>
<g:HTMLPanel>
<g:HTMLPanel ui:field="saisieMotsCles"></g:HTMLPanel>
<g:HTML ui:field="motsCles"></g:HTML>
</g:HTMLPanel>
</g:HTMLPanel>
</ui:UiBinder>
/trunk/src/org/tela_botanica/del/client/composants/motsclesimages/MotsClesImagePresenteur.java
1,4 → 1,5
package org.tela_botanica.del.client.composants.motsclesimages;
import java.util.Iterator;
import java.util.List;
 
import org.tela_botanica.del.client.cache.CacheClient;
63,7 → 64,12
@Override
public void onAjoutMotCleImage(EvenementAjoutMotCleImage event) {
if(idImage != null && idImage.equals(event.getIdImage())) {
motsCles.add(event.getMotCle());
List<String> motsClesAjoutes = event.getMotsCles();
for (Iterator iterator = motsClesAjoutes.iterator(); iterator
.hasNext();) {
String string = (String) iterator.next();
motsCles.add(string);
}
vue.afficherMotsCles(motsCles);
formulaireSaisieMotsClesPresenteur.viderChampSaisie();
}
70,4 → 76,8
}
});
}
 
public void focuserChampsSaisie() {
formulaireSaisieMotsClesPresenteur.focuserChampSaisie();
}
}
/trunk/src/org/tela_botanica/del/client/composants/motsclesimages/MotsClesImageVue.java
1,6 → 1,5
package org.tela_botanica.del.client.composants.motsclesimages;
 
import java.util.Iterator;
import java.util.List;
 
import com.google.gwt.core.client.GWT;
7,7 → 6,7
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.HTMLPanel;
import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.HasWidgets;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.Panel;
16,7 → 15,7
public class MotsClesImageVue extends Composite implements MotsClesImagePresenteur.Vue {
@UiField
public Label motsCles;
public HTML motsCles;
@UiField
public Panel saisieMotsCles;
35,11 → 34,14
@Override
public void afficherMotsCles(List<String> listeMotsCles) {
String chaine = "";
for (Iterator iterator = listeMotsCles.iterator(); iterator.hasNext();) {
String string = (String) iterator.next();
chaine += string+",";
Object[] tabMotsCles = listeMotsCles.toArray();
int nbMc = tabMotsCles.length;
for (int i = 0; i < tabMotsCles.length; i++) {
String string = (String)tabMotsCles[i];
chaine += "<span class=\"motCleImage\">"+string+"</span>";
chaine += (i != (nbMc - 1)) ? " " : "";
}
motsCles.setText(chaine);
motsCles.setHTML(chaine);
}
@Override
/trunk/src/org/tela_botanica/del/client/composants/motsclesimages/formulairesaisiemotclesimages/FormulaireSaisieMotsClesImageVue.java
44,4 → 44,9
public HasKeyPressHandlers getSaisieMotsClesHasKeyPressHandlers() {
return saisieMotsCles;
}
 
@Override
public void focuserChampSaisie() {
saisieMotsCles.setFocus(true);
}
}
/trunk/src/org/tela_botanica/del/client/composants/motsclesimages/formulairesaisiemotclesimages/FormulaireMotsClesImage.css
0,0 → 1,16
.espece {
font-size: 12px;
font-weight: bold;
color: white;
padding-left: 5px;
padding-right: 1px;
}
 
.aideSaisie p {
padding: 0px;
margin: 0px;
overflow: hidden;
text-overflow: ellipsis;
white-space: pre;
min-height: 13px;
}
/trunk/src/org/tela_botanica/del/client/composants/motsclesimages/formulairesaisiemotclesimages/FormulaireSaisieMotsClesImageVue.ui.xml
6,9 → 6,9
<ui:with field='res' type='org.tela_botanica.del.client.resources.Ressources' />
<ui:with field="constants" type="org.tela_botanica.del.client.i18n.Vocabulary" />
 
<ui:style src="FormulaireMotsClesImage.css" />
<ui:style src="FormulaireMotsClesImage.css" />
<g:HTMLPanel>
<g:HTML styleName="petit {style.aideSaisie}" text="{constants.aideSaisieMotCle}"></g:HTML>
<g:TextBox ui:field="saisieMotsCles"></g:TextBox>
<g:Button text="{constants.ok}" ui:field="valider"></g:Button>
</g:HTMLPanel>
/trunk/src/org/tela_botanica/del/client/composants/motsclesimages/formulairesaisiemotclesimages/FormulaireSaisieMotsClesImagePresenteur.java
24,7 → 24,8
public interface Vue extends IsWidget {
public HasClickHandlers getBoutonValider();
public HasText getSaisieMotsCles();
public HasKeyPressHandlers getSaisieMotsClesHasKeyPressHandlers();
public HasKeyPressHandlers getSaisieMotsClesHasKeyPressHandlers();
public void focuserChampSaisie();
}
 
private Vue vue;
58,7 → 59,8
}
private void validerSaisie() {
if(vue.getSaisieMotsCles().getText() != null) {
String texte = vue.getSaisieMotsCles().getText();
if(texte != null && !texte.isEmpty()) {
motsClesService.ajouterMotCleImage(idImage, vue.getSaisieMotsCles().getText(), new AjoutMotsClesImageCallBack() {
@Override
public void surRetour(Void objetRetour) {
72,4 → 74,8
public void viderChampSaisie() {
vue.getSaisieMotsCles().setText("");
}
 
public void focuserChampSaisie() {
vue.focuserChampSaisie();
}
}
/trunk/src/org/tela_botanica/del/client/composants/motsclesimages/MotsClesImage.css
0,0 → 1,20
.titrePanneau p {
padding: 0px;
margin: 0px;
overflow: hidden;
text-overflow: ellipsis;
white-space: pre;
min-height: 13px;
}
 
.titrePanneau {
font-size: 12px;
font-weight: bold;
color: white;
padding-left: 5px;
padding-right: 1px;
}
 
.panneauSaisieMotsCles {
margin-bottom: 3px;
}
/trunk/src/org/tela_botanica/del/test/services/CalculVoteDeterminationServiceTest.java
4,6 → 4,7
 
import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
 
import org.junit.Test;
19,16 → 20,19
@Test
public void testCalculerVoteDetermination() {
 
Observation obs = new Observation();
VoteDetermination voteDetermination = new VoteDetermination();
voteDetermination.setVote(1);
voteDetermination.setDate(new Date());
voteDetermination.setContributeur("benjamin");
 
PropositionDetermination propositionDetermination = new PropositionDetermination(new Observation());
PropositionDetermination propositionDetermination = new PropositionDetermination(obs);
propositionDetermination.setEspece("Iris lutescens subsp. lutescens");
propositionDetermination.setContributeur(new Contributeur("1", "contrib", "test", "contrib@test.com"));
propositionDetermination.setId("1");
propositionDetermination.ajouterVoteDetermination(voteDetermination);
obs.ajouterPropositionDetermination(propositionDetermination);
 
MoyenneVote moyenneVote = CalculVoteDeterminationService
.calculerVoteDetermination(propositionDetermination);
39,6 → 43,8
@Test
public void testCalculerVoteDeterminationPlusPopulaire() {
Observation obs = new Observation();
 
Contributeur cIdent1 = new Contributeur("1", "Peronnet", "Aurélien", "aurelien@tela-botanica.org");
Contributeur cIdent2 = new Contributeur("2", "Liens", "Benjamin", "benjamin@tela-botanica.org");
63,7 → 69,7
voteDetermination3.setContributeur(cAnon1.getId());
voteDetermination3.setAuteur(cAnon1);
 
PropositionDetermination propositionDetermination = new PropositionDetermination(new Observation());
PropositionDetermination propositionDetermination = new PropositionDetermination(obs);
propositionDetermination.setEspece("Iris lutescens subsp. lutescens");
propositionDetermination.setContributeur(new Contributeur("1", "contrib", "test", "contrib@test.com"));
propositionDetermination.setId("1");
70,7 → 76,9
propositionDetermination.ajouterVoteDetermination(voteDetermination2);
propositionDetermination.ajouterVoteDetermination(voteDetermination3);
PropositionDetermination propositionDetermination2 = new PropositionDetermination(new Observation());
obs.ajouterPropositionDetermination(propositionDetermination);
PropositionDetermination propositionDetermination2 = new PropositionDetermination(obs);
propositionDetermination2.setEspece("Iris urticans");
propositionDetermination2.setContributeur(new Contributeur("1", "contrib", "test", "contrib@test.com"));
propositionDetermination2.setId("2");
78,6 → 86,8
propositionDetermination2.ajouterVoteDetermination(voteDetermination2);
propositionDetermination2.ajouterVoteDetermination(voteDetermination3);
obs.ajouterPropositionDetermination(propositionDetermination2);
List<PropositionDetermination> listePropositions = new ArrayList<PropositionDetermination>();
listePropositions.add(propositionDetermination2);
listePropositions.add(propositionDetermination);
84,6 → 94,12
 
List<MoyenneVote> listeMoyenneVote = CalculVoteDeterminationService
.calculerVoteDeterminationPlusPopulaire(listePropositions);
for (Iterator iterator = listeMoyenneVote.iterator(); iterator
.hasNext();) {
MoyenneVote moyenneVote = (MoyenneVote) iterator.next();
System.out.println(moyenneVote.getScore());
}
 
// le premier vote est sensé être celui qui possède le plus gros score
assertTrue(listeMoyenneVote.get(0).getIntituleAssocie().equals("Iris urticans"));