| 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) {
|