Subversion Repositories eFlore/Applications.coel

Rev

Rev 935 | Rev 1124 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 935 Rev 936
1
package org.tela_botanica.client.vues.publication;
1
package org.tela_botanica.client.vues.publication;
2
 
2
 
3
import org.tela_botanica.client.ComposantClass;
3
import org.tela_botanica.client.ComposantClass;
4
import org.tela_botanica.client.ComposantId;
4
import org.tela_botanica.client.ComposantId;
5
import org.tela_botanica.client.Mediateur;
5
import org.tela_botanica.client.Mediateur;
6
import org.tela_botanica.client.interfaces.Rafraichissable;
6
import org.tela_botanica.client.interfaces.Rafraichissable;
7
import org.tela_botanica.client.modeles.projet.ProjetListe;
7
import org.tela_botanica.client.modeles.projet.ProjetListe;
8
import org.tela_botanica.client.modeles.publication.Publication;
8
import org.tela_botanica.client.modeles.publication.Publication;
9
import org.tela_botanica.client.vues.collection.DetailVue;
9
import org.tela_botanica.client.vues.DetailVue;
10
 
10
 
11
import com.extjs.gxt.ui.client.util.Format;
11
import com.extjs.gxt.ui.client.util.Format;
12
import com.extjs.gxt.ui.client.util.Params;
12
import com.extjs.gxt.ui.client.util.Params;
13
import com.extjs.gxt.ui.client.widget.ContentPanel;
13
import com.extjs.gxt.ui.client.widget.ContentPanel;
14
import com.extjs.gxt.ui.client.widget.Html;
14
import com.extjs.gxt.ui.client.widget.Html;
15
import com.extjs.gxt.ui.client.widget.layout.FitLayout;
15
import com.extjs.gxt.ui.client.widget.layout.FitLayout;
16
import com.google.gwt.core.client.GWT;
16
import com.google.gwt.core.client.GWT;
17
 
17
 
18
public class PublicationDetailVue extends DetailVue implements Rafraichissable {
18
public class PublicationDetailVue extends DetailVue implements Rafraichissable {
19
	
19
	
20
	private String enteteTpl = null;
20
	private String enteteTpl = null;
21
	private String contenuTpl = null;
21
	private String contenuTpl = null;
22
		
22
		
23
	private ContentPanel panneauPrincipal = null;
23
	private ContentPanel panneauPrincipal = null;
24
	private Html entete = null;
24
	private Html entete = null;
25
	private Html contenu = null;
25
	private Html contenu = null;
26
	
26
	
27
	private Publication publication = null;
27
	private Publication publication = null;
28
	private boolean publicationChargementOk = false;
28
	private boolean publicationChargementOk = false;
29
 
29
 
30
	public PublicationDetailVue(Mediateur mediateurCourant) {
30
	public PublicationDetailVue(Mediateur mediateurCourant) {
31
		super(mediateurCourant);
31
		super(mediateurCourant);
32
		
32
		
33
		initialiserTousLesTpl();
33
		initialiserTousLesTpl();
34
		
34
		
35
		panneauPrincipal = new ContentPanel();
35
		panneauPrincipal = new ContentPanel();
36
		panneauPrincipal.setLayout(new FitLayout());
36
		panneauPrincipal.setLayout(new FitLayout());
37
		panneauPrincipal.setHeaderVisible(false);
37
		panneauPrincipal.setHeaderVisible(false);
38
		panneauPrincipal.setBodyBorder(false);
38
		panneauPrincipal.setBodyBorder(false);
39
			
39
			
40
	    entete = new Html();
40
	    entete = new Html();
41
	    entete.setId(ComposantId.ZONE_DETAIL_ENTETE);
41
	    entete.setId(ComposantId.ZONE_DETAIL_ENTETE);
42
	    panneauPrincipal.setTopComponent(entete);
42
	    panneauPrincipal.setTopComponent(entete);
43
	    
43
	    
44
	    contenu = new Html();
44
	    contenu = new Html();
45
	    panneauPrincipal.add(contenu);
45
	    panneauPrincipal.add(contenu);
46
	    
46
	    
47
		add(panneauPrincipal);
47
		add(panneauPrincipal);
48
	}
48
	}
49
 
49
 
50
	private void initialiserTousLesTpl() {
50
	private void initialiserTousLesTpl() {
51
		initialiserEnteteHtmlTpl();
51
		initialiserEnteteHtmlTpl();
52
		initialiserGeneralTpl();
52
		initialiserGeneralTpl();
53
	}
53
	}
54
	
54
	
55
	private void initialiserEnteteHtmlTpl() {
55
	private void initialiserEnteteHtmlTpl() {
56
		enteteTpl = 	
56
		enteteTpl = 	
57
			"<div id='{css_id}'>"+
57
			"<div id='{css_id}'>"+
58
			"	<h1>{titre}</h1>"+
58
			"	<h1>{titre}</h1>"+
59
			"	<h2>{auteurs} ({annee})<span class='{css_meta}'>{projet} <br /> {i18n_id}:{id} - {guid}</span></h2>" +
59
			"	<h2>{auteurs} ({annee})<span class='{css_meta}'>{projet} <br /> {i18n_id}:{id} - {guid}</span></h2>" +
60
			"</div>";
60
			"</div>";
61
	}
61
	}
62
	
62
	
63
	private void initialiserGeneralTpl() {
63
	private void initialiserGeneralTpl() {
64
		contenuTpl =
64
		contenuTpl =
65
			"<div class='{css_corps}'>"+
65
			"<div class='{css_corps}'>"+
66
			"	<div class='{css_fieldset}'>"+
66
			"	<div class='{css_fieldset}'>"+
67
			"		<h2>{i18n_titre_detail}</h2>"+
67
			"		<h2>{i18n_titre_detail}</h2>"+
68
			"		<span class='{css_label}'>{i18n_auteurs} :</span> {auteurs}<br />"+
68
			"		<span class='{css_label}'>{i18n_auteurs} :</span> {auteurs}<br />"+
69
			"		<span class='{css_label}'>{i18n_titre} :</span> {titre}<br />"+
69
			"		<span class='{css_label}'>{i18n_titre} :</span> {titre}<br />"+
70
			"		<span class='{css_label}'>{i18n_collection} :</span> {collection}<br />"+
70
			"		<span class='{css_label}'>{i18n_collection} :</span> {collection}<br />"+
71
			"		<span class='{css_label}'>{i18n_editeur} :</span> {editeur}<br />"+
71
			"		<span class='{css_label}'>{i18n_editeur} :</span> {editeur}<br />"+
72
			"		<span class='{css_label}'>{i18n_annee} :</span> {annee}<br />"+
72
			"		<span class='{css_label}'>{i18n_annee} :</span> {annee}<br />"+
73
			"		<span class='{css_label}'>{i18n_nvt} :</span> {nvt}<br />"+
73
			"		<span class='{css_label}'>{i18n_nvt} :</span> {nvt}<br />"+
74
			"		<span class='{css_label}'>{i18n_fascicule} :</span> {fascicule}<br />"+
74
			"		<span class='{css_label}'>{i18n_fascicule} :</span> {fascicule}<br />"+
75
			"		<span class='{css_label}'>{i18n_pages} :</span> {pages}<br />"+
75
			"		<span class='{css_label}'>{i18n_pages} :</span> {pages}<br />"+
76
			"	</div>"+
76
			"	</div>"+
77
			"	<hr class='{css_clear}'/>"+
77
			"	<hr class='{css_clear}'/>"+
78
			"</div>";
78
			"</div>";
79
	}
79
	}
80
	
80
	
81
	public void afficherDetail() {
81
	public void afficherDetail() {
82
		if (publication != null) {
82
		if (publication != null) {
83
			afficherEntete();
83
			afficherEntete();
84
			afficherDetailPublication();
84
			afficherDetailPublication();
85
		}
85
		}
86
		layout();
86
		layout();
87
	}
87
	}
88
	
88
	
89
	private void afficherEntete() {
89
	private void afficherEntete() {
90
		Params enteteParams = new Params();
90
		Params enteteParams = new Params();
91
		enteteParams.set("css_id", ComposantId.ZONE_DETAIL_ENTETE);
91
		enteteParams.set("css_id", ComposantId.ZONE_DETAIL_ENTETE);
92
		enteteParams.set("css_meta", ComposantClass.META);
92
		enteteParams.set("css_meta", ComposantClass.META);
93
		
93
		
94
		enteteParams.set("i18n_id", i18nC.id());
94
		enteteParams.set("i18n_id", i18nC.id());
95
		
95
		
96
		enteteParams.set("titre", publication.getTitre());
96
		enteteParams.set("titre", publication.getTitre());
97
		enteteParams.set("auteurs", publication.getAuteur());
97
		enteteParams.set("auteurs", publication.getAuteur());
98
		enteteParams.set("annee", publication.getAnneeParution());
98
		enteteParams.set("annee", publication.getAnneeParution());
99
		enteteParams.set("id", publication.getId());
99
		enteteParams.set("id", publication.getId());
100
		enteteParams.set("guid", getGuid());
100
		enteteParams.set("guid", getGuid());
101
		enteteParams.set("projet", construireTxtProjet(publication.getIdProjet()));
101
		enteteParams.set("projet", construireTxtProjet(publication.getIdProjet()));
102
		GWT.log("entete généré", null);
102
		GWT.log("entete généré", null);
103
		String eHtml = Format.substitute(enteteTpl, enteteParams);
103
		String eHtml = Format.substitute(enteteTpl, enteteParams);
104
		entete.getElement().setInnerHTML(eHtml);
104
		entete.getElement().setInnerHTML(eHtml);
105
	}
105
	}
106
	
106
	
107
	public String getGuid() {
107
	public String getGuid() {
108
		String guid = "URN:tela-botanica.org:";
108
		String guid = "URN:tela-botanica.org:";
109
		guid += "coel"+publication.getIdProjet()+":";
109
		guid += "coel"+publication.getIdProjet()+":";
110
		guid += "pub"+publication.getId();
110
		guid += "pub"+publication.getId();
111
		return guid;
111
		return guid;
112
	}
112
	}
113
	
113
	
114
	public void afficherDetailPublication() {
114
	public void afficherDetailPublication() {
115
		Params contenuParams = new Params();
115
		Params contenuParams = new Params();
116
		
116
		
117
		contenuParams.set("i18n_titre_detail", i18nC.publicationTitre());
117
		contenuParams.set("i18n_titre_detail", i18nC.publicationTitre());
118
		contenuParams.set("i18n_auteurs", i18nC.publicationAuteurs());
118
		contenuParams.set("i18n_auteurs", i18nC.publicationAuteurs());
119
		contenuParams.set("i18n_titre", i18nC.publicationTitre());
119
		contenuParams.set("i18n_titre", i18nC.publicationTitre());
120
		contenuParams.set("i18n_collection", i18nC.publicationRevueCollection());
120
		contenuParams.set("i18n_collection", i18nC.publicationRevueCollection());
121
		contenuParams.set("i18n_editeur", i18nC.publicationEditeur());
121
		contenuParams.set("i18n_editeur", i18nC.publicationEditeur());
122
		contenuParams.set("i18n_annee", i18nC.publicationDateParution());
122
		contenuParams.set("i18n_annee", i18nC.publicationDateParution());
123
		contenuParams.set("i18n_nvt", i18nC.publicationNvt());
123
		contenuParams.set("i18n_nvt", i18nC.publicationNvt());
124
		contenuParams.set("i18n_fascicule", i18nC.publicationFascicule());
124
		contenuParams.set("i18n_fascicule", i18nC.publicationFascicule());
125
		contenuParams.set("i18n_pages", i18nC.publicationPage());
125
		contenuParams.set("i18n_pages", i18nC.publicationPage());
126
		
126
		
127
		contenuParams.set("auteurs", publication.getAuteur());
127
		contenuParams.set("auteurs", publication.getAuteur());
128
		contenuParams.set("titre", publication.getTitre());
128
		contenuParams.set("titre", publication.getTitre());
129
		contenuParams.set("collection", publication.getCollection());
129
		contenuParams.set("collection", publication.getCollection());
130
		contenuParams.set("editeur", publication.getNomEditeur());
130
		contenuParams.set("editeur", publication.getNomEditeur());
131
		contenuParams.set("annee", publication.getAnneeParution());
131
		contenuParams.set("annee", publication.getAnneeParution());
132
		contenuParams.set("nvt", publication.getIndicationNvt());
132
		contenuParams.set("nvt", publication.getIndicationNvt());
133
		contenuParams.set("fascicule", publication.getFascicule());
133
		contenuParams.set("fascicule", publication.getFascicule());
134
		contenuParams.set("pages", publication.getPages());
134
		contenuParams.set("pages", publication.getPages());
135
		
135
		
136
		String gHtml = formaterContenu(contenuTpl, contenuParams);
136
		String gHtml = formaterContenu(contenuTpl, contenuParams);
137
		contenu.getElement().setInnerHTML(gHtml);
137
		contenu.getElement().setInnerHTML(gHtml);
138
	}
138
	}
139
	
139
	
140
	public void rafraichir(Object nouvellesDonnees) {
140
	public void rafraichir(Object nouvellesDonnees) {
141
		if (nouvellesDonnees instanceof Publication) {
141
		if (nouvellesDonnees instanceof Publication) {
142
			publication = (Publication) nouvellesDonnees;
142
			publication = (Publication) nouvellesDonnees;
143
			publicationChargementOk = true;
143
			publicationChargementOk = true;
144
		} else if (nouvellesDonnees instanceof ProjetListe) {
144
		} else if (nouvellesDonnees instanceof ProjetListe) {
145
			projets = (ProjetListe) nouvellesDonnees;
145
			projets = (ProjetListe) nouvellesDonnees;
146
			projetsChargementOk = true;
146
			projetsChargementOk = true;
147
			GWT.log("projets recu", null);
147
			GWT.log("projets recu", null);
148
		} else {
148
		} else {
149
			GWT.log(Mediateur.i18nM.erreurRafraichir(nouvellesDonnees.getClass(), this.getClass()), null);
149
			GWT.log(Mediateur.i18nM.erreurRafraichir(nouvellesDonnees.getClass(), this.getClass()), null);
150
		}
150
		}
151
		
151
		
152
		if (avoirDonneesChargees()) {
152
		if (avoirDonneesChargees()) {
153
			afficherDetail();
153
			afficherDetail();
154
		}
154
		}
155
	}
155
	}
156
	
156
	
157
	private boolean avoirDonneesChargees() {
157
	private boolean avoirDonneesChargees() {
158
		boolean ok = false;
158
		boolean ok = false;
159
		if (projetsChargementOk && publicationChargementOk) {
159
		if (projetsChargementOk && publicationChargementOk) {
160
			ok = true;
160
			ok = true;
161
		}
161
		}
162
		return ok;
162
		return ok;
163
	}
163
	}
164
}
164
}