Subversion Repositories eFlore/Applications.coel

Rev

Rev 1513 | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

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