Subversion Repositories eFlore/Applications.del

Rev

Rev 1152 | Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
1151 aurelien 1
package org.tela_botanica.del.client.composants.motsclesimages.formulairesaisiemotclesimages;
2
 
3
import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel;
4
import org.tela_botanica.del.client.navigation.evenement.ajoutmotcleimage.EvenementAjoutMotCleImage;
5
import org.tela_botanica.del.client.services.rest.MotsClesService;
6
import org.tela_botanica.del.client.services.rest.async.AjoutMotsClesImageCallBack;
7
 
8
import com.google.gwt.event.dom.client.ClickEvent;
9
import com.google.gwt.event.dom.client.ClickHandler;
10
import com.google.gwt.event.dom.client.HasClickHandlers;
11
import com.google.gwt.event.dom.client.HasKeyPressHandlers;
12
import com.google.gwt.event.dom.client.KeyCodes;
13
import com.google.gwt.event.dom.client.KeyPressEvent;
14
import com.google.gwt.event.dom.client.KeyPressHandler;
15
import com.google.gwt.user.client.ui.HasText;
16
import com.google.gwt.user.client.ui.HasWidgets;
17
import com.google.gwt.user.client.ui.IsWidget;
18
 
19
public class FormulaireSaisieMotsClesImagePresenteur {
20
 
21
	private MotsClesService motsClesService;
22
	private String idImage;
23
 
24
	public interface Vue extends IsWidget {
25
		public HasClickHandlers getBoutonValider();
26
		public HasText getSaisieMotsCles();
27
		public HasKeyPressHandlers getSaisieMotsClesHasKeyPressHandlers();
28
	}
29
 
30
	private Vue vue;
31
 
32
	public FormulaireSaisieMotsClesImagePresenteur(String idImage, MotsClesService motsClesService, Vue vue) {
33
		this.vue = vue;
34
		this.motsClesService = motsClesService;
35
		this.idImage = idImage;
36
		gererEvenements();
37
	}
38
 
39
	public void go(HasWidgets composite) {
40
		composite.add(vue.asWidget());
41
	}
42
 
43
	private void gererEvenements() {
44
		vue.getBoutonValider().addClickHandler(new ClickHandler() {
45
			@Override
46
			public void onClick(ClickEvent event) {
47
				validerSaisie();
48
			}
49
		});
50
 
51
		vue.getSaisieMotsClesHasKeyPressHandlers().addKeyPressHandler(new KeyPressHandler() {
52
			public void onKeyPress(KeyPressEvent event) {
53
				if (event.getNativeEvent().getKeyCode() == KeyCodes.KEY_ENTER) {
54
					validerSaisie();
55
				}
56
			}
57
		});
58
	}
59
 
60
	private void validerSaisie() {
61
		if(vue.getSaisieMotsCles().getText() != null) {
62
			motsClesService.ajouterMotCleImage(idImage, vue.getSaisieMotsCles().getText(), new AjoutMotsClesImageCallBack() {
63
				@Override
64
				public void surRetour(Void objetRetour) {
65
					EvenementAjoutMotCleImage event = new EvenementAjoutMotCleImage(idImage, vue.getSaisieMotsCles().getText());
66
					BusEvenementiel.getInstance().fireEvent(event);
67
				}
68
			});
69
		}
70
	}
71
 
72
	public void viderChampSaisie() {
73
		vue.getSaisieMotsCles().setText("");
74
	}
75
}