Subversion Repositories eFlore/Applications.coel

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
106 aurelien 1
package org.tela_botanica.client.vues;
2
 
553 jp_milcent 3
import org.tela_botanica.client.Mediateur;
4
import org.tela_botanica.client.i18n.Constantes;
106 aurelien 5
import org.tela_botanica.client.interfaces.Rafraichissable;
6
import org.tela_botanica.client.modeles.Publication;
7
import org.tela_botanica.client.modeles.PublicationListe;
8
 
9
import com.extjs.gxt.ui.client.Style.Scroll;
10
import com.extjs.gxt.ui.client.util.Format;
11
import com.extjs.gxt.ui.client.util.Params;
12
import com.extjs.gxt.ui.client.widget.ContentPanel;
13
import com.extjs.gxt.ui.client.widget.Html;
14
import com.extjs.gxt.ui.client.widget.layout.FitLayout;
716 aurelien 15
import com.google.gwt.user.client.Window;
106 aurelien 16
 
444 jp_milcent 17
public class PublicationDetailVue extends ContentPanel implements Rafraichissable {
553 jp_milcent 18
 
19
	private Mediateur mediateur = null;
20
	private Constantes i18nC = null;
21
 
106 aurelien 22
	private ContentPanel content;
23
	private Html header;
716 aurelien 24
	private String enteteHTML = "<div id='coel-detail-entete'><div id='css_id'><h1>{0}</h1><h2>{1}</h2><h2>{2}</h2></div></div>";
25
	private String contenuHTML = "<div id='coel-detail-corps'><div class='css_fieldset coel-detail-corps-contenu'><h2>Détails de la publication</h2><span style='font-weight:bold;'>Nom de la revue :</span> {0}<br /><span style='font-weight:bold;'>Editeur :</span> {1}<br /><span style='font-weight:bold;'>Année :</span> {2}<br /><span style='font-weight:bold;'>Tome :</span> {3}<br /><span style='font-weight:bold;'>Fascicule :</span> {4}<br /><span style='font-weight:bold;'>Pages :</span> {5}</div></div>";
106 aurelien 26
	private String publicationNom = null;
27
	private String publicationAuteur = null;
28
	private String publicationDateParution = null;
29
 
553 jp_milcent 30
	public PublicationDetailVue(Mediateur mediateurCourant) {
31
		mediateur = mediateurCourant;
32
		i18nC = mediateur.i18nC;
33
 
106 aurelien 34
		setHeaderVisible(false);
35
		setLayout(new FitLayout());
36
 
37
		content = new ContentPanel();
38
		content.setBodyBorder(false);
39
		content.setHeaderVisible(false);
40
		content.setScrollMode(Scroll.AUTO);
41
 
42
		header = new Html();
43
		content.setTopComponent(header);
44
 
45
		add(content);
46
	}
47
 
48
	public void afficherDetailPublication(Publication publication) {
49
		if (publication != null) {
50
			content.removeAll();
51
 
52
			publicationNom = publication.getTitre();
227 aurelien 53
			publicationAuteur = publication.getAuteur().replaceAll("\\|", ", ");;
106 aurelien 54
			publicationDateParution = publication.getDateParution();
55
 
56
			Params enteteParams = new Params();
57
			enteteParams.add(publicationNom);
58
			enteteParams.add(publicationAuteur);
59
			enteteParams.add(publicationDateParution);
60
 
61
			String eHtml = Format.substitute(enteteHTML, enteteParams);
62
			header.getElement().setInnerHTML(eHtml);
63
 
64
			Params contenuParams = new Params();
65
			contenuParams.add(publication.getCollection());
66
			contenuParams.add(publication.getEditeur());
67
			contenuParams.add(publication.getDateParution());
68
			contenuParams.add(publication.getIndicationNvt());
69
			contenuParams.add(publication.getFascicule());
70
			contenuParams.add(publication.getPages());
71
 
72
			String cHtml = Format.substitute(contenuHTML, contenuParams);
73
			content.addText(cHtml);
74
 
75
			layout();
76
		} else {
77
			header.setHtml("");
78
			content.removeAll();
79
		}
80
	}
81
 
82
	public void rafraichir(Object nouvelleDonnees) {
716 aurelien 83
 
106 aurelien 84
		if (nouvelleDonnees instanceof Publication) {
85
			afficherDetailPublication((Publication) nouvelleDonnees);
86
		} else if (nouvelleDonnees instanceof PublicationListe) {
87
			PublicationListe listePublication = (PublicationListe) nouvelleDonnees;
88
			// Test pour savoir si la liste contient des éléments
89
			if (listePublication.size() == 0) {
90
				afficherDetailPublication(null);
91
			}
92
		}
93
	}
94
 
95
}