Subversion Repositories eFlore/Applications.cel

Rev

Rev 7 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 7 Rev 30
Line 1... Line 1...
1
package org.tela_botanica.client.image;
1
package org.tela_botanica.client.image;
Line -... Line 2...
-
 
2
 
2
 
3
 
3
 
4
import org.tela_botanica.client.CarnetEnLigneMediateur;
4
import org.tela_botanica.client.interfaces.IdVue;
5
import org.tela_botanica.client.interfaces.IdVue;
5
import org.tela_botanica.client.interfaces.Rafraichissable;
6
import org.tela_botanica.client.interfaces.Rafraichissable;
6
import org.tela_botanica.client.interfaces.VueListable;
7
import org.tela_botanica.client.interfaces.VueListable;
Line 14... Line 15...
14
import org.tela_botanica.client.vues.MiniListeObservationVue;
15
import org.tela_botanica.client.vues.MiniListeObservationVue;
15
import org.tela_botanica.client.vues.PanneauFiltresVues;
16
import org.tela_botanica.client.vues.PanneauFiltresVues;
16
import org.tela_botanica.client.vues.PanneauMetadonneesVue;
17
import org.tela_botanica.client.vues.PanneauMetadonneesVue;
17
import org.tela_botanica.client.vues.ZoomImageVue;
18
import org.tela_botanica.client.vues.ZoomImageVue;
Line -... Line 19...
-
 
19
 
18
 
20
import com.google.gwt.core.client.JavaScriptObject;
19
import com.google.gwt.user.client.DOM;
21
import com.google.gwt.user.client.DOM;
20
import com.google.gwt.user.client.Element;
22
import com.google.gwt.user.client.Element;
21
import com.google.gwt.user.client.Event;
23
import com.google.gwt.user.client.Event;
22
import com.google.gwt.user.client.Window;
24
import com.google.gwt.user.client.Window;
Line 27... Line 29...
27
import com.gwtext.client.data.Record;
29
import com.gwtext.client.data.Record;
28
import com.gwtext.client.data.Store;
30
import com.gwtext.client.data.Store;
29
import com.gwtext.client.data.Tree;
31
import com.gwtext.client.data.Tree;
30
import com.gwtext.client.dd.DragData;
32
import com.gwtext.client.dd.DragData;
31
import com.gwtext.client.dd.DragSource;
33
import com.gwtext.client.dd.DragSource;
-
 
34
import com.gwtext.client.widgets.BoxComponent;
-
 
35
import com.gwtext.client.widgets.Component;
-
 
36
import com.gwtext.client.widgets.Container;
32
import com.gwtext.client.widgets.DataView;
37
import com.gwtext.client.widgets.DataView;
33
import com.gwtext.client.widgets.Panel;
38
import com.gwtext.client.widgets.Panel;
34
import com.gwtext.client.widgets.TabPanel;
39
import com.gwtext.client.widgets.TabPanel;
-
 
40
import com.gwtext.client.widgets.event.PanelListener;
-
 
41
import com.gwtext.client.widgets.event.PanelListenerAdapter;
35
import com.gwtext.client.widgets.grid.GridDragData;
42
import com.gwtext.client.widgets.grid.GridDragData;
36
import com.gwtext.client.widgets.layout.BorderLayout;
43
import com.gwtext.client.widgets.layout.BorderLayout;
37
import com.gwtext.client.widgets.layout.BorderLayoutData;
44
import com.gwtext.client.widgets.layout.BorderLayoutData;
38
import com.gwtext.client.widgets.layout.FitLayout;
45
import com.gwtext.client.widgets.layout.FitLayout;
39
import com.gwtext.client.widgets.menu.BaseItem;
46
import com.gwtext.client.widgets.menu.BaseItem;
Line 53... Line 60...
53
public class ImageMediateur {
60
public class ImageMediateur {
Line 54... Line 61...
54
 
61
 
55
	/**
62
	/**
56
	 * le mediateur des observations qui lie la partie images au carnet
63
	 * le mediateur des observations qui lie la partie images au carnet
57
	 */
64
	 */
Line 58... Line 65...
58
	private ObservationMediateur oMediateur = null;
65
	private CarnetEnLigneMediateur cMediateur = null;
59
 
66
 
60
	/**
67
	/**
61
	 * booleen qui verifie l'unicite de l'instance (donc static)
68
	 * booleen qui verifie l'unicite de l'instance (donc static)
Line 149... Line 156...
149
 
156
 
150
	/**
157
	/**
151
	 * constructeur privé (on accède a la classe par la méthode getInstance)
158
	 * constructeur privé (on accède a la classe par la méthode getInstance)
152
	 */
159
	 */
153
	private ImageMediateur() {
-
 
154
		// quelques variables de position pour les borderlayouts
-
 
155
		final BorderLayoutData regionNord = new BorderLayoutData(
-
 
Line 156... Line 160...
156
				RegionPosition.NORTH);
160
	private ImageMediateur() {
157
 
-
 
Line 158... Line 161...
158
		final BorderLayoutData regionCentre = new BorderLayoutData(
161
 
159
				RegionPosition.CENTER);
-
 
160
 
-
 
Line 161... Line -...
161
		final BorderLayoutData regionEst = new BorderLayoutData(
-
 
162
				RegionPosition.EAST);
162
		panneauPrincipalImage.addListener(new PanelListenerAdapter() {
163
		regionEst.setSplit(true);
-
 
Line 164... Line 163...
164
 
163
 
165
		final BorderLayoutData regionOuest = new BorderLayoutData(
164
			public boolean doBeforeRender(Component component) {
166
				RegionPosition.WEST);
-
 
167
		regionOuest.setSplit(true);
-
 
168
 
-
 
169
		afficherMenuId();
-
 
Line 170... Line 165...
170
 
165
				
171
		// on crée un modèle
-
 
172
		iModele = ImageModele.Instance(this);
-
 
Line 173... Line -...
173
		// et on demande l'arbre des mots clés
-
 
174
		iModele.initialiserArbreMotsCles();
166
				initialiser() ;
-
 
167
				
Line 175... Line -...
175
 
-
 
176
		// on gère la mise en page du panneau principal
168
				return true;
177
		panneauPrincipalImage.setLayout(new BorderLayout());
-
 
178
		panneauPrincipalImage.setId("x-main-panel-image");
-
 
Line 179... Line -...
179
 
-
 
180
		// on crée le panneau des filtres
-
 
181
		filtres = new PanneauFiltresVues(this);
169
			}
182
 
-
 
183
		// on crée le panneau qui contient les differentes onglets ainsi que le
-
 
Line 184... Line 170...
184
		// menu supérieur
170
 
185
		panneauMenuEtOngletsImage = new Panel();
171
			public boolean doBeforeShow(Component component) {
186
		panneauMenuEtOngletsImage.setLayout(new BorderLayout());
172
				
-
 
173
				return true;
-
 
174
			}
187
 
175
			
-
 
176
		}) ;
188
		// le panneau à onglet qui contient les trois vues
177
 
Line 189... Line 178...
189
		ongletsImage = new TabPanel();
178
	}
190
 
179
 
Line 191... Line 180...
191
		// la galerie
180
	/**
192
		galerieImage = new GalerieImageVue(this);
-
 
193
 
-
 
194
		// la liste des images
-
 
Line 195... Line 181...
195
		Panel panneauListeImage = new Panel("Liste");
181
	 * constructeur avec paramètres privé (on accède a la classe par la méthode
196
		listeImage = new ListeImageVue(this);
-
 
197
		panneauListeImage.setLayout(new FitLayout());
-
 
Line 198... Line -...
198
		panneauListeImage.add(listeImage);
-
 
199
 
-
 
200
		// le panneau zoom
-
 
201
		zoomImage = new ZoomImageVue(this);
182
	 * getInstance)
-
 
183
	 * 
Line 202... Line 184...
202
 
184
	 * @param cm
203
		// on ajoute les panneaux au panneau à onglets
-
 
Line 204... Line -...
204
		ongletsImage.add(galerieImage);
-
 
205
		ongletsImage.add(panneauListeImage);
-
 
206
		ongletsImage.add(zoomImage);
185
	 *            le médiateur du carnet à associer à la partie image
207
 
-
 
-
 
186
	 */
Line 208... Line -...
208
		// on crée les menu et la barre de vue
-
 
209
		menuImageVue = new MenuImageVue(this);
187
	private ImageMediateur(CarnetEnLigneMediateur cm) {
210
		barreOutilsVue = new BarreOutilsVue(this);
-
 
211
 
-
 
212
		// on initialise le volet qui contient les mots clés
-
 
Line 213... Line -...
213
		detailsEtMotsCles.setAnimCollapse(true);
-
 
214
		detailsEtMotsCles.setTitleCollapse(true);
188
		
215
		detailsEtMotsCles.setCollapsible(true);
-
 
Line -... Line 189...
-
 
189
		cMediateur = cm;
216
 
190
		panneauPrincipalImage.addListener(new PanelListenerAdapter() {
-
 
191
 
-
 
192
			public boolean doBeforeRender(Component component) {
-
 
193
				
-
 
194
				initialiser() ;
217
		filtreMotsCles = new ArbreMotsClesFiltreVue(this);
195
				
-
 
196
				return true;
-
 
197
			}
Line -... Line 198...
-
 
198
 
218
		filtreCommentaires = new BarreRechercheFiltreVue(this);
199
			public boolean doBeforeShow(Component component) {
-
 
200
				
219
 
201
				return true;
-
 
202
			}
-
 
203
			
-
 
204
		}) ;
-
 
205
 
Line -... Line 206...
-
 
206
	}
-
 
207
 
-
 
208
	/**
-
 
209
	 * Change la valeur du booleen de selection
-
 
210
	 * 
-
 
211
	 * @param selection
-
 
212
	 *            la nouvelle valeur du booléen
220
		// on crée le panneau conteneur des métadonnées et infos
213
	 */
221
		metadonneesIptcExif = new PanneauMetadonneesVue(this);
214
	public void setSelection(boolean selection) {
-
 
215
		this.selection = selection;
-
 
216
	}
Line 222... Line 217...
222
		// et on l'inclut dans le volet approprié
217
 
-
 
218
	/**
Line 223... Line 219...
223
		detailsEtMotsCles.add(metadonneesIptcExif);
219
	 * renvoie la valeur du booleen de selection
224
 
220
	 * 
225
		// on ajoute la barre de vue au nord du panneau qui contient menu et
221
	 * @return la valeur du booleen de selection
226
		// onglets d'images
222
	 */
227
		panneauMenuEtOngletsImage.add(barreOutilsVue, regionNord);
-
 
228
		// les onglets au centre
223
	public boolean isSelection() {
-
 
224
		return selection;
229
		panneauMenuEtOngletsImage.add(ongletsImage, regionCentre);
225
	}
230
 
226
 
-
 
227
	/**
-
 
228
	 * Retourne une instance de manière unique
-
 
229
	 * 
-
 
230
	 * @return l'instance unique du médiateur
231
		// on ajoute le panneau qui contient le menu et les onglets d'images au
231
	 */
-
 
232
	public static ImageMediateur Instance() {
-
 
233
		if (!estInstancie) {
-
 
234
			estInstancie = true;
Line -... Line 235...
-
 
235
			return new ImageMediateur();
-
 
236
		} else {
232
		// centre
237
			return null;
233
		panneauPrincipalImage.add(panneauMenuEtOngletsImage, regionCentre);
238
 
234
 
239
		}
Line 235... Line 240...
235
		// et le panneau de métadonnées et d'info sur le coté droit
240
	}
Line 266... Line 271...
266
 
271
 
267
		final BorderLayoutData regionOuest = new BorderLayoutData(
272
		final BorderLayoutData regionOuest = new BorderLayoutData(
268
				RegionPosition.WEST);
273
				RegionPosition.WEST);
Line 269... Line 274...
269
		regionOuest.setSplit(true);
274
		regionOuest.setSplit(true);
Line 270... Line 275...
270
 
275
 
271
		afficherMenuId();
276
		setIdentifiant("0") ;
272
 
277
 
273
		// on crée un modèle
278
		// on crée un modèle
Line 280... Line 285...
280
 
285
 
281
		// on crée le panneau des filtres
286
		// on crée le panneau des filtres
282
		filtres = new PanneauFiltresVues(this);
287
		filtres = new PanneauFiltresVues(this);
Line 283... Line -...
283
		filtres.setWidth(200);
-
 
284
 
-
 
285
		// on crée le panneau qui contient les differentes onglets ainsi que le
-
 
286
		// menu supérieur
-
 
287
		panneauMenuEtOngletsImage = new Panel();
-
 
288
		panneauMenuEtOngletsImage.setLayout(new BorderLayout());
288
		filtres.setWidth(200);
289
 
289
 
Line 290... Line 290...
290
		// le panneau à onglet qui contient les trois vues
290
		// le panneau à onglet qui contient les trois vues
291
		ongletsImage = new TabPanel();
291
		ongletsImage = new TabPanel();
Line 336... Line 336...
336
		panneauPrincipalImage.add(panneauMenuEtOngletsImage, regionCentre);
336
		panneauPrincipalImage.add(panneauMenuEtOngletsImage, regionCentre);
337
		// et le panneau de métadonnées et d'info sur le coté droit
337
		// et le panneau de métadonnées et d'info sur le coté droit
338
		panneauPrincipalImage.add(detailsEtMotsCles, regionEst);
338
		panneauPrincipalImage.add(detailsEtMotsCles, regionEst);
Line 339... Line 339...
339
 
339
 
340
		// on ajoute les filtres au panneau gauche
340
		// on ajoute les filtres au panneau gauche
Line 341... Line 341...
341
		// panneauMenuEtOngletsImage.add(filtres,regionOuest) ;
341
		 panneauMenuEtOngletsImage.add(filtres,regionOuest) ;
342
 
-
 
343
		// filtres.setCollapsed(false) ;
-
 
344
 
-
 
345
	}
-
 
346
 
-
 
347
	/**
-
 
348
	 * Change la valeur du booleen de selection
-
 
349
	 * 
-
 
350
	 * @param selection
-
 
351
	 *            la nouvelle valeur du booléen
-
 
352
	 */
-
 
353
	public void setSelection(boolean selection) {
-
 
354
		this.selection = selection;
-
 
355
	}
-
 
356
 
-
 
357
	/**
-
 
358
	 * renvoie la valeur du booleen de selection
-
 
359
	 * 
-
 
360
	 * @return la valeur du booleen de selection
-
 
361
	 */
-
 
362
	public boolean isSelection() {
-
 
363
		return selection;
-
 
364
	}
-
 
365
 
-
 
366
	/**
-
 
367
	 * Retourne une instance de manière unique
-
 
368
	 * 
-
 
369
	 * @return l'instance unique du médiateur
-
 
370
	 */
-
 
371
	public static ImageMediateur Instance() {
-
 
372
		if (!estInstancie) {
-
 
373
			estInstancie = true;
-
 
374
			return new ImageMediateur();
-
 
375
		} else {
-
 
376
			return null;
-
 
377
 
-
 
378
		}
-
 
379
	}
-
 
380
 
-
 
381
	/**
-
 
382
	 * Retourne une instance de manière unique en lui associant un médiateur
-
 
383
	 * pour les observations
-
 
384
	 * 
-
 
385
	 * @param om le médiateur des observations à associer
-
 
386
	 * @return l'instance unique du médiateur
-
 
387
	 */
-
 
388
	public static ImageMediateur Instance(ObservationMediateur om) {
-
 
389
		if (!estInstancie) {
-
 
390
			estInstancie = true;
-
 
391
			return new ImageMediateur(om);
-
 
392
		} else {
-
 
393
			return null;
-
 
394
 
342
 
Line 395... Line 343...
395
		}
343
		// filtres.setCollapsed(false) ;
396
	}
344
	}
397
 
345