Subversion Repositories eFlore/Applications.cel

Rev

Rev 7 | Go to most recent revision | Show entire file | Ignore 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(
-
 
156
				RegionPosition.NORTH);
-
 
157
 
-
 
158
		final BorderLayoutData regionCentre = new BorderLayoutData(
-
 
159
				RegionPosition.CENTER);
-
 
160
 
-
 
161
		final BorderLayoutData regionEst = new BorderLayoutData(
-
 
162
				RegionPosition.EAST);
-
 
163
		regionEst.setSplit(true);
-
 
164
 
-
 
165
		final BorderLayoutData regionOuest = new BorderLayoutData(
-
 
166
				RegionPosition.WEST);
-
 
167
		regionOuest.setSplit(true);
-
 
168
 
-
 
169
		afficherMenuId();
-
 
170
 
-
 
171
		// on crée un modèle
-
 
172
		iModele = ImageModele.Instance(this);
-
 
173
		// et on demande l'arbre des mots clés
-
 
174
		iModele.initialiserArbreMotsCles();
-
 
175
 
-
 
176
		// on gère la mise en page du panneau principal
-
 
177
		panneauPrincipalImage.setLayout(new BorderLayout());
-
 
178
		panneauPrincipalImage.setId("x-main-panel-image");
-
 
179
 
-
 
180
		// on crée le panneau des filtres
-
 
181
		filtres = new PanneauFiltresVues(this);
-
 
182
 
-
 
183
		// on crée le panneau qui contient les differentes onglets ainsi que le
-
 
184
		// menu supérieur
-
 
185
		panneauMenuEtOngletsImage = new Panel();
-
 
186
		panneauMenuEtOngletsImage.setLayout(new BorderLayout());
-
 
187
 
-
 
188
		// le panneau à onglet qui contient les trois vues
-
 
189
		ongletsImage = new TabPanel();
-
 
190
 
-
 
191
		// la galerie
-
 
192
		galerieImage = new GalerieImageVue(this);
-
 
193
 
-
 
194
		// la liste des images
-
 
195
		Panel panneauListeImage = new Panel("Liste");
-
 
196
		listeImage = new ListeImageVue(this);
-
 
197
		panneauListeImage.setLayout(new FitLayout());
-
 
198
		panneauListeImage.add(listeImage);
-
 
199
 
-
 
200
		// le panneau zoom
-
 
201
		zoomImage = new ZoomImageVue(this);
-
 
202
 
-
 
203
		// on ajoute les panneaux au panneau à onglets
-
 
204
		ongletsImage.add(galerieImage);
-
 
205
		ongletsImage.add(panneauListeImage);
-
 
Line 206... Line -...
206
		ongletsImage.add(zoomImage);
-
 
207
 
-
 
208
		// on crée les menu et la barre de vue
-
 
209
		menuImageVue = new MenuImageVue(this);
-
 
210
		barreOutilsVue = new BarreOutilsVue(this);
160
	private ImageMediateur() {
211
 
-
 
212
		// on initialise le volet qui contient les mots clés
-
 
213
		detailsEtMotsCles.setAnimCollapse(true);
-
 
Line 214... Line 161...
214
		detailsEtMotsCles.setTitleCollapse(true);
161
 
-
 
162
		panneauPrincipalImage.addListener(new PanelListenerAdapter() {
-
 
163
 
-
 
164
			public boolean doBeforeRender(Component component) {
-
 
165
				
-
 
166
				initialiser() ;
-
 
167
				
215
		detailsEtMotsCles.setCollapsible(true);
168
				return true;
-
 
169
			}
-
 
170
 
-
 
171
			public boolean doBeforeShow(Component component) {
-
 
172
				
-
 
173
				return true;
Line 216... Line -...
216
 
-
 
217
		filtreMotsCles = new ArbreMotsClesFiltreVue(this);
-
 
218
		filtreCommentaires = new BarreRechercheFiltreVue(this);
-
 
219
 
-
 
-
 
174
			}
Line -... Line 175...
-
 
175
			
220
		// on crée le panneau conteneur des métadonnées et infos
176
		}) ;
221
		metadonneesIptcExif = new PanneauMetadonneesVue(this);
177
 
-
 
178
	}
-
 
179
 
-
 
180
	/**
-
 
181
	 * constructeur avec paramètres privé (on accède a la classe par la méthode
222
		// et on l'inclut dans le volet approprié
182
	 * getInstance)
-
 
183
	 * 
223
		detailsEtMotsCles.add(metadonneesIptcExif);
184
	 * @param cm
224
 
185
	 *            le médiateur du carnet à associer à la partie image
-
 
186
	 */
-
 
187
	private ImageMediateur(CarnetEnLigneMediateur cm) {
-
 
188
		
-
 
189
		cMediateur = cm;
-
 
190
		panneauPrincipalImage.addListener(new PanelListenerAdapter() {
-
 
191
 
-
 
192
			public boolean doBeforeRender(Component component) {
-
 
193
				
-
 
194
				initialiser() ;
-
 
195
				
-
 
196
				return true;
-
 
197
			}
-
 
198
 
-
 
199
			public boolean doBeforeShow(Component component) {
Line 225... Line -...
225
		// on ajoute la barre de vue au nord du panneau qui contient menu et
-
 
226
		// onglets d'images
200
				
227
		panneauMenuEtOngletsImage.add(barreOutilsVue, regionNord);
-
 
Line -... Line 201...
-
 
201
				return true;
228
		// les onglets au centre
202
			}
-
 
203
			
-
 
204
		}) ;
-
 
205
 
-
 
206
	}
229
		panneauMenuEtOngletsImage.add(ongletsImage, regionCentre);
207
 
-
 
208
	/**
-
 
209
	 * Change la valeur du booleen de selection
Line -... Line 210...
-
 
210
	 * 
230
 
211
	 * @param selection
-
 
212
	 *            la nouvelle valeur du booléen
231
		// on ajoute le panneau qui contient le menu et les onglets d'images au
213
	 */
-
 
214
	public void setSelection(boolean selection) {
-
 
215
		this.selection = selection;
-
 
216
	}
-
 
217
 
Line -... Line 218...
-
 
218
	/**
-
 
219
	 * renvoie la valeur du booleen de selection
-
 
220
	 * 
-
 
221
	 * @return la valeur du booleen de selection
-
 
222
	 */
-
 
223
	public boolean isSelection() {
-
 
224
		return selection;
232
		// centre
225
	}
233
		panneauPrincipalImage.add(panneauMenuEtOngletsImage, regionCentre);
226
 
-
 
227
	/**
-
 
228
	 * Retourne une instance de manière unique
Line -... Line 229...
-
 
229
	 * 
234
 
230
	 * @return l'instance unique du médiateur
Line 235... Line 231...
235
		// et le panneau de métadonnées et d'info sur le coté droit
231
	 */
236
		panneauPrincipalImage.add(detailsEtMotsCles, regionEst);
232
	public static ImageMediateur Instance() {
237
 
233
		if (!estInstancie) {
238
		// on ajoute les filtres au panneau gauche
234
			estInstancie = true;
239
		panneauPrincipalImage.add(filtres, regionOuest);
-
 
240
 
235
			return new ImageMediateur();
-
 
236
		} else {
241
		filtres.setWidth("15%");
237
			return null;
242
		detailsEtMotsCles.setWidth("15%");
238
 
-
 
239
		}
-
 
240
	}
-
 
241
 
-
 
242
	/**
243
 
243
	 * Retourne une instance de manière unique en lui associant un médiateur
Line -... Line 244...
-
 
244
	 * pour les observations
-
 
245
	 * 
-
 
246
	 * @param om le médiateur des observations à associer
-
 
247
	 * @return l'instance unique du médiateur
-
 
248
	 */
244
	}
249
	public static ImageMediateur Instance(CarnetEnLigneMediateur cm) {
245
 
250
		if (!estInstancie) {
246
	/**
251
			estInstancie = true;
Line 247... Line 252...
247
	 * constructeur avec paramètres privé (on accède a la classe par la méthode
252
			return new ImageMediateur(cm);
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