Subversion Repositories eFlore/Applications.coel

Rev

Rev 1383 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
935 jpm 1
package org.tela_botanica.client.modeles.collection;
883 jpm 2
 
1479 cyprien 3
import java.util.Iterator;
4
import java.util.Map;
5
import java.util.Set;
6
 
935 jpm 7
import org.tela_botanica.client.modeles.aDonnee;
1479 cyprien 8
import org.tela_botanica.client.modeles.personne.Personne;
935 jpm 9
import org.tela_botanica.client.modeles.publication.Publication;
1479 cyprien 10
import org.tela_botanica.client.util.Debug;
935 jpm 11
 
1479 cyprien 12
import com.extjs.gxt.ui.client.data.ModelData;
883 jpm 13
import com.google.gwt.json.client.JSONObject;
14
 
15
public class CollectionAPublication extends aDonnee {
16
 
17
	private static final long serialVersionUID = 1L;
18
 
19
	public static final String PREFIXE = "ccapu";
1479 cyprien 20
	private boolean removePrefix = true;
883 jpm 21
	private Publication publicationLiee = null;
1173 jpm 22
	public static String[] champsObligatoires = {"ccapu_id_collection", "ccapu_id_publication"};
883 jpm 23
 
24
	public CollectionAPublication() {
25
		initialiser(new JSONObject());
26
	}
1479 cyprien 27
 
28
	public CollectionAPublication(boolean removePrefix) {
29
		this.removePrefix = removePrefix;
30
		initialiser(new JSONObject());
31
	}
883 jpm 32
 
33
	public CollectionAPublication(JSONObject collectionAPublicationListe) {
34
		initialiser(collectionAPublicationListe);
35
	}
36
 
1479 cyprien 37
	public CollectionAPublication(ModelData model, boolean removePrefix)
38
	{
39
		this.removePrefix = removePrefix;
40
 
41
		Map<String, Object> a = model.getProperties();
42
 
43
		Set<String> cles = a.keySet();
44
		Iterator<String> it = cles.iterator();
45
		while (it.hasNext()) {
46
			String cle = it.next();
47
			if (a.get(cle) != null) {
48
				String cleObjet = "";
49
				if (removePrefix) {
50
					cleObjet = cle.replaceFirst("^"+CollectionAPublication.PREFIXE+"_", "");
51
					cleObjet = cleObjet.replaceFirst("^"+PREFIXE+"_", "");
52
				}
53
				else {
54
					cleObjet = cle;
55
				}
56
				this.set(cleObjet, a.get(cle));
57
			}
58
		}
59
 
60
		setPublication(new Publication(model, removePrefix));
61
		this.set("_etat_", a.get("_etat_"));
62
	}
63
 
883 jpm 64
	@Override
65
	protected String getPrefixe() {
66
		return PREFIXE;
67
	}
68
 
1173 jpm 69
	protected String[] getChampsObligatoires()	{
70
		return champsObligatoires;
71
	}
72
 
883 jpm 73
	private void initialiser(JSONObject collectionAPublicationListe) {
74
		setPublication(new Publication(collectionAPublicationListe));
75
		initialiserChampsPourGrille();
76
		initialiserModele(collectionAPublicationListe);
77
	}
78
 
79
	// PUBLICATION
80
	public Publication getPublication() {
81
		return publicationLiee;
82
	}
83
	public void setPublication(Publication publication) {
84
		publicationLiee = publication;
85
		initialiserChampsPourGrille();
907 jpm 86
		if (publication != null) {
87
			setIdPublication(publication.getId());
88
		}
883 jpm 89
	}
90
 
91
	private void initialiserChampsPourGrille() {
1479 cyprien 92
		if (removePrefix) {
93
			set("fmt_auteur", getPublication().getAuteur());
94
			set("titre", getPublication().getTitre());
95
			set("collection", getPublication().getCollection());
96
			set("_editeur_", "");
97
			set("_annee_", "");
98
			set("indication_nvt", getPublication().getIndicationNvt());
99
			set("fascicule", getPublication().getFascicule());
100
			set("truk_pages", getPublication().getPages());
101
			set("_etat_", "");
102
		} else {
103
			set(Publication.PREFIXE+"_fmt_auteur", getPublication().getAuteur());
104
			set(Publication.PREFIXE+"_titre", getPublication().getTitre());
105
			set(Publication.PREFIXE+"_collection", getPublication().getCollection());
106
			set("_editeur_", "");
107
			set("_annee_", "");
108
			set(Publication.PREFIXE+"_indication_nvt", getPublication().getIndicationNvt());
109
			set(Publication.PREFIXE+"_fascicule", getPublication().getFascicule());
110
			set(Publication.PREFIXE+"_truk_pages", getPublication().getPages());
111
			set("_etat_", "");
112
		}
883 jpm 113
	}
114
 
115
	// ID
116
	/** Génère un identifiant de CollectionAPersonne.
117
	 *
118
	 * C'est une concaténation des clés primaires de la table coel_collection_a_personne séparées par un tiret "-".
119
	 *
120
	 * @return identifiant unique d'une relation "collection à personne".
121
	 */
122
	public String getId() {
123
		String idCollection = getIdCollection();
124
		String idPublication = getIdPublication();
125
		if (idCollection.equals("") && idPublication.equals("")) {
126
			return null;
127
		} else {
128
			return (idCollection+"-"+idPublication);
129
		}
130
	}
131
 
132
	//+---------------------------------------------------------------------------------------------------------------+
133
	// CHAMPS PROVENANT de la TABLE COEL_COLLECTION_A_PERSONNE
134
 
135
	// ID COLLECTION
136
	public String getIdCollection() {
1479 cyprien 137
		if (removePrefix) return renvoyerValeurCorrecte("id_collection");
138
		else return renvoyerValeurCorrecte(PREFIXE+"_id_collection");
883 jpm 139
	}
140
	public void setIdCollection(String idCollection) {
1479 cyprien 141
		if (removePrefix) set("id_collection", idCollection);
142
		else set(PREFIXE+"_id_collection", idCollection);
883 jpm 143
	}
144
 
145
	// ID PUBLICATION
146
	public String getIdPublication() {
1479 cyprien 147
		if (removePrefix) return renvoyerValeurCorrecte("id_publication");
148
		else return renvoyerValeurCorrecte(PREFIXE+"_id_publication");
883 jpm 149
	}
150
	public void setIdPublication(String ip) {
1479 cyprien 151
		if (removePrefix) set("id_publication", ip);
152
		else set(PREFIXE+"_id_publication", ip);
883 jpm 153
	}
154
 
155
}