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) {
|
283 |
|
- |
|
284 |
ModelData publiAPersonneSelectionnee = grilleAuteurs.getSelectionModel().getSelectedItem();
|
- |
|
285 |
|
- |
|
286 |
int index = grilleAuteurs.getStore().indexOf(publiAPersonneSelectionnee);
|
- |
|
287 |
int newIndex = index + 1; // l'auteur monte dans dans la liste donc son ordre diminue
|
- |
|
288 |
int newOrdre = newIndex + 1; // parce que index commence à zéro
|
- |
|
289 |
|
- |
|
290 |
// le marqueur suivant est obligatoire sinon les évènements liés au magasin se
|
- |
|
291 |
// déclenchent et posent problème
|
- |
|
292 |
changeOrderMarker = true;
|
265 |
mettreAJourOrdreAuteur(+1);
|
293 |
|
- |
|
294 |
publiAPersonneSelectionnee.set("_ordre_", String.valueOf(newOrdre));
|
- |
|
295 |
|
- |
|
296 |
ModelData publiAPersonneSwitch = grilleAuteurs.getStore().getAt(index+1);
|
- |
|
297 |
int newOrdrePapSwitch = index + 1;
|
- |
|
298 |
|
- |
|
299 |
publiAPersonneSwitch.set("_ordre_", String.valueOf(newOrdrePapSwitch));
|
- |
|
300 |
|
- |
|
301 |
grilleAuteurs.getStore().update(publiAPersonneSwitch);
|
- |
|
302 |
grilleAuteurs.getStore().remove(publiAPersonneSelectionnee);
|
- |
|
303 |
grilleAuteurs.getStore().insert(publiAPersonneSelectionnee, newIndex);
|
- |
|
304 |
changeOrderMarker = false;
|
- |
|
305 |
|
- |
|
306 |
grilleAuteurs.getSelectionModel().select(newIndex, true);
|
- |
|
307 |
}
|
266 |
}
|
308 |
}
|
267 |
}
|
309 |
});
|
268 |
});
|
310 |
return bouton;
|
269 |
return bouton;
|
311 |
}
|
270 |
}
|
- |
|
271 |
|
- |
|
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();
|
- |
|
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 |
|
- |
|
289 |
private void mettreAJourOrdreAuteur(int monterOuDescendre) {
|
- |
|
290 |
ModelData publiAPersonneSelectionnee = grilleAuteurs.getSelectionModel().getSelectedItem();
|
- |
|
291 |
int index = grilleAuteurs.getStore().indexOf(publiAPersonneSelectionnee);
|
- |
|
292 |
int nouvelIndex = index + monterOuDescendre;
|
- |
|
293 |
|
- |
|
294 |
if (verifierOrdreAuteur(nouvelIndex)) {
|
- |
|
295 |
// le marqueur suivant est obligatoire sinon les évènements liés au magasin se
|
- |
|
296 |
// déclenchent et posent problème
|
- |
|
297 |
changeOrderMarker = true;
|
- |
|
298 |
|
- |
|
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);
|
- |
|
304 |
PublicationAPersonne papSwitch = new PublicationAPersonne(publiAPersonneSwitch, false);
|
- |
|
305 |
papSwitch.setOrdreAuteurs(ordreAPermuter);
|
- |
|
306 |
auteursModifies.put(papSwitch.getId(), papSwitch);
|
Line -... |
Line 307... |
- |
|
307 |
|
- |
|
308 |
grilleAuteurs.getStore().remove(publiAPersonneSelectionnee);
|
- |
|
309 |
String nouvelOrdre = String.valueOf((index + 1) + monterOuDescendre);
|
- |
|
310 |
publiAPersonneSelectionnee.set("_ordre_", nouvelOrdre);
|
- |
|
311 |
grilleAuteurs.getStore().insert(publiAPersonneSelectionnee, nouvelIndex);
|
- |
|
312 |
PublicationAPersonne papSelectionnee = new PublicationAPersonne(publiAPersonneSelectionnee, false);
|
- |
|
313 |
papSelectionnee.setOrdreAuteurs(nouvelOrdre);
|
- |
|
314 |
auteursModifies.put(papSelectionnee.getId(), papSelectionnee);
|
- |
|
315 |
changeOrderMarker = false;
|
- |
|
316 |
|
- |
|
317 |
grilleAuteurs.getSelectionModel().select(nouvelIndex, false);
|
- |
|
318 |
}
|
- |
|
319 |
}
|
- |
|
320 |
|
- |
|
321 |
private boolean verifierOrdreAuteur(int nouvelIndex) {
|
- |
|
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 |
|
- |
|
340 |
if ((index+1) < grilleAuteurs.getStore().getCount()) {
|
- |
|
341 |
boutonAuteurDown.setEnabled(true);
|
- |
|
342 |
} else {
|
- |
|
343 |
boutonAuteurDown.setEnabled(false);
|
- |
|
344 |
}
|
- |
|
345 |
}
|
312 |
|
346 |
|
313 |
private Button creerBoutonAjouter() {
|
347 |
private Button creerBoutonAjouter() {
|
314 |
Button bouton = new Button(i18nC.ajouter());
|
348 |
Button bouton = new Button(i18nC.ajouter());
|
315 |
bouton.setIcon(Images.ICONES.vcardAjouter());
|
349 |
bouton.setIcon(Images.ICONES.vcardAjouter());
|
316 |
bouton.addSelectionListener(new SelectionListener<ButtonEvent>() {
|
350 |
bouton.addSelectionListener(new SelectionListener<ButtonEvent>() {
|
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() {
|
1172 |
if (vueExterneARafraichirApresValidation != null) {
|
1187 |
if (vueExterneARafraichirApresValidation != null) {
|