Line 1... |
Line 1... |
1 |
package org.tela_botanica.client.vues.personne;
|
1 |
package org.tela_botanica.client.vues.personne;
|
Line 2... |
Line 2... |
2 |
|
2 |
|
3 |
import java.util.ArrayList;
|
3 |
import java.util.ArrayList;
|
Line -... |
Line 4... |
- |
|
4 |
import java.util.List;
|
4 |
import java.util.List;
|
5 |
|
5 |
|
6 |
import org.tela_botanica.client.ComposantClass;
|
6 |
import org.tela_botanica.client.Mediateur;
|
7 |
import org.tela_botanica.client.Mediateur;
|
7 |
import org.tela_botanica.client.images.Images;
|
8 |
import org.tela_botanica.client.images.Images;
|
- |
|
9 |
import org.tela_botanica.client.interfaces.Rafraichissable;
|
- |
|
10 |
import org.tela_botanica.client.modeles.Information;
|
8 |
import org.tela_botanica.client.interfaces.Rafraichissable;
|
11 |
import org.tela_botanica.client.modeles.Valeur;
|
- |
|
12 |
import org.tela_botanica.client.modeles.ValeurListe;
|
9 |
import org.tela_botanica.client.modeles.Information;
|
13 |
import org.tela_botanica.client.modeles.aDonnee;
|
10 |
import org.tela_botanica.client.modeles.aDonnee;
|
14 |
import org.tela_botanica.client.modeles.collection.CollectionAPersonne;
|
11 |
import org.tela_botanica.client.modeles.personne.Personne;
|
15 |
import org.tela_botanica.client.modeles.personne.Personne;
|
12 |
import org.tela_botanica.client.modeles.publication.Publication;
|
16 |
import org.tela_botanica.client.modeles.publication.Publication;
|
13 |
import org.tela_botanica.client.modeles.publication.PublicationAPersonne;
|
17 |
import org.tela_botanica.client.modeles.publication.PublicationAPersonne;
|
Line 37... |
Line 41... |
37 |
import com.extjs.gxt.ui.client.widget.button.Button;
|
41 |
import com.extjs.gxt.ui.client.widget.button.Button;
|
38 |
import com.extjs.gxt.ui.client.widget.button.ButtonBar;
|
42 |
import com.extjs.gxt.ui.client.widget.button.ButtonBar;
|
39 |
import com.extjs.gxt.ui.client.widget.form.ComboBox;
|
43 |
import com.extjs.gxt.ui.client.widget.form.ComboBox;
|
40 |
import com.extjs.gxt.ui.client.widget.form.FormPanel;
|
44 |
import com.extjs.gxt.ui.client.widget.form.FormPanel;
|
41 |
import com.extjs.gxt.ui.client.widget.form.ComboBox.TriggerAction;
|
45 |
import com.extjs.gxt.ui.client.widget.form.ComboBox.TriggerAction;
|
- |
|
46 |
import com.extjs.gxt.ui.client.widget.grid.CellEditor;
|
42 |
import com.extjs.gxt.ui.client.widget.grid.ColumnConfig;
|
47 |
import com.extjs.gxt.ui.client.widget.grid.ColumnConfig;
|
43 |
import com.extjs.gxt.ui.client.widget.grid.ColumnData;
|
48 |
import com.extjs.gxt.ui.client.widget.grid.ColumnData;
|
44 |
import com.extjs.gxt.ui.client.widget.grid.ColumnModel;
|
49 |
import com.extjs.gxt.ui.client.widget.grid.ColumnModel;
|
45 |
import com.extjs.gxt.ui.client.widget.grid.EditorGrid;
|
50 |
import com.extjs.gxt.ui.client.widget.grid.EditorGrid;
|
46 |
import com.extjs.gxt.ui.client.widget.grid.Grid;
|
51 |
import com.extjs.gxt.ui.client.widget.grid.Grid;
|
Line 65... |
Line 70... |
65 |
private PublicationAPersonneListe publicationsAjoutees = null;
|
70 |
private PublicationAPersonneListe publicationsAjoutees = null;
|
66 |
private PublicationAPersonneListe publicationsSupprimees = null;
|
71 |
private PublicationAPersonneListe publicationsSupprimees = null;
|
67 |
private ComboBox<Publication> publicationsSaisiesComboBox = null;
|
72 |
private ComboBox<Publication> publicationsSaisiesComboBox = null;
|
68 |
private Button publicationsBoutonSupprimer = null;
|
73 |
private Button publicationsBoutonSupprimer = null;
|
69 |
private Button publicationsBoutonModifier = null;
|
74 |
private Button publicationsBoutonModifier = null;
|
- |
|
75 |
private ComboBox<Valeur> typeRelationCombo = null;
|
Line 70... |
Line 76... |
70 |
|
76 |
|
Line 71... |
Line 77... |
71 |
private FenetreForm fenetreFormulaire = null;
|
77 |
private FenetreForm fenetreFormulaire = null;
|
72 |
|
78 |
|
Line 79... |
Line 85... |
79 |
panneauPrincipal = creerPanneauContenantGrille();
|
85 |
panneauPrincipal = creerPanneauContenantGrille();
|
80 |
barreOutils = creerBarreOutilsGrille();
|
86 |
barreOutils = creerBarreOutilsGrille();
|
81 |
panneauPrincipal.setTopComponent(barreOutils);
|
87 |
panneauPrincipal.setTopComponent(barreOutils);
|
82 |
grille = creerGrille();
|
88 |
grille = creerGrille();
|
83 |
panneauPrincipal.add(grille);
|
89 |
panneauPrincipal.add(grille);
|
- |
|
90 |
mediateur.obtenirListeValeurEtRafraichir(this, "relationPersonnePublication");
|
84 |
add(panneauPrincipal);
|
91 |
add(panneauPrincipal);
|
Line 85... |
Line 92... |
85 |
|
92 |
|
86 |
initialiser();
|
93 |
initialiser();
|
Line 255... |
Line 262... |
255 |
return bouton;
|
262 |
return bouton;
|
256 |
}
|
263 |
}
|
Line 257... |
Line 264... |
257 |
|
264 |
|
258 |
private void actualiserGrille() {
|
265 |
private void actualiserGrille() {
|
259 |
if (mode.equals(Formulaire.MODE_MODIFIER)) {
|
266 |
if (mode.equals(Formulaire.MODE_MODIFIER)) {
|
260 |
mediateur.selectionnerPublicationAPersonne(this, null, personneSelectionnee.getId(), PublicationAPersonne.ROLE_SUJET);
|
267 |
mediateur.selectionnerPublicationAPersonne(this, null, personneSelectionnee.getId(), "%");
|
261 |
} else {
|
268 |
} else {
|
262 |
grille.getStore().removeAll();
|
269 |
grille.getStore().removeAll();
|
263 |
layout();
|
270 |
layout();
|
264 |
}
|
271 |
}
|
Line 369... |
Line 376... |
369 |
expansionPlugin.setTemplate(infoTpl);
|
376 |
expansionPlugin.setTemplate(infoTpl);
|
Line 370... |
Line 377... |
370 |
|
377 |
|
371 |
List<ColumnConfig> colonnes = new ArrayList<ColumnConfig>();
|
378 |
List<ColumnConfig> colonnes = new ArrayList<ColumnConfig>();
|
372 |
colonnes.add(expansionPlugin);
|
379 |
colonnes.add(expansionPlugin);
|
- |
|
380 |
colonnes.add(numeroPlugin);
|
- |
|
381 |
|
- |
|
382 |
|
- |
|
383 |
typeRelationCombo = new ComboBox<Valeur>();
|
- |
|
384 |
typeRelationCombo.setForceSelection(true);
|
- |
|
385 |
typeRelationCombo.setTriggerAction(TriggerAction.ALL);
|
- |
|
386 |
typeRelationCombo.setDisplayField("nom");
|
- |
|
387 |
typeRelationCombo.setStore(new ListStore<Valeur>());
|
- |
|
388 |
typeRelationCombo.setEditable(false);
|
- |
|
389 |
typeRelationCombo.addStyleName(ComposantClass.OBLIGATOIRE);
|
- |
|
390 |
typeRelationCombo.addListener(Events.Select, Formulaire.creerEcouteurChampObligatoire());
|
- |
|
391 |
|
- |
|
392 |
CellEditor editeurRelation = new CellEditor(typeRelationCombo) {
|
- |
|
393 |
@Override
|
- |
|
394 |
public Object preProcessValue(Object valeur) {
|
- |
|
395 |
Valeur retour = null;
|
- |
|
396 |
if (valeur != null ) {
|
- |
|
397 |
Debug.log(valeur.toString());
|
- |
|
398 |
if (typeRelationCombo.getStore().findModel("nom", valeur.toString()) != null) {
|
- |
|
399 |
retour = typeRelationCombo.getStore().findModel("nom", valeur.toString());
|
- |
|
400 |
} else if (typeRelationCombo.getStore().findModel("abr", valeur.toString()) != null) {
|
- |
|
401 |
retour = typeRelationCombo.getStore().findModel("abr", valeur.toString());
|
- |
|
402 |
} else if (typeRelationCombo.getStore().findModel("id_valeur", valeur.toString()) != null) {
|
- |
|
403 |
retour = typeRelationCombo.getStore().findModel("id_valeur", valeur.toString());
|
- |
|
404 |
}
|
- |
|
405 |
}
|
- |
|
406 |
return retour;
|
- |
|
407 |
}
|
- |
|
408 |
|
- |
|
409 |
@Override
|
- |
|
410 |
public Object postProcessValue(Object valeur) {
|
- |
|
411 |
String retour = null;
|
- |
|
412 |
if (valeur != null ) {
|
- |
|
413 |
if (valeur instanceof Valeur) {
|
- |
|
414 |
Valeur valeurOntologie = (Valeur) valeur;
|
- |
|
415 |
retour = valeurOntologie.getId();
|
- |
|
416 |
}
|
- |
|
417 |
}
|
- |
|
418 |
return retour;
|
- |
|
419 |
}
|
- |
|
420 |
};
|
- |
|
421 |
|
- |
|
422 |
GridCellRenderer<PublicationAPersonne> relationRendu = new GridCellRenderer<PublicationAPersonne>() {
|
- |
|
423 |
@Override
|
- |
|
424 |
public String render(PublicationAPersonne modele, String property, ColumnData config, int rowIndex, int colIndex, ListStore<PublicationAPersonne> store, Grid<PublicationAPersonne> grille) {
|
- |
|
425 |
// Gestion du texte afficher dans la cellule
|
- |
|
426 |
String role = modele.get("_role_");
|
- |
|
427 |
if (typeRelationCombo.getStore() != null && role.matches("[0-9]+")) {
|
- |
|
428 |
role = typeRelationCombo.getStore().findModel("id_valeur", role).getId();
|
- |
|
429 |
}
|
- |
|
430 |
modele.set("_role_", role);
|
- |
|
431 |
|
- |
|
432 |
return role;
|
- |
|
433 |
}
|
- |
|
434 |
};
|
- |
|
435 |
|
- |
|
436 |
|
- |
|
437 |
ColumnConfig typeRelationColonne = new ColumnConfig("_role_", i18nC.typeRelationPersonneCollection(), 75);
|
- |
|
438 |
typeRelationColonne.setEditor(editeurRelation);
|
- |
|
439 |
typeRelationColonne.setRenderer(relationRendu);
|
- |
|
440 |
colonnes.add(typeRelationColonne);
|
373 |
colonnes.add(numeroPlugin);
|
441 |
|
374 |
colonnes.add(new ColumnConfig("fmt_auteur", i18nC.publicationAuteurs(), 150));
|
442 |
colonnes.add(new ColumnConfig("fmt_auteur", i18nC.publicationAuteurs(), 150));
|
375 |
colonnes.add(new ColumnConfig("titre", i18nC.publicationTitre(), 150));
|
443 |
colonnes.add(new ColumnConfig("titre", i18nC.publicationTitre(), 150));
|
376 |
colonnes.add(new ColumnConfig("collection", i18nC.publicationRevueCollection(), 75));
|
444 |
colonnes.add(new ColumnConfig("collection", i18nC.publicationRevueCollection(), 75));
|
377 |
colonnes.add(creerColonneEditeur());
|
445 |
colonnes.add(creerColonneEditeur());
|
Line 442... |
Line 510... |
442 |
|
510 |
|
443 |
public void rafraichir(Object nouvellesDonnees) {
|
511 |
public void rafraichir(Object nouvellesDonnees) {
|
444 |
if (nouvellesDonnees instanceof Information) {
|
512 |
if (nouvellesDonnees instanceof Information) {
|
445 |
Information info = (Information) nouvellesDonnees;
|
513 |
Information info = (Information) nouvellesDonnees;
|
- |
|
514 |
rafraichirInformation(info);
|
- |
|
515 |
} else if (nouvellesDonnees instanceof ValeurListe) {
|
- |
|
516 |
ValeurListe listeValeurs = (ValeurListe) nouvellesDonnees;
|
- |
|
517 |
if (listeValeurs.getId().equals(config.getListeId("relationPersonnePublication"))) {
|
- |
|
518 |
Formulaire.rafraichirComboBox(listeValeurs, typeRelationCombo);
|
446 |
rafraichirInformation(info);
|
519 |
}
|
447 |
} else if (nouvellesDonnees instanceof PublicationListe) {
|
520 |
} else if (nouvellesDonnees instanceof PublicationListe) {
|
448 |
PublicationListe listePublications = (PublicationListe) nouvellesDonnees;
|
521 |
PublicationListe listePublications = (PublicationListe) nouvellesDonnees;
|
449 |
rafraichirPublicationListe(listePublications);
|
522 |
rafraichirPublicationListe(listePublications);
|
450 |
} else {
|
523 |
} else {
|
Line 491... |
Line 564... |
491 |
}
|
564 |
}
|
492 |
}
|
565 |
}
|
Line 493... |
Line 566... |
493 |
|
566 |
|
494 |
public void peupler() {
|
567 |
public void peupler() {
|
495 |
grille.getStore().removeAll();
|
- |
|
496 |
System.out.println("publica lié" + personneSelectionnee.getPublicationsLiees().toList());
|
568 |
grille.getStore().removeAll();
|
497 |
grille.getStore().add(personneSelectionnee.getPublicationsLiees().toList());
|
569 |
grille.getStore().add(personneSelectionnee.getPublicationsLiees().toList());
|
498 |
layout();
|
570 |
layout();
|
Line 499... |
Line 571... |
499 |
Info.display(i18nC.chargementPublication(), i18nC.ok());
|
571 |
Info.display(i18nC.chargementPublication(), i18nC.ok());
|
Line 532... |
Line 604... |
532 |
Info.display("Modification des publications liées", "Rien n'a été enregistré car le formulaire n'a pas été modifié.");
|
604 |
Info.display("Modification des publications liées", "Rien n'a été enregistré car le formulaire n'a pas été modifié.");
|
533 |
} else {
|
605 |
} else {
|
534 |
// Ajout des relations CollectionAPublication
|
606 |
// Ajout des relations CollectionAPublication
|
535 |
if (publicationsAjoutees.size() != 0) {
|
607 |
if (publicationsAjoutees.size() != 0) {
|
536 |
//TODO : utiliser le role d'une liste déroulante
|
608 |
//TODO : utiliser le role d'une liste déroulante
|
537 |
mediateur.ajouterPublicationAPersonne(this, publicationsAjoutees, personneSelectionnee.getId(), PublicationAPersonne.ROLE_SUJET);
|
609 |
mediateur.ajouterPublicationAPersonne(this, publicationsAjoutees, personneSelectionnee.getId(), null);
|
538 |
}
|
610 |
}
|
539 |
// Suppression des relations CollectionAPublication
|
611 |
// Suppression des relations CollectionAPublication
|
540 |
if (publicationsSupprimees.size() != 0) {
|
612 |
if (publicationsSupprimees.size() != 0) {
|
541 |
// TODO : fix under
|
- |
|
542 |
mediateur.supprimerPublicationAPersonne(this, publicationsSupprimees);
|
613 |
mediateur.supprimerPublicationAPersonne(this, publicationsSupprimees);
|
543 |
/*Debug.log("Nbre publications supprimées :"+publicationsSupprimees.size());*/
|
- |
|
544 |
}
|
614 |
}
|
545 |
}
|
615 |
}
|
546 |
}
|
616 |
}
|
547 |
}
|
617 |
}
|