/trunk/src/org/tela_botanica/del/client/navigation/evenement/ajoutmotcleimage/GestionnaireEvenementAjoutMotCleImage.java |
---|
New file |
0,0 → 1,7 |
package org.tela_botanica.del.client.navigation.evenement.ajoutmotcleimage; |
import com.google.gwt.event.shared.EventHandler; |
public interface GestionnaireEvenementAjoutMotCleImage extends EventHandler { |
public void onAjoutMotCleImage(EvenementAjoutMotCleImage evenementAjoutMotCleImage); |
} |
/trunk/src/org/tela_botanica/del/client/navigation/evenement/ajoutmotcleimage/EvenementAjoutMotCleImage.java |
---|
New file |
0,0 → 1,33 |
package org.tela_botanica.del.client.navigation.evenement.ajoutmotcleimage; |
import com.google.gwt.event.shared.GwtEvent; |
public class EvenementAjoutMotCleImage extends GwtEvent<GestionnaireEvenementAjoutMotCleImage> { |
public static com.google.gwt.event.shared.GwtEvent.Type<GestionnaireEvenementAjoutMotCleImage> TYPE = new com.google.gwt.event.shared.GwtEvent.Type<GestionnaireEvenementAjoutMotCleImage>(); |
private String idImage; |
private String motCle; |
public EvenementAjoutMotCleImage(String idImage, String motCle) { |
this.idImage = idImage; |
this.motCle = motCle; |
} |
@Override |
protected void dispatch(GestionnaireEvenementAjoutMotCleImage handler) { |
handler.onAjoutMotCleImage(this); |
} |
public String getIdImage() { |
return idImage; |
} |
public String getMotCle() { |
return motCle; |
} |
@Override |
public com.google.gwt.event.shared.GwtEvent.Type<GestionnaireEvenementAjoutMotCleImage> getAssociatedType() { |
return TYPE; |
} |
} |
/trunk/src/org/tela_botanica/del/client/utils/UtilitairesServiceResultat.java |
---|
595,4 → 595,16 |
return observation; |
} |
public static List<String> parserRetourListeMotsClesImage(JSONObject retourJson) { |
List<String> motsCles = new ArrayList<String>(); |
JSONObject tableauMc = retourJson; |
if (tableauMc != null) { |
java.util.Iterator<String> it = tableauMc.keySet().iterator(); |
while (it.hasNext()) { |
JSONObject mc = tableauMc.get(it.next()).isObject(); |
motsCles.add(getValeurOuVide(mc, "mot_cle")); |
} |
} |
return motsCles; |
} |
} |
/trunk/src/org/tela_botanica/del/client/vues/rechercheimages/resultats/images/image.css |
---|
21,6 → 21,18 |
margin-top: 30px; |
} |
.zoneMotsCles { |
position: absolute; |
padding: 5px; |
border: solid 1px #CCC; |
background: #333; |
opacity: 0.9; |
color: white; |
width: 250px; |
z-index: 1000; |
margin-top: 30px; |
} |
.enSavoirPlus { |
position: absolute; |
background: url(./img/ajouter.png) no-repeat; |
31,6 → 43,16 |
margin-left: 3px; |
} |
.voirMotsCles { |
position: absolute; |
background: url(./img/loupe.png) no-repeat; |
width: 30px; |
height: 30px; |
cursor: pointer; |
margin-top: 3px; |
margin-left: 216px; |
} |
.zoom { |
background: url(./img/loupe.png); |
width: 30px; |
97,7 → 119,7 |
padding: 5px; |
} |
.metadonnees { |
.metadonnees, .motsCles { |
text-align: left; |
} |
/trunk/src/org/tela_botanica/del/client/vues/rechercheimages/resultats/images/ImageVue.ui.xml |
---|
9,10 → 9,14 |
<g:HTMLPanel styleName="{style.zoneDetail}"> |
<g:Label ui:field="enSavoirPlus" text=" " styleName="{style.enSavoirPlus}"/> |
<g:Label ui:field="voirMotsCles" text=" " styleName="{style.voirMotsCles}"/> |
<g:HTMLPanel styleName="{style.zoneCache}" ui:field="zoneCache"> |
<g:HTMLPanel ui:field="metadonnees" styleName="{style.metadonnees}"/> |
</g:HTMLPanel> |
<g:HTMLPanel styleName="{style.zoneMotsCles}" ui:field="zoneMotsCles"> |
<g:HTMLPanel ui:field="motsCles" styleName="{style.motsCles}"/> |
</g:HTMLPanel> |
</g:HTMLPanel> |
<g:HTMLPanel styleName="{style.zoneImage}"><g:Image ui:field="imagePrincipale" resource='{res.logo}'/></g:HTMLPanel> |
<g:HTMLPanel styleName="{style.zonePlus}" ui:field="zonePlus"> |
/trunk/src/org/tela_botanica/del/client/vues/rechercheimages/resultats/images/ImagePresenteur.java |
---|
1,6 → 1,7 |
package org.tela_botanica.del.client.vues.rechercheimages.resultats.images; |
import java.util.HashMap; |
import java.util.List; |
import org.tela_botanica.del.client.cache.CacheClient; |
import org.tela_botanica.del.client.composants.fenetreoverlay.FenetreOverlayDefilanteVue; |
9,6 → 10,10 |
import org.tela_botanica.del.client.composants.images.DetailImageVue; |
import org.tela_botanica.del.client.composants.metadonnees.MetadonneesPresenteur; |
import org.tela_botanica.del.client.composants.metadonnees.MetadonneesVue; |
import org.tela_botanica.del.client.composants.motsclesimages.MotsClesImagePresenteur; |
import org.tela_botanica.del.client.composants.motsclesimages.MotsClesImageVue; |
import org.tela_botanica.del.client.composants.motsclesimages.formulairesaisiemotclesimages.FormulaireSaisieMotsClesImagePresenteur; |
import org.tela_botanica.del.client.composants.motsclesimages.formulairesaisiemotclesimages.FormulaireSaisieMotsClesImageVue; |
import org.tela_botanica.del.client.composants.presenteur.Presenteur; |
import org.tela_botanica.del.client.composants.votefleur.VoteFleurPresenteur; |
import org.tela_botanica.del.client.composants.votefleur.VoteFleurVue; |
25,7 → 30,10 |
import org.tela_botanica.del.client.navigation.evenement.rechercheimage.EvenementVoirDetailsImage; |
import org.tela_botanica.del.client.navigation.evenement.rechercheimage.GestionnaireEvenementVoirDetailsImage; |
import org.tela_botanica.del.client.navigation.evenement.validationobservation.EvenementValidation; |
import org.tela_botanica.del.client.services.rest.MotsClesService; |
import org.tela_botanica.del.client.services.rest.MotsClesServiceConcret; |
import org.tela_botanica.del.client.services.rest.VoteProtocoleServiceConcret; |
import org.tela_botanica.del.client.services.rest.async.ListeMotsClesImageCallBack; |
import com.google.gwt.event.dom.client.ClickEvent; |
import com.google.gwt.event.dom.client.ClickHandler; |
69,6 → 77,14 |
public HasClickHandlers getNomEspece(); |
public HasWidgets getMetadonnees(); |
public HasClickHandlers getVoirMotsCles(); |
public HasWidgets getZoneMotsCles(); |
public void cacherZoneMotsCles(); |
public void afficherZoneMotsCles(); |
} |
private Vue vue; |
78,6 → 94,10 |
private Protocole protocole; |
private boolean motsClesOuverts = false; |
private MotsClesImagePresenteur motsClesImagePresenteur; |
public ImagePresenteur(Image image, Protocole protocole, Vue vue) { |
this.image = image; |
this.protocole = protocole; |
88,8 → 108,8 |
composite.add(vue.asWidget()); |
vue.loadImage(image); |
new MetadonneesPresenteur(new MetadonneesVue(), image.getObservation(), ModeRecherche.MODE_IMAGE, true).go(vue.getMetadonnees()); |
motsClesImagePresenteur = new MotsClesImagePresenteur(new MotsClesServiceConcret(), new FormulaireSaisieMotsClesImagePresenteur(image.getIdImage(), new MotsClesServiceConcret(), new FormulaireSaisieMotsClesImageVue()), new MotsClesImageVue()); |
motsClesImagePresenteur.go(vue.getZoneMotsCles()); |
chargerDonneesValidation(); |
gererEvenements(); |
} |
140,12 → 160,23 |
BusEvenementiel.getInstance().fireEvent(new EvenementVoirDetailsImage(image)); |
} |
}); |
vue.getVoirMotsCles().addClickHandler(new ClickHandler() { |
@Override |
public void onClick(ClickEvent event) { |
if(!motsClesOuverts) { |
afficherPanneauMotsCles(); |
} else { |
cacherPanneauMotsCles(); |
} |
} |
}); |
BusEvenementiel.getInstance().addHandler(EvenementVoirDetailsImage.TYPE, new GestionnaireEvenementVoirDetailsImage() { |
@Override |
public void onVoirDetailsImage(EvenementVoirDetailsImage event) { |
if (image.getIdImage().equals(event.getImage().getIdImage())) { |
if (!detailsOuverts) { |
afficherDetails(); |
} else { |
166,6 → 197,17 |
}); |
} |
protected void afficherPanneauMotsCles() { |
vue.afficherZoneMotsCles(); |
motsClesOuverts = true; |
motsClesImagePresenteur.chargerMotsCles(image.getIdImage()); |
} |
protected void cacherPanneauMotsCles() { |
vue.cacherZoneMotsCles(); |
motsClesOuverts = false; |
} |
public void cacherDetails() { |
vue.cacherZoneCache(); |
detailsOuverts = false; |
/trunk/src/org/tela_botanica/del/client/vues/rechercheimages/resultats/images/ImageVue.java |
---|
36,13 → 36,13 |
protected HorizontalPanel voter; |
@UiField |
protected Panel zoneCache; |
protected Panel zoneCache, zoneMotsCles; |
@UiField |
Image imagePrincipale; |
@UiField |
Label enSavoirPlus; |
Label enSavoirPlus, voirMotsCles; |
@UiField Panel metadonnees; |
65,6 → 65,7 |
public void loadImage(org.tela_botanica.del.client.modeles.Image image) { |
zoneCache.setVisible(false); |
zoneMotsCles.setVisible(false); |
nomEspece.setHTML("<p>"+image.getObservation().getNomRetenu()+"</p>"); |
nomAuteur.setHTML("<p>"+image.getObservation().getAuteur()+"</p>"); |
97,6 → 98,11 |
public HasClickHandlers getEnSavoirPlus() { |
return enSavoirPlus; |
} |
@Override |
public HasClickHandlers getVoirMotsCles() { |
return voirMotsCles; |
} |
@Override |
public void setUrlImagePrincipale(String url) { |
141,4 → 147,19 |
public HasWidgets getMetadonnees() { |
return metadonnees; |
} |
@Override |
public void cacherZoneMotsCles() { |
zoneMotsCles.setVisible(false); |
} |
@Override |
public void afficherZoneMotsCles() { |
zoneMotsCles.setVisible(true); |
} |
@Override |
public HasWidgets getZoneMotsCles() { |
return zoneMotsCles; |
} |
} |
/trunk/src/org/tela_botanica/del/client/vues/rechercheimages/resultats/ResultatRechercheImagePresenteur.java |
---|
15,8 → 15,11 |
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.services.rest.ImageService; |
import org.tela_botanica.del.client.services.rest.MotsClesService; |
import org.tela_botanica.del.client.services.rest.MotsClesServiceConcret; |
import org.tela_botanica.del.client.services.rest.ProtocoleService; |
import org.tela_botanica.del.client.services.rest.async.ImagesParTaxonCallback; |
import org.tela_botanica.del.client.services.rest.async.ListeMotsClesImageCallBack; |
import org.tela_botanica.del.client.services.rest.async.ProtocolesCallback; |
import org.tela_botanica.del.client.vues.rechercheimages.resultats.images.ImagePresenteur; |
import org.tela_botanica.del.client.vues.rechercheimages.resultats.images.ImageVue; |
272,13 → 275,11 |
@Override |
public void surRetour(ImageServiceResultat imagesRecues) { |
afficherImages(imagesRecues); |
} |
@Override |
public void surErreur(String messageErreur) { |
Window.alert(messageErreur); |
} |
}; |
/trunk/src/org/tela_botanica/del/client/services/rest/MotsClesService.java |
---|
New file |
0,0 → 1,12 |
package org.tela_botanica.del.client.services.rest; |
import org.tela_botanica.del.client.services.rest.async.AjoutMotsClesImageCallBack; |
import org.tela_botanica.del.client.services.rest.async.ListeMotsClesImageCallBack; |
public interface MotsClesService { |
public void getMotsClesImage(String idImage, ListeMotsClesImageCallBack listeMotsClesImageCallBack); |
public void ajouterMotCleImage(String idImage, String motCle, AjoutMotsClesImageCallBack ajoutMotsClesImageCallBack); |
} |
/trunk/src/org/tela_botanica/del/client/services/rest/MotsClesServiceConcret.java |
---|
New file |
0,0 → 1,64 |
package org.tela_botanica.del.client.services.rest; |
import org.tela_botanica.del.client.cache.CacheClient; |
import org.tela_botanica.del.client.config.Config; |
import org.tela_botanica.del.client.services.rest.async.AjoutMotsClesImageCallBack; |
import org.tela_botanica.del.client.services.rest.async.ListeMotsClesImageCallBack; |
import org.tela_botanica.del.client.services.rest.async.PHPCallback.ModeRequete; |
import com.google.gwt.http.client.RequestBuilder; |
import com.google.gwt.http.client.URL; |
public class MotsClesServiceConcret implements MotsClesService { |
private String baseUrl; |
public MotsClesServiceConcret() { |
Config config = new Config(); |
this.baseUrl = config.getServiceBaseUrl(); |
} |
public MotsClesServiceConcret(Config config) { |
this.baseUrl = config.getServiceBaseUrl(); |
} |
@Override |
public void getMotsClesImage(String idImage, |
ListeMotsClesImageCallBack callback) { |
RequestBuilder rb = new RequestBuilder(RequestBuilder.GET, baseUrl + "mots-cles" + assemblerChaineRequete(idImage)); |
callback.setMode(ModeRequete.LECTURE); |
try { |
rb.sendRequest(null, callback); |
} catch (Exception e) { |
// TODO: handle exception |
} |
} |
private String assemblerChaineRequete(String idImage) { |
String chaineRequete = "?masque.image="+idImage; |
return chaineRequete; |
} |
@Override |
public void ajouterMotCleImage(String idImage, String motCle, |
AjoutMotsClesImageCallBack callback) { |
String urlService = baseUrl+"mots-cles/"; |
RequestBuilder rb = new RequestBuilder(RequestBuilder.PUT, urlService); |
callback.setMode(ModeRequete.AJOUT); |
String chainePost = assemblerChaineRequeteAjout(idImage, motCle); |
try { |
rb.sendRequest(chainePost, callback); |
} catch (Exception e) { |
//TODO: quoi faire si la requete est mal formée coté client avant d'être envoyée ? |
} |
} |
private String assemblerChaineRequeteAjout(String idImage, String motCle) { |
return "image="+URL.encodeQueryString(idImage)+ |
"&mot_cle="+URL.encodeQueryString(motCle)+ |
"&"+URL.encodeQueryString("auteur.id")+"="+URL.encodeQueryString(CacheClient.getInstance().getUtilisateur().getId()); |
} |
} |
/trunk/src/org/tela_botanica/del/client/services/rest/async/ListeMotsClesImageCallBack.java |
---|
New file |
0,0 → 1,15 |
package org.tela_botanica.del.client.services.rest.async; |
import java.util.List; |
import org.tela_botanica.del.client.utils.UtilitairesServiceResultat; |
import com.google.gwt.json.client.JSONParser; |
import com.google.gwt.user.client.Window; |
public abstract class ListeMotsClesImageCallBack extends PHPCallback<List<String>> { |
@Override |
public List<String> parserJSON(String retourService) { |
return UtilitairesServiceResultat.parserRetourListeMotsClesImage(JSONParser.parseStrict(retourService).isObject().get("resultats").isObject()); |
} |
} |
/trunk/src/org/tela_botanica/del/client/services/rest/async/AjoutMotsClesImageCallBack.java |
---|
New file |
0,0 → 1,8 |
package org.tela_botanica.del.client.services.rest.async; |
public abstract class AjoutMotsClesImageCallBack extends PHPCallback<Void> { |
@Override |
public Void parserJSON(String retourService) { |
return null; |
} |
} |
/trunk/src/org/tela_botanica/del/client/composants/motsclesimages/MotsClesImageVue.java |
---|
New file |
0,0 → 1,49 |
package org.tela_botanica.del.client.composants.motsclesimages; |
import java.util.Iterator; |
import java.util.List; |
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.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 MotsClesImageVue extends Composite implements MotsClesImagePresenteur.Vue { |
@UiField |
public Label motsCles; |
@UiField |
public Panel saisieMotsCles; |
interface MyUiBinder extends UiBinder<Widget, MotsClesImageVue> { |
} |
private static MyUiBinder uiBinder = GWT.create(MyUiBinder.class); |
public MotsClesImageVue() { |
// sets listBox |
initWidget(uiBinder.createAndBindUi(this)); |
} |
@Override |
public void afficherMotsCles(List<String> listeMotsCles) { |
String chaine = ""; |
for (Iterator iterator = listeMotsCles.iterator(); iterator.hasNext();) { |
String string = (String) iterator.next(); |
chaine += string+","; |
} |
motsCles.setText(chaine); |
} |
@Override |
public HasWidgets getZoneSaisieMotsCles() { |
return saisieMotsCles; |
} |
} |
/trunk/src/org/tela_botanica/del/client/composants/motsclesimages/formulairesaisiemotclesimages/FormulaireMotsClesImage.css |
---|
--- src/org/tela_botanica/del/client/composants/motsclesimages/formulairesaisiemotclesimages/FormulaireSaisieMotsClesImageVue.ui.xml (revision 0) |
+++ src/org/tela_botanica/del/client/composants/motsclesimages/formulairesaisiemotclesimages/FormulaireSaisieMotsClesImageVue.ui.xml (revision 1151) |
@@ -0,0 +1,15 @@ |
+<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:generateKeys="com.google.gwt.i18n.rebind.keygen.MD5KeyGenerator" |
+ 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="FormulaireMotsClesImage.css" /> |
+ |
+ <g:HTMLPanel> |
+ <g:TextBox ui:field="saisieMotsCles"></g:TextBox> |
+ <g:Button text="{constants.ok}" ui:field="valider"></g:Button> |
+ </g:HTMLPanel> |
+</ui:UiBinder> |
\ No newline at end of file |
/trunk/src/org/tela_botanica/del/client/composants/motsclesimages/formulairesaisiemotclesimages/FormulaireSaisieMotsClesImagePresenteur.java |
---|
New file |
0,0 → 1,75 |
package org.tela_botanica.del.client.composants.motsclesimages.formulairesaisiemotclesimages; |
import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel; |
import org.tela_botanica.del.client.navigation.evenement.ajoutmotcleimage.EvenementAjoutMotCleImage; |
import org.tela_botanica.del.client.services.rest.MotsClesService; |
import org.tela_botanica.del.client.services.rest.async.AjoutMotsClesImageCallBack; |
import com.google.gwt.event.dom.client.ClickEvent; |
import com.google.gwt.event.dom.client.ClickHandler; |
import com.google.gwt.event.dom.client.HasClickHandlers; |
import com.google.gwt.event.dom.client.HasKeyPressHandlers; |
import com.google.gwt.event.dom.client.KeyCodes; |
import com.google.gwt.event.dom.client.KeyPressEvent; |
import com.google.gwt.event.dom.client.KeyPressHandler; |
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 FormulaireSaisieMotsClesImagePresenteur { |
private MotsClesService motsClesService; |
private String idImage; |
public interface Vue extends IsWidget { |
public HasClickHandlers getBoutonValider(); |
public HasText getSaisieMotsCles(); |
public HasKeyPressHandlers getSaisieMotsClesHasKeyPressHandlers(); |
} |
private Vue vue; |
public FormulaireSaisieMotsClesImagePresenteur(String idImage, MotsClesService motsClesService, Vue vue) { |
this.vue = vue; |
this.motsClesService = motsClesService; |
this.idImage = idImage; |
gererEvenements(); |
} |
public void go(HasWidgets composite) { |
composite.add(vue.asWidget()); |
} |
private void gererEvenements() { |
vue.getBoutonValider().addClickHandler(new ClickHandler() { |
@Override |
public void onClick(ClickEvent event) { |
validerSaisie(); |
} |
}); |
vue.getSaisieMotsClesHasKeyPressHandlers().addKeyPressHandler(new KeyPressHandler() { |
public void onKeyPress(KeyPressEvent event) { |
if (event.getNativeEvent().getKeyCode() == KeyCodes.KEY_ENTER) { |
validerSaisie(); |
} |
} |
}); |
} |
private void validerSaisie() { |
if(vue.getSaisieMotsCles().getText() != null) { |
motsClesService.ajouterMotCleImage(idImage, vue.getSaisieMotsCles().getText(), new AjoutMotsClesImageCallBack() { |
@Override |
public void surRetour(Void objetRetour) { |
EvenementAjoutMotCleImage event = new EvenementAjoutMotCleImage(idImage, vue.getSaisieMotsCles().getText()); |
BusEvenementiel.getInstance().fireEvent(event); |
} |
}); |
} |
} |
public void viderChampSaisie() { |
vue.getSaisieMotsCles().setText(""); |
} |
} |
/trunk/src/org/tela_botanica/del/client/composants/motsclesimages/formulairesaisiemotclesimages/FormulaireSaisieMotsClesImageVue.java |
---|
New file |
0,0 → 1,47 |
package org.tela_botanica.del.client.composants.motsclesimages.formulairesaisiemotclesimages; |
import com.google.gwt.core.client.GWT; |
import com.google.gwt.event.dom.client.HasClickHandlers; |
import com.google.gwt.event.dom.client.HasKeyPressHandlers; |
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.TextBox; |
import com.google.gwt.user.client.ui.Widget; |
public class FormulaireSaisieMotsClesImageVue extends Composite implements FormulaireSaisieMotsClesImagePresenteur.Vue { |
@UiField |
public TextBox saisieMotsCles; |
@UiField |
public Button valider; |
interface MyUiBinder extends UiBinder<Widget, FormulaireSaisieMotsClesImageVue> { |
} |
private static MyUiBinder uiBinder = GWT.create(MyUiBinder.class); |
public FormulaireSaisieMotsClesImageVue() { |
// sets listBox |
initWidget(uiBinder.createAndBindUi(this)); |
} |
@Override |
public HasClickHandlers getBoutonValider() { |
return valider; |
} |
@Override |
public HasText getSaisieMotsCles() { |
return saisieMotsCles; |
} |
@Override |
public HasKeyPressHandlers getSaisieMotsClesHasKeyPressHandlers() { |
return saisieMotsCles; |
} |
} |
/trunk/src/org/tela_botanica/del/client/composants/motsclesimages/MotsClesImage.css |
---|
--- src/org/tela_botanica/del/client/composants/motsclesimages/MotsClesImageVue.ui.xml (revision 0) |
+++ src/org/tela_botanica/del/client/composants/motsclesimages/MotsClesImageVue.ui.xml (revision 1151) |
@@ -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:generateKeys="com.google.gwt.i18n.rebind.keygen.MD5KeyGenerator" |
+ 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="MotsClesImage.css" /> |
+ <g:HTMLPanel> |
+ <g:HTMLPanel> |
+ <g:Label ui:field="motsCles"></g:Label> |
+ </g:HTMLPanel> |
+ <g:HTMLPanel> |
+ <g:HTMLPanel ui:field="saisieMotsCles"></g:HTMLPanel> |
+ </g:HTMLPanel> |
+ </g:HTMLPanel> |
+</ui:UiBinder> |
\ No newline at end of file |
/trunk/src/org/tela_botanica/del/client/composants/motsclesimages/MotsClesImagePresenteur.java |
---|
New file |
0,0 → 1,73 |
package org.tela_botanica.del.client.composants.motsclesimages; |
import java.util.List; |
import org.tela_botanica.del.client.cache.CacheClient; |
import org.tela_botanica.del.client.composants.motsclesimages.formulairesaisiemotclesimages.FormulaireSaisieMotsClesImagePresenteur; |
import org.tela_botanica.del.client.modeles.InformationsRecherche; |
import org.tela_botanica.del.client.modeles.ModeTri; |
import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel; |
import org.tela_botanica.del.client.navigation.evenement.ajoutmotcleimage.EvenementAjoutMotCleImage; |
import org.tela_botanica.del.client.navigation.evenement.ajoutmotcleimage.GestionnaireEvenementAjoutMotCleImage; |
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.services.rest.MotsClesService; |
import org.tela_botanica.del.client.services.rest.MotsClesServiceConcret; |
import org.tela_botanica.del.client.services.rest.async.ListeMotsClesImageCallBack; |
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 MotsClesImagePresenteur { |
List<String> motsCles; |
FormulaireSaisieMotsClesImagePresenteur formulaireSaisieMotsClesPresenteur; |
MotsClesService motsClesService; |
String idImage; |
public interface Vue extends IsWidget { |
public void afficherMotsCles(List<String> listeMotsCles); |
HasWidgets getZoneSaisieMotsCles(); |
} |
private Vue vue; |
public MotsClesImagePresenteur(MotsClesService motsClesService, FormulaireSaisieMotsClesImagePresenteur formulaireSaisieMotsClesPresenteur, Vue vue) { |
this.formulaireSaisieMotsClesPresenteur = formulaireSaisieMotsClesPresenteur; |
this.vue = vue; |
this.motsClesService = motsClesService; |
gererEvemenements(); |
} |
public void go(HasWidgets composite) { |
formulaireSaisieMotsClesPresenteur.go(vue.getZoneSaisieMotsCles()); |
composite.add(vue.asWidget()); |
} |
public void chargerMotsCles(String idImage) { |
this.idImage = idImage; |
if(motsCles == null) { |
MotsClesService motsClesService = new MotsClesServiceConcret(); |
motsClesService.getMotsClesImage(idImage, new ListeMotsClesImageCallBack() { |
@Override |
public void surRetour(List<String> objetRetour) { |
motsCles = objetRetour; |
vue.afficherMotsCles(motsCles); |
} |
}); |
} |
} |
public void gererEvemenements() { |
BusEvenementiel.getInstance().addHandler(EvenementAjoutMotCleImage.TYPE, new GestionnaireEvenementAjoutMotCleImage() { |
@Override |
public void onAjoutMotCleImage(EvenementAjoutMotCleImage event) { |
if(idImage != null && idImage.equals(event.getIdImage())) { |
motsCles.add(event.getMotCle()); |
vue.afficherMotsCles(motsCles); |
formulaireSaisieMotsClesPresenteur.viderChampSaisie(); |
} |
} |
}); |
} |
} |