Subversion Repositories eFlore/Applications.coel

Rev

Rev 1071 | Rev 1105 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

package org.tela_botanica.client.composants;


import org.tela_botanica.client.ComposantId;
import org.tela_botanica.client.Mediateur;
import org.tela_botanica.client.RegistreId;
import org.tela_botanica.client.images.Images;
import org.tela_botanica.client.interfaces.Rafraichissable;
import org.tela_botanica.client.modeles.Information;

import com.extjs.gxt.ui.client.Registry;
import com.extjs.gxt.ui.client.Style.Scroll;
import com.extjs.gxt.ui.client.util.Format;
import com.extjs.gxt.ui.client.util.Params;
import com.extjs.gxt.ui.client.widget.Dialog;
import com.extjs.gxt.ui.client.widget.LayoutContainer;
import com.extjs.gxt.ui.client.widget.Text;
import com.extjs.gxt.ui.client.widget.button.Button;
import com.extjs.gxt.ui.client.widget.form.CheckBox;
import com.extjs.gxt.ui.client.widget.layout.ColumnLayout;
import com.extjs.gxt.ui.client.widget.layout.FitLayout;
import com.extjs.gxt.ui.client.widget.layout.FlowLayout;
import com.extjs.gxt.ui.client.widget.layout.RowLayout;
import com.google.gwt.user.client.ui.HTML;

public class LicenceFenetre extends Dialog implements Rafraichissable{

        private String messageErreurTpl = "<div id='" + ComposantId.DIV_IDENTIFICATION_MSG + "'>{message}</div>";
        private LayoutContainer messageErreur;
        private HTML texteLicence;
        private String licenceTpl = "<div style='padding:15px; width:400px;'>{licence}</div>";
        private IdentificationFenetre fenetreIdentification;
        private CheckBox accepter;
        
        public LicenceFenetre(IdentificationFenetre vueARafraichir)     {
                
                fenetreIdentification = vueARafraichir;
                
                setSize(500, 300);
                setPlain(true);
                setHeading("Licence d'utilisation");
                setIcon(Images.ICONES.application());
                setLayout(new RowLayout());
                setButtons(Dialog.OKCANCEL);
                
                messageErreur = new LayoutContainer();
                messageErreur.setLayout(new FitLayout());
                add(messageErreur);
                
                LayoutContainer licence = new LayoutContainer();
                licence.setSize("98%", "75%");
                licence.setStyleAttribute("padding", "5px");
                licence.setLayout(new FlowLayout());
                licence.setScrollMode(Scroll.AUTO);
                
                texteLicence = new HTML();
                licence.add(texteLicence);
                add(licence);
                
                LayoutContainer cbContainer = new LayoutContainer(new ColumnLayout());
                accepter = new CheckBox();
                cbContainer.add(accepter);
                add(cbContainer);
                
                Text txtAccepter = new Text(Mediateur.i18nC.licenceJaccepte());
                txtAccepter.setStyleAttribute("padding", "3px");
                cbContainer.add(txtAccepter);
                setClosable(false);
                
                show();
                initialiserComposants();
        }
        
        public void initialiserComposants()     {
                Params licenceParam = new Params();
                
                licenceParam.set("message", Mediateur.i18nC.licenceAccepter());
                messageErreur.el().setInnerHtml(Format.substitute(messageErreurTpl, licenceParam));
                
                String licence = Mediateur.i18nC.licence();
                
                Params param = new Params();
                param.set("licence", licence);
                texteLicence.setHTML(Format.substitute(licenceTpl, param));
        }

        @Override
        protected void createButtons() {
                super.createButtons();
        }
        
        protected void onButtonPressed(Button button) {
                if (Dialog.OK.equals(button.getItemId()))       {
                        button.setEnabled(false);
                        boolean licenceAcceptee = accepter.getValue();
                        if (licenceAcceptee == true)    {
                                ((Mediateur) Registry.get(RegistreId.MEDIATEUR)).accepterLicence(this);
                        } else  {
                                hide();
                        }
                } else {
                        hide();
                }
        }
        
        @Override
        public void rafraichir(Object nouvellesDonnees) {
                if (nouvellesDonnees instanceof Information)    {
                        Information info = (Information) nouvellesDonnees;
                        if (info.getType().equals("maj_licence"))       {
                                
                                String licence = info.getDonnee(0).toString();
                                if (licence.equals("1"))        {
                                        hide();
                                        fenetreIdentification.onSubmit();
                                        
                                } else  {
                                        //Licence non acceptée, on masque la fenêtre pour laisser 
                                        // affiché la fenêtre d'identification qui est en erreur. 
                                        hide();
                                }
                        }
                }
                
        }
        

}