Subversion Repositories eFlore/Applications.coel

Compare Revisions

Ignore whitespace Rev 1209 → Rev 1210

/trunk/src/org/tela_botanica/client/vues/collection/CollectionFormInventaire.java
28,7 → 28,7
private ChampCaseACocher digitalInventaireChp = null;
private ChampSliderPourcentage pourcentDigitalInventaireChp = null;
private ChampComboBoxListeValeurs etatInventaireCombo = null;
private TextArea typeDonneeInventaireChp = null;
//DELETEME private TextArea typeDonneeInventaireChp = null;
 
public CollectionFormInventaire(Formulaire formulaireCourrant) {
initialiserOnglet(formulaireCourrant);
65,10 → 65,12
etatInventaireCombo.setTabIndex(tabIndex++);
add(etatInventaireCombo, new FormData(300, 0));
/*DELETEME
typeDonneeInventaireChp = new TextArea();
typeDonneeInventaireChp.setTabIndex(tabIndex++);
typeDonneeInventaireChp.setFieldLabel(i18nC.typeDonneeInventaireCollection());
add(typeDonneeInventaireChp, new FormData(550, 0));
add(typeDonneeInventaireChp, new FormData(550, 0));*/
}
public void peupler() {
81,13 → 83,13
digitalInventaireChp.peupler(collectionBotanique.getInventaireDigital());
pourcentDigitalInventaireChp.peupler(collectionBotanique.getInventaireDigitalPourcent());
etatInventaireCombo.peupler(collectionBotanique.getInventaireEtat());
typeDonneeInventaireChp.setValue(collectionBotanique.getInventaireDonneesTypes());
//DELETEME typeDonneeInventaireChp.setValue(collectionBotanique.getInventaireDonneesTypes());
}
}
public void collecter() {
initialiserCollection();
if (etreAccede()) {
if (etreAccede()) {
collectionBotaniqueCollectee.setInventaire(existenceInventaireCombo.getValeur());
collectionBotaniqueCollectee.setInventaireAuteur(auteurInventaireCombo.getValeur());
collectionBotaniqueCollectee.setInventaireForme(formeInventaireCombo.getValeur());
95,7 → 97,7
collectionBotaniqueCollectee.setInventaireDigital(digitalInventaireChp.getValeur());
collectionBotaniqueCollectee.setInventaireDigitalPourcent(pourcentDigitalInventaireChp.getValeur());
collectionBotaniqueCollectee.setInventaireEtat(etatInventaireCombo.getValeur());
collectionBotaniqueCollectee.setInventaireDonneesTypes(typeDonneeInventaireChp.getValue());
//DELETEME collectionBotaniqueCollectee.setInventaireDonneesTypes(typeDonneeInventaireChp.getValue());
}
}
/trunk/src/org/tela_botanica/client/vues/collection/CollectionDetailVue.java
1033,7 → 1033,7
inventaireParams.set("i18n_digital", i18nC.digitalInventaireCollectionDetail());
inventaireParams.set("i18n_digital_pourcent", i18nC.pourcentDigitalInventaireCollectionDetail());
inventaireParams.set("i18n_etat", i18nC.etatInventaireCollectionDetail());
inventaireParams.set("i18n_type_donnee", i18nC.typeDonneeInventaireCollectionDetail());
//DELETEME inventaireParams.set("i18n_type_donnee", i18nC.typeDonneeInventaireCollectionDetail());
CollectionBotanique collectionBotanique = collection.getBotanique();
String existence = construireTxtListeOntologie(collectionBotanique.getInventaire());
1049,7 → 1049,7
inventaireParams.set("digital", digital);
inventaireParams.set("digital_pourcent", digitalPourcent);
inventaireParams.set("etat", etat);
inventaireParams.set("type_donnee", collectionBotanique.getInventaireDonneesTypes());
//DELETEME inventaireParams.set("type_donnee", collectionBotanique.getInventaireDonneesTypes());
afficherOnglet(inventaireTpl, inventaireParams, inventaireOnglet);
}
/trunk/src/org/tela_botanica/client/vues/structure/StructureForm.java
7,6 → 7,7
import org.tela_botanica.client.ComposantClass;
import org.tela_botanica.client.Mediateur;
import org.tela_botanica.client.RegistreId;
import org.tela_botanica.client.composants.InfoLogger;
import org.tela_botanica.client.images.Images;
import org.tela_botanica.client.interfaces.Rafraichissable;
import org.tela_botanica.client.modeles.Information;
24,6 → 25,7
import org.tela_botanica.client.modeles.structure.StructureAPersonneListe;
import org.tela_botanica.client.modeles.structure.StructureConservation;
import org.tela_botanica.client.modeles.structure.StructureValorisation;
import org.tela_botanica.client.util.Debug;
import org.tela_botanica.client.util.Pattern;
import org.tela_botanica.client.util.UtilArray;
import org.tela_botanica.client.util.UtilString;
34,6 → 36,7
import com.extjs.gxt.ui.client.event.BaseEvent;
import com.extjs.gxt.ui.client.event.ButtonEvent;
import com.extjs.gxt.ui.client.event.ComponentEvent;
import com.extjs.gxt.ui.client.event.EventType;
import com.extjs.gxt.ui.client.event.KeyListener;
import com.extjs.gxt.ui.client.event.Listener;
import com.extjs.gxt.ui.client.event.SelectionChangedEvent;
257,6 → 260,9
}
public boolean soumettreFormulaire() {
Debug.log("===> BEGIN StructureForm.soumettreFormulaire()");
// Vérification de la validité des champs du formulaire
boolean fomulaireValide = verifierFormulaire();
if (fomulaireValide) {
272,14 → 278,20
// L'ajout des relations StructureAPersonne se fait quand la structure a été ajoutée
// Voir la méthode rafraichir().
} else if (mode.equals(MODE_MODIFIER)) {
Debug.log("===> StructureForm.soumettreFormulaire(), mode="+mode);
// Modification des informations sur la Structure
if (structure == null && conservation == null && valorisation == null) {
Info.display("Modification d'une institution", "Rien n'a été enregistré car le formulaire n'a pas été modifié.");
InfoLogger.display("Modification d'une institution", "Rien n'a été enregistré car le formulaire n'a pas été modifié.");
} else {
mediateur.modifierStructure(this, identification.getId(), structure, conservation, valorisation);
}
Debug.log("===> StructureForm.soumettreFormulaire(), personnelModifie.size="+personnelModifie.size() + ", personnelAjoute.size()="+personnelAjoute.size());
if (personnelModifie.size() == 0 && personnelAjoute.size() == 0 && personnelSupprime.size() == 0) {
Info.display("Modification du personnel", "Rien n'a été enregistré car le formulaire n'a pas été modifié.");
InfoLogger.display("Modification du personnel", "Rien n'a été enregistré car le formulaire n'a pas été modifié.");
} else {
if (personnelModifie.size() != 0) {
decompteRafraichissementPersonnel++;
298,6 → 310,9
}
}
}
Debug.log("===> END StructureForm.soumettreFormulaire()");
return fomulaireValide;
}
1027,11 → 1042,14
int nbrePersonne = personnelGrilleMagazin.getCount();
for (int i = 0; i < nbrePersonne; i++) {
StructureAPersonne personne = personnelGrilleMagazin.getAt(i);
Debug.log(":::> StructureForm.collecterStructurePersonnel()");
Debug.log(":::> etat="+personne.get("etat"));
 
// Seules les lignes ajoutées ou modifiées sont prises en compte.
Record record = personnelGrilleMagazin.getRecord(personne);
if (personnelGrilleMagazin.getModifiedRecords().contains(record) == true
|| (personne.get("etat") != null && personne.get("etat").equals(StructureAPersonne.ETAT_AJOUTE) )) {
|| (personne.get("etat") != null && (personne.get("etat").equals(StructureAPersonne.ETAT_AJOUTE) || personne.get("etat").equals(StructureAPersonne.ETAT_MODIFIE)) )) {
// Gestion de l'id de la structure
if (mode.equals("MODIF")) {
1055,6 → 1073,10
} else {
personne.setFonction("");
}
 
// Gestion du nom complet
String nomComplet = personne.getPrenom()+" "+personne.getNom();
personne.setNomComplet(nomComplet);
// Gestion de la notion de "contact"
personne.setContact(false);
1132,6 → 1154,16
personnel.get(index).set("statut", personnel.get(index).getStatut().replaceFirst("AUTRE##", ""));
}
// Gestion de la specialite
if (((String) personnel.get(index).getSpecialite()).matches("^[0-9]+$")) {
// Author : Cyprien
// TODO
// Ici faire un combobox ?
// ...
} else {
personnel.get(index).set("specialite", personnel.get(index).getSpecialite().replaceFirst("AUTRE##", ""));
}
// Gestion du temps de travail
String tps = personnel.get(index).getBotaTravailHebdoTps();
personnel.get(index).set("travail", (tps.matches("^[0-9]+$") ? Integer.parseInt(tps) : 0));
1157,6 → 1189,9
personnelOnglet.setStyleAttribute("padding", "0");
personnelOnglet.addListener(Events.Select, new Listener<ComponentEvent>() {
public void handleEvent(ComponentEvent be) {
Debug.log(":::> StructureForm.creerOngletPersonnel.HandleEvent()");
// Indique que l'onglet a été rempli et a pu être modifié pour la méthode collecter...
personnelOnglet.setData("acces", true);
 
1164,6 → 1199,9
if (mode.equals(MODE_AJOUTER)) {
rafraichirPersonnel();
}
else {
initialiserGrillePersonnelEnModification();
}
}
});
1177,8 → 1215,9
cp.setFrame(true);
personnelGrilleMagazin = new ListStore<StructureAPersonne>();
personnelGrilleMagazin.setMonitorChanges(true);
personnelGrilleMagazin.addListener(Store.Add, new Listener<StoreEvent<StructureAPersonne>>() {
 
public void handleEvent(StoreEvent<StructureAPersonne> ce) {
// Activation du bouton supprimer si la grille contient un élément
if (grillePersonnel.getStore().getCount() > 0) {
1188,6 → 1227,17
}
});
/* TODELETE
personnelGrilleMagazin.addListener(Store.Update, new Listener<StoreEvent<StructureAPersonne>>() {
public void handleEvent(StoreEvent<StructureAPersonne> ce) {
personnelGrilleMagazin.getAt(ce.getIndex()).set("etat", StructureAPersonne.ETAT_MODIFIE);
Debug.log("Modification de : "+personnelGrilleMagazin.getAt(ce.getIndex()).getNom());
}
});
*/
RowNumberer r = new RowNumberer();
List<ColumnConfig> configs = new ArrayList<ColumnConfig>();
1452,6 → 1502,9
grillePersonnel.setAutoExpandColumn("specialite");
grillePersonnel.setStripeRows(true);
grillePersonnel.setTrackMouseOver(true);
grillePersonnel.addListener(null, sm);
cp.add(grillePersonnel);
personnelOnglet.add(cp);
1950,6 → 2003,9
}
public void rafraichir(Object nouvellesDonnees) {
Debug.log("|0> StructureForm.rafraichir, nouvellesDonnees.getClass() = "+nouvellesDonnees.getClass());
try {
if (nouvellesDonnees instanceof Information) {
Information info = (Information) nouvellesDonnees;
1974,33 → 2030,35
if (info.getMessages() != null && !info.getMessages().toString().equals("[]")) {
GWT.log("MESSAGES:\n"+info.getMessages().toString(), null);
}
 
Debug.log("|0> StructureForm.rafraichirInformation, info.getType() = "+info.getType());
if (info.getType().equals("modif_structure")) {
Info.display("Modification d'une institution", info.toString());
InfoLogger.display("Modification d'une institution", info.toString());
} else if (info.getType().equals("ajout_structure")) {
if (info.getDonnee(0) != null && info.getDonnee(0) instanceof String) {
String structureId = (String) info.getDonnee(0);
Info.display("Ajout d'une Institution", "L'intitution '"+structureId+"' a bien été ajoutée");
InfoLogger.display("Ajout d'une Institution", "L'intitution '"+structureId+"' a bien été ajoutée");
// Suite à la récupération de l'id de l'institution nouvellement ajoutée nous ajoutons le personnel
mediateur.ajouterStructureAPersonne(this, structureId, personnelAjoute);
} else {
Info.display("Ajout d'une Institution", info.toString());
InfoLogger.display("Ajout d'une Institution", info.toString());
}
} else if (info.getType().equals("modif_structure_a_personne")) {
Info.display("Modification du Personnel", info.toString());
InfoLogger.display("Modification du Personnel", info.toString());
GWT.log("Decompte:"+decompteRafraichissementPersonnel, null);
testerLancementRafraichirPersonnel();
} else if (info.getType().equals("suppression_structure_a_personne")) {
Info.display("Suppression du Personnel", info.toString());
InfoLogger.display("Suppression du Personnel", info.toString());
GWT.log("Decompte:"+decompteRafraichissementPersonnel, null);
testerLancementRafraichirPersonnel();
} else if (info.getType().equals("ajout_structure_a_personne")) {
Info.display("Ajout du Personnel", info.toString());
InfoLogger.display("Ajout du Personnel", info.toString());
GWT.log("Decompte:"+decompteRafraichissementPersonnel, null);
testerLancementRafraichirPersonnel();
} else if (info.getType().equals("selection_structure")) {
Info.display("Modification d'une institution", info.toString());
InfoLogger.display("Modification d'une institution", info.toString());
String titre = i18nC.titreModifFormStructurePanneau();
if (info.getDonnee(0) != null) {
identification = (Structure) info.getDonnee(0);
2024,14 → 2082,23
}
}
}
panneauFormulaire.setHeading(titre);
} else if (info.getType().equals("liste_structure_a_personne")) {
Debug.log("==> StructureForm.rafraichirInformation, typeInfo=liste_structure_a_personne");
if (info.getDonnee(0) != null) {
personnel = (StructureAPersonneListe) info.getDonnee(0);
 
peuplerStructurePersonnel();
/* TODELETE
int nbPersonnel = this.personnelGrilleMagazin.getCount();
for (int i=0; i<nbPersonnel; i++){
Debug.log("==> setEtat(ETAT_MODIFIE) : personne="+this.personnelGrilleMagazin.getAt(i).getId());
this.personnelGrilleMagazin.getAt(i).set("etat", StructureAPersonne.ETAT_MODIFIE);
}
*/
personnelOnglet.layout();
Info.display("Chargement du Personnel", "ok");
InfoLogger.display("Chargement du Personnel", "ok");
 
// Remise à zéro des modification dans la liste du personnel
personnelModifie = new StructureAPersonneListe();
2173,14 → 2240,19
}
private void testerLancementRafraichirPersonnel() {
Debug.log("==> BEGIN StructureForm.testerLancementRafraichirPersonnel()");
decompteRafraichissementPersonnel--;
if (decompteRafraichissementPersonnel == 0) {
// Nous rechargeons la liste du Personnel
rafraichirPersonnel();
}
}
Debug.log("==> END StructureForm.testerLancementRafraichirPersonnel()");
}
private void rafraichirPersonnel() {
Debug.log("==> BEGIN StructureForm.rafraichirPersonnel()");
decompteRafraichissementPersonnel = 0;
if (mode.equals(MODE_MODIFIER)) {
initialiserGrillePersonnelEnModification();
2187,6 → 2259,7
} else if (mode.equals(MODE_AJOUTER)) {
initialiserGrillePersonnelEnAjout();
}
Debug.log("==> END StructureForm.rafraichirPersonnel()");
}
private void rafraichirPersonneExistante(String nom) {
2208,7 → 2281,7
personnelOnglet.layout();
}
private void initialiserGrillePersonnelEnModification() {
mediateur.selectionnerStructureAPersonne(this, identification.getId(), StructureAPersonne.ROLE_EQUIPE);
private void initialiserGrillePersonnelEnModification() {
mediateur.selectionnerStructureAPersonne(this, identification.getId(), StructureAPersonne.ROLE_EQUIPE);
}
}
}
/trunk/src/org/tela_botanica/client/vues/FenetreJournal.java
New file
0,0 → 1,105
package org.tela_botanica.client.vues;
 
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
 
import org.tela_botanica.client.Mediateur;
import org.tela_botanica.client.interfaces.Rafraichissable;
import org.tela_botanica.client.modeles.Valeur;
 
import com.extjs.gxt.ui.client.Style.SortDir;
import com.extjs.gxt.ui.client.core.XTemplate;
import com.extjs.gxt.ui.client.event.BaseEvent;
import com.extjs.gxt.ui.client.event.ButtonEvent;
import com.extjs.gxt.ui.client.event.Events;
import com.extjs.gxt.ui.client.event.Listener;
import com.extjs.gxt.ui.client.event.SelectionChangedEvent;
import com.extjs.gxt.ui.client.event.SelectionChangedListener;
import com.extjs.gxt.ui.client.event.SelectionListener;
import com.extjs.gxt.ui.client.store.ListStore;
import com.extjs.gxt.ui.client.widget.Dialog;
import com.extjs.gxt.ui.client.widget.InfoConfig;
import com.extjs.gxt.ui.client.widget.button.Button;
import com.extjs.gxt.ui.client.widget.grid.ColumnConfig;
import com.extjs.gxt.ui.client.widget.grid.ColumnModel;
import com.extjs.gxt.ui.client.widget.grid.EditorGrid;
import com.extjs.gxt.ui.client.widget.grid.Grid;
import com.extjs.gxt.ui.client.widget.grid.GridSelectionModel;
import com.extjs.gxt.ui.client.widget.grid.RowExpander;
import com.extjs.gxt.ui.client.widget.grid.RowNumberer;
import com.extjs.gxt.ui.client.widget.layout.FitLayout;
import com.google.gwt.i18n.client.DateTimeFormat;
import com.google.gwt.i18n.client.Dictionary;
 
public class FenetreJournal extends Dialog implements Rafraichissable{
 
private int id = 0;
private EditorGrid<Valeur> grille;
//private int nbLogs = Integer.valueOf(((Dictionary) Dictionary.getDictionary("configuration")).get("nbLogs"));
private ListStore<Valeur> store;
public FenetreJournal(Mediateur mediateur) {
this.setHeading(mediateur.i18nC.titreJournal());
this.setWidth(500);
this.setHeight(500);
setLayout(new FitLayout());
// Définition des colomnes de la grille:
RowNumberer numeroPlugin = new RowNumberer();
numeroPlugin.setHeader("#");
XTemplate infoTpl = XTemplate.create("<p>"+
"<b>" + mediateur.i18nC.heureMessage() + " : </b>{heure}<br />" +
"<b>" + mediateur.i18nC.message() + " : </b>{description}<br />" +
"</p>");
RowExpander expansionPlugin = new RowExpander();
expansionPlugin.setTemplate(infoTpl);
List<ColumnConfig> lstColumns = new ArrayList<ColumnConfig>();
lstColumns.add(expansionPlugin);
lstColumns.add(new ColumnConfig("nom", mediateur.i18nC.publicationTitre(), 200));
lstColumns.add(new ColumnConfig("description", mediateur.i18nC.message() , 400));
 
ColumnModel modeleColonnes = new ColumnModel(lstColumns);
store = new ListStore<Valeur>();
grille = new EditorGrid<Valeur>(store, modeleColonnes);
grille.addPlugin(expansionPlugin);
grille.setAutoExpandColumn("description");
grille.getView().setAutoFill(true);
grille.getView().setForceFit(true);
store.sort("id", SortDir.DESC);
add(grille);
}
@Override
public void rafraichir(Object nouvellesDonnees) {
if (nouvellesDonnees instanceof InfoConfig) {
InfoConfig info = (InfoConfig) nouvellesDonnees;
id++;
Valeur v = new Valeur(String.valueOf(id), info.title, null, info.text);
v.set("heure", getDate());
store.add(v);
//if (store.getModels().size() > nbLogs) {
//store.remove(store.getAt(nbLogs));
//}
}
}
public String getDate() {
Date date = new Date();
return String.valueOf(DateTimeFormat.getFormat("HH:mm:ss").format(date));
}
@Override
protected void createButtons() {
//Pas de boutons, merci
}
 
}
/trunk/src/org/tela_botanica/client/vues/accueil/Applette.java
76,7 → 76,7
epingleBouton.setStyleName("x-tool-pin x-tool");
setPinned(false);
}
Debug.log(epingleBouton.getStyleName());
Debug.log("epingleBouton.getStyleName() = "+epingleBouton.getStyleName());
layout();
}
/trunk/src/org/tela_botanica/client/vues/accueil/AccueilVue.java
6,6 → 6,7
import java.util.TreeMap;
 
import org.tela_botanica.client.Mediateur;
import org.tela_botanica.client.composants.InfoLogger;
import org.tela_botanica.client.i18n.Constantes;
import org.tela_botanica.client.images.Images;
import org.tela_botanica.client.interfaces.Rafraichissable;
12,6 → 13,7
import org.tela_botanica.client.modeles.Information;
import org.tela_botanica.client.util.Debug;
 
import com.extjs.gxt.ui.client.GXT;
import com.extjs.gxt.ui.client.event.ButtonEvent;
import com.extjs.gxt.ui.client.event.SelectionListener;
import com.extjs.gxt.ui.client.widget.ContentPanel;
62,7 → 64,7
if (enregistrementEnCours == false) {
enregistrerParametres();
} else {
Info.display(i18nC.accueilEnregistrement(), i18nC.accueilEnregistrementEnCours());
InfoLogger.display(i18nC.accueilEnregistrement(), i18nC.accueilEnregistrementEnCours());
}
}
});
97,7 → 99,7
portail.getItem(2).removeAll();
}
private void chargerParametres() {
private void chargerParametres() {
viderPortail();
Document paramXml = XMLParser.parse(mediateur.getUtilisateur().getParametre());
106,7 → 108,7
 
// Récupération du noeud accueil
Node accueilNoeud = null;
if (nbreAccueilNoeud == 0) {
if (nbreAccueilNoeud == 0) {
ajouterPortlet();
} else if (nbreAccueilNoeud == 1) {
accueilNoeud = listeAccueilNoeud.item(0);
114,7 → 116,7
// Lecture des noeuds "applette"
NodeList listeAppletteNoeud = accueilNoeud.getChildNodes();
int nbreAppletteNoeud = listeAppletteNoeud.getLength();
TreeMap<String, HashMap<String, String>> tableApplettes = new TreeMap<String, HashMap<String, String>>();
TreeMap<String, HashMap<String, String>> tableApplettes = new TreeMap<String, HashMap<String, String>>();
for (int i = 0; i < nbreAppletteNoeud ; i++) {
Element appletteNoeud = (Element) listeAppletteNoeud.item(i);
int colonne = Integer.parseInt(appletteNoeud.getAttribute("colonne"));
135,11 → 137,11
boolean reduite = (infoApplette.get("reduite") != null && infoApplette.get("reduite").equals("true")) ? true : false;
boolean epingle = (infoApplette.get("epingle") != null && infoApplette.get("epingle").equals("true")) ? true : false;
int index = Integer.parseInt(infoApplette.get("index"));
int colonne = Integer.parseInt(infoApplette.get("colonne"));
ajouterPortlet(reduite, epingle, infoApplette.get("type"), colonne, index, infoApplette.get("contenu"));
int colonne = Integer.parseInt(infoApplette.get("colonne"));
ajouterPortlet(reduite, epingle, infoApplette.get("type"), colonne, index, infoApplette.get("contenu"));
}
}
layout();
layout();
}
private void enregistrerParametres() {
214,19 → 216,18
private void ajouterPortlet(boolean reduite, boolean epingle, String type, int colonne, int index, String contenu) {
Applette applette = null;
if (type.equals("statistique")) {
if (type.equals("statistique")) {
applette = new AppletteStatistique(mediateur, contenu);
}
if (reduite) {
applette.collapse();
}
portail.insert(applette, index, colonne);
applette.setEpingler(epingle);
portail.insert(applette, index, colonne);
applette.setEpingler(epingle);
layout();
}
public void rafraichir(Object nouvellesDonnees) {
public void rafraichir(Object nouvellesDonnees) {
if (nouvellesDonnees instanceof Information) {
Information info = (Information) nouvellesDonnees;
String type = info.getType();
233,10 → 234,10
if (type.equals("maj_utilisateur")) {
if (enregistrementEnCours == true) {
enregistrementEnCours = false;
Info.display(i18nC.accueilEnregistrement(), i18nC.accueilEnregistrementSucces());
InfoLogger.display(i18nC.accueilEnregistrement(), i18nC.accueilEnregistrementSucces());
} else {
chargerParametres();
Info.display(i18nC.accueil(), i18nC.accueilChargementSucces());
InfoLogger.display(i18nC.accueil(), i18nC.accueilChargementSucces());
}
}
} else {
/trunk/src/org/tela_botanica/client/vues/personne/PersonneFormPublication.java
7,6 → 7,7
 
import org.tela_botanica.client.ComposantClass;
import org.tela_botanica.client.Mediateur;
import org.tela_botanica.client.composants.InfoLogger;
import org.tela_botanica.client.images.Images;
import org.tela_botanica.client.interfaces.Rafraichissable;
import org.tela_botanica.client.modeles.Information;
81,6 → 82,9
private FenetreForm fenetreFormulaire = null;
public PersonneFormPublication(Formulaire formulaireCourrant) {
Debug.log("|> PersonneFormPublication : [constructeur]");
 
initialiserOnglet(formulaireCourrant);
setId("publication");
setText(Mediateur.i18nC.collectionPublication());
97,6 → 101,9
}
private void initialiser() {
Debug.log("|> PersonneFormPublication.initialiser()");
 
// Remise à zéro des modification dans la liste des auteurs
idGenere = 1;
publicationsAjoutees = new PublicationAPersonneListe();
107,10 → 114,35
}
public void mettreAJourPersonne() {
Debug.log("|> *** BEGIN PersonneFormPublication.mettreAJourPersonne()");
personneSelectionnee = ((PersonneForm) formulaire).personneSelectionnee;
Debug.log("|--> PersonneFormPublication.mettreAJourPersonne : personneSelectionnee="+personneSelectionnee.toString());
if (personneSelectionnee==null) Debug.log("|> *** (personneSelectionnee==null)");
else Debug.log("|> *** (personneSelectionnee!=null)");
 
//Boucle sur les role pour trouver les publication à personne
if ((roles != null) && (personneSelectionnee!=null)) {
 
// FIXME !
//-------------------
// Author : Cyprien
//-------------------
// J'ai rajouté le test (toString()!="") parce que bien que l'objet personneSelectionne soit vide, (personneSelectionnee!=null) retournait
// tout de meme VRAI
// Mais le vrai problème, c'est que personneSelectionne puisse être nul ! personneSelectionne devrait toujours etre affecté à quelqu'un.
// De plus, il y a un étrange comportement lorsque l'on clique sur "modifier" une personne : je ne sais pas pourquoi mais les opérations
// s'effectuent deux fois au lieu d'une, c-a-d que le formulaire lance deux fois l'operation rafraichir au lieu d'une ... et l'opération
// rafraichir lance à son tour de nombreuses opérations qui en conséquence sont effectuées deux fois au lieu d'une
if ((roles != null) && (personneSelectionnee!=null) && (!personneSelectionnee.toString().equals(""))) {
 
mediateur.selectionnerPublicationAPersonne(this, null, personneSelectionnee.getId(), roles);
Debug.log("|--> PersonneFormPublication.mettreAJourPersonne : selectionnerPublicationAPersonne(this, null, personneSelectionnee.getId(), roles)");
Debug.log("| avec personneSelectionnee.getId()="+personneSelectionnee.getId());
Debug.log("|> END PersonneFormPublication.mettreAJourPersonne()");
}
}
176,7 → 208,7
PublicationAPersonne publicationSaisieSelectionnee = grille.getSelectionModel().getSelectedItem();
if (publicationSaisieSelectionnee == null) {
Info.display(i18nC.informationTitreGenerique(), i18nC.selectionnerPublication());
InfoLogger.display(i18nC.informationTitreGenerique(), i18nC.selectionnerPublication());
} else {
fenetreFormulaire = creerFenetreModaleAvecFormulairePersonne(Formulaire.MODE_MODIFIER);
fenetreFormulaire.show();
247,7 → 279,7
public void componentSelected(ButtonEvent ce) {
PublicationAPersonne publicationSaisieSelectionnee = grille.getSelectionModel().getSelectedItem();
if (publicationSaisieSelectionnee == null) {
Info.display(i18nC.informationTitreGenerique(), i18nC.selectionnerPublication());
InfoLogger.display(i18nC.informationTitreGenerique(), i18nC.selectionnerPublication());
} else {
supprimerDansGrille(publicationSaisieSelectionnee);
}
269,6 → 301,9
}
private void actualiserGrille() {
Debug.log("|> PersonneFormPublication.actualiserGrille()");
 
if (mode.equals(Formulaire.MODE_MODIFIER)) {
mediateur.selectionnerPublicationAPersonne(this, null, personneSelectionnee.getId(), "%");
} else {
314,8 → 349,9
}
private void ajouterDansGrille(Publication publication, int index) {
Debug.log("|> PersonneFormPublication.ajouterDansGrille(Publication publication, int index)");
if (publication != null) {
Debug.log("|--> publication != null");
if (!listePublicationsLiees.containsKey(publication.getId())) {
PublicationAPersonne publicationLiee = new PublicationAPersonne();
publicationLiee.setPersonne(personneSelectionnee);
323,6 → 359,9
publicationLiee.setIdPublication(publication.getId());
publicationLiee.set("_etat_", aDonnee.ETAT_AJOUTE);
listePublicationsLiees.put(publication.getId(), publicationLiee);
Debug.log("|--> personneSelectionneeID="+personneSelectionnee.getId());
Debug.log("|--> publicationID="+publication.getId());
 
// Ajout à la grille
grille.stopEditing();
330,7 → 369,7
grille.startEditing(index, 0);
grille.getSelectionModel().select(index, false);
} else {
Info.display("Information", "La publication choisie existe déjà dans la liste.");
InfoLogger.display("Information", "La publication choisie existe déjà dans la liste.");
}
}
}
339,6 → 378,9
* Met à jour la grille avec les informations contenus dans la variable listePublicationsLiees
*/
private void mettreAJourGrille() {
Debug.log("|> PersonneFormPublication.mettreAJourGrille()");
 
grille.getStore().removeAll();
grille.getStore().add(listePublicationsLiees.toList());
}
361,6 → 403,9
}
 
private EditorGrid<PublicationAPersonne> creerGrille() {
Debug.log("|> PersonneFormPublication.creerGrille()");
ListStore<PublicationAPersonne> storeGrille = new ListStore<PublicationAPersonne>();
storeGrille.addListener(Store.Add, new Listener<StoreEvent<PublicationAPersonne>>() {
public void handleEvent(StoreEvent<PublicationAPersonne> ce) {
404,7 → 449,6
public Object preProcessValue(Object valeur) {
Valeur retour = null;
if (valeur != null ) {
Debug.log(valeur.toString());
if (typeRelationCombo.getStore().findModel("nom", valeur.toString()) != null) {
retour = typeRelationCombo.getStore().findModel("nom", valeur.toString());
} else if (typeRelationCombo.getStore().findModel("abr", valeur.toString()) != null) {
522,10 → 566,16
}
public void rafraichir(Object nouvellesDonnees) {
Debug.log("|> PersonneFormPublication.rafraichir() BEGIN");
 
if (nouvellesDonnees instanceof Information) {
Information info = (Information) nouvellesDonnees;
rafraichirInformation(info);
} else if (nouvellesDonnees instanceof ValeurListe) {
Debug.log("|--> instanceof ValeurListe");
ValeurListe listeValeurs = (ValeurListe) nouvellesDonnees;
if (listeValeurs.getId().equals(config.getListeId("relationPersonnePublication"))) {
Formulaire.rafraichirComboBox(listeValeurs, typeRelationCombo);
533,26 → 583,45
mettreAJourPersonne();
}
} else if (nouvellesDonnees instanceof PublicationListe) {
Debug.log("|--> instanceof PublicationListe");
 
PublicationListe listePublications = (PublicationListe) nouvellesDonnees;
rafraichirPublicationListe(listePublications);
} else if (nouvellesDonnees instanceof PublicationAPersonneListe) {
Debug.log("|--> instanceof PublicationAPersonneListe");
PublicationAPersonneListe papl = (PublicationAPersonneListe) nouvellesDonnees;
List<PublicationAPersonne> paplListe = papl.toList();
if (paplListe.size()>0){
Debug.log("|--> paplListe.size()>0");
Debug.log("|--> paplListe="+paplListe.toString());
Iterator<PublicationAPersonne> it = paplListe.iterator();
while (it.hasNext()) {
PublicationAPersonne pap = it.next();
Debug.log("|--> listePublicationsLiees.size="+listePublicationsLiees.size());
 
listePublicationsLiees.put(pap.getPublicationLiee().getId(), pap);
}
mettreAJourGrille();
}
else {
Debug.log("|--> paplListe.size()<=0");
}
} else {
GWT.log(Mediateur.i18nM.erreurRafraichir(nouvellesDonnees.getClass(), this.getClass()), null);
}
Debug.log("|> PersonneFormPublication.rafraichir() END");
}
private void rafraichirPublicationListe(PublicationListe listePublications) {
Debug.log("|> PersonneFormPublication.rafraichirPublicationListe(PublicationListe listePublications)");
 
publicationsSaisiesComboBox.getStore().removeAll();
publicationsSaisiesComboBox.getStore().add(listePublications.toList());
publicationsSaisiesComboBox.expand();
559,6 → 628,9
}
public void rafraichirInformation(Information info) {
Debug.log("|> PersonneFormPublication.rafraichirInformation(Information info) BEGIN");
 
if (info.getMessages() != null && !info.getMessages().toString().equals("[]")) {
GWT.log("MESSAGES:\n"+info.getMessages().toString(), null);
}
583,9 → 655,9
ajouterDansGrille(publication);
}
} else if (type.equals("suppression_collection_a_publication")) {
Info.display("Suppression des publications liées à la collection", info.toString());
InfoLogger.display("Suppression des publications liées à la collection", info.toString());
} else if (type.equals("ajout_collection_a_publication")) {
Info.display("Ajout des publications liées à la collection", info.toString());
InfoLogger.display("Ajout des publications liées à la collection", info.toString());
} else {
GWT.log(Mediateur.i18nM.erreurRafraichir(info.getClass(), this.getClass()), null);
}
595,11 → 667,14
grille.getStore().removeAll();
grille.getStore().add(personneSelectionnee.getPublicationsLiees().toList());
layout();
Info.display(i18nC.chargementPublication(), i18nC.ok());
InfoLogger.display(i18nC.chargementPublication(), i18nC.ok());
}
 
public void collecter() {
Debug.log("|*** PersonneFormPublication.collecter() BEGIN");
if (etreAccede()) {
int nbrePublication = grille.getStore().getCount();
for (int i = 0; i < nbrePublication; i++) {
608,14 → 683,16
if (publicationLiee.get("_etat_").equals(aDonnee.ETAT_MODIFIE)) {
// Comme il est impossible de modifier les relations nous supprimons l'ancien enregistrement et ajoutons un nouveau avec le nouveau id_role
publicationsSupprimees.put("id"+idGenere++, publicationLiee);
Debug.log("|--> PersonneFormPublication.collecter(), ETAT_MODIFIE, relationAAjouter, clonage de publicationLiee");
PublicationAPersonne relationAAjouter = (PublicationAPersonne) publicationLiee.cloner(new PublicationAPersonne());
publicationsAjoutees.put("id"+idGenere++, relationAAjouter);
Debug.log(publicationLiee.toString());
Debug.log("|--> ETAT_MODIFE, PublicationLiee = "+publicationLiee.toString());
}
if (publicationLiee.get("_etat_").equals(aDonnee.ETAT_AJOUTE)) {
publicationsAjoutees.put("id"+idGenere++, publicationLiee);
Debug.log(publicationLiee.toString());
Debug.log("|--> ETAT_AJOUTE, PublicationLiee = "+publicationLiee.toString());
}
// Initialisation de la grille
publicationLiee.set("_etat_", "");
624,9 → 701,13
}
grille.getStore().commitChanges();
}
Debug.log("|*** PersonneFormPublication.collecter() END");
}
public List verifier() {
 
Debug.log("|> PersonneFormPublication.verifier()");
List lstMessageErreur = new LinkedList<String>();
//Vérifier les roles
642,21 → 723,30
}
public void soumettre() {
Debug.log("<8-8> BEGIN PersonneFormPublication.soumettre()");
if (mode.equals(Formulaire.MODE_MODIFIER)) {
if (publicationsAjoutees.size() == 0 && publicationsSupprimees.size() == 0) {
Info.display("Modification des publications liées", "Rien n'a été enregistré car le formulaire n'a pas été modifié.");
InfoLogger.display("Modification des publications liées", "Rien n'a été enregistré car le formulaire n'a pas été modifié.");
} else {
// Ajout des relations CollectionAPublication
// Ajout des relations PublicationAPersonne
if (publicationsAjoutees.size() != 0) {
//TODO : utiliser le role d'une liste déroulante
Debug.log("<8-8> PersonneFormPublication - Appel à mediateur.ajouterPublicationAPersonne()");
mediateur.ajouterPublicationAPersonne(this, publicationsAjoutees, personneSelectionnee.getId(), null);
}
// Suppression des relations CollectionAPublication
// Suppression des relations PublicationAPersonne
if (publicationsSupprimees.size() != 0) {
Debug.log("<8-8> PersonneFormPublication - Appel à mediateur.supprimerPublicationAPersonne()");
mediateur.supprimerPublicationAPersonne(this, publicationsSupprimees);
}
}
}
Debug.log("<8-8> END PersonneFormPublication.soumettre()");
}
private void obtenirPublicationsSaisies(String nom) {