Subversion Repositories eFlore/Applications.coel

Rev

Rev 788 | Rev 801 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 788 Rev 799
Line 9... Line 9...
9
import org.tela_botanica.client.modeles.Information;
9
import org.tela_botanica.client.modeles.Information;
10
import org.tela_botanica.client.modeles.Publication;
10
import org.tela_botanica.client.modeles.Publication;
11
import org.tela_botanica.client.modeles.PublicationListe;
11
import org.tela_botanica.client.modeles.PublicationListe;
12
import org.tela_botanica.client.modeles.ValeurListe;
12
import org.tela_botanica.client.modeles.ValeurListe;
Line -... Line 13...
-
 
13
 
-
 
14
import com.extjs.gxt.ui.client.Style.HorizontalAlignment;
13
 
15
import com.extjs.gxt.ui.client.core.XTemplate;
14
import com.extjs.gxt.ui.client.event.BaseEvent;
16
import com.extjs.gxt.ui.client.event.BaseEvent;
15
import com.extjs.gxt.ui.client.event.ButtonEvent;
17
import com.extjs.gxt.ui.client.event.ButtonEvent;
16
import com.extjs.gxt.ui.client.event.ComponentEvent;
18
import com.extjs.gxt.ui.client.event.ComponentEvent;
17
import com.extjs.gxt.ui.client.event.Events;
19
import com.extjs.gxt.ui.client.event.Events;
Line 32... Line 34...
32
import com.extjs.gxt.ui.client.widget.grid.ColumnData;
34
import com.extjs.gxt.ui.client.widget.grid.ColumnData;
33
import com.extjs.gxt.ui.client.widget.grid.ColumnModel;
35
import com.extjs.gxt.ui.client.widget.grid.ColumnModel;
34
import com.extjs.gxt.ui.client.widget.grid.Grid;
36
import com.extjs.gxt.ui.client.widget.grid.Grid;
35
import com.extjs.gxt.ui.client.widget.grid.GridCellRenderer;
37
import com.extjs.gxt.ui.client.widget.grid.GridCellRenderer;
36
import com.extjs.gxt.ui.client.widget.grid.GridSelectionModel;
38
import com.extjs.gxt.ui.client.widget.grid.GridSelectionModel;
-
 
39
import com.extjs.gxt.ui.client.widget.grid.HeaderGroupConfig;
-
 
40
import com.extjs.gxt.ui.client.widget.grid.RowExpander;
37
import com.extjs.gxt.ui.client.widget.grid.RowNumberer;
41
import com.extjs.gxt.ui.client.widget.grid.RowNumberer;
38
import com.extjs.gxt.ui.client.widget.layout.FitLayout;
42
import com.extjs.gxt.ui.client.widget.layout.FitLayout;
39
import com.extjs.gxt.ui.client.widget.toolbar.SeparatorToolItem;
43
import com.extjs.gxt.ui.client.widget.toolbar.SeparatorToolItem;
40
import com.extjs.gxt.ui.client.widget.toolbar.ToolBar;
44
import com.extjs.gxt.ui.client.widget.toolbar.ToolBar;
41
import com.google.gwt.core.client.GWT;
45
import com.google.gwt.core.client.GWT;
-
 
46
import com.google.gwt.event.shared.GwtEvent;
-
 
47
import com.google.gwt.user.client.Event;
-
 
48
import com.google.gwt.user.client.ui.Image;
Line 42... Line 49...
42
 
49
 
43
public class CollectionFormPublication extends FormulaireOnglet implements Rafraichissable {
50
public class CollectionFormPublication extends FormulaireOnglet implements Rafraichissable {
44
	private ContentPanel panneauPrincipal = null;
51
	private ContentPanel panneauPrincipal = null;
45
	private ToolBar barreOutils = null;
52
	private ToolBar barreOutils = null;
Line 291... Line 298...
291
			
298
			
292
			// Définition de l'état
299
			// Définition de l'état
Line 293... Line 300...
293
			publication.set("etat", ETAT_AJOUTE);
300
			publication.set("etat", ETAT_AJOUTE);
294
			
301
			
-
 
302
			// Ajout à la grille
295
			// Ajout à la grille
303
			grille.getStore().insert(publication, 0);
296
			grille.getStore().insert(publication, 0);			
304
			grille.getSelectionModel().select(0, false);
Line 297... Line 305...
297
		}
305
		}
298
	}
306
	}
Line 320... Line 328...
320
			public void handleEvent(StoreEvent<Publication> ce) {
328
			public void handleEvent(StoreEvent<Publication> ce) {
321
				actualiserEtatBoutonsBarreOutils();
329
				actualiserEtatBoutonsBarreOutils();
322
			}
330
			}
323
		});
331
		});
Line 324... Line 332...
324
		
332
		
-
 
333
		RowNumberer numeroPlugin = new RowNumberer();
Line 325... Line 334...
325
		RowNumberer pluginLigneNumero = new RowNumberer();
334
		numeroPlugin.setHeader("#");
326
		
-
 
327
		GridCellRenderer<Publication> infoBulle = new GridCellRenderer<Publication>() {
335
		
328
			@Override
336
		XTemplate infoTpl = XTemplate.create("<p>"+
-
 
337
			"<span style='font-weight:bold;'>"+i18nC.publicationAuteurs()+" :</span> {fmt_auteur}<br />"+
329
			public String render(Publication model, String property, ColumnData config, int rowIndex, int colIndex, ListStore<Publication> store, Grid<Publication> grid) {
338
			"<span style='font-weight:bold;'>"+i18nC.publicationTitre()+" :</span> {titre}<br />"+
330
				String valeur = (String) model.get(property);
339
			"<span style='font-weight:bold;'>"+i18nC.publicationRevueCollection()+" :</span> {collection}<br />"+
-
 
340
			"<span style='font-weight:bold;'>"+i18nC.publicationEditeur()+" :</span> {_editeur_}"+
331
				return "<span title='"+valeur+"'>" + valeur + "</span>";
341
			"</p>");  
Line 332... Line 342...
332
			}
342
		RowExpander expansionPlugin = new RowExpander();  
333
		};
343
		expansionPlugin.setTemplate(infoTpl);
334
		
-
 
335
		List<ColumnConfig> colonnes = new ArrayList<ColumnConfig>();
-
 
336
		colonnes.add(pluginLigneNumero);
344
		
337
		ColumnConfig fmtAuteurColonne = new ColumnConfig("fmt_auteur", i18nC.publicationAuteurs(), 150);
345
		List<ColumnConfig> colonnes = new ArrayList<ColumnConfig>();
338
		fmtAuteurColonne.setRenderer(infoBulle);
-
 
339
		colonnes.add(fmtAuteurColonne);
346
		colonnes.add(expansionPlugin);
340
		ColumnConfig titreColonne = new ColumnConfig("titre", i18nC.publicationTitre(), 150);
347
		colonnes.add(numeroPlugin);
341
		titreColonne.setRenderer(infoBulle);
348
		colonnes.add(new ColumnConfig("fmt_auteur", i18nC.publicationAuteurs(), 150));
342
		colonnes.add(titreColonne);
349
		colonnes.add(new ColumnConfig("titre", i18nC.publicationTitre(), 150));
343
		colonnes.add(new ColumnConfig("collection", i18nC.publicationRevueCollection(), 75));
350
		colonnes.add(new ColumnConfig("collection", i18nC.publicationRevueCollection(), 75));
344
		colonnes.add(new ColumnConfig("editeur", i18nC.publicationEditeur(), 75));
351
		colonnes.add(creerColonneEditeur());
345
		colonnes.add(new ColumnConfig("date_parution", i18nC.publicationDateParution(), 75));
352
		colonnes.add(creerColonneAnneePublication());
Line 346... Line 353...
346
		colonnes.add(new ColumnConfig("indication_nvt", i18nC.publicationNvt(), 75));
353
		colonnes.add(new ColumnConfig("indication_nvt", i18nC.publicationNvt(), 75));
Line 347... Line 354...
347
		colonnes.add(new ColumnConfig("fascicule", i18nC.publicationFascicule(), 75));
354
		colonnes.add(new ColumnConfig("fascicule", i18nC.publicationFascicule(), 75));
-
 
355
		colonnes.add(new ColumnConfig("truk_pages", i18nC.publicationPage(), 50));
-
 
356
		
Line 348... Line 357...
348
		colonnes.add(new ColumnConfig("truk_pages", i18nC.publicationPage(), 50));
357
		GridSelectionModel<Publication> modeleDeSelection = new GridSelectionModel<Publication>();
349
		
358
		
350
		GridSelectionModel<Publication> modeleDeSelection = new GridSelectionModel<Publication>();
359
		ColumnModel modeleDeColonnes = new ColumnModel(colonnes);
351
		
360
		modeleDeColonnes.getColumn(0).setWidget(Images.ICONES.aide().createImage(), "Info");
352
		ColumnModel modeleDeColonnes = new ColumnModel(colonnes);
361
		//modeleDeColonnes.addHeaderGroup(0, 0, new HeaderGroupConfig(Images.ICONES.aide().createImage(), 1, 1));
-
 
362
		
353
		
363
		Grid<Publication> grillePublications = new Grid<Publication>(storeGrille, modeleDeColonnes);
-
 
364
		grillePublications.setHeight("100%");
354
		Grid<Publication> grillePublications = new Grid<Publication>(storeGrille, modeleDeColonnes);
365
		grillePublications.setBorders(true);
355
		grillePublications.setHeight("100%");
366
		grillePublications.setSelectionModel(modeleDeSelection);
356
		grillePublications.setBorders(true);
367
		grillePublications.addPlugin(expansionPlugin);
Line 357... Line 368...
357
		grillePublications.setSelectionModel(modeleDeSelection);
368
		grillePublications.addPlugin(numeroPlugin);
358
		grillePublications.addPlugin(pluginLigneNumero);
369
		grillePublications.getView().setForceFit(true);
Line -... Line 370...
-
 
370
		grillePublications.getView().setAutoFill(true);
-
 
371
		grillePublications.setAutoExpandColumn("titre");
-
 
372
		grillePublications.setStripeRows(true);
-
 
373
		grillePublications.setTrackMouseOver(true);
-
 
374
		
-
 
375
		return grillePublications;
-
 
376
	}
-
 
377
	
-
 
378
	private ColumnConfig creerColonneEditeur() {
-
 
379
		GridCellRenderer<Publication> editeurRendu = new GridCellRenderer<Publication>() {
-
 
380
			@Override
-
 
381
			public String render(Publication model, String property, ColumnData config, int rowIndex, int colIndex, ListStore<Publication> store, Grid<Publication> grid) {
-
 
382
				String editeur = model.getNomEditeur();
-
 
383
				model.set("_editeur_", editeur);
-
 
384
				return editeur;
-
 
385
			}
-
 
386
		};
-
 
387
		ColumnConfig editeurColonne = new ColumnConfig("_editeur_", i18nC.publicationEditeur(), 75);
-
 
388
		editeurColonne.setRenderer(editeurRendu);
-
 
389
		return editeurColonne;
-
 
390
	}
-
 
391
	
-
 
392
	private ColumnConfig creerColonneAnneePublication() {
-
 
393
		GridCellRenderer<Publication> datePublicationRendu = new GridCellRenderer<Publication>() {
-
 
394
			@Override
-
 
395
			public String render(Publication model, String property, ColumnData config, int rowIndex, int colIndex, ListStore<Publication> store, Grid<Publication> grid) {
-
 
396
				String annee = model.getAnneeParution();
-
 
397
				model.set("_annee_", annee);
359
		grillePublications.getView().setForceFit(true);
398
				return annee;
360
		grillePublications.setAutoExpandColumn("titre");
399
			}
361
		grillePublications.setStripeRows(true);
400
		};
362
		grillePublications.setTrackMouseOver(true);
401
		ColumnConfig datePublicationColonne = new ColumnConfig("_annee_", i18nC.publicationDateParution(), 75);
363
		
402
		datePublicationColonne.setRenderer(datePublicationRendu);
Line 422... Line 461...
422
			}
461
			}
423
		} else if (type.equals("publication_modifiee")) {
462
		} else if (type.equals("publication_modifiee")) {
424
			if (info.getDonnee(0) != null) {
463
			if (info.getDonnee(0) != null) {
425
				Publication publication = (Publication) info.getDonnee(0);
464
				Publication publication = (Publication) info.getDonnee(0);
426
				Publication publicationDansGrille = grille.getStore().findModel("id_publication", publication.getId());
465
				Publication publicationDansGrille = grille.getStore().findModel("id_publication", publication.getId());
427
				publicationDansGrille.mettreAJour(publication);
466
				int index = grille.getStore().indexOf(publicationDansGrille);
428
				grille.getStore().update(publicationDansGrille);
467
				grille.getStore().remove(publicationDansGrille);
-
 
468
				grille.getStore().insert(publication, index);
-
 
469
				grille.getStore().commitChanges();
-
 
470
			}
-
 
471
		} else if (type.equals("publication_ajoutee")) {
-
 
472
			if (info.getDonnee(0) != null) {
-
 
473
				Publication publication = (Publication) info.getDonnee(0);
-
 
474
				grille.getStore().add(publication);
429
				grille.getStore().commitChanges();
475
				grille.getStore().commitChanges();
430
			}
476
			}
431
		} else {
477
		} else {
432
			GWT.log(Mediateur.i18nM.erreurRafraichir(info.getClass(), this.getClass()), null);
478
			GWT.log(Mediateur.i18nM.erreurRafraichir(info.getClass(), this.getClass()), null);
433
		}
479
		}