Rev 1292 | Blame | Compare with Previous | Last modification | View Log | RSS feed
package org.tela_botanica.client.vues.image;import org.tela_botanica.client.image.ImageMediateur;import com.gwtext.client.core.EventObject;import com.gwtext.client.widgets.Button;import com.gwtext.client.widgets.ToolbarButton;import com.gwtext.client.widgets.event.ButtonListenerAdapter;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.MenuItem;import com.gwtext.client.widgets.menu.event.MenuListenerAdapter;/*** Menu de gestion des images** @author aurelien**/public class OptionsImages {/*** Le médiateur associé à la vue*/private ImageMediateur iMediateur;/*** Item pour l'upload*/private MenuItem uploaderImage = null;/*** Item pour la suppression*/private ToolbarButton 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;private Item uploadMultiple = null ;private Item uploadSimple = null ;private Menu mnFichiers = null ;private Menu mnTampon = null ;/*** Constructeur sans argument (privé car ne doit être utilisé)*/@SuppressWarnings("unused")private OptionsImages() {super();}/*** Constructeur avec paramètre** @param im* le médiateur à associer*/public OptionsImages(ImageMediateur im) {super();iMediateur = im;mnFichiers = new Menu();uploadMultiple = new Item("Plusieurs dossiers ou fichiers à la fois");uploadSimple = new Item("Un fichier à la la fois");mnFichiers.addItem(uploadMultiple);mnFichiers.addItem(uploadSimple);// on construit le menuuploaderImage = new MenuItem("Ajouter des images", mnFichiers);supprimerImage = new ToolbarButton("Supprimer");ajouterImageSelection = new Item("Ajouter les images sélectionnées au tampon");viderSelection = new Item("vider le contenu du tampon");afficherSelection = new Item("Supprimer le contenu du tampon");mnTampon = new Menu();mnTampon.addItem(ajouterImageSelection);mnTampon.addItem(viderSelection);mnTampon.addItem(afficherSelection);// on ajoute les listenersajouterListeners();}/*** Ajoute les listeners pour la gestions des évènements*/private void ajouterListeners() {mnTampon.addListener(new MenuListenerAdapter() {// gestion du clic sur un item@Overridepublic void onItemClick(BaseItem item, EventObject e) {// si c'est l'ajout à la sélectionif (item.equals(ajouterImageSelection)) {getIMediateur().ajouterImagesSelection();}// si c'est le vidage de la sélectionif (item.equals(viderSelection)) {getIMediateur().viderSelection();}// si c'est l'affichage de la selectionif (item.equals(afficherSelection)) {getIMediateur().afficherIdSelectionImages();}// enfin, on cache le menumnTampon.hide();}@Overridepublic void onShow(Menu menu) {if(getIMediateur().getCompteSelection() != 0) {afficherSelection.enable();viderSelection.enable();}else {afficherSelection.disable();viderSelection.disable();}}});mnTampon.setTitle("Permet de sélectionner et d'afficher des images présentes sur plusieurs pages");// si c'est la suppressionsupprimerImage.addListener(new ButtonListenerAdapter() {@Overridepublic void onClick(Button b, EventObject e) {// on notifie le médiateurgetIMediateur().supprimerImages();}});supprimerImage.setTitle("Supprimer les images sélectionnées");mnFichiers.addListener(new MenuListenerAdapter() {@Overridepublic void onItemClick(BaseItem item, EventObject e) {// si c'est l'uploadif (item.equals(uploadMultiple)) {// on notifie le médiateurgetIMediateur().uploaderImages(true);}// si c'est l'uploadif (item.equals(uploadSimple)) {// on notifie le médiateurgetIMediateur().uploaderImages(false);}}});mnFichiers.setTitle("Ajouter des images en les selectionnant une par une ou bien un dossier à la fois");}public Menu getMenuImage() {return mnFichiers;}public Menu getMenuTampon() {return mnTampon;}public ToolbarButton getBoutonSuppression() {return supprimerImage;}/*** Accesseur pour le médiateur** @return le médiateur associé à la vue*/public ImageMediateur getIMediateur() {return iMediateur;}}