Subversion Repositories eFlore/Applications.coel

Rev

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

package org.tela_botanica.client.vues.publication;

import org.tela_botanica.client.ComposantId;
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.publication.Publication;
import org.tela_botanica.client.modeles.publication.PublicationAPersonneListe;
import org.tela_botanica.client.modeles.publication.PublicationListe;
import org.tela_botanica.client.util.Debug;

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 PublicationVue extends LayoutContainer implements Rafraichissable {
        
        private Mediateur mediateur = null;
        private PublicationListeVue panneauPublicationListe;
        private PublicationDetailVue panneauPublicationDetail;
        
        public PublicationVue(Mediateur mediateurCourant) {
                mediateur = mediateurCourant;
                
                BorderLayout layout = new BorderLayout();
                layout.setEnableState(false);
                setLayout(layout);

                panneauPublicationListe = new PublicationListeVue(mediateur);
                add(panneauPublicationListe, new BorderLayoutData(LayoutRegion.CENTER));

                panneauPublicationDetail = new PublicationDetailVue(mediateur);
                BorderLayoutData southData = new BorderLayoutData(LayoutRegion.SOUTH, .5f, 200, 1000);
                southData.setSplit(true);
                southData.setMargins(new Margins(5, 0, 0, 0));
                add(panneauPublicationDetail, southData);
                setId(ComposantId.PANNEAU_PUBLICATION_LISTE);
        }
        
        public void rafraichir(Object nouvellesDonnees) {
                if (nouvellesDonnees instanceof Publication) {
                        panneauPublicationDetail.rafraichir(nouvellesDonnees);
                } else if (nouvellesDonnees instanceof PublicationListe) {
                        panneauPublicationListe.rafraichir(nouvellesDonnees);
                        mediateur.desactiverChargement(this);
                } else if (nouvellesDonnees instanceof Information) {
                        panneauPublicationListe.rafraichir(nouvellesDonnees);
                } else {
                        GWT.log(Mediateur.i18nM.erreurRafraichir(nouvellesDonnees.getClass(), this.getClass()), null);
                }
        }
}