Subversion Repositories eFlore/Applications.del

Compare Revisions

Ignore whitespace Rev 1984 → Rev 2094

/tags/v1.10-sodium/src/org/tela_botanica/del/client/vues/identiplante/plateformedetermination/IdentiplanteDeterminationPresenteur.java
New file
0,0 → 1,325
package org.tela_botanica.del.client.vues.identiplante.plateformedetermination;
 
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.composants.rss.RssPresenteur;
import org.tela_botanica.del.client.composants.rss.RssVue;
import org.tela_botanica.del.client.config.Config;
import org.tela_botanica.del.client.i18n.I18n;
import org.tela_botanica.del.client.modeles.Image;
import org.tela_botanica.del.client.modeles.ModeRecherche;
import org.tela_botanica.del.client.modeles.MoyenneVote;
import org.tela_botanica.del.client.modeles.Observation;
import org.tela_botanica.del.client.modeles.ObservationServiceResultat;
import org.tela_botanica.del.client.modeles.PropositionDetermination;
import org.tela_botanica.del.client.modeles.Utilisateur;
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.changementEtatUtilisateur.EvenementChangementEtatUtilisateur;
import org.tela_botanica.del.client.navigation.evenement.changementEtatUtilisateur.GestionnaireEvenementChangementEtatUtilisateur;
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.depublierObs.EvenementDepublierObs;
import org.tela_botanica.del.client.navigation.evenement.depublierObs.GestionnaireEvenementDepublierObs;
import org.tela_botanica.del.client.navigation.evenement.validationPropositionDetermination.EvenementValidationPropositionDetermination;
import org.tela_botanica.del.client.navigation.evenement.validationPropositionDetermination.GestionnaireEvenementValidationPropositionDetermination;
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.CommentaireServiceConcret;
import org.tela_botanica.del.client.services.rest.ObservationService;
import org.tela_botanica.del.client.services.rest.PropositionDeterminationServiceConcret;
import org.tela_botanica.del.client.services.rest.async.DepublicationObservationCallBack;
import org.tela_botanica.del.client.services.rest.async.ObservationsCallback;
import org.tela_botanica.del.client.services.rest.async.ValidationPropositionCallback;
import org.tela_botanica.del.client.utils.ModerationUtils;
import org.tela_botanica.del.client.utils.URLUtils;
import org.tela_botanica.del.client.navigation.evenement.rechercheobservation.EvenementRechercheObservation;
import org.tela_botanica.del.client.composants.formulairerechercheeflore.FormulaireRechercheEflorePresenteur;
import org.tela_botanica.del.client.composants.forum.ForumPresenteur;
import org.tela_botanica.del.client.composants.forum.ForumVue;
 
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;
import com.google.gwt.user.client.Window;
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 IdentiplanteDeterminationPresenteur extends Presenteur {
 
/**
* Vue de l'interface de détermination
* */
public interface Vue extends IsWidget {
public HasWidgets getForum();
 
public HasWidgets getDetailImageObservation();
 
public HasWidgets getFormulaireRechercheEflore();
 
public HasClickHandlers getBoutonAjoutProposition();
 
public HasClickHandlers getBoutonAjoutCommentaire();
 
public HasClickHandlers getBoutonAjoutPropositionBas();
 
public HasClickHandlers getBoutonAjoutCommentaireBas();
public HasClickHandlers getBoutonDepublierObs();
 
public HasWidgets getMetadonnees();
public HasClickHandlers getLienOuvrages();
public HasClickHandlers getLienBonnier();
public HasClickHandlers getLienCles();
public HasClickHandlers getLienEflore();
public HasWidgets getZoneRss();
 
public void viderMetadonnees();
public void viderForum();
void afficherZoneActionsObs();
void cacherZoneActionsObs();
}
 
private Observation observation;
private Vue vue;
private FenetreOverlaySimplePresenteur fenetreOverlaySimplePresenteur;
 
// Déclaration des services à utiliser
private ObservationService observationService;
 
private CacheClient cache = CacheClient.getInstance();
 
public IdentiplanteDeterminationPresenteur(Vue vue, ObservationService observationService) {
this.vue = vue;
this.observationService = observationService;
}
 
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
String observationId = URLUtils.getURLSpecialParameterValue();
observationService.getObservation(observationId, new ObservationsCallback() {
@Override
public void surRetour(ObservationServiceResultat objetRetour) {
observation = cache.getObservationCourante();
afficherRss(cache.getObservationCourante());
// trouve l'image courante si elle n'est pas deja en cache
List<Image> listeImages = cache.getObservationCourante().getImages();
if (listeImages.size() > 0) {
CacheClient.getInstance().setImageCourante(listeImages.get(0));
} else {
CacheClient.getInstance().setImageCourante(null);
}
new MetadonneesPresenteur(new MetadonneesEnLigneVue(), cache.getObservationCourante(), ModeRecherche.MODE_OBSERVATION, false).go(vue.getMetadonnees());
new ObservationImagesPresenteur(new ObservationImagesVue(), cache.getObservationCourante(), CacheClient.getInstance().getImageCourante()).go(vue.getDetailImageObservation());
new ForumPresenteur(new ForumVue()).go(vue.getForum());
new FormulaireRechercheEflorePresenteur().go(vue.getFormulaireRechercheEflore());
 
composite.add(vue.asWidget());
}
 
@Override
public void surErreur(String messageErreur) {
Window.alert(messageErreur + " - l'identifiant d'observation est incorrect; l'observation a peut-être été supprimée");
}
});
afficherZoneActionsObs();
gererEvenements();
}
 
public void afficherRss(Observation observation) {
new RssPresenteur(new RssVue(), observation, "Suivre cette observation").go(vue.getZoneRss());
}
 
public void gererEvenements() {
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();
}
}
});
 
BusEvenementiel.getInstance().addHandler(EvenementChangementImageValidation.TYPE, new GestionnaireEvenementChangementImageValidation() {
@Override
public void onChangementImage(EvenementChangementImageValidation event) {
vue.getDetailImageObservation().clear();
new ObservationImagesPresenteur(
new ObservationImagesVue(),
cache.getObservationCourante(),
CacheClient.getInstance().getImageCourante()).go(vue.getDetailImageObservation());
}
});
 
ClickHandler clicAjoutProposition = new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
fenetreOverlaySimplePresenteur = new FenetreOverlaySimplePresenteur(new FenetreOverlayDefilanteVue());
fenetreOverlaySimplePresenteur.ouvrirFenetreModale(new FormulairePropositionPresenteur(new FormulairePropositionVue(), new PropositionDeterminationServiceConcret()));
}
};
vue.getBoutonAjoutProposition().addClickHandler(clicAjoutProposition);
vue.getBoutonAjoutPropositionBas().addClickHandler(clicAjoutProposition);
 
ClickHandler clicAjoutCommentaire = new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
FormulaireCommentairePresenteur commentairePresenteur = new FormulaireCommentairePresenteur(cache.getObservationCourante(), new CommentaireServiceConcret(), new FormulaireCommentaireVue());
fenetreOverlaySimplePresenteur = new FenetreOverlaySimplePresenteur(new FenetreOverlayDefilanteVue());
fenetreOverlaySimplePresenteur.ouvrirFenetreModale(commentairePresenteur);
}
};
vue.getBoutonAjoutCommentaire().addClickHandler(clicAjoutCommentaire);
vue.getBoutonAjoutCommentaireBas().addClickHandler(clicAjoutCommentaire);
 
vue.getLienOuvrages().addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
Config config = new Config();
Window.open(config.getUrl("ouvragesFlore"), "Flores numérisées", config.getInfo("popupOptions"));
}
});
 
vue.getLienBonnier().addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
Config config = new Config();
Window.open(config.getUrl("bonnierPda"), "Flore Bonnier PDA", config.getInfo("popupOptions"));
}
});
vue.getLienCles().addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
Config config = new Config();
Window.open(config.getUrl("clesDetermination"), "Clés de determination", config.getInfo("popupOptions"));
}
});
vue.getLienEflore().addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
Config config = new Config();
Window.open(config.getUrl("eflore"), "eFlore", config.getInfo("popupOptions"));
}
});
vue.getBoutonDepublierObs().addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
GWT.log("Lancer evnt : EvenementDepublierObs");
if (Window.confirm(I18n.getVocabulary().confirmationDepublicationObs())) {
BusEvenementiel.getInstance().fireEvent(new EvenementDepublierObs(observation.getId()));
}
}
});
BusEvenementiel.getInstance().addHandler(EvenementDepublierObs.TYPE, new GestionnaireEvenementDepublierObs() {
@Override
public void onDepublicationObs(EvenementDepublierObs event) {
GWT.log("Attraper evnt : EvenementDepublierObs (obs:"+event.getIdObs()+")");
if (event.getIdObs().equals(observation.getId())) {
depublierObs();
}
}
});
BusEvenementiel.getInstance().addHandler(EvenementChangementEtatUtilisateur.TYPE, new GestionnaireEvenementChangementEtatUtilisateur() {
@Override
public void onModificationEtatUtilisateur(EvenementChangementEtatUtilisateur evenementChangementEtatUtilisateur) {
afficherZoneActionsObs();
}
});
BusEvenementiel.getInstance().addHandler(EvenementValidationPropositionDetermination.TYPE, new GestionnaireEvenementValidationPropositionDetermination() {
@Override
public void onValidationPropositionDetermination(EvenementValidationPropositionDetermination event) {
String observationId = URLUtils.getURLSpecialParameterValue();
observationService.getObservation(observationId, new ObservationsCallback() {
 
@Override
public void surRetour(ObservationServiceResultat objetRetour) {
vue.viderMetadonnees();
new MetadonneesPresenteur(new MetadonneesEnLigneVue(), cache.getObservationCourante(), ModeRecherche.MODE_OBSERVATION, false).go(vue.getMetadonnees());
rechargerForum();
}
 
@Override
public void surErreur(String messageErreur) {
Window.alert(messageErreur);
}
});
}
});
}
private void rechargerForum() {
vue.viderForum();
new ForumPresenteur(new ForumVue()).go(vue.getForum());
}
private void depublierObs() {
if (ModerationUtils.utilisateurPeutDepublierObs(CacheClient.getInstance().getUtilisateur())) {
GWT.log("depublierObs :"+observation.getId());
observationService.depublier(observation, new DepublicationObservationCallBack() {
@Override
public void surRetour(String depublicationOk) {
GWT.log("Dépublication obs "+observation.getId()+" "+depublicationOk);
if (depublicationOk.equals("OK")) {
BusEvenementiel.getInstance().fireEvent(new EvenementRechercheObservation());
}
}
});
}
}
private void afficherZoneActionsObs() {
if (ModerationUtils.utilisateurPeutDepublierObs(CacheClient.getInstance().getUtilisateur())) {
vue.afficherZoneActionsObs();
} else {
vue.cacherZoneActionsObs();
}
}
}
/tags/v1.10-sodium/src/org/tela_botanica/del/client/vues/identiplante/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>
/tags/v1.10-sodium/src/org/tela_botanica/del/client/vues/identiplante/plateformedetermination/detail/DetailImageObservationPresenteur.java
New file
0,0 → 1,24
package org.tela_botanica.del.client.vues.identiplante.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());
}
}
/tags/v1.10-sodium/src/org/tela_botanica/del/client/vues/identiplante/plateformedetermination/detail/DetailImageObservationVue.java
New file
0,0 → 1,38
package org.tela_botanica.del.client.vues.identiplante.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().getNomRetenuFormateReferentiel());
famille.setText(image.getObservation().getFamille());
localite.setText(image.getObservation().getLocalite());
dateObservation.setText(image.getObservation().getDateReleve());
}
}
/tags/v1.10-sodium/src/org/tela_botanica/del/client/vues/identiplante/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 {
}
/tags/v1.10-sodium/src/org/tela_botanica/del/client/vues/identiplante/plateformedetermination/IdentiplanteDeterminationVue.java
New file
0,0 → 1,126
package org.tela_botanica.del.client.vues.identiplante.plateformedetermination;
 
import org.tela_botanica.del.client.gestionhistorique.ConstantesNavigation;
 
import com.google.gwt.core.client.GWT;
import com.google.gwt.event.dom.client.HasClickHandlers;
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.HasWidgets;
import com.google.gwt.user.client.ui.Hyperlink;
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 IdentiplanteDeterminationVue extends Composite implements IdentiplanteDeterminationPresenteur.Vue {
 
@UiField
Panel forum, detailImageObservation, formulaireRechercheEflore, zoneRss, zoneActionsObs;
@UiField
Label lienOuvrages, lienEflore, lienBonnier, lienCles;
@UiField
Hyperlink lienRetour;
@UiField
Button btnDepublierObs, boutonAjoutProposition, boutonAjoutPropositionBas, boutonAjoutCommentaire, boutonAjoutCommentaireBas;
@UiField
Panel metadonnees;
 
interface DeterminationUIiBinder extends UiBinder<Widget, IdentiplanteDeterminationVue> {
};
 
private static DeterminationUIiBinder uiBinder = GWT.create(DeterminationUIiBinder.class);
 
public IdentiplanteDeterminationVue() {
initWidget(uiBinder.createAndBindUi(this));
lienRetour.setTargetHistoryToken(ConstantesNavigation.HOME);
}
 
public Panel getForum() {
return forum;
}
 
public Panel getDetailImageObservation() {
return detailImageObservation;
}
 
public Panel getFormulaireRechercheEflore() {
return formulaireRechercheEflore;
}
 
public Button getBoutonAjoutProposition() {
return boutonAjoutProposition;
}
public Button getBoutonAjoutPropositionBas() {
return boutonAjoutPropositionBas;
}
@Override
public HasClickHandlers getBoutonDepublierObs() {
return btnDepublierObs;
}
public Panel getMetadonnees() {
return metadonnees;
}
 
public Button getBoutonAjoutCommentaire() {
return boutonAjoutCommentaire;
}
public Button getBoutonAjoutCommentaireBas() {
return boutonAjoutCommentaireBas;
}
 
@Override
public HasClickHandlers getLienOuvrages() {
return lienOuvrages;
}
 
@Override
public HasClickHandlers getLienBonnier() {
return lienBonnier;
}
@Override
public HasClickHandlers getLienCles() {
return lienCles;
}
 
@Override
public HasClickHandlers getLienEflore() {
return lienEflore;
}
@Override
public HasWidgets getZoneRss() {
return zoneRss;
}
 
@Override
public void viderMetadonnees() {
metadonnees.clear();
}
@Override
public void cacherZoneActionsObs() {
zoneActionsObs.setVisible(false);
}
@Override
public void afficherZoneActionsObs() {
zoneActionsObs.setVisible(true);
}
 
@Override
public void viderForum() {
forum.clear();
}
}
 
/tags/v1.10-sodium/src/org/tela_botanica/del/client/vues/identiplante/plateformedetermination/ligneProtocole/LigneProtocoleVue.ui.xml
New file
0,0 → 1,10
<!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.composants.forum">
<ui:style src="ligneProtocole.css" />
<g:HorizontalPanel styleName="vote">
<g:HTMLPanel ui:field="zoneVote" />
</g:HorizontalPanel>
</ui:UiBinder>
/tags/v1.10-sodium/src/org/tela_botanica/del/client/vues/identiplante/plateformedetermination/ligneProtocole/LigneProtocolePresenteur.java
New file
0,0 → 1,59
package org.tela_botanica.del.client.vues.identiplante.plateformedetermination.ligneProtocole;
 
import org.tela_botanica.del.client.cache.CacheClient;
import org.tela_botanica.del.client.composants.presenteur.Presenteur;
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 org.tela_botanica.del.client.navigation.evenement.BusEvenementiel;
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.services.rest.VoteProtocoleServiceConcret;
 
import com.google.gwt.user.client.ui.HasWidgets;
import com.google.gwt.user.client.ui.IsWidget;
 
public class LigneProtocolePresenteur extends Presenteur {
 
public interface Vue extends IsWidget {
 
HasWidgets getZoneVote();
}
 
private Vue vue;
private Protocole protocole;
 
public LigneProtocolePresenteur(Protocole protocole, Vue vue) {
this.vue = vue;
this.protocole = protocole;
chargerValeursProtocolePourImageCourante();
}
public void chargerValeursProtocolePourImageCourante(){
vue.getZoneVote().clear();
Image imageCourante = CacheClient.getInstance().getImageCourante();
MoyenneVotePresenteur votePresenteur = new MoyenneVotePresenteur(imageCourante, protocole, new MoyenneVoteVue(), new VoteProtocoleServiceConcret());
votePresenteur.go(vue.getZoneVote());
}
 
public Vue getVue() {
return vue;
}
 
public void go(HasWidgets composite) {
composite.add(vue.asWidget());
gererEvenements();
}
 
@Override
protected void gererEvenements() {
BusEvenementiel.getInstance().addHandler(EvenementChangementImageValidation.TYPE, new GestionnaireEvenementChangementImageValidation() {
 
@Override
public void onChangementImage(EvenementChangementImageValidation event) {
chargerValeursProtocolePourImageCourante();
}
});
}
}
/tags/v1.10-sodium/src/org/tela_botanica/del/client/vues/identiplante/plateformedetermination/ligneProtocole/LigneProtocoleVue.java
New file
0,0 → 1,30
package org.tela_botanica.del.client.vues.identiplante.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;
interface LigneProtocoleUIiBinder extends UiBinder<Widget, LigneProtocoleVue> {
};
 
private static LigneProtocoleUIiBinder uiBinder = GWT.create(LigneProtocoleUIiBinder.class);
 
public LigneProtocoleVue() {
initWidget(uiBinder.createAndBindUi(this));
}
 
@Override
public HasWidgets getZoneVote() {
return this.zoneVote;
}
 
}
/tags/v1.10-sodium/src/org/tela_botanica/del/client/vues/identiplante/plateformedetermination/ligneProtocole/ligneProtocole.css
New file
0,0 → 1,7
.nomProtocole {
font-size: 11px;
overflow: hidden;
text-overflow: ellipsis;
width: 87px;
margin-bottom:15px;
}
/tags/v1.10-sodium/src/org/tela_botanica/del/client/vues/identiplante/plateformedetermination/determinationVue.css
New file
0,0 → 1,120
.pageDetermination {
}
.metadonnees {
margin-bottom:10px;
margin-top:10px;
display:inline-block;
}
.limiteZoneMenu {
max-width:840px;
margin-bottom:10px;
}
.limiteZoneMetadonnees {
width:840px;
}
.zoneVote {
margin-left: 5px;
height: 100%;
display:inline-block;
vertical-align:top;
border-left: solid 1px #DDD;
border-right: solid 1px #DDD;
padding-left: 10px;
padding-right:10px;
text-align:left;
}
.taxonPlusProbable {
float: left;
}
.zoneBarreRepartition {
border: solid 1px #DDD;
padding: 15px;
}
.zoneDetailImage {
height: 100%;
width: 255px;
display:inline-block;
vertical-align:top;
text-align: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 5px 0;
}
.boutonProposer {
float: left;
padding: 5px;
cursor: pointer;
background:#8EB533;
border:none;
margin-right:10px;
margin-top:10px;
}
.boutonValiderTaxon {
margin-top: -7px;
}
.zoneOutils {
width: 15%;
padding-left:10px;
display:inline-block;
vertical-align:top;
text-align:left;
}
.boutons {
margin-bottom:15px;
}
.lienProposerObservation {
margin-left:65px;
margin-top:10px;
margin-bottom:10px;
}
.nomTaxonProbable {
padding-left:3px;
}
.taxonProbable {
background: none repeat scroll 0 0 #F8F8C3;
clear: left;
font-size: 15px;
margin-bottom: 5px;
padding: 13px 9px;
}
.voteProtocole div {
margin-bottom:10px;
}
.voteProtocole div div {
margin-bottom:0px;
border:solid 0px red
}
.autreOutils {
margin-top:15px;
}
.zonerss {
margin-top:5px;
}
.lienProposerImage {
margin-top:20px;
margin-left:70px;
margin-bottom:10px;
}
.lienAide {
margin-right:70px;
padding:4px 15px;
margin-top:10px;
float:right;
color:white;
}
.btnDepublierObs {
background:url("./img/16x16/depublier.png") 5px 5px no-repeat;
padding: 5px 5px 5px 23px;
}
.btnDepublierObs:hover {
background:#8EB533 url("./img/16x16/depublier_actif.png") 5px 5px no-repeat;
/tags/v1.10-sodium/src/org/tela_botanica/del/client/vues/identiplante/plateformedetermination/IdentiplanteDeterminationVue.ui.xml
New file
0,0 → 1,53
<!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.composants.forum">
<ui:with field="constants" type="org.tela_botanica.del.client.i18n.Vocabulary"/>
<ui:style src="determinationVue.css" />
<g:HTMLPanel styleName="{style.pageDetermination}">
<g:HTMLPanel styleName="limiteMax">
<g:HTMLPanel styleName="{style.limiteZoneMenu}">
<g:Hyperlink ui:field="lienRetour" styleName="lienRetour">Retour</g:Hyperlink>
<g:HTMLPanel ui:field="zoneActionsObs">
<g:Button ui:field="btnDepublierObs" text="{constants.depublierObs}" styleName="droite bouton {style.btnDepublierObs}" />
</g:HTMLPanel>
</g:HTMLPanel>
<g:HTMLPanel styleName="{style.limiteZoneMetadonnees}">
<g:HTMLPanel ui:field="metadonnees" styleName="{style.metadonnees}" />
</g:HTMLPanel>
</g:HTMLPanel>
<g:HTMLPanel styleName="contenuCentre">
<g:HTMLPanel styleName="{style.zoneDetailImage}">
<g:VerticalPanel ui:field="detailImageObservation" styleName="{style.zoneImage}" />
</g:HTMLPanel>
<g:HTMLPanel styleName="{style.zoneVote}">
<g:Label styleName="titre" text="{constants.titreDetermination}" />
<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 ui:field="zoneRss" styleName="droite {style.zonerss}"></g:HTMLPanel>
</g:HTMLPanel>
<g:VerticalPanel ui:field="forum" />
<g:HTMLPanel styleName="nettoyage {style.boutons}">
<g:Button text="{constants.proposerSaDetermination}" ui:field="boutonAjoutPropositionBas" styleName="bouton" />
<g:Button text="{constants.ajouterCommentaire}" ui:field="boutonAjoutCommentaireBas" styleName="bouton" />
</g:HTMLPanel>
</g:HTMLPanel>
<g:HTMLPanel styleName="{style.zoneOutils}">
<g:Label text="Pour vous aider : " styleName="titre3"></g:Label>
<g:VerticalPanel ui:field="formulaireRechercheEflore"/>
<g:Label styleName="{style.autreOutils} sousTitre">Vérifier sa détermination</g:Label>
<g:Label styleName="lienListe labelLien" ui:field="lienEflore">eFlore</g:Label>
<g:Label styleName="{style.autreOutils} sousTitre">Autres outils en ligne</g:Label>
<g:Label styleName="lienListe labelLien" ui:field="lienOuvrages">Flores numérisées</g:Label>
<g:Label styleName="lienListe labelLien" ui:field="lienBonnier">Flore Bonnier interactive</g:Label>
<g:Label styleName="lienListe labelLien" ui:field="lienCles">Clés de détermination</g:Label>
</g:HTMLPanel>
</g:HTMLPanel>
</g:HTMLPanel>
</ui:UiBinder>