Subversion Repositories eFlore/Applications.del

Compare Revisions

Ignore whitespace Rev 1000 → Rev 1001

/trunk/src/org/tela_botanica/del/client/modeles/Observation.java
2,10 → 2,9
 
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
 
import com.google.gwt.user.client.Window;
 
public class Observation implements Serializable {
 
private static final long serialVersionUID = 840032625524143547L;
180,6 → 179,16
}
return determinations;
}
public void supprimerIntervention(InterventionForum intervention) {
if(propositions.contains(intervention)) {
propositions.remove(intervention);
} else {
for (Iterator<InterventionForum> iterator = propositions.iterator(); iterator.hasNext();) {
iterator.next().supprimerIntervention(intervention);
}
}
}
 
public List<Image> getImages() {
return images;
/trunk/src/org/tela_botanica/del/client/modeles/InterventionForum.java
94,6 → 94,16
return (listeCommentaires.size() != 0);
}
public void supprimerIntervention(InterventionForum intervention) {
if(listeCommentaires.contains(intervention)) {
listeCommentaires.remove(intervention);
} else {
for (Iterator<Commentaire> iterator = listeCommentaires.iterator(); iterator.hasNext();) {
iterator.next().supprimerIntervention(intervention);
}
}
}
public PropositionDetermination getPropositionParenteOuNulle() {
InterventionForum parent = getParent();
PropositionDetermination proposition = null;
/trunk/src/org/tela_botanica/del/client/vues/plateformedetermination/forum/ForumPresenteur.java
2,6 → 2,7
 
import java.util.ArrayList;
import java.util.List;
 
import org.tela_botanica.del.client.cache.CacheClient;
import org.tela_botanica.del.client.modeles.InterventionForum;
import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel;
9,10 → 10,15
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.vues.plateformedetermination.forum.interventions.ForumInterventionPresenteur;
import org.tela_botanica.del.client.vues.plateformedetermination.forum.interventions.ForumInterventionVue;
 
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.HasWidgets;
import com.google.gwt.user.client.ui.IsWidget;
 
21,6 → 27,8
public interface Vue extends IsWidget {
 
public abstract HasWidgets getPanneauInterventions();
public abstract void vider();
}
 
private Vue vue;
38,23 → 46,22
}
 
private void chargerDeterminations() {
List<InterventionForum> interventions = CacheClient.getInstance().getObservationCourante().getInterventionsForum();
vue.vider();
List<InterventionForum> interventions = new ArrayList<InterventionForum>(CacheClient.getInstance().getObservationCourante().getInterventionsForum());
int i = 0;
while (interventions.size() > 0 && i < 10) {
i++;
InterventionForum interventionCourante = interventions.get(0);
ForumInterventionPresenteur presenteur = new ForumInterventionPresenteur(new ForumInterventionVue(), interventionCourante);
ForumInterventionPresenteur presenteur = new ForumInterventionPresenteur(new ForumInterventionVue(), interventionCourante, new CommentaireServiceConcret(), new PropositionDeterminationServiceConcret());
String id = interventionCourante.getId() != null ? interventionCourante.getId() : "0";
List<InterventionForum> fils = trouverFils(interventions, interventionCourante);
if (fils.size() > 0) {
for (InterventionForum interventionFille : fils) {
ForumInterventionPresenteur presenteurFille = new ForumInterventionPresenteur(new ForumInterventionVue(), interventionFille);
presenteur.addEnfant(presenteurFille);
//interventions.get(interventions.indexOf(interventionFille)).afficher();
ForumInterventionPresenteur presenteurFille = new ForumInterventionPresenteur(new ForumInterventionVue(), interventionFille, new CommentaireServiceConcret(), new PropositionDeterminationServiceConcret());
presenteur.addEnfant(presenteurFille);
interventions.remove(interventions.indexOf(interventionFille));
//Window.alert(String.valueOf(interventions.indexOf(interventionFille)));
}
}
61,7 → 68,6
presenteur.go(vue.getPanneauInterventions());
interventions.remove(interventions.indexOf(interventionCourante));
}
Window.alert("fin" + i);
}
 
private List<InterventionForum> trouverFils(List<InterventionForum> interventions, InterventionForum parent) {
80,7 → 86,7
 
@Override
public void onAjoutDetermination(EvenementAjoutDetermination event) {
new ForumInterventionPresenteur(new ForumInterventionVue(), event.getPropositionDetermination()).go(vue.getPanneauInterventions());
new ForumInterventionPresenteur(new ForumInterventionVue(), event.getPropositionDetermination(), new CommentaireServiceConcret(), new PropositionDeterminationServiceConcret()).go(vue.getPanneauInterventions());
}
});
 
88,9 → 94,26
 
@Override
public void onAjoutCommentaire(EvenementAjoutCommentaire event) {
new ForumInterventionPresenteur(new ForumInterventionVue(), event.getCommentaire()).go(vue.getPanneauInterventions());
new ForumInterventionPresenteur(new ForumInterventionVue(), event.getCommentaire(), new CommentaireServiceConcret(), new PropositionDeterminationServiceConcret()).go(vue.getPanneauInterventions());
}
});
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/vues/plateformedetermination/forum/interventions/ForumInterventionVue.ui.xml
5,24 → 5,28
xmlns:vues="urn:import:org.tela_botanica.del.client.vues.plateformedetermination.forum">
<ui:with field="constants" type="org.tela_botanica.del.client.i18n.Vocabulary" />
<ui:style src="forumIntervention.css" />
<g:HTMLPanel ui:field="proposition" styleName="{style.proposition}">
<g:Label ui:field="nom" styleName="{style.nom} gauche"/>
<g:Label text="le" styleName="{style.le} gauche petit"/>
<g:Label ui:field="date" styleName="{style.date} gauche petit"/>
<g:HTMLPanel styleName="gauche nettoyage" ui:field="zoneDetermination">
<g:Label text="Détermination proposée : " styleName="{style.determination} petit" />
<g:Label ui:field="nomTaxon" styleName="{style.nomtaxon}" />
</g:HTMLPanel>
<g:HTMLPanel styleName="droite" ui:field="zoneVoter">
<g:Label text="Etes-vous d'accord ? " styleName="{style.daccord} petit gauche" />
<g:HTMLPanel ui:field="voter" styleName="{style.voter} gauche" />
</g:HTMLPanel>
<g:Label ui:field="commentaire" styleName="{style.commentaire}"/>
<g:Hyperlink text="Répondre" styleName="{style.repondre}" ui:field="repondre"/>
<g:HTMLPanel ui:field="zoneEnfants"></g:HTMLPanel>
</g:HTMLPanel>
<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:Label ui:field="nom" styleName="{style.nom} gauche"/>
<g:Label text="le" styleName="{style.le} gauche petit"/>
<g:Label ui:field="date" styleName="{style.date} gauche petit"/>
<g:HTMLPanel styleName="gauche nettoyage" ui:field="zoneDetermination">
<g:Label text="Détermination proposée : " styleName="{style.determination} petit" />
<g:Label ui:field="nomTaxon" styleName="{style.nomtaxon}" />
</g:HTMLPanel>
<g:HTMLPanel styleName="droite" ui:field="zoneVoter">
<g:Label text="Etes-vous d'accord ? " styleName="{style.daccord} petit gauche" />
<g:HTMLPanel ui:field="voter" styleName="{style.voter} gauche" />
</g:HTMLPanel>
<g:Label ui:field="commentaire" styleName="{style.commentaire}"/>
<g:Hyperlink text="Répondre" styleName="{style.repondre}" ui:field="repondre"/>
<g:HTMLPanel ui:field="zoneEnfants"></g:HTMLPanel>
</g:HTMLPanel>
</g:FocusPanel>
</ui:UiBinder>
/trunk/src/org/tela_botanica/del/client/vues/plateformedetermination/forum/interventions/ForumInterventionPresenteur.java
1,5 → 1,6
package org.tela_botanica.del.client.vues.plateformedetermination.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;
6,13 → 7,25
import org.tela_botanica.del.client.composants.formulaires.formulairecommentaire.FormulaireCommentaireVue;
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.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 org.tela_botanica.del.client.vues.plateformedetermination.forum.ArbreCommentairePresenteur;
import org.tela_botanica.del.client.vues.plateformedetermination.forum.ArbreCommentaireVue;
 
19,6 → 32,12
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;
30,15 → 49,28
void ajouterInterventionCommentaire(Commentaire commentaire, IsWidget arbreCommentaires);
HasClickHandlers getRepondre();
HasWidgets getEnfants();
HasClickHandlers getLienSuppression();
void afficherLienSuppression();
void cacherLienSuppression();
HasMouseOverHandlers getConteneurInterventionMouseOver();
HasMouseOutHandlers getConteneurInterventionMouseOut();
}
 
private Vue vue;
 
private InterventionForum interventionForum;
private CommentaireService commentaireService;
private PropositionDeterminationService propositionDeterminationService;
private FenetreOverlaySimplePresenteur overlay;
 
public ForumInterventionPresenteur(Vue vue, InterventionForum interventionForum) {
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) {
82,9 → 114,89
@Override
public void onClick(ClickEvent event) {
FormulaireCommentairePresenteur commentairePresenteur = new FormulaireCommentairePresenteur(interventionForum, new CommentaireServiceConcret(), new FormulaireCommentaireVue());
FenetreOverlaySimplePresenteur fenetreOverlaySimplePresenteur = new FenetreOverlaySimplePresenteur(new FenetreOverlayDefilanteVue());
fenetreOverlaySimplePresenteur.ouvrirFenetreModale(commentairePresenteur);
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().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/vues/plateformedetermination/forum/interventions/ForumInterventionVue.java
6,11 → 6,14
 
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.i18n.client.DateTimeFormat.PredefinedFormat;
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;
26,7 → 29,7
};
 
@UiField
HTMLPanel proposition;
FocusPanel proposition;
 
@UiField
Label nom, nomTaxon, date, commentaire;
37,9 → 40,30
@UiField
Hyperlink repondre;
@UiField
FocusPanel conteneurLienSuppression;
@UiField
HTML supprimer;
public ForumInterventionVue() {
initWidget(uiBinder.createAndBindUi(this));
}
@Override
public HasClickHandlers getLienSuppression() {
return conteneurLienSuppression;
}
@Override
public void afficherLienSuppression() {
conteneurLienSuppression.setVisible(true);
}
@Override
public void cacherLienSuppression() {
conteneurLienSuppression.setVisible(false);
}
 
@Override
public void ajouterInterventionDetermination(PropositionDetermination determination, IsWidget barreRepartition, IsWidget arbreCommentaires) {
85,4 → 109,14
return zoneEnfants;
}
 
@Override
public HasMouseOverHandlers getConteneurInterventionMouseOver() {
return proposition;
}
 
@Override
public HasMouseOutHandlers getConteneurInterventionMouseOut() {
return proposition;
}
 
}
/trunk/src/org/tela_botanica/del/client/vues/plateformedetermination/forum/interventions/forumIntervention.css
36,4 → 36,12
.repondre {
text-align:right;
cursor:pointer;
}
.suppression {
width:15px;
height:16px;
background:url('./img/cancel.png') no-repeat;
cursor: pointer;
float: right;
margin-top: -2px;
}
/trunk/src/org/tela_botanica/del/client/vues/plateformedetermination/forum/ForumVue.java
23,10 → 23,13
initWidget(uiBinder.createAndBindUi(this));
}
 
@Override
public HTMLPanel getPanneauInterventions() {
return panneauInterventions;
}
 
 
@Override
public void vider() {
panneauInterventions.clear();
}
}