Subversion Repositories eFlore/Applications.coel

Rev

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

Rev 1526 Rev 1561
Line 25... Line 25...
25
import org.tela_botanica.client.modeles.publication.PublicationAPersonne;
25
import org.tela_botanica.client.modeles.publication.PublicationAPersonne;
26
import org.tela_botanica.client.modeles.publication.PublicationAPersonneListe;
26
import org.tela_botanica.client.modeles.publication.PublicationAPersonneListe;
27
import org.tela_botanica.client.modeles.structure.Structure;
27
import org.tela_botanica.client.modeles.structure.Structure;
28
import org.tela_botanica.client.synchronisation.Sequenceur;
28
import org.tela_botanica.client.synchronisation.Sequenceur;
29
import org.tela_botanica.client.util.Debug;
29
import org.tela_botanica.client.util.Debug;
-
 
30
import org.tela_botanica.client.util.Log;
30
import org.tela_botanica.client.util.Pattern;
31
import org.tela_botanica.client.util.Pattern;
31
import org.tela_botanica.client.util.UtilArray;
32
import org.tela_botanica.client.util.UtilArray;
32
import org.tela_botanica.client.util.UtilString;
33
import org.tela_botanica.client.util.UtilString;
33
import org.tela_botanica.client.vues.FenetreForm;
34
import org.tela_botanica.client.vues.FenetreForm;
34
import org.tela_botanica.client.vues.Formulaire;
35
import org.tela_botanica.client.vues.Formulaire;
35
import org.tela_botanica.client.vues.FormulaireBarreValidation;
36
import org.tela_botanica.client.vues.FormulaireBarreValidation;
36
import org.tela_botanica.client.vues.personne.PersonneForm;
37
import org.tela_botanica.client.vues.personne.PersonneForm;
Line 37... Line 38...
37
 
38
 
38
import com.extjs.gxt.ui.client.Style.Scroll;
39
import com.extjs.gxt.ui.client.Style.Scroll;
-
 
40
import com.extjs.gxt.ui.client.Style.SortDir;
-
 
41
import com.extjs.gxt.ui.client.data.BaseModelData;
-
 
42
import com.extjs.gxt.ui.client.data.LoadEvent;
39
import com.extjs.gxt.ui.client.Style.SortDir;
43
import com.extjs.gxt.ui.client.data.Loader;
40
import com.extjs.gxt.ui.client.data.ModelData;
44
import com.extjs.gxt.ui.client.data.ModelData;
41
import com.extjs.gxt.ui.client.data.ModelType;
45
import com.extjs.gxt.ui.client.data.ModelType;
42
import com.extjs.gxt.ui.client.event.BaseEvent;
46
import com.extjs.gxt.ui.client.event.BaseEvent;
43
import com.extjs.gxt.ui.client.event.ButtonEvent;
47
import com.extjs.gxt.ui.client.event.ButtonEvent;
Line 152... Line 156...
152
		// Si 'publicationId' est vide alors on est en mode "AJOUTER", sinon on est en mode "MODIFIER" 
156
		// Si 'publicationId' est vide alors on est en mode "AJOUTER", sinon on est en mode "MODIFIER" 
153
		modeDeCreation = (UtilString.isEmpty(publicationId) ? Formulaire.MODE_AJOUTER : Formulaire.MODE_MODIFIER);
157
		modeDeCreation = (UtilString.isEmpty(publicationId) ? Formulaire.MODE_AJOUTER : Formulaire.MODE_MODIFIER);
154
		initialiserFormulaire(mediateurCourrant, modeDeCreation, MenuApplicationId.PUBLICATION);
158
		initialiserFormulaire(mediateurCourrant, modeDeCreation, MenuApplicationId.PUBLICATION);
155
		panneauFormulaire.setLayout(new RowLayout());
159
		panneauFormulaire.setLayout(new RowLayout());
156
		panneauFormulaire.setStyleAttribute("padding", "0");
160
		panneauFormulaire.setStyleAttribute("padding", "0");
-
 
161
		panneauFormulaire.setHeight(600);
Line 157... Line 162...
157
		
162
		
158
		zoneHaut = new LayoutContainer(new FitLayout());
163
		zoneHaut = new LayoutContainer(new FitLayout());
159
		zoneBas = new LayoutContainer(new FlowLayout());
164
		zoneBas = new LayoutContainer(new FlowLayout());
160
		panneauFormulaire.add(zoneHaut, new RowData(1, 0.3));
165
		panneauFormulaire.add(zoneHaut, new RowData(0.99, 0.45));
161
		panneauFormulaire.add(zoneBas, new RowData(1, 0.5));
166
		panneauFormulaire.add(zoneBas, new RowData(0.99, 0.55));
162
		panneauFormulaire.setScrollMode(Scroll.AUTO);
167
		panneauFormulaire.setScrollMode(Scroll.AUTO);
Line 163... Line 168...
163
		genererTitreFormulaire();
168
		genererTitreFormulaire();
164
		
169
		
Line 241... Line 246...
241
		bouton.setIcon(Images.ICONES.arrowUp());
246
		bouton.setIcon(Images.ICONES.arrowUp());
242
		bouton.setEnabled(false);
247
		bouton.setEnabled(false);
243
		bouton.addSelectionListener(new SelectionListener<ButtonEvent>() {
248
		bouton.addSelectionListener(new SelectionListener<ButtonEvent>() {
244
			public void componentSelected(ButtonEvent ce) {  
249
			public void componentSelected(ButtonEvent ce) {  
245
				if (grilleAuteurs.getGrille().getSelectionModel().getSelectedItem() != null) {
250
				if (grilleAuteurs.getGrille().getSelectionModel().getSelectedItem() != null) {
246
					
-
 
247
					ModelData publiAPersonneSelectionnee = grilleAuteurs.getSelectionModel().getSelectedItem();
-
 
248
					
-
 
249
					int index = grilleAuteurs.getStore().indexOf(publiAPersonneSelectionnee);
-
 
250
					int newIndex = index - 1; // l'auteur monte dans dans la liste donc son ordre diminue
-
 
251
					int newOrdre = newIndex + 1; // parce que index commence à zéro
-
 
252
					
-
 
253
					// le marqueur suivant est obligatoire sinon les évènements liés au magasin se
-
 
254
					// déclenchent et posent problème
-
 
255
					changeOrderMarker = true;
251
					mettreAJourOrdreAuteur(-1);
256
					
-
 
257
					publiAPersonneSelectionnee.set("_ordre_", String.valueOf(newOrdre));
-
 
258
					
-
 
259
					ModelData publiAPersonneSwitch = grilleAuteurs.getStore().getAt(index-1);
-
 
260
					int newOrdrePapSwitch = newOrdre + 1;
-
 
261
 
-
 
262
					publiAPersonneSwitch.set("_ordre_", String.valueOf(newOrdrePapSwitch));			
-
 
263
					
-
 
264
					grilleAuteurs.getStore().update(publiAPersonneSwitch);
-
 
265
					grilleAuteurs.getStore().remove(publiAPersonneSelectionnee);
-
 
266
					grilleAuteurs.getStore().insert(publiAPersonneSelectionnee, newIndex);
-
 
267
					changeOrderMarker = false;
-
 
268
					
-
 
269
					grilleAuteurs.getSelectionModel().select(newIndex, true);
-
 
270
				}
252
				}
271
			}  
253
			}  
272
		});
254
		});
273
		return bouton;
255
		return bouton;
274
	}
256
	}
Line 278... Line 260...
278
		bouton.setIcon(Images.ICONES.arrowDown());
260
		bouton.setIcon(Images.ICONES.arrowDown());
279
		bouton.setEnabled(false);
261
		bouton.setEnabled(false);
280
		bouton.addSelectionListener(new SelectionListener<ButtonEvent>() {  
262
		bouton.addSelectionListener(new SelectionListener<ButtonEvent>() {  
281
			public void componentSelected(ButtonEvent ce) {  
263
			public void componentSelected(ButtonEvent ce) {  
282
				if (grilleAuteurs.getSelectionModel().getSelectedItem() != null) {
264
				if (grilleAuteurs.getSelectionModel().getSelectedItem() != null) {
-
 
265
					mettreAJourOrdreAuteur(+1);
-
 
266
				}
-
 
267
			}  
-
 
268
		});
-
 
269
		return bouton;
-
 
270
	}
Line -... Line 271...
-
 
271
	
283
					
272
	private void formaterOrdreAuteurs() {
-
 
273
		List<ModelData> auteurs = grilleAuteurs.getStore().getModels();
-
 
274
		Iterator<ModelData> itAuteurs = auteurs.iterator();
-
 
275
		while (itAuteurs.hasNext())	{
-
 
276
			ModelData selection = itAuteurs.next();
Line -... Line 277...
-
 
277
			PublicationAPersonne pap = new PublicationAPersonne(selection, false);
-
 
278
			
-
 
279
			String ordre = String.valueOf(grilleAuteurs.getStore().indexOf(selection) + 1);
-
 
280
			if (pap.getOrdreAuteurs() != ordre) {
-
 
281
				selection.set("_ordre_", ordre);
-
 
282
				grilleAuteurs.getStore().update(selection);
-
 
283
				pap.setOrdreAuteurs(ordre);
-
 
284
				auteursModifies.put(pap.getId(), pap);
-
 
285
			}
-
 
286
		} 
-
 
287
	}
-
 
288
	
284
					ModelData publiAPersonneSelectionnee = grilleAuteurs.getSelectionModel().getSelectedItem();
289
	private void mettreAJourOrdreAuteur(int monterOuDescendre) {
285
					
-
 
286
					int index = grilleAuteurs.getStore().indexOf(publiAPersonneSelectionnee);
290
		ModelData publiAPersonneSelectionnee = grilleAuteurs.getSelectionModel().getSelectedItem();
Line -... Line 291...
-
 
291
		int index = grilleAuteurs.getStore().indexOf(publiAPersonneSelectionnee);
287
					int newIndex = index + 1; // l'auteur monte dans dans la liste donc son ordre diminue
292
		int nouvelIndex = index + monterOuDescendre;
288
					int newOrdre = newIndex + 1; // parce que index commence à zéro					
293
		
289
					
294
		if (verifierOrdreAuteur(nouvelIndex)) {
Line 290... Line 295...
290
					// le marqueur suivant est obligatoire sinon les évènements liés au magasin se
295
			// le marqueur suivant est obligatoire sinon les évènements liés au magasin se
291
					// déclenchent et posent problème
-
 
292
					changeOrderMarker = true;
296
			// déclenchent et posent problème
293
					
297
			changeOrderMarker = true;
294
					publiAPersonneSelectionnee.set("_ordre_", String.valueOf(newOrdre));
-
 
295
					
298
			
296
					ModelData publiAPersonneSwitch = grilleAuteurs.getStore().getAt(index+1);
-
 
297
					int newOrdrePapSwitch = index + 1;
299
			int indexAPermuter = index + monterOuDescendre;
-
 
300
			ModelData publiAPersonneSwitch = grilleAuteurs.getStore().getAt(indexAPermuter);
-
 
301
			String ordreAPermuter = String.valueOf((indexAPermuter + 1) - monterOuDescendre);
-
 
302
			publiAPersonneSwitch.set("_ordre_", ordreAPermuter);
-
 
303
			grilleAuteurs.getStore().update(publiAPersonneSwitch);
298
 
304
			PublicationAPersonne papSwitch = new PublicationAPersonne(publiAPersonneSwitch, false);
-
 
305
			papSwitch.setOrdreAuteurs(ordreAPermuter);
-
 
306
			auteursModifies.put(papSwitch.getId(), papSwitch);
299
					publiAPersonneSwitch.set("_ordre_", String.valueOf(newOrdrePapSwitch));
307
 
-
 
308
			grilleAuteurs.getStore().remove(publiAPersonneSelectionnee);
-
 
309
			String nouvelOrdre = String.valueOf((index + 1) + monterOuDescendre);
-
 
310
			publiAPersonneSelectionnee.set("_ordre_", nouvelOrdre);
300
					
311
			grilleAuteurs.getStore().insert(publiAPersonneSelectionnee, nouvelIndex);
Line 301... Line 312...
301
					grilleAuteurs.getStore().update(publiAPersonneSwitch);
312
			PublicationAPersonne papSelectionnee = new PublicationAPersonne(publiAPersonneSelectionnee, false);
302
					grilleAuteurs.getStore().remove(publiAPersonneSelectionnee);
313
			papSelectionnee.setOrdreAuteurs(nouvelOrdre);
303
					grilleAuteurs.getStore().insert(publiAPersonneSelectionnee, newIndex);
314
			auteursModifies.put(papSelectionnee.getId(), papSelectionnee);
-
 
315
			changeOrderMarker = false;
-
 
316
			
-
 
317
			grilleAuteurs.getSelectionModel().select(nouvelIndex, false);
-
 
318
		}
-
 
319
	}
-
 
320
	
304
					changeOrderMarker = false;
321
	private boolean verifierOrdreAuteur(int nouvelIndex) {
305
					
322
		int nbrElement = grilleAuteurs.getStore().getCount();
-
 
323
		boolean ok = true;
-
 
324
		if (nouvelIndex < 0 || nouvelIndex >= nbrElement) {
-
 
325
			ok = false;
-
 
326
		}
-
 
327
		return ok;
-
 
328
	}
-
 
329
	
-
 
330
	private void activerBoutonsOrdreAuteur() {
-
 
331
		ModelData papSelectionnee = grilleAuteurs.getGrille().getSelectionModel().getSelectedItem();
-
 
332
		int index = grilleAuteurs.getStore().indexOf(papSelectionnee);
-
 
333
		
-
 
334
		if (index >= 1) {
-
 
335
			boutonAuteurUp.setEnabled(true);
-
 
336
		} else {
-
 
337
			boutonAuteurUp.setEnabled(false);
-
 
338
		}
-
 
339
		
306
					grilleAuteurs.getSelectionModel().select(newIndex, true);
340
		if ((index+1) < grilleAuteurs.getStore().getCount()) {
Line 307... Line 341...
307
				}
341
			boutonAuteurDown.setEnabled(true);
308
			}  
342
		} else {
309
		});
343
			boutonAuteurDown.setEnabled(false);
Line 395... Line 429...
395
	private Button creerBoutonSupprimer() {
429
	private Button creerBoutonSupprimer() {
396
		Button bouton = new Button(i18nC.supprimer());
430
		Button bouton = new Button(i18nC.supprimer());
397
		bouton.setIcon(Images.ICONES.vcardSupprimer());
431
		bouton.setIcon(Images.ICONES.vcardSupprimer());
398
		bouton.addSelectionListener(new SelectionListener<ButtonEvent>() {  
432
		bouton.addSelectionListener(new SelectionListener<ButtonEvent>() {  
399
			public void componentSelected(ButtonEvent ce) {
433
			public void componentSelected(ButtonEvent ce) {
400
				PublicationAPersonne personneSelectionnee = new PublicationAPersonne(grilleAuteurs.getSelectionModel().getSelectedItem(), false);
-
 
401
				if (personneSelectionnee == null) {
-
 
402
					InfoLogger.display(i18nC.informationTitreGenerique(), i18nC.selectionnerPublication());
-
 
403
				} else {
-
 
404
					supprimerDansGrille(personneSelectionnee);
434
				supprimerDansGrille();
405
				}
-
 
406
			}   
435
			}   
407
		});
436
		});
408
		return bouton;
437
		return bouton;
409
	}
438
	}
Line 420... Line 449...
420
	}
449
	}
Line 421... Line 450...
421
	
450
	
422
	private void actualiserGrille() {
451
	private void actualiserGrille() {
423
		if (mode.equals(Formulaire.MODE_MODIFIER)) {
452
		if (mode.equals(Formulaire.MODE_MODIFIER)) {
424
			// FIXME : c'est la merde
453
			// FIXME : c'est la merde
425
			//mediateur.selectionner(this, null, personneSelectionnee.getId(), "%");
454
			grilleAuteurs.reload();
426
		} else {
455
		} else {
427
			grilleAuteurs.getStore().removeAll();
456
			grilleAuteurs.getStore().removeAll();
428
			layout();
457
			layout();
429
		}
458
		}
Line 473... Line 502...
473
		ajouterDansGrille(pap, grilleAuteurs.getStore().getCount());
502
		ajouterDansGrille(pap, grilleAuteurs.getStore().getCount());
474
	}
503
	}
Line 475... Line 504...
475
	
504
	
476
	private void ajouterDansGrille(PublicationAPersonne pap, int index) {
505
	private void ajouterDansGrille(PublicationAPersonne pap, int index) {
477
		if (pap != null) {
506
		if (pap != null) {
-
 
507
			if (grilleAuteurs.getStore().contains(pap))	{
-
 
508
				InfoLogger.display("Information", "La personne choisie existe déjà dans la liste.");
478
			if (!grilleAuteurs.getStore().contains(pap))	{
509
			} else {
479
				//1) si elle ne fait pas partie des initiaux, ajouter à la liste à ajouter
510
				// 1) si elle ne fait pas partie des initiaux, ajouter à la liste à ajouter
480
				if (!auteursInitialListe.containsValue(pap))	{
511
				if (!auteursInitialListe.containsValue(pap))	{
481
					auteursAjoutes.put(pap.getId(), pap);
512
					auteursAjoutes.put(pap.getId(), pap);
Line 482... Line 513...
482
				}
513
				}
483
				
514
				
484
				// L'enlever de la liste à supprimer
515
				// L'enlever de la liste à supprimer
485
				if (auteursSupprimes.containsValue(pap))	{
516
				if (auteursSupprimes.containsValue(pap))	{
-
 
517
					auteursSupprimes.remove(pap);
486
					auteursSupprimes.remove(pap);
518
				}
487
				}
519
				
488
				//2) Ajouter a la grille
520
				// 2) Ajouter a la grille
489
				grilleAuteurs.getStore().insert(pap, index);
-
 
490
				grilleAuteurs.getSelectionModel().select(index, false);
-
 
491
			} else {
521
				grilleAuteurs.getStore().insert(pap, index);
492
				InfoLogger.display("Information", "La personne choisie existe déjà dans la liste.");
522
				grilleAuteurs.getSelectionModel().select(index, false);
493
			}
523
			}
Line 494... Line 524...
494
		}
524
		}
-
 
525
	}
-
 
526
	
495
	}
527
	private void supprimerDansGrille() {
-
 
528
		ModelData donneeSelectionnee = grilleAuteurs.getSelectionModel().getSelectedItem();
-
 
529
		PublicationAPersonne personneSelectionnee = new PublicationAPersonne(donneeSelectionnee, false);
496
	
530
		if (personneSelectionnee.getId() == null) {
497
	private void supprimerDansGrille(PublicationAPersonne pap) {
531
			InfoLogger.display(i18nC.informationTitreGenerique(), i18nC.selectionnerAuteur());
498
		if (pap != null) {
532
		} else {
-
 
533
			// 1) Ajouter a la liste des personne à supprimer uniquement si est présente dans la liste initiale
499
			// 1) Ajouter a la liste des personne à supprimer uniquement si est présente dans la liste initiale
534
			if (auteursInitialListe.containsKey(personneSelectionnee.getId())) {
Line 500... Line 535...
500
			if (auteursInitialListe.containsValue(pap)) {
535
				auteursSupprimes.put(personneSelectionnee.getId(), personneSelectionnee);
501
				auteursSupprimes.put(pap.getId(), pap);
536
				Log.debug("Ajout Personne à supprimer : "+auteursSupprimes.toString());
502
			}
537
			}
Line 503... Line 538...
503
			
538
			
504
			if (auteursAjoutes.containsValue(pap))	{
539
			if (auteursAjoutes.containsValue(personneSelectionnee))	{
505
				auteursAjoutes.remove(pap);
540
				auteursAjoutes.remove(personneSelectionnee);
Line 506... Line 541...
506
			}
541
			}
-
 
542
			
507
			
543
			if (auteursModifies.containsValue(personneSelectionnee))	{
508
			if (auteursModifies.containsValue(pap))	{
-
 
509
				auteursModifies.remove(pap);
544
				auteursModifies.remove(personneSelectionnee);
510
			}
545
			}
511
			
546
			
Line 512... Line 547...
512
			// 2) Supprimer la personne de la liste
547
			// 2) Supprimer la personne de la liste
513
			grilleAuteurs.getStore().remove(pap);
548
			Log.debug("Personne trouvée : "+grilleAuteurs.getStore().findModel(donneeSelectionnee).toString());
Line 552... Line 587...
552
		
587
		
553
		// Modele de selection
588
		// Modele de selection
554
		GridSelectionModel<ModelData> modeleDeSelection = new GridSelectionModel<ModelData>();
589
		GridSelectionModel<ModelData> modeleDeSelection = new GridSelectionModel<ModelData>();
555
		modeleDeSelection.addListener(Events.SelectionChange, new SelectionChangedListener<ModelData>() {
590
		modeleDeSelection.addListener(Events.SelectionChange, new SelectionChangedListener<ModelData>() {
556
			public void selectionChanged(SelectionChangedEvent<ModelData> se) {
-
 
557
				ModelData papSelectionnee = grilleAuteurs.getGrille().getSelectionModel().getSelectedItem();
-
 
558
				int index = grilleAuteurs.getStore().indexOf(papSelectionnee);
-
 
559
				
-
 
560
				if (index >= 1) boutonAuteurUp.setEnabled(true);
591
			public void selectionChanged(SelectionChangedEvent<ModelData> se) {
561
				else boutonAuteurUp.setEnabled(false);
-
 
562
				if ((index+1) < grilleAuteurs.getStore().getCount()) boutonAuteurDown.setEnabled(true);
-
 
563
				else boutonAuteurDown.setEnabled(false);
592
				activerBoutonsOrdreAuteur();
564
			}
593
			}
Line 565... Line 594...
565
		});
594
		});
Line 575... Line 604...
575
		grilleAuteurs.getGrille().getView().setForceFit(true);
604
		grilleAuteurs.getGrille().getView().setForceFit(true);
576
		grilleAuteurs.getGrille().setAutoExpandColumn("fmt_nom_complet");
605
		grilleAuteurs.getGrille().setAutoExpandColumn("fmt_nom_complet");
577
		grilleAuteurs.getGrille().setStripeRows(true);
606
		grilleAuteurs.getGrille().setStripeRows(true);
578
		grilleAuteurs.getGrille().setTrackMouseOver(true);
607
		grilleAuteurs.getGrille().setTrackMouseOver(true);
Line -... Line 608...
-
 
608
		
-
 
609
		grilleAuteurs.getStore().getLoader().addListener(Loader.Load, new Listener<LoadEvent>() {
-
 
610
			public void handleEvent(LoadEvent be) {  				
-
 
611
				List<ModelData> auteurs = grilleAuteurs.getStore().getModels();
-
 
612
				Iterator<ModelData> itAuteurs = auteurs.iterator();
-
 
613
				while (itAuteurs.hasNext())	{
-
 
614
					ModelData selection = itAuteurs.next();
-
 
615
					PublicationAPersonne auteur = new PublicationAPersonne(selection, false);
-
 
616
					auteursInitialListe.put(auteur.getId(), auteur);
-
 
617
				}
-
 
618
				Log.debug("Initialisation liste auteur :"+auteursInitialListe.size());
-
 
619
			}  
-
 
620
		});
579
		
621
		
580
		// Rajouter des écouteurs
622
		// Rajouter des écouteurs
581
		grilleAuteurs.getStore().addListener(Store.Add, new Listener<StoreEvent<ModelData>>() {
623
		grilleAuteurs.getStore().addListener(Store.Add, new Listener<StoreEvent<ModelData>>() {
582
			public void handleEvent(StoreEvent<ModelData> ce) {
624
			public void handleEvent(StoreEvent<ModelData> ce) {
583
				if (!changeOrderMarker) {					
625
				if (!changeOrderMarker) {					
Line 587... Line 629...
587
		});
629
		});
588
		grilleAuteurs.getStore().addListener(Store.Remove, new Listener<StoreEvent<ModelData>>() {
630
		grilleAuteurs.getStore().addListener(Store.Remove, new Listener<StoreEvent<ModelData>>() {
589
			public void handleEvent(StoreEvent<ModelData> ce) {
631
			public void handleEvent(StoreEvent<ModelData> ce) {
590
				if (!changeOrderMarker) {					
632
				if (!changeOrderMarker) {					
591
					actualiserEtatBoutonsBarreOutils();
633
					actualiserEtatBoutonsBarreOutils();
-
 
634
					Log.debug("Dans listener remove de grilleAuteur");
592
				}
635
				}
593
			}
636
			}
594
		});
637
		});
595
		grilleAuteurs.getStore().addListener(Store.Update, new Listener<StoreEvent<ModelData>>() {
638
		grilleAuteurs.getStore().addListener(Store.Update, new Listener<StoreEvent<ModelData>>() {
596
			public void handleEvent(StoreEvent<ModelData> ce) {
639
			public void handleEvent(StoreEvent<ModelData> ce) {
597
				if (!changeOrderMarker) {
-
 
598
					if (ce.getRecord().isModified("_ordre_")) {
-
 
599
						// s'il s'agit d'un auteur que l'on vient d'ajouter à la liste, alors on a pas besoin
-
 
600
						// de faire quoique ce soit car l'auteur est déjà dans la liste des auteurs ajoutés
-
 
601
						if (ce.getModel().get("_etat_").equals(aDonnee.ETAT_AJOUTE)) {
-
 
602
							// ... do nothing
-
 
603
						// s'il s'agit d'un auteur qui était déjà présent dans la liste initiale, il faut
-
 
604
						// ajouter cet auteur à la liste des auteurs modifiés
-
 
605
						} else {
-
 
606
							PublicationAPersonne pap = new PublicationAPersonne(ce.getModel(), false);
-
 
607
							auteursModifies.put(pap.getId(), pap);
-
 
608
						}	
-
 
609
					}
-
 
610
				}
640
				
611
			}
641
			}
612
		});		
642
		});		
Line 613... Line 643...
613
		
643
		
614
		return grilleAuteurs;
644
		return grilleAuteurs;
Line 811... Line 841...
811
			soumettreAuteurs();
841
			soumettreAuteurs();
812
		}
842
		}
813
	}
843
	}
Line 814... Line 844...
814
	
844
	
815
	private void soumettreAuteurs() {
-
 
816
		
-
 
817
		formaterOrdreAuteurs();
-
 
818
		
845
	private void soumettreAuteurs() {
819
		//1) Auteurs ajoutés : 
846
		//1) Auteurs ajoutés : 
820
		PublicationAPersonneListe listeAuteursAAjouter = new PublicationAPersonneListe();
847
		PublicationAPersonneListe listeAuteursAAjouter = new PublicationAPersonneListe();
821
		Iterator<String> itAuteur = auteursAjoutes.keySet().iterator();
848
		Iterator<String> itAuteur = auteursAjoutes.keySet().iterator();
822
		while (itAuteur.hasNext())	{			
849
		while (itAuteur.hasNext())	{			
823
			String cle = itAuteur.next();
850
			String cle = itAuteur.next();
-
 
851
			PublicationAPersonne publiAPersonne = auteursAjoutes.get(cle);
824
			PublicationAPersonne publiAPersonne = auteursAjoutes.get(cle);			
852
			Log.debug("Ajouter :"+publiAPersonne.toString());
825
			publiAPersonne.setIdPublication(this.publicationId);
853
			publiAPersonne.setIdPublication(this.publicationId);
826
			publiAPersonne.setOrdreAuteurs(publiAPersonne.getOrdreAuteurs());
854
			publiAPersonne.setOrdreAuteurs(publiAPersonne.getOrdreAuteurs());
827
			listeAuteursAAjouter.put(cle, publiAPersonne);
855
			listeAuteursAAjouter.put(cle, publiAPersonne);
Line 837... Line 865...
837
		PublicationAPersonneListe listeAuteursASupprimer = new PublicationAPersonneListe();
865
		PublicationAPersonneListe listeAuteursASupprimer = new PublicationAPersonneListe();
838
		itAuteur = auteursSupprimes.keySet().iterator();
866
		itAuteur = auteursSupprimes.keySet().iterator();
839
		while (itAuteur.hasNext())	{
867
		while (itAuteur.hasNext())	{
840
			String cle = itAuteur.next();
868
			String cle = itAuteur.next();
841
			PublicationAPersonne publiAPersonne = auteursSupprimes.get(cle);
869
			PublicationAPersonne publiAPersonne = auteursSupprimes.get(cle);
-
 
870
			Log.debug("Supprimer :"+publiAPersonne.toString());
842
			listeAuteursASupprimer.put(cle, publiAPersonne);
871
			listeAuteursASupprimer.put(cle, publiAPersonne);
843
		}
872
		}
Line 844... Line 873...
844
		
873
		
845
		// - Envoyer au médiateur SSI personnes à supprimer
874
		// - Envoyer au médiateur SSI personnes à supprimer
846
		if (listeAuteursASupprimer.size() > 0) {
875
		if (listeAuteursASupprimer.size() > 0) {
-
 
876
			// Pour une suppression des auteurs, on a pas besoin d'attendre le retour
847
			// Pour une suppression des auteurs, on a pas besoin d'attendre le retour
877
			Log.debug("Lancement suppression :"+listeAuteursASupprimer.size());
848
			mediateur.supprimerPublicationAPersonne(this, listeAuteursASupprimer);
878
			mediateur.supprimerPublicationAPersonne(this, listeAuteursASupprimer);
Line 849... Line 879...
849
		}
879
		}
850
		
880
		
851
		//3) Auteurs modifiés : 
881
		//3) Auteurs modifiés : 
852
		PublicationAPersonneListe listeAuteursAModifier = new PublicationAPersonneListe();
882
		PublicationAPersonneListe listeAuteursAModifier = new PublicationAPersonneListe();
853
		itAuteur = auteursModifies.keySet().iterator();
883
		itAuteur = auteursModifies.keySet().iterator();
854
		while (itAuteur.hasNext())	{
884
		while (itAuteur.hasNext())	{
-
 
885
			String cle = itAuteur.next();
855
			String cle = itAuteur.next();
886
			PublicationAPersonne publiAPersonne = auteursModifies.get(cle);
856
			PublicationAPersonne publiAPersonne = auteursModifies.get(cle);
887
			Log.debug("Modifier :"+publiAPersonne.toString());
Line 857... Line 888...
857
			listeAuteursAModifier.put(cle, publiAPersonne);
888
			listeAuteursAModifier.put(cle, publiAPersonne);
858
		}
889
		}
Line 864... Line 895...
864
		}
895
		}
Line 865... Line 896...
865
		
896
		
866
		sequenceur.enfilerRafraichissement(this, new Information("auteurs_enregistres"));
897
		sequenceur.enfilerRafraichissement(this, new Information("auteurs_enregistres"));
Line 867... Line -...
867
	}
-
 
868
	
-
 
869
	private void formaterOrdreAuteurs() {
-
 
870
		ListStore<ModelData> store = grilleAuteurs.getStore();
-
 
871
		List<ModelData> auteurs = grilleAuteurs.getStore().getModels();
-
 
872
		
-
 
873
		Iterator<ModelData> itAuteurs = auteurs.iterator();
-
 
874
		while (itAuteurs.hasNext())	{
-
 
875
			ModelData selection = itAuteurs.next();
-
 
876
			
-
 
877
			PublicationAPersonne pap = new PublicationAPersonne(selection, false);
-
 
878
			int ordre = store.indexOf(selection) + 1;
-
 
879
			
-
 
880
			if (pap.getOrdreAuteurs() != String.valueOf(ordre)) {
-
 
881
				pap.setOrdreAuteurs(String.valueOf(ordre));				
-
 
882
				auteursModifies.put(pap.getId(), pap);
-
 
883
			}
-
 
884
		} 
-
 
885
	}
898
	}
886
	
899
	
887
	private void peuplerFormulaire() {
900
	private void peuplerFormulaire() {
888
		setValeurComboProjets();
901
		setValeurComboProjets();
889
		titreChp.setValue(publication.getTitre());
902
		titreChp.setValue(publication.getTitre());
Line 1163... Line 1176...
1163
				soumettreAuteurs();
1176
				soumettreAuteurs();
1164
				InfoLogger.display("Ajout d'une publication", "La publication '"+publicationId+"' a bien été ajoutée");
1177
				InfoLogger.display("Ajout d'une publication", "La publication '"+publicationId+"' a bien été ajoutée");
1165
			} else {
1178
			} else {
1166
				InfoLogger.display("Ajout d'une publication", info.toString());
1179
				InfoLogger.display("Ajout d'une publication", info.toString());
1167
			}
1180
			}
-
 
1181
		} else if (info.getType().equals("suppression_publication_a_personne")) {
-
 
1182
			InfoLogger.display("Suppression d'auteur", info.getMessages().toString());
1168
		}		
1183
		}
1169
	}
1184
	}
Line 1170... Line 1185...
1170
	
1185
	
1171
	private void repandreRafraichissement() {
1186
	private void repandreRafraichissement() {