Subversion Repositories eFlore/Applications.coel

Rev

Rev 227 | 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
 
3
import org.tela_botanica.client.RegistreId;
4
import org.tela_botanica.client.interfaces.Rafraichissable;
5
import org.tela_botanica.client.modeles.Publication;
6
import org.tela_botanica.client.modeles.PublicationListe;
7
 
8
import com.extjs.gxt.ui.client.Registry;
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;
15
 
16
public class PublicationDetailPanneauVue extends ContentPanel implements Rafraichissable {
17
 
18
	private ContentPanel content;
19
	private Html header;
20
	private String enteteHTML = "<div class='coel-detail'><h1>{0}</h1><h2>{1}</h2><h2>{2}</h2></div>";
21
	private String contenuHTML = "<div style='padding: 12px;'><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>";
22
	private String publicationNom = null;
23
	private String publicationAuteur = null;
24
	private String publicationDateParution = null;
25
 
26
	public PublicationDetailPanneauVue() {
27
		Registry.register(RegistreId.PANNEAU_PUBLICATION_DETAIL, this);
28
 
29
		setHeaderVisible(false);
30
		setLayout(new FitLayout());
31
 
32
		content = new ContentPanel();
33
		content.setBodyBorder(false);
34
		content.setHeaderVisible(false);
35
		content.setScrollMode(Scroll.AUTO);
36
 
37
		header = new Html();
38
		header.setStyleName("coel-detail");
39
		content.setTopComponent(header);
40
 
41
		add(content);
42
	}
43
 
44
	public void afficherDetailPublication(Publication publication) {
45
		if (publication != null) {
46
			content.removeAll();
47
 
48
			publicationNom = publication.getTitre();
49
			publicationAuteur = publication.getAuteur();
50
			publicationDateParution = publication.getDateParution();
51
 
52
			Params enteteParams = new Params();
53
			enteteParams.add(publicationNom);
54
			enteteParams.add(publicationAuteur);
55
			enteteParams.add(publicationDateParution);
56
 
57
			String eHtml = Format.substitute(enteteHTML, enteteParams);
58
			header.getElement().setInnerHTML(eHtml);
59
 
60
			Params contenuParams = new Params();
61
			contenuParams.add(publication.getCollection());
62
			contenuParams.add(publication.getEditeur());
63
			contenuParams.add(publication.getDateParution());
64
			contenuParams.add(publication.getIndicationNvt());
65
			contenuParams.add(publication.getFascicule());
66
			contenuParams.add(publication.getPages());
67
 
68
			String cHtml = Format.substitute(contenuHTML, contenuParams);
69
			content.addText(cHtml);
70
 
71
			layout();
72
		} else {
73
			header.setHtml("");
74
			content.removeAll();
75
		}
76
	}
77
 
78
	public void rafraichir(Object nouvelleDonnees) {
79
		if (nouvelleDonnees instanceof Publication) {
80
			afficherDetailPublication((Publication) nouvelleDonnees);
81
		} else if (nouvelleDonnees instanceof PublicationListe) {
82
			PublicationListe listePublication = (PublicationListe) nouvelleDonnees;
83
			// Test pour savoir si la liste contient des éléments
84
			if (listePublication.size() == 0) {
85
				afficherDetailPublication(null);
86
			}
87
		}
88
	}
89
 
90
}