Subversion Repositories eFlore/Applications.cel

Rev

Rev 144 | Blame | Compare with Previous | Last modification | View Log | RSS feed

package org.tela_botanica.client.vues;

import org.tela_botanica.client.CarnetEnLigneMediateur;
import org.tela_botanica.client.interfaces.Rafraichissable;

import com.google.gwt.core.client.JavaScriptObject;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.ClickListener;
import com.google.gwt.user.client.ui.Widget;
import com.gwtext.client.core.EventCallback;
import com.gwtext.client.core.EventObject;
import com.gwtext.client.data.ArrayReader;
import com.gwtext.client.data.FieldDef;
import com.gwtext.client.data.MemoryProxy;
import com.gwtext.client.data.Record;
import com.gwtext.client.data.RecordDef;
import com.gwtext.client.data.Store;
import com.gwtext.client.data.StringFieldDef;
import com.gwtext.client.widgets.BoxComponent;
import com.gwtext.client.widgets.Component;
import com.gwtext.client.widgets.Window;
import com.gwtext.client.widgets.event.ButtonListener;
import com.gwtext.client.widgets.event.ButtonListenerAdapter;
import com.gwtext.client.widgets.form.ComboBox;
import com.gwtext.client.widgets.form.Field;
import com.gwtext.client.widgets.form.event.ComboBoxCallback;
import com.gwtext.client.widgets.form.event.ComboBoxListener;
import com.gwtext.client.widgets.form.event.ComboBoxListenerAdapter;
import com.gwtext.client.widgets.menu.Menu;

public class ListeUtilisateurAdminVue extends Window implements Rafraichissable {

        private CarnetEnLigneMediateur cMediateur = null ;
        private ComboBox listeUtil = null ;
        private Store storeUtil = null ;
        private com.gwtext.client.widgets.Button OK = null;
        private boolean selectionUtilisateur =false;
        
        private final int KEY_ALT = 18;
        private final int KEY_BACKSPACE = 8;
        private final int KEY_CTRL = 17;
        private final int KEY_DELETE = 46;
        private final int KEY_DOWN = 40;
        private final int KEY_END = 35;
        private final int KEY_ENTER = 13;
        private final int KEY_ESCAPE = 27;
        private final int KEY_HOME = 36;
        private final int KEY_LEFT = 37;
        private final int KEY_PAGEDOWN = 34;
        private final int KEY_PAGEUP = 33;
        private final int KEY_RIGHT = 39;
        private final int KEY_SHIFT = 16;
        private final int KEY_TAB = 9;
        private final int KEY_UP = 38;
        
        public ListeUtilisateurAdminVue(CarnetEnLigneMediateur cMed) {
                super("Choisissez un utilisateur") ;
                
                this.cMediateur = cMed;
                
                listeUtil=new ComboBox("Utilisateurs","utilisateur",280);  
                
                
                final String resultTplUtil = "<div class=\"search-item-utilisateur\">{utilisateur}</div>";  

                
                listeUtil.setTpl(resultTplUtil);
                listeUtil.setMode(ComboBox.REMOTE);
                // commune.setPageSize(10); // Ne fonctionne pas 
                listeUtil.setItemSelector("div.search-item-utilisateur");
                listeUtil.setTypeAhead(true);  
                listeUtil.setHideTrigger(true);
                
                listeUtil.setLoadingText("Recherche...");  
                
                OK= new com.gwtext.client.widgets.Button("OK");
                
                add(listeUtil);
                add(OK);
                
                this.setSize(300, 75);
                
                OK.addListener(new ButtonListenerAdapter() {

                        public void onClick(com.gwtext.client.widgets.Button button,
                                        EventObject e) {
                                cMediateur.changerIdentite(listeUtil.getValue());
                                
                        }
                });
                
                final ListeUtilisateurAdminVue l = this ;
                
                listeUtil.addKeyPressListener(new EventCallback() {

                        public void execute(EventObject e) {
                                
                                switch(e.getKey()) {
                      
                                        case KEY_ALT:
                        case KEY_CTRL:
                        case KEY_DOWN:
                        case KEY_END:
                        case KEY_ESCAPE:
                        case KEY_HOME:
                        case KEY_LEFT:
                        case KEY_PAGEDOWN:
                        case KEY_PAGEUP:
                        case KEY_RIGHT:
                        case KEY_SHIFT:
                        case KEY_TAB:
                        case KEY_UP:
                        
                        break;
                        
                        case KEY_ENTER:
                          
                                 if(selectionUtilisateur) {
                                         selectionUtilisateur=false;
                                 }
                                else {
                                        cMediateur.changerIdentite(listeUtil.getText());
                                        close();
                                 }
                            break;  
                            
                            default:
                                obtenirListeUtilisateur();
                            break;
                                }
                        }
                });
                
                listeUtil.addListener(new ComboBoxListenerAdapter() {

                        public void onSelect(ComboBox comboBox, Record record, int index) {
                                
                                String util = record.getAsString("utilisateur");
                                listeUtil.setValue(util);
                                
                        }
                });
        }
        
        public void rafraichir(Object nouvelleDonnees,
                        boolean repandreRaffraichissement) {
                
                if(nouvelleDonnees instanceof String[][]) {
                
                        Object[][] utilData = (Object[][])nouvelleDonnees ;
                        
                        FieldDef defUtil = new StringFieldDef("utilisateur");
                        FieldDef[] defTab = {defUtil};
                        
                        RecordDef rd = new RecordDef(defTab);
                        
                        final MemoryProxy dataProxy = new MemoryProxy(utilData);
                        final ArrayReader reader = new ArrayReader(rd);         
                        
                        storeUtil =new Store(dataProxy,reader);
                        storeUtil.load() ;
        
                        listeUtil.setStore(storeUtil);
                        listeUtil.expand();
                
                }
                
        }
        
        public void obtenirListeUtilisateur() {
                
                String valeur = listeUtil.getRawValue();

        cMediateur.obtenirListeUtilisateurs(valeur,this) ;
/*              
                String esp=espece.getText().replaceAll(" ","/");
                  esp=esp.replaceAll("%","");
                        
                  observationMediateur.obtenirListeReferentielNom(this,esp);
                  */
        }

}