Rev 5 | Blame | Last modification | View Log | RSS feed
package org.tela_botanica.client.vues;
import org.tela_botanica.client.image.ImageMediateur;
import com.gwtext.client.core.EventObject;
import com.gwtext.client.widgets.menu.BaseItem;
import com.gwtext.client.widgets.menu.Item;
import com.gwtext.client.widgets.menu.Menu;
import com.gwtext.client.widgets.menu.event.MenuListenerAdapter;
/**
* Menu de gestion des images
*
* @author aurelien
*
*/
public class MenuImageVue extends Menu {
/**
* Le médiateur associé à la vue
*/
private ImageMediateur iMediateur;
/**
* Item pour l'upload
*/
private Item uploaderImage = null;
/**
* Item pour la suppression
*/
private Item supprimerImage = null;
/**
* Item pour l'ajout d'images à la selection
*/
private Item ajouterImageSelection = null;
/**
* Item pour vider la selection d'images
*/
private Item viderSelection = null;
/**
* Item pour lier la selection d'images
*/
private Item afficherSelection = null;
/**
* Item pour lier les observations associées
*/
private Item voirObs = null;
/**
* Constructeur sans argument (privé car ne doit être utilisé)
*/
@SuppressWarnings("unused")
private MenuImageVue() {
super();
}
/**
* Constructeur avec paramètre
*
* @param im
* le médiateur à associer
*/
public MenuImageVue(ImageMediateur im) {
super();
iMediateur = im;
// on construit le menu
uploaderImage = new Item("Uploader des images");
supprimerImage = new Item("Supprimer les images selectionnées");
ajouterImageSelection = new Item(
"Ajouter les images sélectionnées au tampon");
viderSelection = new Item("Vider le tampon");
afficherSelection = new Item("Afficher le tampon");
voirObs = new Item("Voir les observations associées à cette image") ;
addItem(uploaderImage);
addItem(supprimerImage);
addSeparator() ;
addItem(ajouterImageSelection);
addItem(viderSelection);
addItem(afficherSelection);
addItem(voirObs) ;
// on ajoute les listeners
ajouterListeners();
}
/**
* Ajoute les listeners pour la gestions des évènements
*/
private void ajouterListeners() {
this.addListener(new MenuListenerAdapter() {
// gestion du clic sur un item
public void onItemClick(BaseItem item, EventObject e) {
// si c'est l'upload
if (item.equals(uploaderImage)) {
// on notifie le médiateur
getIMediateur().uploaderImages();
}
// si c'est la suppression
if (item.equals(supprimerImage)) {
// on notifie le médiateur
getIMediateur().supprimerImages();
}
// si c'est l'ajout à la sélection
if (item.equals(ajouterImageSelection)) {
getIMediateur().ajouterImagesSelection();
}
// si c'est le vidage de la sélection
if (item.equals(viderSelection)) {
getIMediateur().viderSelection();
}
// si c'est l'affichage de la selection
if (item.equals(afficherSelection)) {
getIMediateur().afficherIdSelectionImages();
}
if (item.equals(voirObs)) {
getIMediateur().afficherObservationsAssociees() ;
}
// enfin, on cache le menu
hide();
}
});
}
/**
* Accesseur pour le médiateur
*
* @return le médiateur associé à la vue
*/
public ImageMediateur getIMediateur() {
return iMediateur;
}
}