New file |
0,0 → 1,81 |
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(); |
public void focuserChampSaisie(); |
} |
|
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() { |
String texte = vue.getSaisieMotsCles().getText(); |
if(texte != null && !texte.isEmpty()) { |
motsClesService.ajouterMotCleImage(idImage, vue.getSaisieMotsCles().getText(), new AjoutMotsClesImageCallback() { |
@Override |
public void surRetour(Void objetRetour) { |
EvenementAjoutMotCleImage event = new EvenementAjoutMotCleImage(idImage); |
BusEvenementiel.getInstance().fireEvent(event); |
} |
}); |
} |
} |
|
public void viderChampSaisie() { |
vue.getSaisieMotsCles().setText(""); |
} |
|
public void focuserChampSaisie() { |
vue.focuserChampSaisie(); |
} |
} |