Subversion Repositories eFlore/Applications.coel

Rev

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

package org.tela_botanica.client.vues.structure;

import org.tela_botanica.client.Mediateur;
import org.tela_botanica.client.interfaces.Rafraichissable;
import org.tela_botanica.client.modeles.Information;
import org.tela_botanica.client.modeles.MenuApplicationId;
import org.tela_botanica.client.modeles.structure.Structure;
import org.tela_botanica.client.modeles.structure.StructureListe;
import org.tela_botanica.client.synchronisation.Sequenceur;

import com.extjs.gxt.ui.client.Style.LayoutRegion;
import com.extjs.gxt.ui.client.util.Margins;
import com.extjs.gxt.ui.client.widget.LayoutContainer;
import com.extjs.gxt.ui.client.widget.layout.BorderLayout;
import com.extjs.gxt.ui.client.widget.layout.BorderLayoutData;
import com.google.gwt.core.client.GWT;

public class StructureVue extends LayoutContainer implements Rafraichissable {

        private Mediateur mediateur = null;
        private StructureListeVue panneauInstitutionListe = null;
        private StructureDetailVue panneauInstitutionDetail = null;

        private Sequenceur sequenceur = new Sequenceur();
        
        public StructureVue(Mediateur mediateurCourant) {
                mediateur = mediateurCourant;
                
                BorderLayout layout = new BorderLayout();
                layout.setEnableState(false);
                setLayout(layout);

                panneauInstitutionListe = new StructureListeVue(mediateur);
                add(panneauInstitutionListe, new BorderLayoutData(LayoutRegion.CENTER));

                panneauInstitutionDetail = new StructureDetailVue(mediateur, sequenceur);
                BorderLayoutData dispositionSud = new BorderLayoutData(LayoutRegion.SOUTH, .5f, 200, 1000);
                dispositionSud.setSplit(true);
                dispositionSud.setMargins(new Margins(5, 0, 0, 0));
                add(panneauInstitutionDetail, dispositionSud);
        }

        public void rafraichir(Object nouvellesDonnees) {
                // Nous passons l'objet aux méthodes rafraichir des panneaux composant le panneau principal Structure
                if (nouvellesDonnees instanceof Structure) {
                        panneauInstitutionDetail.rafraichir(nouvellesDonnees);
                } else if (nouvellesDonnees instanceof StructureListe) {
                        panneauInstitutionListe.rafraichir(nouvellesDonnees);
                } else if (nouvellesDonnees instanceof Information) {
                        Information info = (Information) nouvellesDonnees;
                        if (info.getType().equals("liste_structure_a_personne")) {
                                panneauInstitutionDetail.rafraichir(nouvellesDonnees);
                        } else if(info.getType().equals("structure_ajoutee")) {
                                mediateur.clicMenu(MenuApplicationId.STRUCTURE);
                        } else if (info.getType().equals("liste_collection_a_structure")) {
                                panneauInstitutionDetail.rafraichir(nouvellesDonnees);
                        } else {
                                panneauInstitutionListe.rafraichir(nouvellesDonnees);
                        }
                } else {
                        GWT.log(Mediateur.i18nM.erreurRafraichir(nouvellesDonnees.getClass(), this.getClass()), null);
                }
        }
        
}