Subversion Repositories eFlore/Applications.del

Compare Revisions

Ignore whitespace Rev 1503 → Rev 1505

/branches/v1.0-hydrogene/src/org/tela_botanica/del/client/vues/entete/liens/LiensVue.java
New file
0,0 → 1,82
package org.tela_botanica.del.client.vues.entete.liens;
 
import org.tela_botanica.del.client.cache.CacheClient;
import org.tela_botanica.del.client.gestionhistorique.ConstantesNavigation;
import org.tela_botanica.del.client.i18n.I18n;
import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel;
import org.tela_botanica.del.client.navigation.evenement.changementprotocole.EvenementChangementProtocole;
import org.tela_botanica.del.client.navigation.evenement.changementprotocole.GestionnaireEvenementChangementProtocole;
import org.tela_botanica.del.client.utils.UtilitairesServiceResultat;
 
import com.gargoylesoftware.htmlunit.Cache;
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.Window;
import com.google.gwt.user.client.ui.Anchor;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.HasWidgets;
import com.google.gwt.user.client.ui.Panel;
import com.google.gwt.user.client.ui.Widget;
import com.google.web.bindery.autobean.vm.Configuration;
 
public class LiensVue extends Composite implements LiensPresenteur.Vue {
// Gestion d'UiBinder
interface Binder extends UiBinder<Widget, LiensVue> {}
 
private static Binder binder = GWT.create(Binder.class);
@UiField Panel zonePartageUrl;
@UiField Anchor ajouterObservation, aidePictoflora, aide, participerProjet;
public LiensVue() {
initWidget(binder.createAndBindUi(this));
gererAffichageEnFonctionDeLaNavigation();
gererEvenements();
}
public HasWidgets getZonePartageUrl() {
return zonePartageUrl;
}
public void gererAffichageEnFonctionDeLaNavigation() {
CacheClient cache = CacheClient.getInstance();
String pageCourante = cache.getPageCourante();
if (pageCourante.startsWith(ConstantesNavigation.PICTOFLORA) || pageCourante.startsWith(ConstantesNavigation.PAGE_RECHERCHE_IMAGES)
|| pageCourante.startsWith(ConstantesNavigation.PAGE_VALIDATION_PICTOFLORA)) {
//SI PICTO
ajouterObservation.setVisible(false);
aide.setVisible(false);
setLienSaisieProjet();
} else {
aidePictoflora.setVisible(false);
participerProjet.setVisible(false);
}
}
private void setLienSaisieProjet() {
participerProjet.setHref(formaterLienSaisieProjetUrl());
participerProjet.setTitle(I18n.getVocabulary().legendeAjouterImage());
}
private String formaterLienSaisieProjetUrl() {
String urlSaisieProjet = I18n.getVocabulary().lienAppliSaisie();
if(CacheClient.getInstance().getProtocoleCourant() != null) {
String tagProtocole = CacheClient.getInstance().getProtocoleCourant().getTag();
urlSaisieProjet = I18n.getVocabulary().lienAppliSaisieProjetUrl();
urlSaisieProjet = urlSaisieProjet.replace("{projet}", tagProtocole);
}
return urlSaisieProjet;
}
private void gererEvenements() {
BusEvenementiel.getInstance().addHandler(EvenementChangementProtocole.TYPE, new GestionnaireEvenementChangementProtocole() {
@Override
public void onChangementProtocole(EvenementChangementProtocole event) {
setLienSaisieProjet();
}
});
}
}
/branches/v1.0-hydrogene/src/org/tela_botanica/del/client/vues/entete/liens/liens.css
New file
0,0 → 1,14
.zonePartageUrl {
display:inline-block;
width:150px;
float:right;
}
 
.aide {
float:right;
margin-left:5px;
}
 
.boutonParticiper {
margin-right:5px;
}
/branches/v1.0-hydrogene/src/org/tela_botanica/del/client/vues/entete/liens/LiensVue.ui.xml
New file
0,0 → 1,25
<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder' xmlns:g='urn:import:com.google.gwt.user.client.ui'
ui:generateFormat='com.google.gwt.i18n.rebind.format.PropertiesFormat'
ui:generateLocales="default">
<ui:with field='res'
type='org.tela_botanica.del.client.resources.Ressources' />
<ui:with field="constants" type="org.tela_botanica.del.client.i18n.Vocabulary" />
<ui:style src="liens.css" />
<g:HTMLPanel>
<!-- Liens identiplante -->
<g:HTMLPanel styleName="limiteMax">
<!-- picto -->
<g:Anchor target="_blank" href="{constants.lienAidePictoflora}" ui:field="aidePictoflora" text="{constants.accesAide}" title="{constants.accesAide}" styleName="acceder-aide {style.aide}"/>
<!-- identiplante -->
<g:Anchor ui:field="ajouterObservation" text="{constants.ajouterObservation}" title="{constants.legendeAjouterObservation}" styleName="acceder-outil" href="{constants.lienAppliSaisie}" target="_blank"/>
<g:Anchor target="_blank" href="{constants.lienAideIdentiplante}" ui:field="aide" text="{constants.accesAide}" title="{constants.accesAide}" styleName="acceder-aide {style.aide}"/>
<!-- Commun -->
<g:HTMLPanel ui:field="zonePartageUrl" styleName="{style.zonePartageUrl}"></g:HTMLPanel>
<g:Anchor ui:field="participerProjet" text="Participer au projet" title="{constants.legendeAjouterObservation}" styleName="acceder-outil droite {style.boutonParticiper}" target="_blank"/>
</g:HTMLPanel>
</g:HTMLPanel>
</ui:UiBinder>
/branches/v1.0-hydrogene/src/org/tela_botanica/del/client/vues/entete/liens/LiensPresenteur.java
New file
0,0 → 1,76
package org.tela_botanica.del.client.vues.entete.liens;
 
import org.tela_botanica.del.client.cache.CacheClient;
import org.tela_botanica.del.client.composants.partageurl.PartageUrlPresenteur;
import org.tela_botanica.del.client.composants.partageurl.PartageUrlVue;
import org.tela_botanica.del.client.composants.presenteur.Presenteur;
import org.tela_botanica.del.client.config.Config;
import org.tela_botanica.del.client.modeles.ProtocoleServiceResultat;
import org.tela_botanica.del.client.services.rest.ProtocoleServiceConcret;
import org.tela_botanica.del.client.services.rest.async.ProtocolesCallback;
 
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
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 LiensPresenteur extends Presenteur {
 
public interface Vue extends IsWidget {
public HasWidgets getZonePartageUrl();
}
private Vue vue;
public LiensPresenteur(Vue vue) {
this.vue = vue;
}
public void go(HasWidgets composite) {
composite.add(vue.asWidget());
 
PartageUrlPresenteur partageUrl = new PartageUrlPresenteur(new PartageUrlVue());
partageUrl.go(vue.getZonePartageUrl());
gererProtocoles();
}
protected void gererProtocoles() {
//FIXME : ne doit pas etre concret ici ?
ProtocoleServiceConcret protocoleService = new ProtocoleServiceConcret();
if (CacheClient.getInstance().getProtocoleCourant() == null) {
if (CacheClient.getInstance().getListeProtocoles() == null || CacheClient.getInstance().getListeProtocoles().size() == 0) {
protocoleService.getProtocoles(new ProtocolesCallback() {
 
@Override
public void surRetour(ProtocoleServiceResultat protocolesRecus) {
CacheClient.getInstance().setListeProtocoles(protocolesRecus.getProtocoles());
if (protocolesRecus.getProtocoles().size() > 0) {
CacheClient.getInstance().setProtocoleCourant(protocolesRecus.getProtocoles().get(0));
} else {
// TODO afficher message indiquant que la liste des
// protocoles de votes n'est pas fourni
}
}
});
} else {
CacheClient.getInstance().setProtocoleCourant(CacheClient.getInstance().getListeProtocoles().get(0));
}
}
}
 
@Override
protected void gererEvenements() {
// TODO Auto-generated method stub
/*
* vue.getLienAjoutObservation().addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
Config config = new Config();
Window.open(config.getUrl("applisaisie"), "Saisie d'une nouvelle observation", null);
}
});
*/
}
}
/branches/v1.0-hydrogene/src/org/tela_botanica/del/client/vues/entete/entete.css
New file
0,0 → 1,36
.zoneTitre {
float: left;
height: 50px;
width: 50%;
margin:10px 0;
font-size:20px
}
 
.zoneLogos {
float: right;
height: 50px;
width: 50%;
text-align:center;
margin:10px 0;
}
 
.zoneIdentification {
float: right;
height: 129px;
width: 45%;
background: url("./img/carre_orange.png") no-repeat scroll -0px -8px transparent;
text-align:right;
padding-left:27px;
}
 
.zoneChapeau {
float: left;
height: 130px;
width: 52%;
}
 
.zoneLiens {
clear: both;
height: 40px;
padding:10px 65px;
}
/branches/v1.0-hydrogene/src/org/tela_botanica/del/client/vues/entete/chapeaux/ChapeauVue.ui.xml
New file
0,0 → 1,18
<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder' xmlns:g='urn:import:com.google.gwt.user.client.ui'
ui:generateFormat='com.google.gwt.i18n.rebind.format.PropertiesFormat'
ui:generateLocales="default">
<ui:with field='res'
type='org.tela_botanica.del.client.resources.Ressources' />
<ui:with field="constants" type="org.tela_botanica.del.client.i18n.Vocabulary" />
<ui:style src="chapeau.css" />
<g:HTMLPanel>
<g:HTMLPanel ui:field="chapeauIdentiplante"><ui:msg key="chapeauObservation">Cet espace vous permet d'échanger sur la détermination d'espèces.
Vous ne parvenez pas à déterminer une plante ? Soumettez-la aux membres du réseau.
Vous avez relevé des erreurs dans les images soumises par le réseau ? Postez un commentaire ou proposez une nouvelle détermination.</ui:msg></g:HTMLPanel>
<g:HTMLPanel ui:field="chapeauPictoflora"><ui:msg key="chapeauImages">Cette galerie vous permet de rechercher les illustrations des membres du réseau issues du
Carnet en ligne... et de voter pour la qualité des images selon un protocole défini?
Postez un commentaire ou proposez une nouvelle détermination.</ui:msg></g:HTMLPanel>
</g:HTMLPanel>
</ui:UiBinder>
/branches/v1.0-hydrogene/src/org/tela_botanica/del/client/vues/entete/chapeaux/ChapeauPresenteur.java
New file
0,0 → 1,30
package org.tela_botanica.del.client.vues.entete.chapeaux;
 
import org.tela_botanica.del.client.composants.presenteur.Presenteur;
 
import com.google.gwt.user.client.ui.HasWidgets;
import com.google.gwt.user.client.ui.IsWidget;
 
public class ChapeauPresenteur extends Presenteur {
public interface Vue extends IsWidget {
}
private Vue vue;
public ChapeauPresenteur(Vue vue) {
this.vue = vue;
}
 
@Override
public void go(HasWidgets composite) {
composite.add(vue.asWidget());
}
 
@Override
protected void gererEvenements() {
// TODO Auto-generated method stub
}
}
/branches/v1.0-hydrogene/src/org/tela_botanica/del/client/vues/entete/chapeaux/ChapeauVue.java
New file
0,0 → 1,41
package org.tela_botanica.del.client.vues.entete.chapeaux;
 
import org.tela_botanica.del.client.cache.CacheClient;
import org.tela_botanica.del.client.gestionhistorique.ConstantesNavigation;
 
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.Panel;
import com.google.gwt.user.client.ui.Widget;
 
public class ChapeauVue extends Composite implements ChapeauPresenteur.Vue {
 
// Gestion d'UiBinder
interface Binder extends UiBinder<Widget, ChapeauVue> {
}
private static Binder binder = GWT.create(Binder.class);
@UiField
Panel chapeauIdentiplante, chapeauPictoflora;
public ChapeauVue() {
initWidget(binder.createAndBindUi(this));
gererAffichageEnFonctionDeLaNavigation();
}
public void gererAffichageEnFonctionDeLaNavigation() {
CacheClient cache = CacheClient.getInstance();
String pageCourante = cache.getPageCourante();
if (pageCourante.startsWith(ConstantesNavigation.PICTOFLORA) || pageCourante.startsWith(ConstantesNavigation.PAGE_RECHERCHE_IMAGES)
|| pageCourante.startsWith(ConstantesNavigation.PAGE_VALIDATION_PICTOFLORA)) {
chapeauIdentiplante.setVisible(false);
chapeauPictoflora.setVisible(true);
} else {
chapeauIdentiplante.setVisible(true);
chapeauPictoflora.setVisible(false);
}
}
}
/branches/v1.0-hydrogene/src/org/tela_botanica/del/client/vues/entete/chapeaux/ChapeauVueBinderImplGenMessages.properties
New file
0,0 → 1,10
# Generated from org.tela_botanica.del.client.vues.rechercheobservations.moteur.MoteurRechercheObservationsVueBinderImplGenMessages
# for locale fr
 
chapeauObservation=<ul class="traitTela">\
<li>Cet espace vous permet d''échanger sur la détermination d''espèces.</li> \
<li>Vous ne parvenez pas à déterminer une plante ? <br />Soumettez-la aux membres du réseau.</li> \
<li>Vous avez relevé des erreurs dans les images soumises par le réseau ? <br />Postez un commentaire ou proposez une nouvelle détermination.</li> \
</ul>
 
chapeauImages=<ul class="traitTela"><li>Cette galerie vous permet de rechercher les illustrations des membres du réseau issues du Carnet en ligne... et de voter pour la qualité des images selon un protocole défini.</li></ul>
/branches/v1.0-hydrogene/src/org/tela_botanica/del/client/vues/entete/chapeaux/chapeau.css
--- EnteteVue.ui.xml (revision 0)
+++ EnteteVue.ui.xml (revision 1505)
@@ -0,0 +1,20 @@
+<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder' xmlns:g='urn:import:com.google.gwt.user.client.ui'
+ ui:generateFormat='com.google.gwt.i18n.rebind.format.PropertiesFormat'
+ ui:generateLocales="default">
+ <ui:with field='res'
+ type='org.tela_botanica.del.client.resources.Ressources' />
+ <ui:with field="constants" type="org.tela_botanica.del.client.i18n.Vocabulary" />
+
+ <ui:style src="entete.css" />
+ <g:HTMLPanel styleName="limiteMax">
+ <g:HTMLPanel ui:field="zoneTitre" styleName="{style.zoneTitre}"></g:HTMLPanel>
+ <g:HTMLPanel ui:field="zoneLogos" styleName="{style.zoneLogos}">
+ <a class="logo_tela" href="http://www.tela-botanica.org" target="_blank"></a>
+ <a class="logo_pn" href="http://www.plantnet-project.org/papyrus.php?langue=fr" target="_blank"></a>
+ </g:HTMLPanel>
+ <g:HTMLPanel ui:field="zoneChapeau" styleName="{style.zoneChapeau}"></g:HTMLPanel>
+ <g:HTMLPanel ui:field="zoneIdentification" styleName="{style.zoneIdentification}"></g:HTMLPanel>
+ <g:HTMLPanel ui:field="zoneLiens" styleName="{style.zoneLiens}"></g:HTMLPanel>
+
+ </g:HTMLPanel>
+</ui:UiBinder>
/branches/v1.0-hydrogene/src/org/tela_botanica/del/client/vues/entete/EntetePresenteur.java
New file
0,0 → 1,63
package org.tela_botanica.del.client.vues.entete;
 
import org.tela_botanica.del.client.composants.formulaires.identification.FormulaireIdentificationPresenteur;
import org.tela_botanica.del.client.composants.formulaires.identification.FormulaireIdentificationVue;
import org.tela_botanica.del.client.composants.partageurl.PartageUrlPresenteur;
import org.tela_botanica.del.client.composants.partageurl.PartageUrlVue;
import org.tela_botanica.del.client.composants.presenteur.Presenteur;
import org.tela_botanica.del.client.services.rest.UtilisateurServiceConcret;
import org.tela_botanica.del.client.vues.entete.chapeaux.ChapeauPresenteur;
import org.tela_botanica.del.client.vues.entete.chapeaux.ChapeauVue;
import org.tela_botanica.del.client.vues.entete.liens.LiensPresenteur;
import org.tela_botanica.del.client.vues.entete.liens.LiensVue;
 
import com.google.gwt.user.client.ui.HasWidgets;
import com.google.gwt.user.client.ui.IsWidget;
import com.google.gwt.user.client.ui.Widget;
 
/**
* Classe pour le header de l'application affichant le formulaire de connexion, le titre, les logos
* */
public class EntetePresenteur extends Presenteur {
 
/**
* La vue du header
* */
public interface Vue extends IsWidget {
public HasWidgets getZoneIdentification();
public HasWidgets getZoneLiens();
public HasWidgets getZoneChapeau();
}
private Vue vue;
 
public EntetePresenteur(Vue vue) {
this.vue = vue;
}
 
@Override
public void go(HasWidgets composite) {
composite.add(vue.asWidget());
//Ajout de la zone identification
FormulaireIdentificationPresenteur identification = new FormulaireIdentificationPresenteur(new FormulaireIdentificationVue(), new UtilisateurServiceConcret());
identification.go(vue.getZoneIdentification());
ChapeauPresenteur chapeau = new ChapeauPresenteur(new ChapeauVue());
chapeau.go(vue.getZoneChapeau());
LiensPresenteur liens = new LiensPresenteur(new LiensVue());
liens.go(vue.getZoneLiens());
}
 
@Override
protected void gererEvenements() {
// TODO Auto-generated method stub
}
public void ajouterLien(Widget lien) {
this.vue.getZoneLiens().add(lien);
}
}
/branches/v1.0-hydrogene/src/org/tela_botanica/del/client/vues/entete/EnteteVue.java
New file
0,0 → 1,56
package org.tela_botanica.del.client.vues.entete;
 
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.HTML;
import com.google.gwt.user.client.ui.HasWidgets;
import com.google.gwt.user.client.ui.Panel;
import com.google.gwt.user.client.ui.Widget;
 
import org.tela_botanica.del.client.vues.entete.EntetePresenteur;
 
public class EnteteVue extends Composite implements EntetePresenteur.Vue {
 
// Gestion d'UiBinder
interface Binder extends UiBinder<Widget, EnteteVue> {
}
 
private static Binder binder = GWT.create(Binder.class);
@UiField
Panel zoneTitre, zoneIdentification, zoneLiens, zoneChapeau;
public EnteteVue(String titre) {
initWidget(binder.createAndBindUi(this));
zoneTitre.clear();
HTML html = new HTML("<h1>" + titre + "</h1>");
zoneTitre.add(html);
}
 
@Override
public HasWidgets getZoneIdentification() {
return zoneIdentification;
}
 
@Override
public HasWidgets getZoneLiens() {
return zoneLiens;
}
 
@Override
public HasWidgets getZoneChapeau() {
return zoneChapeau;
}
}