/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; |
181,6 → 180,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); |
ForumInterventionPresenteur presenteurFille = new ForumInterventionPresenteur(new ForumInterventionVue(), interventionFille, new CommentaireServiceConcret(), new PropositionDeterminationServiceConcret()); |
presenteur.addEnfant(presenteurFille); |
//interventions.get(interventions.indexOf(interventionFille)).afficher(); |
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/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/interventions/ForumInterventionVue.ui.xml |
---|
5,7 → 5,11 |
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: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"/> |
24,5 → 28,5 |
<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,6 → 49,11 |
void ajouterInterventionCommentaire(Commentaire commentaire, IsWidget arbreCommentaires); |
HasClickHandlers getRepondre(); |
HasWidgets getEnfants(); |
HasClickHandlers getLienSuppression(); |
void afficherLienSuppression(); |
void cacherLienSuppression(); |
HasMouseOverHandlers getConteneurInterventionMouseOver(); |
HasMouseOutHandlers getConteneurInterventionMouseOut(); |
} |
private Vue vue; |
36,9 → 60,17 |
private InterventionForum interventionForum; |
public ForumInterventionPresenteur(Vue vue, InterventionForum interventionForum) { |
private CommentaireService commentaireService; |
private PropositionDeterminationService propositionDeterminationService; |
private FenetreOverlaySimplePresenteur overlay; |
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,11 → 40,32 |
@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) { |
nom.setText(determination.getAuteur()); |
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/ForumVue.java |
---|
23,10 → 23,13 |
initWidget(uiBinder.createAndBindUi(this)); |
} |
@Override |
public HTMLPanel getPanneauInterventions() { |
return panneauInterventions; |
} |
@Override |
public void vider() { |
panneauInterventions.clear(); |
} |
} |