Line 1... |
Line 1... |
1 |
package org.tela_botanica.client.vues.collection;
|
1 |
package org.tela_botanica.client.vues.collection;
|
Line 2... |
Line 2... |
2 |
|
2 |
|
- |
|
3 |
import java.util.ArrayList;
|
3 |
import java.util.ArrayList;
|
4 |
import java.util.HashMap;
|
- |
|
5 |
import java.util.List;
|
Line 4... |
Line 6... |
4 |
import java.util.List;
|
6 |
import java.util.Map;
|
5 |
|
7 |
|
6 |
import org.tela_botanica.client.ComposantClass;
|
8 |
import org.tela_botanica.client.ComposantClass;
|
7 |
import org.tela_botanica.client.Mediateur;
|
9 |
import org.tela_botanica.client.Mediateur;
|
Line 407... |
Line 409... |
407 |
ColumnModel modeleDeColonnes = new ColumnModel(colonnes);
|
409 |
ColumnModel modeleDeColonnes = new ColumnModel(colonnes);
|
408 |
modeleDeColonnes.addHeaderGroup(0, 1, new HeaderGroupConfig(i18nC.personneIdentite(), 1, 4));
|
410 |
modeleDeColonnes.addHeaderGroup(0, 1, new HeaderGroupConfig(i18nC.personneIdentite(), 1, 4));
|
409 |
modeleDeColonnes.addHeaderGroup(0, 5, new HeaderGroupConfig(i18nC.personneNaissance(), 1, 2));
|
411 |
modeleDeColonnes.addHeaderGroup(0, 5, new HeaderGroupConfig(i18nC.personneNaissance(), 1, 2));
|
410 |
modeleDeColonnes.addHeaderGroup(0, 7, new HeaderGroupConfig(i18nC.personneDeces(), 1, 3));
|
412 |
modeleDeColonnes.addHeaderGroup(0, 7, new HeaderGroupConfig(i18nC.personneDeces(), 1, 3));
|
Line -... |
Line 413... |
- |
|
413 |
|
- |
|
414 |
HashMap<String, String> virtualFields = new HashMap<String, String>();
|
- |
|
415 |
virtualFields.put("_role_", "ccap_id_role");
|
- |
|
416 |
virtualFields.put("_etat_", "");
|
411 |
|
417 |
|
412 |
// Grille
|
418 |
// Grille
|
Line 413... |
Line 419... |
413 |
GrillePaginable<ModelData> grillePaginable = new GrillePaginable<ModelData>(modelTypeCollectionAPersonne, proxyCollectionAPersonne, colonnes, modeleDeColonnes);
|
419 |
GrillePaginable<ModelData> grillePaginable = new GrillePaginable<ModelData>(modelTypeCollectionAPersonne, virtualFields, proxyCollectionAPersonne, colonnes, modeleDeColonnes);
|
414 |
|
420 |
|
415 |
// Rajouter des écouteurs
|
421 |
// Rajouter des écouteurs
|
416 |
grillePaginable.getStore().addListener(Store.Update, new Listener<StoreEvent<ModelData>>() {
|
422 |
grillePaginable.getStore().addListener(Store.Update, new Listener<StoreEvent<ModelData>>() {
|
Line 435... |
Line 441... |
435 |
typeRelationCombo.addListener(Events.Select, Formulaire.creerEcouteurChampObligatoire());
|
441 |
typeRelationCombo.addListener(Events.Select, Formulaire.creerEcouteurChampObligatoire());
|
Line 436... |
Line 442... |
436 |
|
442 |
|
Line 437... |
Line 443... |
437 |
CellEditor editeurRelation = new CellEditor(typeRelationCombo) {
|
443 |
CellEditor editeurRelation = new CellEditor(typeRelationCombo) {
|
438 |
|
444 |
|
439 |
// Sert à retourner un ModelData à partir d'une String (la string est passée par le Renderer)
|
445 |
// Sert à retourner un ModelData à partir d'une String (la string est passée par le Renderer)
|
440 |
public Object preProcessValue(Object valeur) {
|
446 |
public Object preProcessValue(Object valeur) {
|
441 |
Valeur retour = null;
|
447 |
Valeur retour = null;
|
442 |
if (valeur != null ) {
|
448 |
if (valeur != null ) {
|
443 |
if (typeRelationCombo.getStore().findModel("nom", valeur.toString()) != null) {
|
449 |
if (typeRelationCombo.getStore().findModel("nom", valeur.toString()) != null) {
|
Line 451... |
Line 457... |
451 |
return retour;
|
457 |
return retour;
|
452 |
}
|
458 |
}
|
Line 453... |
Line 459... |
453 |
|
459 |
|
454 |
// Sert à retourner un String à Partir d'une Valeur
|
460 |
// Sert à retourner un String à Partir d'une Valeur
|
455 |
// en postProcess on remplace la valeur du champ par l'Id de la valeur au lieu de son Nom
|
461 |
// en postProcess on remplace la valeur du champ par l'Id de la valeur au lieu de son Nom
|
456 |
public Object postProcessValue(Object valeur) {
|
462 |
public Object postProcessValue(Object valeur) {
|
457 |
String retour = null;
|
463 |
String retour = null;
|
458 |
if (valeur != null ) {
|
464 |
if (valeur != null ) {
|
459 |
if (valeur instanceof Valeur) {
|
465 |
if (valeur instanceof Valeur) {
|
460 |
Valeur valeurOntologie = (Valeur) valeur;
|
466 |
Valeur valeurOntologie = (Valeur) valeur;
|
Line 468... |
Line 474... |
468 |
|
474 |
|
469 |
// Sert à afficher le nom du role au lieu de l'id
|
475 |
// Sert à afficher le nom du role au lieu de l'id
|
470 |
GridCellRenderer<ModelData> relationRendu = new GridCellRenderer<ModelData>() {
|
476 |
GridCellRenderer<ModelData> relationRendu = new GridCellRenderer<ModelData>() {
|
471 |
public String render(ModelData modele, String property, ColumnData config, int rowIndex, int colIndex, ListStore<ModelData> store, Grid<ModelData> grille) {
|
477 |
public String render(ModelData modele, String property, ColumnData config, int rowIndex, int colIndex, ListStore<ModelData> store, Grid<ModelData> grille) {
|
472 |
// Gestion du texte afficher dans la cellule
|
478 |
// Gestion du texte afficher dans la cellule
|
473 |
CollectionAPersonne cap = new CollectionAPersonne(modele);
|
- |
|
474 |
|
479 |
Map<String, Object> a = modele.getProperties();
|
475 |
String role = cap.getIdRole();
|
- |
|
476 |
modele.set("_role_", role);
|
- |
|
477 |
|
480 |
String role = modele.get("_role_");
|
478 |
if (typeRelationCombo.getStore() != null && typeRelationCombo.getStore().getCount() > 0 && role.matches("[0-9]+")) {
|
481 |
if (typeRelationCombo.getStore() != null && typeRelationCombo.getStore().getCount() > 0 && role.matches("[0-9]+")) {
|
479 |
role = typeRelationCombo.getStore().findModel("id_valeur", role).getNom();
|
482 |
role = typeRelationCombo.getStore().findModel("id_valeur", role).getNom();
|
480 |
}
|
- |
|
481 |
|
483 |
}
|
482 |
return role;
|
484 |
return role;
|
483 |
}
|
485 |
}
|
484 |
};
|
486 |
};
|
485 |
ColumnConfig typeRelationColonne = new ColumnConfig("_role_", i18nC.typeRelationPersonneCollection(), 75);
|
487 |
ColumnConfig typeRelationColonne = new ColumnConfig("_role_", i18nC.typeRelationPersonneCollection(), 75);
|
Line 560... |
Line 562... |
560 |
// En mode AJOUT, il ne peut que y avoir des personnes liées ajoutées
|
562 |
// En mode AJOUT, il ne peut que y avoir des personnes liées ajoutées
|
561 |
mediateur.ajouterCollectionAPersonne(this, collectionId, personnesAjoutees);
|
563 |
mediateur.ajouterCollectionAPersonne(this, collectionId, personnesAjoutees);
|
562 |
}
|
564 |
}
|
563 |
} else if (type.equals("personne_modifiee")) {
|
565 |
} else if (type.equals("personne_modifiee")) {
|
564 |
if (info.getDonnee(0) != null) {
|
566 |
if (info.getDonnee(0) != null) {
|
565 |
Personne personne = (Personne) info.getDonnee(0);
|
567 |
Personne personne = (Personne) info.getDonnee(0);
|
566 |
ModelData personneDansGrille = grille.getStore().findModel("id_personne", personne.getId());
|
568 |
ModelData personneDansGrille = grille.getStore().findModel("ccap_id_personne", personne.getId());
|
567 |
int index = grille.getStore().indexOf(personneDansGrille);
|
569 |
int index = grille.getStore().indexOf(personneDansGrille);
|
568 |
grille.getStore().remove(personneDansGrille);
|
570 |
grille.getStore().remove(personneDansGrille);
|
569 |
String role = (String) personneDansGrille.get("_role_");
|
571 |
String role = (String) personneDansGrille.get("_role_");
|
570 |
ajouterDansGrille(personne, role, index);
|
572 |
ajouterDansGrille(personne, role, index);
|
571 |
}
|
573 |
}
|
Line 589... |
Line 591... |
589 |
String personneNumero = "";
|
591 |
String personneNumero = "";
|
590 |
int nbrePersonne = grille.getStore().getCount();
|
592 |
int nbrePersonne = grille.getStore().getCount();
|
Line 591... |
Line 593... |
591 |
|
593 |
|
592 |
if (nbrePersonne > 0) {
|
594 |
if (nbrePersonne > 0) {
|
593 |
for (int i = 0; i < nbrePersonne; i++) {
|
- |
|
594 |
CollectionAPersonne personne = new CollectionAPersonne(grille.getStore().getAt(i));
|
595 |
for (int i = 0; i < nbrePersonne; i++) {
|
595 |
if (personne.get("_role_").equals("")) {
|
596 |
if (grille.getStore().getAt(i).get("_role_").equals("")) {
|
596 |
personneNumero += (i != 0 ? ", " : "")+(i+1);
|
597 |
personneNumero += (i != 0 ? ", " : "")+(i+1);
|
597 |
}
|
598 |
}
|
598 |
}
|
599 |
}
|
599 |
if (!personneNumero.equals("")) {
|
600 |
if (!personneNumero.equals("")) {
|
Line 607... |
Line 608... |
607 |
public void collecter() {
|
608 |
public void collecter() {
|
608 |
if (etreAccede()) {
|
609 |
if (etreAccede()) {
|
609 |
int nbrePersonne = grille.getStore().getCount();
|
610 |
int nbrePersonne = grille.getStore().getCount();
|
610 |
for (int i = 0; i < nbrePersonne; i++) {
|
611 |
for (int i = 0; i < nbrePersonne; i++) {
|
611 |
CollectionAPersonne relationCollectionPersonne = new CollectionAPersonne(grille.getStore().getAt(i));
|
612 |
CollectionAPersonne relationCollectionPersonne = new CollectionAPersonne(grille.getStore().getAt(i));
|
- |
|
613 |
relationCollectionPersonne.set("_role_", grille.getStore().getAt(i).get("_role_"));
|
Line 612... |
Line 614... |
612 |
|
614 |
|
Line 613... |
Line 615... |
613 |
if (relationCollectionPersonne.get("_etat_") != null) {
|
615 |
if (grille.getStore().getAt(i).get("_etat_") != null) {
|
614 |
|
616 |
|
615 |
if (relationCollectionPersonne.get("_etat_").equals(aDonnee.ETAT_MODIFIE)) {
|
617 |
if (grille.getStore().getAt(i).get("_etat_").equals(aDonnee.ETAT_MODIFIE)) {
|
Line 616... |
Line 618... |
616 |
// Comme il est impossible de modifier les relations nous supprimons l'ancien enregistrement et ajoutons un nouveau avec le nouveau id_role
|
618 |
// Comme il est impossible de modifier les relations nous supprimons l'ancien enregistrement et ajoutons un nouveau avec le nouveau id_role
|
617 |
personnesSupprimees.put("id"+idGenere++, relationCollectionPersonne);
|
619 |
personnesSupprimees.put("id"+idGenere++, relationCollectionPersonne);
|
618 |
|
620 |
|
619 |
CollectionAPersonne relationAAjouter = (CollectionAPersonne) relationCollectionPersonne.cloner(new CollectionAPersonne());
|
621 |
CollectionAPersonne relationAAjouter = (CollectionAPersonne) relationCollectionPersonne.cloner(new CollectionAPersonne());
|
620 |
corrigerChampsGrille(relationAAjouter);// Nous modifions l'id_role
|
622 |
corrigerChampsGrille(relationAAjouter);// Nous modifions l'id_role
|
621 |
personnesAjoutees.put("id"+idGenere++, relationAAjouter);
|
623 |
personnesAjoutees.put("id"+idGenere++, relationAAjouter);
|
622 |
}
|
624 |
}
|
623 |
if (relationCollectionPersonne.get("_etat_").equals(aDonnee.ETAT_AJOUTE)) {
|
625 |
if (grille.getStore().getAt(i).get("_etat_").equals(aDonnee.ETAT_AJOUTE)) {
|
624 |
corrigerChampsGrille(relationCollectionPersonne);// Nous modifions l'id_role
|
626 |
corrigerChampsGrille(relationCollectionPersonne);// Nous modifions l'id_role
|
625 |
personnesAjoutees.put("id"+idGenere++, relationCollectionPersonne);
|
627 |
personnesAjoutees.put("id"+idGenere++, relationCollectionPersonne);
|
626 |
}
|
628 |
}
|
627 |
// Initialisation de la grille
|
629 |
// Initialisation de la grille
|
628 |
relationCollectionPersonne.set("_etat_", "");
|
630 |
grille.getStore().getAt(i).set("_etat_", "");
|
629 |
}
|
631 |
}
|
630 |
}
|
632 |
}
|