/trunk/src/org/tela_botanica/del/client/vues/pictoflora/moteur/rechercheImage.css |
---|
New file |
0,0 → 1,47 |
.zoneRecherche { |
width: 100% |
} |
.moteurRecherche { |
margin-bottom: 10px; |
} |
.moteurRecherche button { |
margin-left: 2px; |
margin-top: -1px |
} |
.labelProtocole { |
padding: 0 5px 0 0; |
float: left |
} |
.chapeau { |
min-height:70px; |
} |
.labelProtocole:after { |
content: " :" |
} |
.entrerMotClef { |
margin-bottom: 10px; |
} |
.lienProposerImage { |
margin-top:20px; |
margin-left:70px; |
margin-bottom:10px; |
} |
.lienAide { |
margin-right:70px; |
padding:4px 15px; |
margin-top:19px; |
float:right; |
color:white; |
} |
.titreRecherche { |
margin:0; |
} |
/trunk/src/org/tela_botanica/del/client/vues/pictoflora/moteur/MoteurPictofloraVueMyUiBinderImplGenMessages.properties |
---|
New file |
0,0 → 1,2 |
chapeauImages=<ul class="traitTela"><li>Cette galerie vous permet de rechercher les illustrations des membres du réseau issues du <br /> \ |
Carnet en ligne... et de voter pour la qualité des images selon un protocole défini.</li></ul> |
/trunk/src/org/tela_botanica/del/client/vues/pictoflora/moteur/MoteurPictofloraVue.ui.xml |
---|
New file |
0,0 → 1,26 |
<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="rechercheImage.css" /> |
<g:HTMLPanel> |
<g:HTMLPanel styleName="limiteMax"> |
<g:HTML styleName="{style.chapeau}"><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.</ui:msg></g:HTML> |
<g:Label ui:field="ajouterObservation" text="{constants.ajouterImage}" title="{constants.legendeAjouterObservation}" styleName="acceder-outil {style.lienProposerImage}"/> |
<g:Anchor target="_blank" href="{constants.lienAidePictoflora}" ui:field="aide" text="{constants.accesAide}" title="{constants.legendeAjouterObservation}" styleName="acceder-aide {style.lienAide}"/> |
<g:HTMLPanel ui:field="zonePartageUrl"></g:HTMLPanel> |
<g:HTMLPanel styleName="importance1"> |
<g:Label text="{constants.rechercherImage}" styleName="titre {style.titreRecherche}" /> |
<g:Label text="{constants.entrerMotClef}" styleName="gris {style.entrerMotClef}" /> |
<g:HTMLPanel ui:field="zoneRecherche" /> |
</g:HTMLPanel> |
</g:HTMLPanel> |
<g:HTMLPanel ui:field="panneauResultats" /> |
</g:HTMLPanel> |
</ui:UiBinder> |
/trunk/src/org/tela_botanica/del/client/vues/pictoflora/moteur/MoteurPictofloraPresenteur.java |
---|
New file |
0,0 → 1,111 |
package org.tela_botanica.del.client.vues.pictoflora.moteur; |
import javax.validation.Configuration; |
import org.tela_botanica.del.client.cache.CacheClient; |
import org.tela_botanica.del.client.composants.moteurrecherche.MoteurRecherchePresenteur; |
import org.tela_botanica.del.client.composants.moteurrecherche.MoteurRechercheVue; |
import org.tela_botanica.del.client.composants.partageurl.PartageUrlPresenteur; |
import org.tela_botanica.del.client.composants.partageurl.PartageUrlVue; |
import org.tela_botanica.del.client.config.Config; |
import org.tela_botanica.del.client.modeles.ModeRecherche; |
import org.tela_botanica.del.client.modeles.ProtocoleServiceResultat; |
import org.tela_botanica.del.client.services.rest.ImageServiceConcret; |
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.ProtocolesCallback; |
import org.tela_botanica.del.client.vues.pictoflora.resultats.ResultatPictofloraPresenteur; |
import org.tela_botanica.del.client.vues.pictoflora.resultats.ResultatPictofloraVue; |
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.HasWidgets; |
import com.google.gwt.user.client.ui.IsWidget; |
import com.google.gwt.user.client.ui.Panel; |
public class MoteurPictofloraPresenteur { |
public interface Vue extends IsWidget { |
public HasWidgets getZoneResultats(); |
public HasWidgets getZoneRecherche(); |
public void ajouterVue(HasWidgets composite); |
public Panel getZonePartageUrl(); |
HasClickHandlers getLienAjoutObservation(); |
} |
private Vue vue; |
private ProtocoleService protocoleService; |
/** |
* Constructeur |
* */ |
public MoteurPictofloraPresenteur(Vue vue, ProtocoleService protocoleService) { |
this.vue = vue; |
this.protocoleService = protocoleService; |
PartageUrlPresenteur presenteurPartageUrl = new PartageUrlPresenteur(new PartageUrlVue()); |
presenteurPartageUrl.go(vue.getZonePartageUrl()); |
// TODO: le code ci dessous sert à ne pas recharger les protocoles |
// à chaque fois, voir si on peut le factoriser quelque part |
if (CacheClient.getInstance().getProtocoleCourant() == null) { |
if (CacheClient.getInstance().getListeProtocoles() == null) { |
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)); |
} |
} |
gererEvenements(); |
} |
private void gererEvenements() { |
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); |
} |
}); |
} |
public void go(HasWidgets composite) { |
vue.ajouterVue(composite); |
chargerMoteurRechercheAvancee(); |
} |
public void chargerMoteurRechercheAvancee() { |
MoteurRecherchePresenteur presenteurRecherche = new MoteurRecherchePresenteur(new MoteurRechercheVue(""), ModeRecherche.MODE_IMAGE) { |
public void lancerRecherche() { |
chercherImages(); |
} |
}; |
presenteurRecherche.go(vue.getZoneRecherche()); |
} |
public void chercherImages() { |
vue.getZoneResultats().clear(); |
new ResultatPictofloraPresenteur(new ImageServiceConcret(), new ProtocoleServiceConcret(), new ResultatPictofloraVue()).go(vue.getZoneResultats()); |
} |
public HasWidgets getZoneResultats() { |
return vue.getZoneResultats(); |
} |
} |
/trunk/src/org/tela_botanica/del/client/vues/pictoflora/moteur/MoteurPictofloraVue.java |
---|
New file |
0,0 → 1,67 |
package org.tela_botanica.del.client.vues.pictoflora.moteur; |
import com.google.gwt.core.client.GWT; |
import com.google.gwt.event.dom.client.HasChangeHandlers; |
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.Composite; |
import com.google.gwt.user.client.ui.FlowPanel; |
import com.google.gwt.user.client.ui.HasWidgets; |
import com.google.gwt.user.client.ui.Label; |
import com.google.gwt.user.client.ui.ListBox; |
import com.google.gwt.user.client.ui.Panel; |
import com.google.gwt.user.client.ui.Widget; |
public class MoteurPictofloraVue extends Composite implements MoteurPictofloraPresenteur.Vue { |
private final Panel panneauChargement = new FlowPanel(); |
interface MyUiBinder extends UiBinder<Widget, MoteurPictofloraVue> { |
} |
private static MyUiBinder uiBinder = GWT.create(MyUiBinder.class); |
@UiField |
Panel panneauResultats, zoneRecherche, zonePartageUrl; |
@UiField |
Label ajouterObservation; |
// Constructeur |
public MoteurPictofloraVue() { |
initWidget(uiBinder.createAndBindUi(this)); |
} |
public Panel getPanneauChargement() { |
return panneauChargement; |
} |
public Panel getZonePartageUrl() { |
return zonePartageUrl; |
} |
// Cette méthode est public car appelé dans GestionnaireHistorique |
public Panel getZoneResultats() { |
return panneauResultats; |
} |
public void setPanneauResultats(Panel panneauResultats) { |
this.panneauResultats = panneauResultats; |
} |
public HasWidgets getZoneRecherche() { |
return zoneRecherche; |
} |
@Override |
public HasClickHandlers getLienAjoutObservation() { |
return ajouterObservation; |
} |
@Override |
public void ajouterVue(HasWidgets composite) { |
composite.add(this.asWidget()); |
} |
} |