/trunk/src/org/tela_botanica/del/client/vues/rechercheimages/resultats/images/ImagePresenteur.java |
---|
58,6 → 58,7 |
public abstract HasWidgets getZoneVoter(); |
public HasClickHandlers getNomAuteur(); |
public HasClickHandlers getNomEspece(); |
} |
85,7 → 86,8 |
private void loadValidationData() { |
vue.getZoneVoter().clear(); |
List<VoteProtocole> observationValidationDatas = validationService.getVoteByImageAndProtocol(image.getIdImage(), protocole.getNom()); |
new MoyenneVotePresenteur(observationValidationDatas).go(vue.getZoneVoter()); |
new MoyenneVotePresenteur(observationValidationDatas, image.getIdImage(), protocole).go(vue.getZoneVoter()); |
} |
private void lancerEvenementValidation() { |
/trunk/src/org/tela_botanica/del/client/vues/rechercheimages/vote/MoyenneVoteVue.java |
---|
3,13 → 3,20 |
import java.util.List; |
import org.cobogw.gwt.user.client.ui.Rating; |
import org.tela_botanica.del.client.i18n.I18n; |
import org.tela_botanica.del.client.modeles.VoteProtocole; |
import com.google.gwt.core.client.GWT; |
import com.google.gwt.event.dom.client.ClickEvent; |
import com.google.gwt.event.dom.client.ClickHandler; |
import com.google.gwt.event.dom.client.HasClickHandlers; |
import com.google.gwt.uibinder.client.UiBinder; |
import com.google.gwt.uibinder.client.UiField; |
import com.google.gwt.user.client.Window; |
import com.google.gwt.user.client.ui.Button; |
import com.google.gwt.user.client.ui.Composite; |
import com.google.gwt.user.client.ui.FocusPanel; |
import com.google.gwt.user.client.ui.HasText; |
import com.google.gwt.user.client.ui.Label; |
import com.google.gwt.user.client.ui.Widget; |
21,7 → 28,9 |
} |
private static MyUiBinder uiBinder = GWT.create(MyUiBinder.class); |
private Rating votes; |
private int valeurOrigine; |
@UiField |
FocusPanel voter; |
28,23 → 37,78 |
@UiField |
Label nbVotes; |
@UiField |
Button boutonVoter, boutonAnnuler; |
protected MoyenneVoteVue(List<VoteProtocole> validationDatas) { |
initWidget(uiBinder.createAndBindUi(this)); |
votes = new Rating(0, 5); |
votes.setReadOnly(false); |
voter.add(votes); |
masquerBoutonAnnuler(); |
masquerBoutonVoter(); |
rafraichir(validationDatas); |
} |
public HasClickHandlers getBoutonVoter() { |
return boutonVoter; |
} |
public HasClickHandlers getBoutonAnnuler() { |
return boutonAnnuler; |
} |
public HasText getNbVotes() { |
return nbVotes; |
} |
public HasClickHandlers getVotes() { |
return votes; |
} |
public void afficherBoutonVoter() { |
boutonVoter.setVisible(true); |
} |
public void afficherBoutonAnnuler() { |
boutonAnnuler.setVisible(true); |
} |
public void masquerBoutonVoter() { |
boutonVoter.setVisible(false); |
} |
public void masquerBoutonAnnuler() { |
boutonAnnuler.setVisible(false); |
} |
public void afficherNbVotes () { |
nbVotes.setVisible(true); |
} |
public void masquerNbVotes () { |
nbVotes.setVisible(false); |
} |
public void reinitialiserVotes() { |
votes.setValue(valeurOrigine); |
} |
public void rafraichir(List<VoteProtocole> validationDatas) { |
int meanVote = 0; |
int nbVote = 0; |
for (VoteProtocole imageCelValidationData : validationDatas) { |
meanVote += imageCelValidationData.getVote(); |
nbVote++; |
} |
if (nbVote > 0) |
if (nbVote > 0) { |
meanVote /= nbVote; |
Rating rating = new Rating(meanVote, 5); |
rating.setReadOnly(true); |
voter.add(rating); |
nbVotes.setText(String.valueOf(validationDatas.size())); |
} |
votes.setValue(nbVote); |
valeurOrigine = nbVote; |
nbVotes.setText(String.valueOf(validationDatas.size()) + " " +I18n.getVocabulary().nbVotes()); |
} |
} |
/trunk/src/org/tela_botanica/del/client/vues/rechercheimages/vote/moyenne.css |
---|
1,4 → 1,6 |
.moyenne {} |
.petit {font-size:11px; color:#AAA} |
.voter {/*position:absolute; margin-top:65px; margin-left:20px;*/} |
.barreVote {padding:0 5px 0 5px} |
.voter {/*position:absolute; margin-top:65px; margin-left:20px;*/ padding-left:30px} |
.barreVote {padding:0 5px 0 5px} |
.validerVote {font-size:11px;margin-left:5px } |
.annuler {background:url("./img/cancel.png") no-repeat; border:none; padding-left:16px; padding-top:16px; margin-left:5px} |
/trunk/src/org/tela_botanica/del/client/vues/rechercheimages/vote/MoyenneVoteVue.ui.xml |
---|
6,8 → 6,11 |
<g:HTMLPanel styleName="{style.moyenne}"> |
<g:HorizontalPanel styleName="{style.voter}"> |
<g:Label text="{constants.votez} :" styleName="{style.petit}"/> |
<g:FocusPanel ui:field="voter" styleName="{style.barreVote}"/> |
<g:Label ui:field="nbVotes" styleName="{style.petit}"/> <g:Label text="vote(s)" styleName="{style.petit}"/> |
<g:Label ui:field="nbVotes" styleName="{style.petit}"/> |
<g:Button ui:field="boutonVoter" text="OK" styleName="{style.validerVote}"></g:Button> |
<g:Button ui:field="boutonAnnuler" text=" " styleName="{style.annuler}"></g:Button> |
</g:HorizontalPanel> |
</g:HTMLPanel> |
</ui:UiBinder> |
/trunk/src/org/tela_botanica/del/client/vues/rechercheimages/vote/MoyenneVotePresenteur.java |
---|
2,19 → 2,74 |
import java.util.List; |
import org.tela_botanica.del.client.modeles.Protocole; |
import org.tela_botanica.del.client.modeles.VoteProtocole; |
import org.tela_botanica.del.client.services.rest.VoteProtocoleService; |
import org.tela_botanica.del.client.utils.MockDatasource; |
import com.google.gwt.event.dom.client.ClickEvent; |
import com.google.gwt.event.dom.client.ClickHandler; |
import com.google.gwt.user.client.Window; |
import com.google.gwt.user.client.ui.HasWidgets; |
public class MoyenneVotePresenteur { |
private MoyenneVoteVue view; |
public MoyenneVotePresenteur(List<VoteProtocole> validationDatas) { |
view = new MoyenneVoteVue(validationDatas); |
private MoyenneVoteVue vue; |
private Protocole protocole; |
private final VoteProtocoleService voteProtocoleService = MockDatasource.getInstance(); |
private String idImage; |
private final MockDatasource validationService = MockDatasource.getInstance(); |
public MoyenneVotePresenteur(List<VoteProtocole> validationDatas, String idImage, Protocole protocole) { |
vue = new MoyenneVoteVue(validationDatas); |
this.protocole = protocole; |
this.idImage = idImage; |
} |
public void go(HasWidgets container) { |
container.add(view); |
container.add(vue); |
gererEvenements(); |
} |
public void gererEvenements() { |
vue.getVotes().addClickHandler(new ClickHandler() { |
@Override |
public void onClick(ClickEvent event) { |
vue.afficherBoutonVoter(); |
vue.afficherBoutonAnnuler(); |
vue.masquerNbVotes(); |
} |
}); |
vue.getBoutonAnnuler().addClickHandler(new ClickHandler() { |
@Override |
public void onClick(ClickEvent event) { |
vue.masquerBoutonVoter(); |
vue.masquerBoutonAnnuler(); |
vue.afficherNbVotes(); |
vue.reinitialiserVotes(); |
} |
}); |
vue.getBoutonVoter().addClickHandler(new ClickHandler() { |
@Override |
public void onClick(ClickEvent event) { |
enregistrerVote(); |
vue.masquerBoutonVoter(); |
vue.masquerBoutonAnnuler(); |
vue.afficherNbVotes(); |
vue.reinitialiserVotes(); |
} |
}); |
} |
public void enregistrerVote() { |
VoteProtocole voteProtocole = new VoteProtocole(); |
voteProtocole.setProtocole(this.protocole); |
voteProtocoleService.saveVote(idImage, voteProtocole); |
List<VoteProtocole> observationValidationDatas = validationService.getVoteByImageAndProtocol(idImage, protocole.getNom()); |
vue.rafraichir(observationValidationDatas); |
} |
} |