/trunk/src/org/tela_botanica/del/client/composants/formulairerechercheeflore/formulaireRechercheEflore.css |
---|
New file |
0,0 → 1,4 |
.propositionTaxon { |
width: 150px; |
height: 30px; |
} |
/trunk/src/org/tela_botanica/del/client/composants/formulairerechercheeflore/FormulaireRechercheEfloreVue.ui.xml |
---|
New file |
0,0 → 1,18 |
<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent"> |
<ui:UiBinder |
xmlns:ui='urn:ui:com.google.gwt.uibinder' |
xmlns:g='urn:import:com.google.gwt.user.client.ui'> |
<ui:with field="constants" type="org.tela_botanica.del.client.i18n.Vocabulary"/> |
<ui:style src="formulaireRechercheEflore.css" /> |
<g:VerticalPanel> |
<g:Label text="{constants.comparer}" styleName="sousTitre"/> |
<g:Label text="{constants.infoComparer}" styleName="petit"/> |
<g:HTML><br /></g:HTML> |
<g:HorizontalPanel > |
<g:HTMLPanel ui:field="propositionTaxon" styleName="{style.propositionTaxon}" /> |
<g:Button text="{constants.ok}" ui:field="boutonValidationRechercheObservation" /> |
</g:HorizontalPanel> |
</g:VerticalPanel> |
</ui:UiBinder> |
/trunk/src/org/tela_botanica/del/client/composants/formulairerechercheeflore/FormulaireRechercheEflorePresenteur.java |
---|
New file |
0,0 → 1,80 |
package org.tela_botanica.del.client.composants.formulairerechercheeflore; |
import org.tela_botanica.del.client.cache.CacheClient; |
import org.tela_botanica.del.client.composants.formulaires.autocompletion.AutoCompletionComboBoxPresenteur; |
import org.tela_botanica.del.client.composants.formulaires.autocompletion.AutoCompletionComboBoxVue; |
import org.tela_botanica.del.client.config.Config; |
import org.tela_botanica.del.client.i18n.I18n; |
import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel; |
import org.tela_botanica.del.client.navigation.evenement.comparaisoneflore.EvenementComparaisonEflore; |
import org.tela_botanica.del.client.utils.UtilitairesAutoCompletionService; |
import com.google.gwt.event.dom.client.ClickEvent; |
import com.google.gwt.event.dom.client.ClickHandler; |
import com.google.gwt.event.dom.client.KeyCodes; |
import com.google.gwt.event.dom.client.KeyPressEvent; |
import com.google.gwt.event.dom.client.KeyPressHandler; |
import com.google.gwt.http.client.Response; |
import com.google.gwt.user.client.ui.HasWidgets; |
public class FormulaireRechercheEflorePresenteur { |
private FormulaireRechercheEfloreVue formulaireRechercheEfloreVue = new FormulaireRechercheEfloreVue(); |
private AutoCompletionComboBoxPresenteur autoCompletionNomTaxonsPresenteur; |
public FormulaireRechercheEflorePresenteur() { |
creerCompletionTaxons(); |
} |
public void go(HasWidgets composite) { |
autoCompletionNomTaxonsPresenteur.go(formulaireRechercheEfloreVue.getPropositionTaxon()); |
composite.add(formulaireRechercheEfloreVue); |
gererEvenements(); |
} |
private void gererEvenements() { |
formulaireRechercheEfloreVue.getBoutonValidationRechercheObservation().addClickHandler(new ClickHandler() { |
@Override |
public void onClick(ClickEvent event) { |
lancerRechercheEflore(); |
} |
}); |
autoCompletionNomTaxonsPresenteur.getAutoCompletionComboBoxVue().getSuggestBoxHasKeyPressHandlers().addKeyPressHandler(new KeyPressHandler() { |
@Override |
public void onKeyPress(KeyPressEvent event) { |
if (event.getNativeEvent().getKeyCode() == KeyCodes.KEY_ENTER) { |
lancerRechercheEflore(); |
} |
} |
}); |
} |
private void creerCompletionTaxons() { |
String url = new Config().getServiceBaseUrl() + "nomstaxons"; |
autoCompletionNomTaxonsPresenteur = new AutoCompletionComboBoxPresenteur(new AutoCompletionComboBoxVue(), url) { |
protected String effectuerPreTraitementChaineRequete(String requete) { |
requete = "?masque.nom=" + requete; |
return UtilitairesAutoCompletionService.effectuerPreTraitementChaineRequeteGenreEspeceSlash(requete); |
} |
@Override |
protected String[] parserResultatRequete(Response response) { |
return UtilitairesAutoCompletionService.parserResultatRetourSimple(response); |
} |
}; |
} |
private void lancerRechercheEflore() { |
CacheClient.getInstance().setTaxonPourRechercheEflore(autoCompletionNomTaxonsPresenteur.getValeur()); |
EvenementComparaisonEflore evenementComparaisonEflore = new EvenementComparaisonEflore(autoCompletionNomTaxonsPresenteur.getValeur()); |
BusEvenementiel.getInstance().fireEvent(evenementComparaisonEflore); |
} |
} |
/trunk/src/org/tela_botanica/del/client/composants/formulairerechercheeflore/FormulaireRechercheEfloreVue.java |
---|
New file |
0,0 → 1,38 |
package org.tela_botanica.del.client.composants.formulairerechercheeflore; |
import com.google.gwt.core.client.GWT; |
import com.google.gwt.uibinder.client.UiBinder; |
import com.google.gwt.uibinder.client.UiField; |
import com.google.gwt.user.client.ui.Button; |
import com.google.gwt.user.client.ui.Composite; |
import com.google.gwt.user.client.ui.HasText; |
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 FormulaireRechercheEfloreVue extends Composite { |
@UiField(provided = true) |
public Button boutonValidationRechercheObservation = new Button(); |
@UiField |
public Panel propositionTaxon; |
interface FormulaireRechercheEfloreUIiBinder extends UiBinder<Widget, FormulaireRechercheEfloreVue> { |
}; |
FormulaireRechercheEfloreUIiBinder uiBinder = GWT.create(FormulaireRechercheEfloreUIiBinder.class); |
public FormulaireRechercheEfloreVue() { |
initWidget(uiBinder.createAndBindUi(this)); |
} |
public Button getBoutonValidationRechercheObservation() { |
return boutonValidationRechercheObservation; |
} |
public Panel getPropositionTaxon() { |
return propositionTaxon; |
} |
} |
/trunk/src/org/tela_botanica/del/client/composants/observations/ObservationImagesPresenteur.java |
---|
15,7 → 15,9 |
import org.tela_botanica.del.client.navigation.evenement.changementimagevalidation.EvenementChangementImageValidation; |
import org.tela_botanica.del.client.navigation.evenement.changementimagevalidation.GestionnaireEvenementChangementImageValidation; |
import org.tela_botanica.del.client.navigation.evenement.validationobservation.EvenementValidation; |
import org.tela_botanica.del.client.navigation.evenement.validationobservationpictoflora.EvenementValidationPictoflora; |
import com.google.gwt.core.shared.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; |
85,15 → 87,26 |
} |
protected void gererEvenements() { |
vue.getLienPlateforme().addClickHandler(new ClickHandler() { |
if (this.page.equals(ConstantesNavigation.PAGE_VALIDATION)) { |
vue.getLienPlateforme().addClickHandler(new ClickHandler() { |
@Override |
public void onClick(ClickEvent arg0) { |
BusEvenementiel.getInstance().fireEvent(new EvenementValidation(observation)); |
} |
}); |
} else { |
vue.getLienPlateforme().addClickHandler(new ClickHandler() { |
@Override |
public void onClick(ClickEvent arg0) { |
BusEvenementiel.getInstance().fireEvent(new EvenementValidationPictoflora(observation)); |
} |
}); |
} |
@Override |
public void onClick(ClickEvent arg0) { |
BusEvenementiel.getInstance().fireEvent(new EvenementValidation(observation)); |
} |
}); |
BusEvenementiel.getInstance().addHandler(EvenementChangementImageValidation.TYPE, new GestionnaireEvenementChangementImageValidation() { |
@Override |
/trunk/src/org/tela_botanica/del/client/composants/commentaires/LigneCommentaireVue.ui.xml |
---|
1,7 → 1,7 |
<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent"> |
<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder' |
xmlns:g='urn:import:com.google.gwt.user.client.ui' |
xmlns:vues="urn:import:org.tela_botanica.del.client.vues.plateformedetermination.forum"> |
xmlns:vues="urn:import:org.tela_botanica.del.client.composants.forum"> |
<ui:with field="constants" type="org.tela_botanica.del.client.i18n.Vocabulary" /> |
<ui:style src="ligneCommentaire.css" /> |
/trunk/src/org/tela_botanica/del/client/composants/commentaires/DetailCommentaireVue.ui.xml |
---|
2,7 → 2,7 |
<ui:UiBinder |
xmlns:ui='urn:ui:com.google.gwt.uibinder' |
xmlns:g='urn:import:com.google.gwt.user.client.ui' |
xmlns:vues="urn:import:org.tela_botanica.del.client.vues.plateformedetermination.forum"> |
xmlns:vues="urn:import:org.tela_botanica.del.client.composants.forum"> |
<ui:with field="constants" type="org.tela_botanica.del.client.i18n.Vocabulary" /> |
<ui:style src="detailCommentaireVue.css" /> |
<g:HTMLPanel styleName="{style.conteneurTableauVotes}"> |
/trunk/src/org/tela_botanica/del/client/composants/formulaires/formulaireproposition/FormulairePropositionVue.ui.xml |
---|
2,7 → 2,7 |
<ui:UiBinder |
xmlns:ui='urn:ui:com.google.gwt.uibinder' |
xmlns:g='urn:import:com.google.gwt.user.client.ui' |
xmlns:vues="urn:import:org.tela_botanica.del.client.vues.plateformedetermination.forum"> |
xmlns:vues="urn:import:org.tela_botanica.del.client.composants.forum"> |
<ui:with field="constants" type="org.tela_botanica.del.client.i18n.Vocabulary"/> |
<ui:style src="formulaireProposition.css" /> |
/trunk/src/org/tela_botanica/del/client/composants/forum/ArbreCommentairePresenteur.java |
---|
New file |
0,0 → 1,40 |
package org.tela_botanica.del.client.composants.forum; |
import org.tela_botanica.del.client.modeles.InterventionForum; |
import com.google.gwt.user.client.ui.HasWidgets; |
import com.google.gwt.user.client.ui.IsWidget; |
public class ArbreCommentairePresenteur { |
private InterventionForum possesseurDeCommentaires; |
public interface Vue extends IsWidget { |
public void creerArbreCommentaire(InterventionForum possesseurDeCommentaires); |
} |
private Vue vue; |
public ArbreCommentairePresenteur(Vue vue, InterventionForum possesseurDeCommentaires) { |
this.vue = vue; |
this.possesseurDeCommentaires = possesseurDeCommentaires; |
vue.creerArbreCommentaire(this.possesseurDeCommentaires); |
} |
public void go(HasWidgets composite) { |
composite.add(vue.asWidget()); |
} |
public IsWidget getArbreCommentaireVue() { |
return vue; |
} |
public InterventionForum getPossesseurDeCommentaires() { |
return possesseurDeCommentaires; |
} |
public void gererEvenements() { |
} |
} |
/trunk/src/org/tela_botanica/del/client/composants/forum/ArbreCommentaireVue.java |
---|
New file |
0,0 → 1,50 |
package org.tela_botanica.del.client.composants.forum; |
import java.util.ArrayList; |
import java.util.Date; |
import java.util.List; |
import org.tela_botanica.del.client.modeles.Commentaire; |
import org.tela_botanica.del.client.modeles.InterventionForum; |
import com.google.gwt.i18n.client.DateTimeFormat; |
import com.google.gwt.i18n.client.DateTimeFormat.PredefinedFormat; |
import com.google.gwt.user.client.ui.HTML; |
import com.google.gwt.user.client.ui.Tree; |
import com.google.gwt.user.client.ui.TreeItem; |
public class ArbreCommentaireVue extends Tree implements ArbreCommentairePresenteur.Vue { |
public ArbreCommentaireVue() { |
super(); |
} |
public void creerArbreCommentaire(InterventionForum possesseurDeCommentaires) { |
TreeItem racineArbreCommentaires = new TreeItem(); |
addItem(racineArbreCommentaires); |
if (possesseurDeCommentaires instanceof Commentaire) { |
List<Commentaire> commentaires = new ArrayList<Commentaire>(); |
commentaires.add((Commentaire) possesseurDeCommentaires); |
creerListeCommentaireRecursive(racineArbreCommentaires, commentaires); |
} else { |
creerListeCommentaireRecursive(racineArbreCommentaires, possesseurDeCommentaires.getListeCommentaires()); |
} |
} |
private void creerListeCommentaireRecursive(TreeItem parentTreeItem, List<Commentaire> commentaires) { |
for (Commentaire commentaire : commentaires) { |
String commentaireHTML = commentaire.getCommentaire(); |
HTML commentaireWidget = new HTML(commentaireHTML); |
parentTreeItem.setWidget(commentaireWidget); |
if (commentaire.getListeCommentaires().size() != 0) { |
TreeItem childTreeItem = new TreeItem(); |
parentTreeItem.addItem(childTreeItem); |
creerListeCommentaireRecursive(childTreeItem, commentaire.getListeCommentaires()); |
} |
} |
parentTreeItem.setState(true); |
} |
} |
/trunk/src/org/tela_botanica/del/client/composants/forum/forum.css |
---|
New file |
0,0 → 1,0 |
.table {} |
/trunk/src/org/tela_botanica/del/client/composants/forum/ForumVue.ui.xml |
---|
New file |
0,0 → 1,11 |
<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent"> |
<ui:UiBinder |
xmlns:ui='urn:ui:com.google.gwt.uibinder' |
xmlns:g='urn:import:com.google.gwt.user.client.ui' |
xmlns:vues="urn:import:org.tela_botanica.del.client.composants.forum"> |
<ui:with field="constants" type="org.tela_botanica.del.client.i18n.Vocabulary" /> |
<ui:style src="forum.css" /> |
<g:HTMLPanel> |
<g:HTMLPanel ui:field='panneauInterventions' styleName="{style.table}" /> |
</g:HTMLPanel> |
</ui:UiBinder> |
/trunk/src/org/tela_botanica/del/client/composants/forum/ForumPresenteur.java |
---|
New file |
0,0 → 1,114 |
package org.tela_botanica.del.client.composants.forum; |
import java.util.Collections; |
import java.util.List; |
import org.tela_botanica.del.client.cache.CacheClient; |
import org.tela_botanica.del.client.composants.forum.interventions.ForumInterventionPresenteur; |
import org.tela_botanica.del.client.composants.forum.interventions.ForumInterventionVue; |
import org.tela_botanica.del.client.modeles.Commentaire; |
import org.tela_botanica.del.client.modeles.InterventionForum; |
import org.tela_botanica.del.client.modeles.PropositionDetermination; |
import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel; |
import org.tela_botanica.del.client.navigation.evenement.ajoutcommentaire.EvenementAjoutCommentaire; |
import org.tela_botanica.del.client.navigation.evenement.ajoutcommentaire.GestionnaireEvenementAjoutCommentaire; |
import org.tela_botanica.del.client.navigation.evenement.ajoutdetermination.EvenementAjoutDetermination; |
import org.tela_botanica.del.client.navigation.evenement.ajoutdetermination.GestionnaireEvenementAjoutDetermination; |
import org.tela_botanica.del.client.navigation.evenement.suppressioncommentaire.EvenementSuppressionCommentaire; |
import org.tela_botanica.del.client.navigation.evenement.suppressioncommentaire.GestionnaireEvenementSuppressionCommentaire; |
import org.tela_botanica.del.client.navigation.evenement.suppressiondetermination.EvenementSuppressionDetermination; |
import org.tela_botanica.del.client.navigation.evenement.suppressiondetermination.GestionnaireEvenementSuppressionDetermination; |
import org.tela_botanica.del.client.services.rest.CommentaireServiceConcret; |
import org.tela_botanica.del.client.services.rest.PropositionDeterminationServiceConcret; |
import org.tela_botanica.del.client.utils.ComparateurPropositionDetermination; |
import com.google.gwt.user.client.ui.HasWidgets; |
import com.google.gwt.user.client.ui.IsWidget; |
public class ForumPresenteur { |
public interface Vue extends IsWidget { |
public abstract HasWidgets getPanneauInterventions(); |
public abstract void vider(); |
} |
private Vue vue; |
public ForumPresenteur(Vue vue) { |
this.vue = vue; |
} |
public void go(HasWidgets composite) { |
chargerDeterminations(); |
composite.add(vue.asWidget()); |
gererEvenements(); |
} |
private void chargerDeterminations() { |
vue.vider(); |
List<PropositionDetermination> interventions = CacheClient.getInstance().getObservationCourante().getPropositionDeterminations(); |
Collections.sort(interventions, new ComparateurPropositionDetermination()); |
for (InterventionForum interventionCourante : interventions) { |
ForumInterventionPresenteur presenteur = new ForumInterventionPresenteur(new ForumInterventionVue(), interventionCourante, new CommentaireServiceConcret(), new PropositionDeterminationServiceConcret()); |
presenteur.go(vue.getPanneauInterventions()); |
ajouterCommentairesRecursivement(interventionCourante, presenteur); |
} |
List<Commentaire> commentaires = CacheClient.getInstance().getObservationCourante().getCommentairesForum(); |
for (InterventionForum interventionCourante : commentaires) { |
ForumInterventionPresenteur presenteur = new ForumInterventionPresenteur(new ForumInterventionVue(), interventionCourante, new CommentaireServiceConcret(), new PropositionDeterminationServiceConcret()); |
presenteur.go(vue.getPanneauInterventions()); |
ajouterCommentairesRecursivement(interventionCourante, presenteur); |
} |
} |
private void ajouterCommentairesRecursivement(InterventionForum interventionCourante, ForumInterventionPresenteur presenteur) { |
List<Commentaire> fils = interventionCourante.getListeCommentaires(); |
for (InterventionForum interventionFils : fils) { |
ForumInterventionPresenteur presenteurFils = new ForumInterventionPresenteur(new ForumInterventionVue(), interventionFils, new CommentaireServiceConcret(), new PropositionDeterminationServiceConcret()); |
ajouterCommentairesRecursivement(interventionFils, presenteurFils); |
presenteur.ajouterEnfant(presenteurFils); |
} |
} |
private void gererEvenements() { |
BusEvenementiel.getInstance().addHandler(EvenementAjoutDetermination.TYPE, new GestionnaireEvenementAjoutDetermination() { |
@Override |
public void onAjoutDetermination(EvenementAjoutDetermination event) { |
chargerDeterminations(); |
} |
}); |
BusEvenementiel.getInstance().addHandler(EvenementAjoutCommentaire.TYPE, new GestionnaireEvenementAjoutCommentaire() { |
@Override |
public void onAjoutCommentaire(EvenementAjoutCommentaire event) { |
chargerDeterminations(); |
} |
}); |
BusEvenementiel.getInstance().addHandler(EvenementSuppressionDetermination.TYPE, new GestionnaireEvenementSuppressionDetermination() { |
@Override |
public void onSuppressionDetermination(EvenementSuppressionDetermination event) { |
chargerDeterminations(); |
} |
}); |
BusEvenementiel.getInstance().addHandler(EvenementSuppressionCommentaire.TYPE, new GestionnaireEvenementSuppressionCommentaire() { |
@Override |
public void onSuppressionCommentaire(EvenementSuppressionCommentaire event) { |
chargerDeterminations(); |
} |
}); |
} |
} |
/trunk/src/org/tela_botanica/del/client/composants/forum/interventions/ForumInterventionPresenteur.java |
---|
New file |
0,0 → 1,266 |
package org.tela_botanica.del.client.composants.forum.interventions; |
import org.tela_botanica.del.client.cache.CacheClient; |
import org.tela_botanica.del.client.composants.fenetreoverlay.FenetreOverlayDefilanteVue; |
import org.tela_botanica.del.client.composants.fenetreoverlay.FenetreOverlaySimplePresenteur; |
import org.tela_botanica.del.client.composants.formulaires.formulairecommentaire.FormulaireCommentairePresenteur; |
import org.tela_botanica.del.client.composants.formulaires.formulairecommentaire.FormulaireCommentaireVue; |
import org.tela_botanica.del.client.composants.forum.ArbreCommentairePresenteur; |
import org.tela_botanica.del.client.composants.forum.ArbreCommentaireVue; |
import org.tela_botanica.del.client.composants.votes.barrerepartition.BarreRepartitionVotePresenteur; |
import org.tela_botanica.del.client.composants.votes.barrerepartition.BarreRepartitionVoteVue; |
import org.tela_botanica.del.client.composants.votes.details.DetailListeVotesDeterminationPresenteur; |
import org.tela_botanica.del.client.composants.votes.details.DetailListeVotesDeterminationVue; |
import org.tela_botanica.del.client.config.Config; |
import org.tela_botanica.del.client.i18n.I18n; |
import org.tela_botanica.del.client.modeles.Commentaire; |
import org.tela_botanica.del.client.modeles.InterventionForum; |
import org.tela_botanica.del.client.modeles.MoyenneVote; |
import org.tela_botanica.del.client.modeles.PropositionDetermination; |
import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel; |
import org.tela_botanica.del.client.navigation.evenement.ajoutcommentaire.EvenementAjoutCommentaire; |
import org.tela_botanica.del.client.navigation.evenement.ajoutcommentaire.GestionnaireEvenementAjoutCommentaire; |
import org.tela_botanica.del.client.navigation.evenement.ajoutdetermination.EvenementAjoutDetermination; |
import org.tela_botanica.del.client.navigation.evenement.ajoutdetermination.GestionnaireEvenementAjoutDetermination; |
import org.tela_botanica.del.client.navigation.evenement.suppressioncommentaire.EvenementSuppressionCommentaire; |
import org.tela_botanica.del.client.navigation.evenement.suppressiondetermination.EvenementSuppressionDetermination; |
import org.tela_botanica.del.client.services.CalculVoteDeterminationService; |
import org.tela_botanica.del.client.services.rest.CommentaireService; |
import org.tela_botanica.del.client.services.rest.CommentaireServiceConcret; |
import org.tela_botanica.del.client.services.rest.PropositionDeterminationService; |
import org.tela_botanica.del.client.services.rest.VoteDeterminationServiceConcret; |
import org.tela_botanica.del.client.services.rest.async.SuppressionCommentaireCallback; |
import org.tela_botanica.del.client.services.rest.async.SuppressionPropositionDeterminationCallback; |
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.event.dom.client.HasMouseOutHandlers; |
import com.google.gwt.event.dom.client.HasMouseOverHandlers; |
import com.google.gwt.event.dom.client.MouseOutEvent; |
import com.google.gwt.event.dom.client.MouseOutHandler; |
import com.google.gwt.event.dom.client.MouseOverEvent; |
import com.google.gwt.event.dom.client.MouseOverHandler; |
import com.google.gwt.user.client.Window; |
import com.google.gwt.user.client.ui.HasWidgets; |
import com.google.gwt.user.client.ui.IsWidget; |
public class ForumInterventionPresenteur { |
public interface Vue extends IsWidget { |
void ajouterInterventionDetermination(PropositionDetermination determination, IsWidget barreRepartition, IsWidget arbreCommentaires); |
void ajouterInterventionCommentaire(Commentaire commentaire, IsWidget arbreCommentaires); |
HasClickHandlers getRepondre(); |
HasWidgets getEnfants(); |
HasClickHandlers getLienSuppression(); |
void afficherLienSuppression(); |
void cacherLienSuppression(); |
HasMouseOverHandlers getConteneurInterventionMouseOver(); |
HasMouseOutHandlers getConteneurInterventionMouseOut(); |
HasClickHandlers getEspece(); |
void ajouterLienEspece(); |
HasClickHandlers getAuteur(); |
void ajouterLienAuteur(); |
void cacherDeterminationProposee(); |
void ajouterLienVotes(); |
void masquerLienVotes(); |
void setNbVotes(int votes); |
public HasClickHandlers getZoneNbVotes(); |
} |
private Vue vue; |
private InterventionForum interventionForum; |
private CommentaireService commentaireService; |
private PropositionDeterminationService propositionDeterminationService; |
private FenetreOverlaySimplePresenteur overlay; |
private int nbVotes; |
public ForumInterventionPresenteur(Vue vue, InterventionForum interventionForum, CommentaireService commentaireService, PropositionDeterminationService propositionDeterminationService) { |
this.vue = vue; |
this.interventionForum = interventionForum; |
this.commentaireService = commentaireService; |
this.propositionDeterminationService = propositionDeterminationService; |
} |
public void go(HasWidgets composite) { |
chargerIntervention(); |
composite.add(vue.asWidget()); |
gererEvenements(); |
} |
public void ajouterEnfant(ForumInterventionPresenteur presenteur) { |
presenteur.go(vue.getEnfants()); |
} |
private void chargerIntervention() { |
if (interventionForum instanceof PropositionDetermination) { |
ajouterPropositionDetermination((PropositionDetermination) interventionForum); |
} else if (interventionForum instanceof Commentaire) { |
ajouterCommentaire((Commentaire) interventionForum); |
vue.cacherDeterminationProposee(); |
} |
} |
private void ajouterPropositionDetermination(PropositionDetermination propositionDetermination) { |
this.nbVotes = propositionDetermination.getVotesDeterminations().size(); |
BarreRepartitionVotePresenteur barreRepartitionVotePresenteur = new BarreRepartitionVotePresenteur(new BarreRepartitionVoteVue(), new VoteDeterminationServiceConcret()); |
barreRepartitionVotePresenteur.toggleNomEspece(); |
calculerEtAfficherVoteDetermination(barreRepartitionVotePresenteur, propositionDetermination); |
ArbreCommentairePresenteur arbreCommentairePresenteur = new ArbreCommentairePresenteur(new ArbreCommentaireVue(), propositionDetermination); |
vue.ajouterInterventionDetermination(propositionDetermination, barreRepartitionVotePresenteur.getBarreRepartitionVoteVue(), arbreCommentairePresenteur.getArbreCommentaireVue()); |
final String nn = propositionDetermination.getNumNomenclatural(); |
if (nn != null) { |
vue.ajouterLienEspece(); |
vue.getEspece().addClickHandler(new ClickHandler() { |
@Override |
public void onClick(ClickEvent event) { |
Config config = new Config(); |
Window.open(config.getUrl("efloreTaxon") + nn, "Fiche eflore", null); |
} |
}); |
} |
final String idContributeur = propositionDetermination.getContributeur().getId(); |
if (idContributeur != null) { |
vue.ajouterLienAuteur(); |
vue.getAuteur().addClickHandler(new ClickHandler() { |
@Override |
public void onClick(ClickEvent event) { |
Config config = new Config(); |
Window.open(config.getUrl("annuaire") + idContributeur, "Consultation de l'annuaire", null); |
} |
}); |
} |
} |
private void ajouterCommentaire(Commentaire proposition) { |
ArbreCommentairePresenteur arbreCommentairePresenteur = new ArbreCommentairePresenteur(new ArbreCommentaireVue(), proposition); |
vue.ajouterInterventionCommentaire(proposition, arbreCommentairePresenteur.getArbreCommentaireVue()); |
} |
private void calculerEtAfficherVoteDetermination(BarreRepartitionVotePresenteur barreRepartitionVotePresenteur, PropositionDetermination propositionDetermination) { |
MoyenneVote votes = CalculVoteDeterminationService.calculerVoteDetermination(propositionDetermination); |
barreRepartitionVotePresenteur.afficherVotes(votes); |
} |
private void gererEvenements() { |
if (this.nbVotes > 0) { |
vue.setNbVotes(this.nbVotes); |
vue.ajouterLienVotes(); |
vue.getZoneNbVotes().addClickHandler(new ClickHandler() { |
@Override |
public void onClick(ClickEvent event) { |
if (nbVotes > 0) { |
FenetreOverlaySimplePresenteur fenetreOverlaySimplePresenteur = new FenetreOverlaySimplePresenteur( |
new FenetreOverlayDefilanteVue()); |
DetailListeVotesDeterminationPresenteur detailListeVotesDeterminationPresenteur = new DetailListeVotesDeterminationPresenteur( |
new DetailListeVotesDeterminationVue()); |
fenetreOverlaySimplePresenteur |
.ouvrirFenetreModale(detailListeVotesDeterminationPresenteur); |
detailListeVotesDeterminationPresenteur |
.afficherVotes((PropositionDetermination) interventionForum); |
} |
} |
}); |
} else { |
vue.masquerLienVotes(); |
} |
vue.getRepondre().addClickHandler(new ClickHandler() { |
@Override |
public void onClick(ClickEvent event) { |
FormulaireCommentairePresenteur commentairePresenteur = new FormulaireCommentairePresenteur(interventionForum, new CommentaireServiceConcret(), new FormulaireCommentaireVue()); |
overlay = new FenetreOverlaySimplePresenteur(new FenetreOverlayDefilanteVue()); |
overlay.ouvrirFenetreModale(commentairePresenteur); |
} |
}); |
vue.getConteneurInterventionMouseOver().addMouseOverHandler(new MouseOverHandler() { |
@Override |
public void onMouseOver(MouseOverEvent event) { |
if(peutSupprimerIntervention()) { |
vue.afficherLienSuppression(); |
} |
} |
}); |
vue.getConteneurInterventionMouseOut().addMouseOutHandler(new MouseOutHandler() { |
@Override |
public void onMouseOut(MouseOutEvent event) { |
if(peutSupprimerIntervention()) { |
vue.cacherLienSuppression(); |
} |
} |
}); |
vue.getLienSuppression().addClickHandler(new ClickHandler() { |
@Override |
public void onClick(ClickEvent event) { |
String message = ""; |
if (interventionForum instanceof PropositionDetermination) { |
message = I18n.getVocabulary().confirmationSuppressionDetermination(); |
} else if (interventionForum instanceof Commentaire) { |
message = I18n.getVocabulary().confirmationSuppressionCommentaire(); |
} |
if(Window.confirm(message)) { |
supprimerIntervention(); |
} |
} |
}); |
vue.cacherLienSuppression(); |
BusEvenementiel.getInstance().addHandler(EvenementAjoutDetermination.TYPE, new GestionnaireEvenementAjoutDetermination() { |
@Override |
public void onAjoutDetermination(EvenementAjoutDetermination event) { |
if(overlay != null && overlay.fenetreModaleEstOuverte()) { |
overlay.fermerFenetreModale(); |
} |
} |
}); |
BusEvenementiel.getInstance().addHandler(EvenementAjoutCommentaire.TYPE, new GestionnaireEvenementAjoutCommentaire() { |
@Override |
public void onAjoutCommentaire(EvenementAjoutCommentaire event) { |
if(overlay != null && overlay.fenetreModaleEstOuverte()) { |
overlay.fermerFenetreModale(); |
} |
} |
}); |
} |
private boolean peutSupprimerIntervention() { |
return (!interventionForum.aDesCommentaires() && interventionForum.getContributeur() != null && interventionForum.getContributeur().getId().equals(CacheClient.getInstance().getUtilisateur().getId())); |
} |
private void supprimerIntervention() { |
if(interventionForum instanceof PropositionDetermination) { |
propositionDeterminationService.supprimerProposition((PropositionDetermination)interventionForum, new SuppressionPropositionDeterminationCallback() { |
@Override |
public void surRetour(String objetRetour) { |
CacheClient.getInstance().getObservationCourante().supprimerIntervention(interventionForum); |
BusEvenementiel.getInstance().fireEvent(new EvenementSuppressionDetermination((PropositionDetermination)interventionForum)); |
} |
}); |
} |
if(interventionForum instanceof Commentaire) { |
commentaireService.supprimerCommentaire((Commentaire)interventionForum, new SuppressionCommentaireCallback() { |
@Override |
public void surRetour(String objetRetour) { |
CacheClient.getInstance().getObservationCourante().supprimerIntervention(interventionForum); |
BusEvenementiel.getInstance().fireEvent(new EvenementSuppressionCommentaire((Commentaire)interventionForum)); |
} |
}); |
} |
} |
} |
/trunk/src/org/tela_botanica/del/client/composants/forum/interventions/ForumInterventionVue.java |
---|
New file |
0,0 → 1,166 |
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.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.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 voter, zoneVoter, zoneDetermination, zoneEnfants; |
@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"); |
} |
} |
@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"); |
} |
} |
@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)); |
} |
public HasClickHandlers getZoneNbVotes() { |
return this.conteneurPanneauVotes; |
} |
} |
/trunk/src/org/tela_botanica/del/client/composants/forum/interventions/forumIntervention.css |
---|
New file |
0,0 → 1,82 |
.nombreVotes { |
width:15px; |
height:16px; |
padding-left: 10px; |
float:right; |
margin-left:10px; |
} |
.infobulle { |
background: none repeat scroll 0 0 #1A5AC3; |
color: white; |
font-size: 11px; |
height: 11px; |
line-height: 0.9; |
margin-left: 2px; |
margin-top: 8px; |
min-width: 7px; |
padding: 1px; |
position: absolute; |
} |
.proposition { |
width:550px; |
padding:10px; |
background:#EEE; |
margin-bottom:5px; |
} |
.nom { |
margin-right:4px; |
margin-top:1px; |
} |
.le { |
margin-top:1px; |
} |
.date { |
margin-left:3px; |
margin-top:1px; |
} |
.determination { |
clear:left; |
float:left; |
margin-top:1px; |
margin-right:3px; |
} |
.nomtaxon { |
float:left; |
font-size:15px; |
} |
.voter div{ |
font-size:18px; |
color:#333; |
text-align:right; |
margin-bottom:-3px; |
} |
.commentaire { |
clear:left |
} |
.daccord { |
clear:left; |
margin-right:5px; |
} |
.repondre { |
margin-top:3px; |
float:left; |
cursor:pointer; |
margin-bottom:5px; |
font-size:10px; |
} |
.suppression { |
width:15px; |
height:16px; |
background:url('./img/cancel.png') no-repeat; |
cursor: pointer; |
margin-top:-15px; |
margin-left:99%; |
position:relative; |
} |
.labelVoter { |
padding-left:9px; |
} |
/trunk/src/org/tela_botanica/del/client/composants/forum/interventions/ForumInterventionVue.ui.xml |
---|
New file |
0,0 → 1,36 |
<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent"> |
<ui:UiBinder |
xmlns:ui='urn:ui:com.google.gwt.uibinder' |
xmlns:g='urn:import:com.google.gwt.user.client.ui' |
xmlns:vues="urn:import:org.tela_botanica.del.client.composants.forum"> |
<ui:with field="constants" type="org.tela_botanica.del.client.i18n.Vocabulary" /> |
<ui:style src="forumIntervention.css" /> |
<g:FocusPanel ui:field="proposition" styleName="{style.proposition}"> |
<g:HTMLPanel> |
<g:FocusPanel ui:field="conteneurLienSuppression" styleName="{style.suppression}"> |
<g:HTML ui:field="supprimer" /> |
</g:FocusPanel> |
<g:HTMLPanel styleName="gauche nettoyage" ui:field="zoneDetermination"> |
<g:Label ui:field="nomTaxon" styleName="{style.nomtaxon}" /> |
</g:HTMLPanel> |
<g:HTMLPanel styleName="droite" ui:field="zoneVoter"> |
<g:HorizontalPanel> |
<g:Label text="Score " styleName="petit" /> |
<g:Label text="Voter" styleName="{style.labelVoter} petit" /> |
</g:HorizontalPanel> |
<g:HTMLPanel ui:field="voter" styleName="{style.voter} gauche" /> |
<g:FocusPanel ui:field="conteneurPanneauVotes" styleName="{style.nombreVotes}"> |
<g:HTML ui:field="nbVotesHtml" styleName="{style.infobulle}"/> |
</g:FocusPanel> |
</g:HTMLPanel> |
<g:Label text="Détermination proposée par " ui:field="labelDeterminationProposee" styleName="{style.determination} petit" /> |
<g:Label ui:field="nom" styleName="{style.nom} petit gauche" /> |
<g:Label text="le" styleName="{style.le} gauche petit"/> |
<g:Label ui:field="date" styleName="{style.date} gauche petit"/> |
<g:Label ui:field="commentaire" styleName="{style.commentaire}"/> |
<g:Label text="Répondre" styleName="{style.repondre} labelLien" ui:field="repondre"/> |
<g:HTML><br /></g:HTML> |
<g:HTMLPanel ui:field="zoneEnfants"></g:HTMLPanel> |
</g:HTMLPanel> |
</g:FocusPanel> |
</ui:UiBinder> |
/trunk/src/org/tela_botanica/del/client/composants/forum/ForumVue.java |
---|
New file |
0,0 → 1,36 |
package org.tela_botanica.del.client.composants.forum; |
import org.tela_botanica.del.client.composants.forum.ForumPresenteur.Vue; |
import com.google.gwt.core.client.GWT; |
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.Widget; |
public class ForumVue extends Composite implements Vue { |
private static ForumUIiBinder uiBinder = GWT.create(ForumUIiBinder.class); |
interface ForumUIiBinder extends UiBinder<Widget, ForumVue> { |
}; |
@UiField |
HTMLPanel panneauInterventions; |
public ForumVue() { |
initWidget(uiBinder.createAndBindUi(this)); |
} |
@Override |
public HTMLPanel getPanneauInterventions() { |
return panneauInterventions; |
} |
@Override |
public void vider() { |
panneauInterventions.clear(); |
} |
} |
/trunk/src/org/tela_botanica/del/client/composants/votes/details/LigneVoteVue.ui.xml |
---|
1,7 → 1,7 |
<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent"> |
<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder' |
xmlns:g='urn:import:com.google.gwt.user.client.ui' |
xmlns:vues="urn:import:org.tela_botanica.del.client.vues.plateformedetermination.forum"> |
xmlns:vues="urn:import:org.tela_botanica.del.client.composants.forum"> |
<ui:with field="constants" type="org.tela_botanica.del.client.i18n.Vocabulary" /> |
<ui:style src="ligneVote.css" /> |
/trunk/src/org/tela_botanica/del/client/composants/votes/details/DetailListeVotesDeterminationVue.ui.xml |
---|
2,7 → 2,7 |
<ui:UiBinder |
xmlns:ui='urn:ui:com.google.gwt.uibinder' |
xmlns:g='urn:import:com.google.gwt.user.client.ui' |
xmlns:vues="urn:import:org.tela_botanica.del.client.vues.plateformedetermination.forum"> |
xmlns:vues="urn:import:org.tela_botanica.del.client.composants.forum"> |
<ui:with field="constants" type="org.tela_botanica.del.client.i18n.Vocabulary" /> |
<ui:style src="detailListeVotesDeterminationVue.css" /> |
<g:HTMLPanel styleName="{style.conteneurTableauVotes}"> |