/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/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/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/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/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/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/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/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/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")); |