Subversion Repositories eFlore/Applications.coel

Rev

Details | Last modification | View Log | RSS feed

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