Subversion Repositories eFlore/Applications.del

Rev

Rev 1833 | Blame | Compare with Previous | Last modification | View Log | RSS feed

package org.tela_botanica.del.client.composants.forum.interventions;

import org.tela_botanica.del.client.composants.forum.interventions.ForumInterventionPresenteur.Vue;
import org.tela_botanica.del.client.i18n.I18n;
import org.tela_botanica.del.client.modeles.Commentaire;
import org.tela_botanica.del.client.modeles.PropositionDetermination;

import com.google.gwt.core.client.GWT;
import com.google.gwt.event.dom.client.HasClickHandlers;
import com.google.gwt.event.dom.client.HasMouseOutHandlers;
import com.google.gwt.event.dom.client.HasMouseOverHandlers;
import com.google.gwt.i18n.client.DateTimeFormat;
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.HTML;
import com.google.gwt.user.client.ui.HTMLPanel;
import com.google.gwt.user.client.ui.HasWidgets;
import com.google.gwt.user.client.ui.Hyperlink;
import com.google.gwt.user.client.ui.IsWidget;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.Panel;
import com.google.gwt.user.client.ui.Widget;

public class ForumInterventionVue extends Composite implements Vue {

        private static ForumUIiBinder uiBinder = GWT.create(ForumUIiBinder.class);

        interface ForumUIiBinder extends UiBinder<Widget, ForumInterventionVue> {
        };

        @UiField
        FocusPanel proposition;

        @UiField
        Label nom, nomTaxon, date, commentaire, repondre, labelDeterminationProposee;
        
        @UiField
        HTMLPanel conteneurIntermediaireProposition, voter, zoneVoter, zoneDetermination, zoneEnfants;
        
        @UiField
        Button boutonValidationTaxon;
        
        @UiField
        FocusPanel conteneurLienSuppression;
        
        @UiField
        HTML supprimer, nbVotesHtml;
        
        @UiField
        FocusPanel conteneurPanneauVotes;
        
        
        public ForumInterventionVue() {
                initWidget(uiBinder.createAndBindUi(this));
        }
        
        @Override
        public HasClickHandlers getLienSuppression() {
                return conteneurLienSuppression;
        }
        
        @Override
        public void afficherLienSuppression() {
                conteneurLienSuppression.removeStyleName("invisible");
        }
        
        @Override
        public void cacherLienSuppression() {
                conteneurLienSuppression.addStyleName("invisible");
        }

        @Override
        public void ajouterInterventionDetermination(PropositionDetermination determination, IsWidget barreRepartition, IsWidget arbreCommentaires) {

                nom.setText(determination.getAuteur());
                nomTaxon.setText(determination.getEspece());
                
                voter.add(barreRepartition);
                
                date.setText(DateTimeFormat.getFormat("dd/MM/yyyy").format(determination.getDate()));
                
                commentaire.setText(determination.getCommentaire());
        
                if (determination.estFils()) {
                        proposition.setStyleName("enfant");
                }
                
                if(determination.estPropositionInitiale()) {
                        labelDeterminationProposee.setText(I18n.getVocabulary().determinationOriginalePar());
                        labelDeterminationProposee.addStyleName("indicationPropositionInitiale");
                } else {
                        labelDeterminationProposee.setText(I18n.getVocabulary().determinationProposeePar());
                }
                
                if(determination.estPropositionRetenue()) {
                        proposition.setTitle(I18n.getVocabulary().indicationPropositionValidee());
                        proposition.setStyleName("propositionRetenue");
                }

                boutonValidationTaxon.setTitle(I18n.getVocabulary().indicationValiderProposition());
                conteneurIntermediaireProposition.addStyleName("propositionValidable");
        }

        @Override
        public void ajouterInterventionCommentaire(Commentaire nouveauCommentaire, IsWidget arbreCommentaires) {

                zoneVoter.setVisible(false);
                zoneDetermination.setVisible(false);
                
                nom.setText(nouveauCommentaire.getAuteur());
                
                date.setText(DateTimeFormat.getFormat("dd/MM/yyyy").format(nouveauCommentaire.getDate()));
                
                commentaire.setText(nouveauCommentaire.getCommentaire());
        
                if (nouveauCommentaire.estFils()) {
                        proposition.setStyleName("enfant");
                }

                boutonValidationTaxon.setVisible(false);
        }
        
        @Override
        public HasClickHandlers getRepondre() {
                return repondre;
        }

        @Override
        public HasWidgets getEnfants() {
                
                return zoneEnfants;
        }

        @Override
        public HasMouseOverHandlers getConteneurInterventionMouseOver() {
                return proposition;
        }

        @Override
        public HasMouseOutHandlers getConteneurInterventionMouseOut() {
                return proposition;
        }
        
        public HasClickHandlers getEspece() {
                return nomTaxon;
        }
        
        public void ajouterLienEspece() {
                nomTaxon.addStyleName("labelLien");
        }
        
        public HasClickHandlers getAuteur() {
                return nom;
        }
        
        public void ajouterLienAuteur() {
                nom.addStyleName("lien");
                nom.setTitle("Voir le profil");
        }
        
        public void cacherDeterminationProposee() {
                labelDeterminationProposee.setVisible(false);
        }

        @Override
        public void ajouterLienVotes() {
                conteneurPanneauVotes.addStyleName("nombreVotes");
        }
        
        public void masquerLienVotes() {
                conteneurPanneauVotes.removeStyleName("nombreVotes");
                nbVotesHtml.setVisible(false);
        }

        @Override
        public void setNbVotes(int votes) {
                nbVotesHtml.setText(String.valueOf(votes));
        }
        
        @Override
        public HasClickHandlers getZoneNbVotes() {
                return this.conteneurPanneauVotes;
        }
        
        @Override
        public HasClickHandlers getBoutonValidationTaxon() {
                return this.boutonValidationTaxon;
        }
        
        @Override
        public void cacherBoutonValidationTaxon() {
                boutonValidationTaxon.setVisible(false);
        }
        
        @Override
        public void afficherBoutonValidationTaxon() {
                boutonValidationTaxon.setVisible(true);
        }
}