/trunk/src/org/tela_botanica/client/Modele.java |
---|
88,16 → 88,17 |
// GESTION DES STRUCTURES |
//+----------------------------------------------------------------------------------------------------------------+ |
public void obtenirListeStructures(Rafraichissable r, String utilisateurId) { |
public void obtenirListeStructures(Rafraichissable r, String utilisateurId, String projetId) { |
StructureAsyncDao sDao = new StructureAsyncDao(); |
sDao.selectionner(r, utilisateurId, ""); |
sDao.selectionner(r, utilisateurId, projetId,""); |
} |
public void selectionnerStructure(Rafraichissable r, String idUtilisateur, String idStr, String idRole) { |
public void selectionnerStructure(Rafraichissable r, String idUtilisateur, String projetId, String idStr, String idRole) { |
// Gestion des données des tables coel_structure, coel_structure_conservation et coel_structure_valorisation |
StructureAsyncDao sDao = new StructureAsyncDao(); |
sDao.selectionner(r, idUtilisateur, idStr); |
sDao.selectionner(r, idUtilisateur, projetId, idStr); |
// Gestion des données de la table coel_structure_a_personne |
// TODO : créer une méthode séparée pour les données structure_a_personne |
if (idStr != null && idRole != null) { |
StructureAPersonneAsyncDao sapDao = new StructureAPersonneAsyncDao(); |
sapDao.selectionner(r, idUtilisateur, idStr, idRole); |
104,11 → 105,11 |
} |
} |
public void selectionnerStructures(String idUtilisateur) { |
public void selectionnerStructures(String idUtilisateur, String projetId) { |
Rafraichissable r = this; |
String idStr = null; |
String idRole = null; |
selectionnerStructure(r, idUtilisateur, idStr, idRole); |
selectionnerStructure(r, idUtilisateur, projetId, idStr, idRole); |
} |
/** Lance la creation d'une Structure |
/trunk/src/org/tela_botanica/client/modeles/StructureAPersonneAsyncDao.java |
---|
22,9 → 22,9 |
public void selectionner(final Rafraichissable r, String idUtilisateur, final String idStructure, final String idRole) { |
// Ajout des paramètres et données à selectionner dans l'URL |
final String url = ((Configuration) Registry.get(RegistreId.CONFIG)).getServiceBaseUrl() + |
SERVICE_NOM + |
(idStructure == null ? "" : "/"+idStructure) + |
(idRole == null ? "" : "/"+idRole) + |
SERVICE_NOM + "/" + |
(idStructure == null ? "*" : idStructure) + "/" + |
(idRole == null ? "*" : idRole) + "/" + |
""; |
RequestBuilder rb = new RequestBuilder(RequestBuilder.GET, url); |
174,9 → 174,6 |
RequestBuilder rb = new RequestBuilder(RequestBuilder.POST, url); |
String postDonnees = "cmhl_ce_modifier_par=" + utilisateurId + |
"&csap_id_structure=" + URL.encodeComponent(personnel.getIdStructure()) + |
"&csap_id_personne=" + URL.encodeComponent(personnel.getIdPersonne()) + |
"&csap_id_role=" + URL.encodeComponent(personnel.getIdRole()) + |
"&csap_ce_truk_fonction=" + URL.encodeComponent(personnel.getFonction()) + |
"&csap_service=" + URL.encodeComponent(personnel.getService()) + |
"&csap_ce_truk_statut=" + URL.encodeComponent(personnel.getStatut()) + |
/trunk/src/org/tela_botanica/client/modeles/aDonnee.java |
---|
101,6 → 101,21 |
} |
} |
/** |
* Permet de récupérer pour l'affichage une chaine dénormalisée unique (champ de type "ce_truk"). |
* |
* @param champ le nom du champ dénormalisé |
*/ |
protected String getChaineDenormaliseUnique(String champ) { |
String sortie = renvoyerValeurCorrecte(champ); |
if (!sortie.equals("")) { |
sortie = sortie.replaceFirst("^AUTRE##", ""); |
} |
return sortie; |
} |
protected String getInfoDenormaliseParType(String chaineExistante, String type) { |
String sortie = ""; |
if (!chaineExistante.equals("")) { |
/trunk/src/org/tela_botanica/client/modeles/StructureAsyncDao.java |
---|
19,10 → 19,11 |
public class StructureAsyncDao { |
public void selectionner(final Rafraichissable r, String idUtilisateur, final String idStr) { |
public void selectionner(final Rafraichissable r, String idUtilisateur, final String projetId, final String idStr) { |
// Ajout des paramètres et données à selectionner dans l'URL |
final String url = ((Configuration) Registry.get(RegistreId.CONFIG)).getServiceBaseUrl() + |
"CoelStructureListe/" + |
(projetId == null ? "*" : projetId) + "/" + |
(idStr == null ? "" : idStr) + |
""; |
/trunk/src/org/tela_botanica/client/modeles/Personne.java |
---|
8,6 → 8,8 |
public class Personne extends aDonnee { |
public static final String PREFIXE = "cp"; |
public static final String TELEPHONE_FIXE = "FIX"; |
public static final String TELEPHONE_GSM = "GSM"; |
/** |
* Constructeur vide |
69,9 → 71,12 |
public void setTelephone(String t) { |
this.set("truk_telephone", t); |
} |
public void addTelephone(String type, Object valeur) { |
public void ajouterTelephone(String type, Object valeur) { |
ajouterChaineDenormaliseAvecType("truk_telephone", type, valeur); |
} |
public String selectionnerTelephone(String type) { |
return getInfoDenormaliseParType(renvoyerValeurCorrecte("truk_telephone"), type); |
} |
// FAX |
public String getFax() { |
80,9 → 85,12 |
public void setFax(String f) { |
this.set("truk_fax", f); |
} |
public void addFax(Object valeur) { |
public void ajouterFax(Object valeur) { |
ajouterChaineDenormalise("truk_fax", valeur); |
} |
public String selectionnerFax(int position) { |
return getInfoDenormaliseParPosition(renvoyerValeurCorrecte("truk_fax"), position); |
} |
// COURRIEL |
public String getCourriel() { |
91,9 → 99,12 |
public void setCourriel(String c) { |
this.set("truk_courriel", c); |
} |
public void addCourriel(String c) { |
public void ajouterCourriel(String c) { |
ajouterChaineDenormalise("truk_courriel", c); |
} |
public String selectionnerCourriel(int position) { |
return getInfoDenormaliseParPosition(renvoyerValeurCorrecte("truk_courriel"), position); |
} |
// SPÉCIALITÉ |
public String getSpecialite() { |
103,6 → 114,9 |
// Pas de liste pour l'instant, donc tout passe dans "Autre". |
setChaineDenormaliseUnique("ce_truk_specialite", "AUTRE", s); |
} |
public String afficherSpecialite() { |
return getChaineDenormaliseUnique("ce_truk_specialite"); |
} |
public Object obtenirValeurChamp(String nomChamp) { |
return renvoyerValeurCorrecte(nomChamp); |
/trunk/src/org/tela_botanica/client/Mediateur.java |
---|
12,6 → 12,7 |
import org.tela_botanica.client.modeles.Menu; |
import org.tela_botanica.client.modeles.Personne; |
import org.tela_botanica.client.modeles.PersonneListe; |
import org.tela_botanica.client.modeles.Projet; |
import org.tela_botanica.client.modeles.ProjetsListe; |
import org.tela_botanica.client.modeles.Publication; |
import org.tela_botanica.client.modeles.PublicationListe; |
142,7 → 143,7 |
public void clicMenu(String menuNom) { |
panneauCentre.removeAll(); |
if (menuNom.equals("Institutions")) { |
((Modele) Registry.get(RegistreId.MODELE)).selectionnerStructures(getUtilisateurId()); |
((Modele) Registry.get(RegistreId.MODELE)).selectionnerStructures(getUtilisateurId(), getProjetId()); |
} else if (menuNom.equals("Publications")) { |
((Modele) Registry.get(RegistreId.MODELE)).obtenirListePublications(); |
} else if (menuNom.equals("Personnes")) { |
186,7 → 187,9 |
//+----------------------------------------------------------------------------------------------------------------+ |
// GESTION de l'UTILISATEUR et de l'IDENTIFICATION |
//+----------------------------------------------------------------------------------------------------------------+ |
/** |
* Retourne l'identifiant de l'utilisateur courrant de l'application. |
*/ |
public String getUtilisateurId() { |
return utilisateur.getId(); |
} |
249,6 → 252,29 |
modele.selectionnerPersonne(vue, null, projetId, nomComplet); |
} |
public void clicSupprimerPersonne(Rafraichissable vue,List<Personne> personneSelection) { |
String ids = "" ; |
if (personneSelection.size() == 0) { |
Info.display("Information", "Veuillez sélectionner une personne."); |
} else if(personneSelection.size() > 0) { |
String message = "Êtes vous sur de vouloir supprimer les personnes sélectionnées ?"; |
if (personneSelection.size() == 1) { |
message = "Êtes vous sur de vouloir supprimer la personne sélectionnée ?"; |
} |
if(Window.confirm(message)) { |
String idStr = "" ; |
for(int i = 0 ; i < personneSelection.size() ; i++) { |
idStr += personneSelection.get(i).getId()+"," ; |
} |
modele.supprimerPersonne(vue, getUtilisateurId(), idStr); |
} |
} else { |
Info.display("Erreur", "Une erreur est survenue dans la méthode clicSupprimerPersonne() du Médiateur."); |
} |
} |
//+----------------------------------------------------------------------------------------------------------------+ |
// GESTION DES VALEURS ET LISTES |
//+----------------------------------------------------------------------------------------------------------------+ |
288,6 → 314,60 |
panneauCentre.layout(); |
} |
public void clicModifierPublication(List<Publication> publicationListe) { |
if(publicationListe.size() <= 0) { |
Window.alert("Il faut selectionner une publication"); |
} |
else { |
Publication pubAModifier = publicationListe.get(publicationListe.size() -1); |
panneauCentre.removeAll(); |
FormPublicationVue formPublicationVue = new FormPublicationVue(); |
panneauCentre.add(formPublicationVue); |
panneauCentre.setId(ComposantId.PANNEAU_FORM_PUBLICATION); |
panneauCentre.layout(); |
formPublicationVue.rafraichir(pubAModifier); |
} |
} |
public void clicSupprimerPublication(List<Publication> publicationListe) { |
if(publicationListe.size() <= 0) { |
Window.alert("Il faut selectionner une publication"); |
} |
else { |
String message = "" ; |
if(publicationListe.size() == 1) { |
message = "Voulez-vous vraiment supprimer cette publication ?"; |
} |
else { |
message = "Voulez-vous vraiment supprimer ces publication ?"; |
} |
if(Window.confirm(message)) { |
modele.supprimerPublication(getUtilisateurId(),publicationListe); |
} |
} |
} |
public void ajouterPublication(FormPublicationVue formPublicationVue, |
Publication publi) { |
modele.ajouterPublication(getUtilisateurId(),publi); |
} |
public void modifierPublication(FormPublicationVue formPublicationVue, Publication publi) { |
modele.modifierPublication(getUtilisateurId(),publi); |
} |
public void clicObtenirListeEditeurs(Rafraichissable r) { |
modele.obtenirListeStructures(r,getUtilisateurId(), null); |
} |
public void clicObtenirListeAuteurs(Rafraichissable r) { |
modele.obtenirListePersonnes(r); |
} |
//+----------------------------------------------------------------------------------------------------------------+ |
// GESTION DES STRUCTURES |
//+----------------------------------------------------------------------------------------------------------------+ |
371,7 → 451,7 |
} |
public void selectionnerStructureAPersonne(Rafraichissable vue, String structureId, String roleId) { |
modele.selectionnerStructure(vue, getUtilisateurId(), structureId, roleId); |
modele.selectionnerStructure(vue, getUtilisateurId(), null, structureId, roleId); |
} |
public void modifierStructureAPersonne(Rafraichissable vue, StructureAPersonneListe personnelModifie) { |
401,11 → 481,17 |
} |
} |
//+----------------------------------------------------------------------------------------------------------------+ |
// GESTION des PROJETS |
//+----------------------------------------------------------------------------------------------------------------+ |
/** |
* Retourne l'identifiant du projet courrant de l'application. |
*/ |
public String getProjetId() { |
return Registry.get(RegistreId.PROJET); |
} |
//Greg : ajout d'un écouteur pour le changement liste projet |
public void rafraichirListeProjets() { |
((Modele) Registry.get(RegistreId.MODELE)).obtenirListeProjets(); |
422,86 → 508,7 |
//FIXME Le rafraichissement du panneau ne se fait pas! |
} |
} |
public void clicSupprimerPersonne(Rafraichissable vue,List<Personne> personneSelection) { |
String ids = "" ; |
if (personneSelection.size() == 0) { |
Info.display("Information", "Veuillez sélectionner une personne."); |
} else if(personneSelection.size() > 0) { |
String message = "Êtes vous sur de vouloir supprimer les personnes sélectionnées ?"; |
if (personneSelection.size() == 1) { |
message = "Êtes vous sur de vouloir supprimer la personne sélectionnée ?"; |
} |
if(Window.confirm(message)) { |
String idStr = "" ; |
for(int i = 0 ; i < personneSelection.size() ; i++) { |
idStr += personneSelection.get(i).getId()+"," ; |
} |
modele.supprimerPersonne(vue, getUtilisateurId(), idStr); |
} |
} else { |
Info.display("Erreur", "Une erreur est survenue dans la méthode clicSupprimerPersonne() du Médiateur."); |
} |
} |
public void clicModifierPublication(List<Publication> publicationListe) { |
if(publicationListe.size() <= 0) { |
Window.alert("Il faut selectionner une publication"); |
} |
else { |
Publication pubAModifier = publicationListe.get(publicationListe.size() -1); |
panneauCentre.removeAll(); |
FormPublicationVue formPublicationVue = new FormPublicationVue(); |
panneauCentre.add(formPublicationVue); |
panneauCentre.setId(ComposantId.PANNEAU_FORM_PUBLICATION); |
panneauCentre.layout(); |
formPublicationVue.rafraichir(pubAModifier); |
} |
} |
public void clicSupprimerPublication(List<Publication> publicationListe) { |
if(publicationListe.size() <= 0) { |
Window.alert("Il faut selectionner une publication"); |
} |
else { |
String message = "" ; |
if(publicationListe.size() == 1) { |
message = "Voulez-vous vraiment supprimer cette publication ?"; |
} |
else { |
message = "Voulez-vous vraiment supprimer ces publication ?"; |
} |
if(Window.confirm(message)) { |
modele.supprimerPublication(getUtilisateurId(),publicationListe); |
} |
} |
} |
public void ajouterPublication(FormPublicationVue formPublicationVue, |
Publication publi) { |
modele.ajouterPublication(getUtilisateurId(),publi); |
} |
public void modifierPublication(FormPublicationVue formPublicationVue, |
Publication publi) { |
modele.modifierPublication(getUtilisateurId(),publi); |
} |
public void clicObtenirListeEditeurs(Rafraichissable r) { |
modele.obtenirListeStructures(r,getUtilisateurId()); |
} |
public void clicObtenirListeAuteurs(Rafraichissable r) { |
modele.obtenirListePersonnes(r); |
} |
} |
/trunk/src/org/tela_botanica/client/vues/FormStructureVue.java |
---|
38,6 → 38,9 |
import com.extjs.gxt.ui.client.event.SelectionListener; |
import com.extjs.gxt.ui.client.event.ToolBarEvent; |
import com.extjs.gxt.ui.client.store.ListStore; |
import com.extjs.gxt.ui.client.store.Record; |
import com.extjs.gxt.ui.client.store.Store; |
import com.extjs.gxt.ui.client.store.StoreEvent; |
import com.extjs.gxt.ui.client.widget.Component; |
import com.extjs.gxt.ui.client.widget.ContentPanel; |
import com.extjs.gxt.ui.client.widget.Info; |
205,6 → 208,7 |
private ContentPanel materielConservationCp; |
private ListStore<Personne> personneExistanteMagazin; |
private ComboBox<Personne> personneExistanteCombo; |
private TextToolItem supprimerPersonnelBtn; |
public FormStructureVue() { |
925,6 → 929,12 |
// Seules les lignes ajoutées ou modifiées sont prises en compte. |
if (personnelGrilleMagazin.getModifiedRecords().contains(personnelGrilleMagazin.getRecord(personne)) == true) { |
// Gestion de l'id de la structure |
if (mode.equals("MODIF")) { |
personne.setIdStructure(identification.getId()); |
} |
// Gestion de la fonction |
String fonction = personne.get("fonction"); |
if (fonction != null && !fonction.equals("")) { |
983,11 → 993,13 |
} |
// Ajout de la personne dans la liste correspondant à son état (ajouté ou modifié) |
if (personne.getIdPersonne().equals("")) {// Une personne ajoutée |
if (personne.get("etat").equals("A")) {// Une personne ajoutée |
personnelAjoute.put(""+i, personne); |
} else {// Une personne modifiée |
personnelModifie.put(personne.getId(), personne); |
} |
} else { |
GWT.log("Personne non modifiées : "+personne.getPrenom()+" "+personne.getNom(), null); |
} |
} |
} |
1065,7 → 1077,17 |
personnes.add(new StructureAPersonne(Valeur.FONCTION_CONSERVATEUR, StructureAPersonne.ROLE_EQUIPE)); |
personnelGrilleMagazin = new ListStore<StructureAPersonne>(); |
personnelGrilleMagazin.add(personnes); |
personnelGrilleMagazin.add(personnes); |
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) { |
supprimerPersonnelBtn.enable(); |
} |
} |
}); |
RowNumberer r = new RowNumberer(); |
1231,16 → 1253,12 |
@Override |
public void componentSelected(ToolBarEvent ce) { |
StructureAPersonne personne = new StructureAPersonne("", StructureAPersonne.ROLE_EQUIPE); |
personne.set("etat", "A"); |
grillePersonnel.stopEditing(); |
int numNouveau = grillePersonnel.getData("nouveau"); |
grillePersonnel.setData("nouveau", ++numNouveau); |
personnelGrilleMagazin.insert(personne, 0); |
personnelGrilleMagazin.insert(personne, 0); |
grillePersonnel.startEditing(0, 0); |
// Activation du bouton supprimer si la grille contient un élément |
if (grillePersonnel.getStore().getCount() > 0) { |
ce.component.enable(); |
} |
} |
}); |
toolBar.add(ajouterPersonnelBtn); |
1247,7 → 1265,7 |
toolBar.add(new SeparatorToolItem()); |
TextToolItem supprimerPersonnelBtn = new TextToolItem("Supprimer", "icone-vcard-supprimer"); |
supprimerPersonnelBtn = new TextToolItem("Supprimer", "icone-vcard-supprimer"); |
supprimerPersonnelBtn.addSelectionListener(new SelectionListener<ToolBarEvent>() { |
@Override |
public void componentSelected(ToolBarEvent ce) { |
1286,7 → 1304,7 |
personneExistanteMagazin = new ListStore<Personne>(); |
personneExistanteMagazin.add(new ArrayList<Personne>()); |
personneExistanteCombo = new ComboBox<Personne>(); |
personneExistanteCombo = new ComboBox<Personne>(); |
personneExistanteCombo.setWidth(200); |
personneExistanteCombo.setEmptyText("Chercher une personne existante..."); |
personneExistanteCombo.setTriggerAction(TriggerAction.ALL); |
1314,19 → 1332,29 |
StructureAPersonne personne = new StructureAPersonne("", StructureAPersonne.ROLE_EQUIPE); |
personne.setIdPersonne(personneExistante.getId()); |
personne.setPrenom(personneExistante.getPrenom()); |
personne.setNom(personneExistante.getNom()); |
grillePersonnel.stopEditing(); |
// Ajout au magazin de la grille |
int numNouveau = grillePersonnel.getData("nouveau"); |
grillePersonnel.setData("nouveau", ++numNouveau); |
personnelGrilleMagazin.insert(personne, 0); |
personnelGrilleMagazin.insert(personne, 0); |
// Nous modifions l'enregistrement pour que le modèle soit pris en compte lors de la collecte. |
Record record = personnelGrilleMagazin.getRecord(personnelGrilleMagazin.getAt(0)); |
record.beginEdit(); |
record.set("nom", personneExistante.getNom()); |
record.set("prenom", personneExistante.getPrenom()); |
record.set("telephone", personneExistante.selectionnerTelephone(Personne.TELEPHONE_FIXE)); |
record.set("fax", personneExistante.selectionnerFax(1)); |
record.set("courriel", personneExistante.selectionnerCourriel(1)); |
record.set("specialite", personneExistante.afficherSpecialite()); |
record.set("etat", "A"); |
record.endEdit(); |
grillePersonnel.startEditing(0, 0); |
// Activation du bouton supprimer si la grille contient un élément |
if (grillePersonnel.getStore().getCount() > 0) { |
ce.component.enable(); |
} |
//GWT.log("Ajout : "+personnelGrilleMagazin.getModifiedRecords()., null); |
GWT.log("ici : "+personnelGrilleMagazin.getModifiedRecords().contains(record), null); |
} |
}); |
toolBar.add(ajouterPersonneExistanteBtn); |
2080,6 → 2108,6 |
} |
private void rafraichirPersonneExistante(String nom) { |
mediateur.selectionnerPersonneParNomComplet(this, null, nom); |
mediateur.selectionnerPersonneParNomComplet(this, null, nom+"%"); |
} |
} |