Subversion Repositories eFlore/Applications.del

Compare Revisions

Problem with comparison.

Ignore whitespace Rev HEAD → Rev 876

/trunk/src/org/tela_botanica/del/client/vues/plateformedetermination/DeterminationVue.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:forum="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="determinationVue.css" />
<g:HTMLPanel styleName="limiteMin">
<g:HTMLPanel>
<g:Label text="{constants.metadonnees}" styleName="titre"/>
<g:HTMLPanel ui:field="metadonnees" />
</g:HTMLPanel>
<g:HTMLPanel styleName="{style.zoneDetailImage}">
<g:VerticalPanel ui:field="detailImageObservation" styleName="{style.zoneImage}"/>
<g:HTMLPanel ui:field="voteProtocole" />
</g:HTMLPanel>
<g:HTMLPanel styleName="{style.zoneVote}">
<g:Label styleName="titre" text="{constants.titreDetermination}" />
<g:HTMLPanel>
<g:Label styleName="gauche">Détermination la plus probable :&nbsp;</g:Label>
<g:Label ui:field="nomTaxonProbable" styleName="gauche gras"/>
</g:HTMLPanel>
<g:HTMLPanel styleName="nettoyage {style.boutons}">
<g:Button text="{constants.proposerSaDetermination}" ui:field="boutonAjoutProposition" styleName="bouton" />
<g:Button text="{constants.ajouterCommentaire}" ui:field="boutonAjoutCommentaire" styleName="bouton" />
</g:HTMLPanel>
<g:VerticalPanel ui:field="forum" />
</g:HTMLPanel>
<g:HTMLPanel styleName="{style.zoneOutils} gauche">
<g:VerticalPanel ui:field="formulaireRechercheEflore"/>
</g:HTMLPanel>
</g:HTMLPanel>
 
</ui:UiBinder>
/trunk/src/org/tela_botanica/del/client/vues/plateformedetermination/DeterminationPresenteur.java
New file
0,0 → 1,180
package org.tela_botanica.del.client.vues.plateformedetermination;
 
import java.util.Iterator;
import java.util.List;
 
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.formulaires.formulaireproposition.FormulairePropositionPresenteur;
import org.tela_botanica.del.client.composants.formulaires.formulaireproposition.FormulairePropositionVue;
import org.tela_botanica.del.client.composants.metadonnees.MetadonneesEnLigneVue;
import org.tela_botanica.del.client.composants.metadonnees.MetadonneesPresenteur;
import org.tela_botanica.del.client.composants.observations.ObservationImagesPresenteur;
import org.tela_botanica.del.client.composants.observations.ObservationImagesVue;
import org.tela_botanica.del.client.composants.presenteur.Presenteur;
import org.tela_botanica.del.client.modeles.ModeRecherche;
import org.tela_botanica.del.client.modeles.MoyenneVote;
import org.tela_botanica.del.client.modeles.ObservationServiceResultat;
import org.tela_botanica.del.client.modeles.Protocole;
import org.tela_botanica.del.client.modeles.ProtocoleServiceResultat;
import org.tela_botanica.del.client.modeles.VoteDetermination;
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.voteDetermination.EvenementVoteDetermination;
import org.tela_botanica.del.client.navigation.evenement.voteDetermination.GestionnaireEvenementVoteDetermination;
import org.tela_botanica.del.client.services.CalculVoteDeterminationService;
import org.tela_botanica.del.client.services.rest.ObservationService;
import org.tela_botanica.del.client.services.rest.ObservationServiceConcret;
import org.tela_botanica.del.client.services.rest.ProtocoleService;
import org.tela_botanica.del.client.services.rest.ProtocoleServiceConcret;
import org.tela_botanica.del.client.services.rest.async.ObservationsCallback;
import org.tela_botanica.del.client.services.rest.async.ProtocolesCallback;
import org.tela_botanica.del.client.vues.plateformedetermination.formulairerechercheeflore.FormulaireRechercheEflorePresenteur;
import org.tela_botanica.del.client.vues.plateformedetermination.forum.ForumPresenteur;
import org.tela_botanica.del.client.vues.plateformedetermination.forum.ForumVue;
import org.tela_botanica.del.client.vues.plateformedetermination.ligneProtocole.LigneProtocolePresenteur;
import org.tela_botanica.del.client.vues.plateformedetermination.ligneProtocole.LigneProtocoleVue;
 
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.HasWidgets;
import com.google.gwt.user.client.ui.IsWidget;
import com.google.gwt.user.client.ui.Panel;
 
public class DeterminationPresenteur extends Presenteur {
 
public interface Vue extends IsWidget {
public Panel getForum();
public Panel getDetailImageObservation();
public Panel getFormulaireRechercheEflore();
public Panel getVoteProtocole();
public Button getBoutonAjoutProposition();
public Button getBoutonAjoutCommentaire();
public HasWidgets getMetadonnees();
//public void ajouterLigneVoteProtocole(IsWidget vue);
//public void ajouterLigneVoteProtocole(String nom, IsWidget vue);
public HasWidgets getNouvelleLigneProtocole();
public void afficherNomTaxonProbable(String nomTaxon);
}
 
private Vue vue;
 
FenetreOverlaySimplePresenteur fenetreOverlaySimplePresenteur;
private ProtocoleService protocoleService = new ProtocoleServiceConcret();
private ObservationService observationService = new ObservationServiceConcret();
 
public DeterminationPresenteur(Vue vue) {
this.vue = vue;
}
 
public void go(final HasWidgets composite) {
//TODO afficher une icone de chargement si le chargement devient trop long
// car tout l'écran est asynchrone ici
observationService.getObservation(CacheClient.getInstance().getObservationCourante().getId(), new ObservationsCallback() {
//@Override
public void surObservationsRecues(
ObservationServiceResultat observationsRecues) {
CacheClient.getInstance().setImageCourante(CacheClient.getInstance().getObservationCourante().getImages().get(0));
new MetadonneesPresenteur(new MetadonneesEnLigneVue(), CacheClient.getInstance().getObservationCourante(), ModeRecherche.MODE_OBSERVATION).go(vue.getMetadonnees());
new ObservationImagesPresenteur(new ObservationImagesVue(), CacheClient.getInstance().getObservationCourante()).go(vue.getDetailImageObservation());
 
chargerEtAjouterLignesVotesProtocole();
new ForumPresenteur(new ForumVue()).go(vue.getForum());
new FormulaireRechercheEflorePresenteur().go(vue.getFormulaireRechercheEflore());
 
calculerEtAfficherVoteDeterminationPlusPopulaire();
composite.add(vue.asWidget());
}
});
gererEvenements();
}
 
private void chargerEtAjouterLignesVotesProtocole() {
if(CacheClient.getInstance().getListeProtocoles() == null) {
protocoleService.getProtocoles(new ProtocolesCallback() {
@Override
public void surProtocolesRecus(ProtocoleServiceResultat protocolesRecus) {
List<Protocole> listeProtocoles = protocolesRecus.getProtocoles();
ajouterLignesVotesProtocole(listeProtocoles);
}
});
} else {
List<Protocole> listeProtocoles = CacheClient.getInstance().getListeProtocoles();
ajouterLignesVotesProtocole(listeProtocoles);
}
}
private void ajouterLignesVotesProtocole(List<Protocole> listeProtocoles) {
for (Iterator<Protocole> iterator = listeProtocoles.iterator(); iterator.hasNext();) {
Protocole protocole = iterator.next();
LigneProtocolePresenteur presenteurLigneProtocole = new LigneProtocolePresenteur(protocole, new LigneProtocoleVue());
presenteurLigneProtocole.go(vue.getNouvelleLigneProtocole());
}
}
private void calculerEtAfficherVoteDeterminationPlusPopulaire() {
 
List<MoyenneVote> votesOrdonnes = CalculVoteDeterminationService.calculerVoteDeterminationPlusPopulaire(CacheClient.getInstance().getObservationCourante().getPropositionDeterminations());
if (votesOrdonnes.size() > 0) {
String nomTaxon = votesOrdonnes.get(0).getIntituleAssocie();
vue.afficherNomTaxonProbable(nomTaxon);
}
}
 
public void gererEvenements() {
BusEvenementiel.getInstance().addHandler(EvenementVoteDetermination.TYPE, new GestionnaireEvenementVoteDetermination() {
@Override
public void onVoteDetermination(VoteDetermination event) {
calculerEtAfficherVoteDeterminationPlusPopulaire();
}
});
 
vue.getBoutonAjoutProposition().addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
fenetreOverlaySimplePresenteur = new FenetreOverlaySimplePresenteur(new FenetreOverlayDefilanteVue());
fenetreOverlaySimplePresenteur.ouvrirFenetreModale(new FormulairePropositionPresenteur(new FormulairePropositionVue()));
}
});
vue.getBoutonAjoutCommentaire().addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
FormulaireCommentairePresenteur commentairePresenteur = new FormulaireCommentairePresenteur(CacheClient.getInstance().getObservationCourante(), new FormulaireCommentaireVue());
fenetreOverlaySimplePresenteur = new FenetreOverlaySimplePresenteur(new FenetreOverlayDefilanteVue());
fenetreOverlaySimplePresenteur.ouvrirFenetreModale(commentairePresenteur);
}
});
 
BusEvenementiel.getInstance().addHandler(EvenementAjoutDetermination.TYPE, new GestionnaireEvenementAjoutDetermination() {
@Override
public void onAjoutDetermination(EvenementAjoutDetermination event) {
if (fenetreOverlaySimplePresenteur != null && fenetreOverlaySimplePresenteur.fenetreModaleEstOuverte()) {
fenetreOverlaySimplePresenteur.fermerFenetreModale();
}
}
});
BusEvenementiel.getInstance().addHandler(EvenementAjoutCommentaire.TYPE, new GestionnaireEvenementAjoutCommentaire() {
 
@Override
public void onAjoutCommentaire(EvenementAjoutCommentaire event) {
if (fenetreOverlaySimplePresenteur != null && fenetreOverlaySimplePresenteur.fenetreModaleEstOuverte()) {
fenetreOverlaySimplePresenteur.fermerFenetreModale();
}
}
});
}
}
/trunk/src/org/tela_botanica/del/client/vues/plateformedetermination/DeterminationVue.java
New file
0,0 → 1,76
package org.tela_botanica.del.client.vues.plateformedetermination;
 
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.HTMLPanel;
import com.google.gwt.user.client.ui.HasWidgets;
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 DeterminationVue extends Composite implements DeterminationPresenteur.Vue {
 
@UiField
Panel forum, detailImageObservation, formulaireRechercheEflore, voteProtocole;
@UiField
Label nomTaxonProbable;
@UiField
Button boutonAjoutProposition, boutonAjoutCommentaire;
@UiField
Panel metadonnees;
 
interface DeterminationUIiBinder extends UiBinder<Widget, DeterminationVue> {
};
 
private static DeterminationUIiBinder uiBinder = GWT.create(DeterminationUIiBinder.class);
 
public DeterminationVue() {
initWidget(uiBinder.createAndBindUi(this));
}
 
public Panel getForum() {
return forum;
}
 
public Panel getDetailImageObservation() {
return detailImageObservation;
}
 
public Panel getFormulaireRechercheEflore() {
return formulaireRechercheEflore;
}
 
public Panel getVoteProtocole() {
return voteProtocole;
}
public Button getBoutonAjoutProposition() {
return boutonAjoutProposition;
}
public Panel getMetadonnees() {
return metadonnees;
}
 
@Override
public void afficherNomTaxonProbable(String nomTaxon) {
this.nomTaxonProbable.setText(nomTaxon);
}
 
@Override
public HasWidgets getNouvelleLigneProtocole() {
HTMLPanel nouvelleLigne = new HTMLPanel("");
this.voteProtocole.add(nouvelleLigne);
return nouvelleLigne;
}
 
public Button getBoutonAjoutCommentaire() {
return boutonAjoutCommentaire;
}
}
/trunk/src/org/tela_botanica/del/client/vues/plateformedetermination/detail/DetailImageObservationVue.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'>
 
<ui:with field="constants" type="org.tela_botanica.del.client.i18n.Vocabulary"/>
<ui:style src="detailObservation.css" />
<g:VerticalPanel>
<g:Image ui:field="imageObservation"/>
<g:VerticalPanel ui:field="detailObservation" styleName="{style.detailObservation}">
<g:HorizontalPanel styleName="{style.observateur}">
<!-- g:Label text="{constants.observateur} : "/ -->
<g:Label ui:field="nomObservateur" /><g:HTML>&nbsp;-&nbsp;</g:HTML><g:Label ui:field="localite" /><g:HTML>&nbsp;-&nbsp;</g:HTML><g:Label ui:field="dateObservation" />
</g:HorizontalPanel>
<g:HorizontalPanel>
<!-- <g:Label text="{constants.nom_retenu} : "/> -->
<g:Label ui:field="nomRetenu" styleName="{style.nomRetenu}"/>
</g:HorizontalPanel>
<g:HorizontalPanel styleName="{style.date}">
<!-- <g:Label text="{constants.date_observation} : "/> -->
</g:HorizontalPanel>
<g:HorizontalPanel>
<!-- <g:Label text="{constants.famille} : "/> -->
<g:HorizontalPanel><g:Label ui:field="famille" /></g:HorizontalPanel>
</g:HorizontalPanel>
<g:HorizontalPanel>
<!-- <g:Label text="{constants.localite} : "/> -->
</g:HorizontalPanel>
</g:VerticalPanel>
</g:VerticalPanel>
 
</ui:UiBinder>
/trunk/src/org/tela_botanica/del/client/vues/plateformedetermination/detail/DetailImageObservationPresenteur.java
New file
0,0 → 1,24
package org.tela_botanica.del.client.vues.plateformedetermination.detail;
 
import org.tela_botanica.del.client.cache.CacheClient;
 
import com.google.gwt.user.client.ui.HasWidgets;
import com.google.gwt.user.client.ui.IsWidget;
 
public class DetailImageObservationPresenteur {
public interface Vue extends IsWidget {
public void chargerInformationsObservation(org.tela_botanica.del.client.modeles.Image image);
}
 
private Vue vue;
public DetailImageObservationPresenteur(Vue vue) {
this.vue = vue;
}
 
public void go(HasWidgets composite) {
vue.chargerInformationsObservation(CacheClient.getInstance().getImageCourante());
composite.add(vue.asWidget());
}
}
/trunk/src/org/tela_botanica/del/client/vues/plateformedetermination/detail/DetailImageObservationVue.java
New file
0,0 → 1,38
package org.tela_botanica.del.client.vues.plateformedetermination.detail;
 
 
 
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.Image;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.Widget;
 
public class DetailImageObservationVue extends Composite implements DetailImageObservationPresenteur.Vue {
 
@UiField
protected Image imageObservation;
 
@UiField
protected Label nomObservateur, nomRetenu, dateObservation, famille, localite;
 
private static DetailImageObservationUIiBinder uiBinder = GWT.create(DetailImageObservationUIiBinder.class);
 
interface DetailImageObservationUIiBinder extends UiBinder<Widget, DetailImageObservationVue> {
};
 
public DetailImageObservationVue() {
initWidget(uiBinder.createAndBindUi(this));
}
 
public void chargerInformationsObservation(org.tela_botanica.del.client.modeles.Image image) {
imageObservation.setUrl(image.getUrl());
nomObservateur.setText(image.getObservation().getAuteur());
nomRetenu.setText(image.getObservation().getNomRetenu());
famille.setText(image.getObservation().getFamille());
localite.setText(image.getObservation().getLocalite());
dateObservation.setText(image.getObservation().getDateReleve());
}
}
/trunk/src/org/tela_botanica/del/client/vues/plateformedetermination/detail/detailObservation.css
New file
0,0 → 1,27
.detailObservation {
font-size: 11px;
position: absolute;
padding: 5px;
color: white;
background: #333;
opacity: 0.8;
margin-top: -80px;
width: 230px;
}
 
.observateur td {
font-size: 11px;
white-space: nowrap
}
 
.date {
}
 
.nomRetenu {
font-weight: bold
}
 
.dateObservation {
}
/trunk/src/org/tela_botanica/del/client/vues/plateformedetermination/ligneProtocole/ligneProtocole.css
New file
0,0 → 1,7
.nomProtocole {
font-size: 11px;
overflow: hidden;
text-overflow: ellipsis;
width: 87px;
margin-bottom:15px;
}
/trunk/src/org/tela_botanica/del/client/vues/plateformedetermination/ligneProtocole/LigneProtocoleVue.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:forum="urn:import:org.tela_botanica.del.client.vues.plateformedetermination.forum">
<ui:style src="ligneProtocole.css" />
<g:HorizontalPanel>
<g:Label ui:field="nom" styleName="{style.nomProtocole}" />
<g:HTMLPanel ui:field="zoneVote" />
</g:HorizontalPanel>
</ui:UiBinder>
/trunk/src/org/tela_botanica/del/client/vues/plateformedetermination/ligneProtocole/LigneProtocolePresenteur.java
New file
0,0 → 1,48
package org.tela_botanica.del.client.vues.plateformedetermination.ligneProtocole;
 
 
import org.tela_botanica.del.client.cache.CacheClient;
import org.tela_botanica.del.client.composants.votes.moyennevotes.MoyenneVotePresenteur;
import org.tela_botanica.del.client.composants.votes.moyennevotes.MoyenneVoteVue;
import org.tela_botanica.del.client.modeles.Image;
import org.tela_botanica.del.client.modeles.Protocole;
import com.google.gwt.user.client.ui.HasWidgets;
import com.google.gwt.user.client.ui.IsWidget;
 
public class LigneProtocolePresenteur {
 
public interface Vue extends IsWidget {
 
void setNom(String nom);
HasWidgets getZoneVote();
}
 
private Vue vue;
private Protocole protocole;
 
public LigneProtocolePresenteur(Protocole protocole, Vue vue) {
this.vue = vue;
this.protocole = protocole;
setNom(protocole.getNom());
Image imageCourante = CacheClient.getInstance().getImageCourante();
if(imageCourante == null) {
// on suppose qu'il y a toujours au moins une image associée à l'observation en cours
imageCourante = CacheClient.getInstance().getObservationCourante().getImages().get(0);
}
MoyenneVotePresenteur votePresenteur = new MoyenneVotePresenteur(imageCourante, protocole, new MoyenneVoteVue());
votePresenteur.go(vue.getZoneVote());
}
 
public void setNom(String nom) {
vue.setNom(nom);
}
public Vue getVue() {
return vue;
}
public void go(HasWidgets composite) {
composite.add(vue.asWidget());
}
}
/trunk/src/org/tela_botanica/del/client/vues/plateformedetermination/ligneProtocole/LigneProtocoleVue.java
New file
0,0 → 1,39
package org.tela_botanica.del.client.vues.plateformedetermination.ligneProtocole;
 
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.HasWidgets;
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 LigneProtocoleVue extends Composite implements LigneProtocolePresenteur.Vue {
@UiField
Panel zoneVote;
@UiField
Label nom;
interface LigneProtocoleUIiBinder extends UiBinder<Widget, LigneProtocoleVue> {
};
 
private static LigneProtocoleUIiBinder uiBinder = GWT.create(LigneProtocoleUIiBinder.class);
 
public LigneProtocoleVue() {
initWidget(uiBinder.createAndBindUi(this));
}
 
@Override
public void setNom(String nom) {
this.nom.setText(nom);
this.nom.setTitle(nom);
}
 
@Override
public HasWidgets getZoneVote() {
return this.zoneVote;
}
 
}
/trunk/src/org/tela_botanica/del/client/vues/plateformedetermination/forum/ForumPresenteur.java
New file
0,0 → 1,63
package org.tela_botanica.del.client.vues.plateformedetermination.forum;
 
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;
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.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;
 
public class ForumPresenteur {
 
public interface Vue extends IsWidget {
 
public abstract HasWidgets getPanneauInterventions();
}
 
private Vue vue;
 
public ForumPresenteur(Vue vue) {
this.vue = vue;
}
 
public void go(HasWidgets composite) {
 
chargerDeterminations();
composite.add(vue.asWidget());
 
gererEvenements();
}
 
private void chargerDeterminations() {
 
for (InterventionForum interventionForum : CacheClient.getInstance().getObservationCourante().getInterventionsForum()) {
new ForumInterventionPresenteur(new ForumInterventionVue(), interventionForum).go(vue.getPanneauInterventions());
}
}
 
private void gererEvenements() {
BusEvenementiel.getInstance().addHandler(EvenementAjoutDetermination.TYPE, new GestionnaireEvenementAjoutDetermination() {
 
@Override
public void onAjoutDetermination(EvenementAjoutDetermination event) {
new ForumInterventionPresenteur(new ForumInterventionVue(), event.getPropositionDetermination()).go(vue.getPanneauInterventions());
}
});
 
BusEvenementiel.getInstance().addHandler(EvenementAjoutCommentaire.TYPE, new GestionnaireEvenementAjoutCommentaire() {
 
@Override
public void onAjoutCommentaire(EvenementAjoutCommentaire event) {
new ForumInterventionPresenteur(new ForumInterventionVue(), event.getCommentaire()).go(vue.getPanneauInterventions());
}
});
}
 
}
/trunk/src/org/tela_botanica/del/client/vues/plateformedetermination/forum/interventions/forumIntervention.css
New file
0,0 → 1,0
.table {border:solid 1px #DDD}
/trunk/src/org/tela_botanica/del/client/vues/plateformedetermination/forum/interventions/ForumInterventionVue.ui.xml
New file
0,0 → 1,9
<!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">
<ui:with field="constants" type="org.tela_botanica.del.client.i18n.Vocabulary" />
<ui:style src="forumIntervention.css" />
<g:FlexTable ui:field='htmlTableau' styleName="{style.table}" />
</ui:UiBinder>
/trunk/src/org/tela_botanica/del/client/vues/plateformedetermination/forum/interventions/ForumInterventionPresenteur.java
New file
0,0 → 1,63
package org.tela_botanica.del.client.vues.plateformedetermination.forum.interventions;
 
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.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.services.CalculVoteDeterminationService;
import org.tela_botanica.del.client.vues.plateformedetermination.forum.ArbreCommentairePresenteur;
import org.tela_botanica.del.client.vues.plateformedetermination.forum.ArbreCommentaireVue;
 
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);
}
 
private Vue vue;
 
private InterventionForum interventionForum;
 
public ForumInterventionPresenteur(Vue vue, InterventionForum interventionForum) {
this.vue = vue;
this.interventionForum = interventionForum;
}
 
public void go(HasWidgets composite) {
chargerIntervention();
composite.add(vue.asWidget());
}
 
private void chargerIntervention() {
if (interventionForum instanceof PropositionDetermination) {
ajouterPropositionDetermination((PropositionDetermination) interventionForum);
} else if (interventionForum instanceof Commentaire) {
ajouterCommentaire((Commentaire) interventionForum);
}
}
 
private void ajouterPropositionDetermination(PropositionDetermination propositionDetermination) {
BarreRepartitionVotePresenteur barreRepartitionVotePresenteur = new BarreRepartitionVotePresenteur(new BarreRepartitionVoteVue());
calculerEtAfficherVoteDetermination(barreRepartitionVotePresenteur, propositionDetermination);
ArbreCommentairePresenteur arbreCommentairePresenteur = new ArbreCommentairePresenteur(new ArbreCommentaireVue(), propositionDetermination);
vue.ajouterInterventionDetermination(propositionDetermination, barreRepartitionVotePresenteur.getBarreRepartitionVoteVue(), arbreCommentairePresenteur.getArbreCommentaireVue());
}
 
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);
}
}
/trunk/src/org/tela_botanica/del/client/vues/plateformedetermination/forum/interventions/ForumInterventionVue.java
New file
0,0 → 1,59
package org.tela_botanica.del.client.vues.plateformedetermination.forum.interventions;
 
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 org.tela_botanica.del.client.vues.plateformedetermination.forum.interventions.ForumInterventionPresenteur.Vue;
 
import com.google.gwt.core.client.GWT;
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.FlexTable;
import com.google.gwt.user.client.ui.IsWidget;
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
FlexTable htmlTableau;
 
public ForumInterventionVue() {
initWidget(uiBinder.createAndBindUi(this));
}
 
@Override
public void ajouterInterventionDetermination(PropositionDetermination determination, IsWidget barreRepartition, IsWidget arbreCommentaires) {
 
htmlTableau.setHTML(1, 1, I18n.getVocabulary().nom());
htmlTableau.setHTML(1, 2, I18n.getVocabulary().contributeur());
htmlTableau.setHTML(1, 3, I18n.getVocabulary().fiabilite());
htmlTableau.setHTML(1, 4, I18n.getVocabulary().date());
htmlTableau.setHTML(1, 5, I18n.getVocabulary().commentaire());
 
htmlTableau.setWidget(2, 1, barreRepartition);
htmlTableau.setHTML(2, 2, determination.getAuteur());
htmlTableau.setHTML(2, 4, DateTimeFormat.getFormat(PredefinedFormat.DATE_SHORT).format(determination.getDate()));
htmlTableau.setWidget(2, 5, arbreCommentaires);
}
 
@Override
public void ajouterInterventionCommentaire(Commentaire commentaire, IsWidget arbreCommentaires) {
 
htmlTableau.setHTML(1, 1, I18n.getVocabulary().contributeur());
htmlTableau.setHTML(1, 2, I18n.getVocabulary().date());
htmlTableau.setHTML(1, 3, I18n.getVocabulary().commentaire());
 
htmlTableau.setHTML(2, 1, commentaire.getAuteur());
htmlTableau.setHTML(2, 2, DateTimeFormat.getFormat(PredefinedFormat.DATE_SHORT).format(commentaire.getDate()));
htmlTableau.setWidget(2, 3, arbreCommentaires);
}
 
}
/trunk/src/org/tela_botanica/del/client/vues/plateformedetermination/forum/ForumVue.java
New file
0,0 → 1,32
package org.tela_botanica.del.client.vues.plateformedetermination.forum;
 
import org.tela_botanica.del.client.vues.plateformedetermination.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));
}
 
public HTMLPanel getPanneauInterventions() {
return panneauInterventions;
}
 
 
}
/trunk/src/org/tela_botanica/del/client/vues/plateformedetermination/forum/ArbreCommentairePresenteur.java
New file
0,0 → 1,40
package org.tela_botanica.del.client.vues.plateformedetermination.forum;
 
import org.tela_botanica.del.client.modeles.PossesseurDeCommentaires;
 
import com.google.gwt.user.client.ui.HasWidgets;
import com.google.gwt.user.client.ui.IsWidget;
 
public class ArbreCommentairePresenteur {
private PossesseurDeCommentaires possesseurDeCommentaires;
public interface Vue extends IsWidget {
public void creerArbreCommentaire(PossesseurDeCommentaires possesseurDeCommentaires);
}
private Vue vue;
public ArbreCommentairePresenteur(Vue vue, PossesseurDeCommentaires 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 PossesseurDeCommentaires getPossesseurDeCommentaires() {
return possesseurDeCommentaires;
}
public void gererEvenements() {
}
 
}
/trunk/src/org/tela_botanica/del/client/vues/plateformedetermination/forum/ArbreCommentaireVue.java
New file
0,0 → 1,54
package org.tela_botanica.del.client.vues.plateformedetermination.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.PossesseurDeCommentaires;
 
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(PossesseurDeCommentaires 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() + " " + commentaire.getAuteur() + "-" + formaterDatePourForum(commentaire.getDate());
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);
 
}
 
private String formaterDatePourForum(Date date) {
return DateTimeFormat.getFormat(PredefinedFormat.DATE_SHORT).format(date);
}
}
/trunk/src/org/tela_botanica/del/client/vues/plateformedetermination/forum/forum.css
New file
0,0 → 1,0
.table {border:solid 1px #DDD}
/trunk/src/org/tela_botanica/del/client/vues/plateformedetermination/forum/ForumVue.ui.xml
New file
0,0 → 1,12
<!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">
<ui:with field="constants" type="org.tela_botanica.del.client.i18n.Vocabulary" />
<ui:style src="forum.css" />
<g:HTMLPanel>
<g:Label text="{constants.lesPropositions}" styleName="titre"/>
<g:HTMLPanel ui:field='panneauInterventions' styleName="{style.table}" />
</g:HTMLPanel>
</ui:UiBinder>
/trunk/src/org/tela_botanica/del/client/vues/plateformedetermination/determinationVue.css
New file
0,0 → 1,59
.zoneVote {
margin-left: 5px;
height: 100%;
float: left;
border-left: solid 1px #DDD;
border-right: solid 1px #DDD;
padding-left: 10px;
padding-right:10px;
}
 
.taxonPlusProbable {
float: left;
}
 
.zoneBarreRepartition {
border: solid 1px #DDD;
padding: 15px;
}
 
.zoneDetailImage {
height: 100%;
width: 255px;
float: left;
clear: left;
}
 
.zoneImage {
margin-bottom: 10px;
margin-right: 15px
}
 
.zoneImage div {
clear: left;
padding-top: 5px;
}
 
.zoneImage div img {
float: left;
padding: 0 5px 0 0;
}
 
.boutonProposer {
float: left;
padding: 5px;
cursor: pointer;
background:#8EB533;
border:none;
margin-right:10px;
margin-top:10px;
}
 
.zoneOutils {
width: 15%;
padding-left:10px;
}
 
.boutons {
margin-top:40px;
}
/trunk/src/org/tela_botanica/del/client/vues/plateformedetermination/formulairecommentaire/formulaireCommentaire.css
New file
0,0 → 1,65
.formulaireProposition {
z-index: 1500;
padding: 50px;
background: white;
width: 50%;
width: 600px;
margin: 0 auto;
margin-top: 5%;
}
 
.boutonProposer {
float: right;
margin-right: 35px;
margin-top: -85px;
padding: 10px;
background: url(./img/add.png) no-repeat 5px 12px #DDD;
padding-left: 20px;
cursor: pointer
}
 
.boutonProposer:hover {
background-color: #AAA
}
 
.colonneGauche,.colonneDroite {
width: 250px;
}
 
.colonneGauche {
padding-right: 30px
}
 
.colonneGauche select {
width: 100%
}
 
.colonneGauche input {
width: 95%
}
 
.commentaire {
width: 250px;
height: 100px
}
 
.propositionTaxon {
width: 100%;
height: 30px;
}
 
.zoneNom {
width: 30%;
float: left;
margin-right: 5px;
}
 
.zonePrenom {
width: 30%;
float: left;
}
 
.zoneEmail {
clear: left;
padding-top: 5px;
}
/trunk/src/org/tela_botanica/del/client/vues/plateformedetermination/formulairecommentaire/FormulaireCommentaireVue.ui.xml
New file
0,0 → 1,35
<!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="formulaireCommentaire.css" />
<g:HTMLPanel styleName="{style.formulaireProposition}">
<g:Label text="{constants.ajouterCommentaire}" styleName="titre"/>
<g:Label text="{constants.infoProposerDetermination}" styleName="petit"/>
<g:HTML><br /></g:HTML>
<g:HTMLPanel>
<g:HTMLPanel styleName="{style.colonneGauche}">
<g:Label text="{constants.vous}" styleName="sousTitre"/>
<g:HTMLPanel styleName="{style.zoneNom}">
<g:Label text="{constants.nom}" styleName="petit" />
<g:TextBox ui:field="nom"/>
</g:HTMLPanel>
<g:HTMLPanel styleName="{style.zonePrenom}">
<g:Label text="{constants.prenom}" styleName="petit" />
<g:TextBox ui:field="prenom"/>
</g:HTMLPanel>
<g:HTMLPanel styleName="{style.zoneEmail}">
<g:Label text="Votre adresse email : " styleName="petit" />
<g:TextBox ui:field="courriel" />
</g:HTMLPanel>
<g:HTML><br /></g:HTML>
<g:Label text="{constants.commentaire}" styleName="sousTitre"/>
<g:TextArea ui:field="commentaire" styleName="{style.commentaire}" />
</g:HTMLPanel>
</g:HTMLPanel>
<g:Button text="{constants.boutonProposer}" ui:field="boutonValidationCommentaire" styleName="{style.boutonProposer}"/>
</g:HTMLPanel>
</ui:UiBinder>
/trunk/src/org/tela_botanica/del/client/vues/plateformedetermination/formulairecommentaire/FormulaireCommentairePresenteur.java
New file
0,0 → 1,163
package org.tela_botanica.del.client.vues.plateformedetermination.formulairecommentaire;
 
import java.util.Date;
 
import org.tela_botanica.del.client.cache.CacheClient;
import org.tela_botanica.del.client.composants.presenteur.Presenteur;
import org.tela_botanica.del.client.composants.validation.ValidateurChampTexteNonNul;
import org.tela_botanica.del.client.modeles.Commentaire;
import org.tela_botanica.del.client.modeles.Contributeur;
import org.tela_botanica.del.client.modeles.Observation;
import org.tela_botanica.del.client.modeles.PossesseurDeCommentaires;
import org.tela_botanica.del.client.modeles.Utilisateur;
import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel;
import org.tela_botanica.del.client.navigation.evenement.ajoutcommentaire.EvenementAjoutCommentaire;
 
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.user.client.ui.HasText;
import com.google.gwt.user.client.ui.HasWidgets;
import com.google.gwt.user.client.ui.IsWidget;
 
public class FormulaireCommentairePresenteur extends Presenteur {
 
// le meme presenteur gere les commentaires pour les observations et pour
// les possesseurs de commentaires, mais la logique est differente, d'ou la
// necessité de separer les deux objets metiers
private Observation observation;
 
private PossesseurDeCommentaires possesseurDeCommentaires;
 
public interface Vue extends IsWidget {
 
public String getNom();
public String getPrenom();
public String getCourriel();
public abstract HasText getCommentaire();
 
public abstract HasClickHandlers getBoutonValidationCommentaire();
 
public void afficherStyleErreurNom(String styleErreur);
 
public void supprimerStyleErreurNom(String styleErreur);
public void afficherStyleErreurPrenom(String styleErreur);
 
public void supprimerStyleErreurPrenom(String styleErreur);
public HasText getNomObjet();
public HasText getPrenomObjet();
 
void afficherNomPrenomEtDesactiver(String nom, String prenom, String courriel);
 
public void afficherStyleErreurCommentaire(String styleErreur);
 
public void supprimerStyleErreurCommentaire(String styleErreur);
}
 
private Vue vue;
 
public FormulaireCommentairePresenteur(Observation observation, Vue vue) {
this.observation = observation;
this.vue = vue;
}
 
public FormulaireCommentairePresenteur(PossesseurDeCommentaires possesseurDeCommentaires, Vue vue) {
this.possesseurDeCommentaires = possesseurDeCommentaires;
this.vue = vue;
}
 
public void go(HasWidgets composite) {
remplirAvecInfosUtilisateur();
composite.add(vue.asWidget());
gererEvenements();
}
 
private void remplirAvecInfosUtilisateur() {
Utilisateur utilisateur = CacheClient.getInstance().getUtilisateur();
if (utilisateur.estIdentifie()) {
vue.afficherNomPrenomEtDesactiver(utilisateur.getNom(), utilisateur.getPrenom(), utilisateur.getCourriel());
}
}
 
protected void gererEvenements() {
vue.getBoutonValidationCommentaire().addClickHandler(new ClickHandler() {
 
@Override
public void onClick(ClickEvent event) {
 
if (!validerNomPrenom() || !validerCommentaire()) {
return;
}
 
String texteCommentaire = vue.getCommentaire().getText();
String nom = vue.getNom();
String prenom = vue.getPrenom();
String courriel = vue.getCourriel();
 
Contributeur contributeur = new Contributeur(nom, prenom, courriel);
Commentaire commentaire = new Commentaire(contributeur, new Date(), texteCommentaire);
 
if (observation != null) {
observation.getInterventionsForum().add(commentaire);
} else if (possesseurDeCommentaires != null) {
possesseurDeCommentaires.getListeCommentaires().add(commentaire);
}
 
BusEvenementiel.getInstance().fireEvent(new EvenementAjoutCommentaire(commentaire));
}
});
}
 
private boolean validerNomPrenom() {
 
ValidateurChampTexteNonNul validateurNom = new ValidateurChampTexteNonNul(vue.getNomObjet()) {
@Override
public void afficherStyleErreur(String styleErreur) {
vue.afficherStyleErreurNom(styleErreur);
}
 
@Override
public void supprimerStyleErreur(String styleErreur) {
vue.supprimerStyleErreurNom(styleErreur);
}
};
ValidateurChampTexteNonNul validateurPrenom = new ValidateurChampTexteNonNul(vue.getPrenomObjet()) {
@Override
public void afficherStyleErreur(String styleErreur) {
vue.afficherStyleErreurPrenom(styleErreur);
}
 
@Override
public void supprimerStyleErreur(String styleErreur) {
vue.supprimerStyleErreurPrenom(styleErreur);
}
};
return validateurNom.valider() && validateurPrenom.valider();
}
 
private boolean validerCommentaire() {
 
ValidateurChampTexteNonNul validateurCommentaire = new ValidateurChampTexteNonNul(vue.getCommentaire()) {
@Override
public void afficherStyleErreur(String styleErreur) {
vue.afficherStyleErreurCommentaire(styleErreur);
}
 
@Override
public void supprimerStyleErreur(String styleErreur) {
vue.supprimerStyleErreurCommentaire(styleErreur);
}
};
return validateurCommentaire.valider();
}
 
}
/trunk/src/org/tela_botanica/del/client/vues/plateformedetermination/formulairecommentaire/FormulaireCommentaireVue.java
New file
0,0 → 1,109
package org.tela_botanica.del.client.vues.plateformedetermination.formulairecommentaire;
 
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.TextArea;
import com.google.gwt.user.client.ui.TextBox;
import com.google.gwt.user.client.ui.Widget;
 
public class FormulaireCommentaireVue extends Composite implements FormulaireCommentairePresenteur.Vue {
@UiField
public TextBox nom, prenom, courriel;
 
@UiField
public TextArea commentaire;
 
@UiField
public Button boutonValidationCommentaire;
 
interface FormulairePropositionUIiBinder extends UiBinder<Widget, FormulaireCommentaireVue> {
};
 
FormulairePropositionUIiBinder uiBinder = GWT.create(FormulairePropositionUIiBinder.class);
 
public FormulaireCommentaireVue() {
initWidget(uiBinder.createAndBindUi(this));
}
 
@Override
public String getNom() {
return nom.getText();
}
@Override
public String getPrenom() {
return prenom.getText();
}
 
@Override
public TextArea getCommentaire() {
return commentaire;
}
 
@Override
public Button getBoutonValidationCommentaire() {
return boutonValidationCommentaire;
}
@Override
public void afficherStyleErreurNom(String styleErreur) {
nom.addStyleName(styleErreur);
commentaire.addStyleName(styleErreur);
}
 
@Override
public void supprimerStyleErreurNom(String styleErreur) {
nom.removeStyleName(styleErreur);
commentaire.removeStyleName(styleErreur);
}
@Override
public void afficherStyleErreurPrenom(String styleErreur) {
prenom.addStyleName(styleErreur);
}
 
@Override
public void supprimerStyleErreurPrenom(String styleErreur) {
prenom.removeStyleName(styleErreur);
}
@Override
public void afficherNomPrenomEtDesactiver(String nom, String prenom, String courriel) {
this.nom.setText(nom);
this.nom.setEnabled(false);
this.prenom.setText(prenom);
this.prenom.setEnabled(false);
this.courriel.setText("courriel");
this.courriel.setEnabled(false);
}
 
@Override
public String getCourriel() {
return courriel.getText();
}
 
@Override
public HasText getNomObjet() {
return nom;
}
 
@Override
public HasText getPrenomObjet() {
return prenom;
}
 
@Override
public void afficherStyleErreurCommentaire(String styleErreur) {
commentaire.removeStyleName(styleErreur);
}
 
@Override
public void supprimerStyleErreurCommentaire(String styleErreur) {
commentaire.removeStyleName(styleErreur);
}
}
/trunk/src/org/tela_botanica/del/client/vues/plateformedetermination/formulairerechercheeflore/FormulaireRechercheEflorePresenteur.java
New file
0,0 → 1,30
package org.tela_botanica.del.client.vues.plateformedetermination.formulairerechercheeflore;
 
import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel;
import org.tela_botanica.del.client.navigation.evenement.comparaisoneflore.EvenementComparaisonEflore;
 
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.user.client.ui.HasWidgets;
 
public class FormulaireRechercheEflorePresenteur {
 
FormulaireRechercheEfloreVue formulaireRechercheEfloreVue = new FormulaireRechercheEfloreVue();
 
public void go(HasWidgets composite) {
composite.add(formulaireRechercheEfloreVue);
gererEvenements();
}
 
private void gererEvenements() {
formulaireRechercheEfloreVue.getBoutonValidationRechercheObservation().addClickHandler(new ClickHandler() {
 
@Override
public void onClick(ClickEvent event) {
EvenementComparaisonEflore evenementComparaisonEflore = new EvenementComparaisonEflore(formulaireRechercheEfloreVue.getFormulaireRechercheObservationEflore().getText());
BusEvenementiel.getInstance().fireEvent(evenementComparaisonEflore);
}
});
}
 
}
/trunk/src/org/tela_botanica/del/client/vues/plateformedetermination/formulairerechercheeflore/FormulaireRechercheEfloreVue.java
New file
0,0 → 1,33
package org.tela_botanica.del.client.vues.plateformedetermination.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.TextBox;
import com.google.gwt.user.client.ui.Widget;
 
public class FormulaireRechercheEfloreVue extends Composite {
 
@UiField(provided = true)
public TextBox formulaireRechercheObservationEflore = new TextBox();
@UiField(provided = true)
public Button boutonValidationRechercheObservation = new Button();
interface FormulaireRechercheEfloreUIiBinder extends UiBinder<Widget, FormulaireRechercheEfloreVue>{};
FormulaireRechercheEfloreUIiBinder uiBinder = GWT.create(FormulaireRechercheEfloreUIiBinder.class);
 
public FormulaireRechercheEfloreVue() {
initWidget(uiBinder.createAndBindUi(this));
}
 
public TextBox getFormulaireRechercheObservationEflore() {
return formulaireRechercheObservationEflore;
}
 
public Button getBoutonValidationRechercheObservation() {
return boutonValidationRechercheObservation;
}
}
/trunk/src/org/tela_botanica/del/client/vues/plateformedetermination/formulairerechercheeflore/FormulaireRechercheEfloreVue.ui.xml
New file
0,0 → 1,15
<!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"/>
<g:VerticalPanel>
<g:Label text="{constants.comparer}" styleName="sousTitre"/>
<g:Label text="{constants.infoComparer}" styleName="petit"/>
<g:HTML><br /></g:HTML>
<g:HorizontalPanel><g:TextBox ui:field="formulaireRechercheObservationEflore"/>
<g:Button text="{constants.ok}" ui:field="boutonValidationRechercheObservation" /></g:HorizontalPanel>
</g:VerticalPanel>
 
</ui:UiBinder>