/trunk/src/org/tela_botanica/client/Mediateur.java |
---|
12,43 → 12,35 |
import org.tela_botanica.client.i18n.Constantes; |
import org.tela_botanica.client.i18n.ErrorMessages; |
import org.tela_botanica.client.interfaces.Rafraichissable; |
import org.tela_botanica.client.modeles.Collection; |
import org.tela_botanica.client.modeles.CollectionAPersonne; |
import org.tela_botanica.client.modeles.CollectionAPublication; |
import org.tela_botanica.client.modeles.CollectionAPublicationListe; |
import org.tela_botanica.client.modeles.CollectionListe; |
import org.tela_botanica.client.modeles.Information; |
import org.tela_botanica.client.modeles.MenuApplicationId; |
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.ProjetListe; |
import org.tela_botanica.client.modeles.Publication; |
import org.tela_botanica.client.modeles.PublicationAPersonne; |
import org.tela_botanica.client.modeles.PublicationAPersonneListe; |
import org.tela_botanica.client.modeles.PublicationListe; |
import org.tela_botanica.client.modeles.Structure; |
import org.tela_botanica.client.modeles.StructureAPersonne; |
import org.tela_botanica.client.modeles.CollectionAPersonneListe; |
import org.tela_botanica.client.modeles.StructureAPersonneListe; |
import org.tela_botanica.client.modeles.StructureConservation; |
import org.tela_botanica.client.modeles.StructureListe; |
import org.tela_botanica.client.modeles.StructureValorisation; |
import org.tela_botanica.client.modeles.Utilisateur; |
import org.tela_botanica.client.modeles.ValeurListe; |
import org.tela_botanica.client.modeles.collection.Collection; |
import org.tela_botanica.client.modeles.collection.CollectionAPersonne; |
import org.tela_botanica.client.modeles.collection.CollectionAPersonneListe; |
import org.tela_botanica.client.modeles.collection.CollectionAPublication; |
import org.tela_botanica.client.modeles.collection.CollectionAPublicationListe; |
import org.tela_botanica.client.modeles.collection.CollectionListe; |
import org.tela_botanica.client.modeles.personne.Personne; |
import org.tela_botanica.client.modeles.personne.PersonneListe; |
import org.tela_botanica.client.modeles.projet.Projet; |
import org.tela_botanica.client.modeles.projet.ProjetListe; |
import org.tela_botanica.client.modeles.publication.Publication; |
import org.tela_botanica.client.modeles.publication.PublicationAPersonne; |
import org.tela_botanica.client.modeles.publication.PublicationAPersonneListe; |
import org.tela_botanica.client.modeles.publication.PublicationListe; |
import org.tela_botanica.client.modeles.structure.Structure; |
import org.tela_botanica.client.modeles.structure.StructureAPersonne; |
import org.tela_botanica.client.modeles.structure.StructureAPersonneListe; |
import org.tela_botanica.client.modeles.structure.StructureConservation; |
import org.tela_botanica.client.modeles.structure.StructureListe; |
import org.tela_botanica.client.modeles.structure.StructureValorisation; |
import org.tela_botanica.client.util.Debug; |
import org.tela_botanica.client.vues.EnteteVue; |
import org.tela_botanica.client.vues.Formulaire; |
import org.tela_botanica.client.vues.PersonneForm; |
import org.tela_botanica.client.vues.ProjetForm; |
import org.tela_botanica.client.vues.ProjetVue; |
import org.tela_botanica.client.vues.PublicationForm; |
import org.tela_botanica.client.vues.StructureForm; |
import org.tela_botanica.client.vues.PersonneVue; |
import org.tela_botanica.client.vues.PopupChargement; |
import org.tela_botanica.client.vues.PublicationVue; |
import org.tela_botanica.client.vues.StatutVue; |
import org.tela_botanica.client.vues.StructureVue; |
import org.tela_botanica.client.vues.MenuVue; |
import org.tela_botanica.client.vues.accueil.AccueilVue; |
import org.tela_botanica.client.vues.collection.CollectionForm; |
55,6 → 47,14 |
import org.tela_botanica.client.vues.collection.CollectionListeVue; |
import org.tela_botanica.client.vues.collection.CollectionVue; |
import org.tela_botanica.client.vues.collection.ContenuVue; |
import org.tela_botanica.client.vues.personne.PersonneForm; |
import org.tela_botanica.client.vues.personne.PersonneVue; |
import org.tela_botanica.client.vues.projet.ProjetForm; |
import org.tela_botanica.client.vues.projet.ProjetVue; |
import org.tela_botanica.client.vues.publication.PublicationForm; |
import org.tela_botanica.client.vues.publication.PublicationVue; |
import org.tela_botanica.client.vues.structure.StructureForm; |
import org.tela_botanica.client.vues.structure.StructureVue; |
import com.extjs.gxt.ui.client.Registry; |
import com.extjs.gxt.ui.client.Style.LayoutRegion; |
/trunk/src/org/tela_botanica/client/vues/StructureDetailVue.java |
---|
File deleted |
\ No newline at end of file |
/trunk/src/org/tela_botanica/client/vues/ProjetDetailVue.java |
---|
File deleted |
\ No newline at end of file |
/trunk/src/org/tela_botanica/client/vues/PersonneVue.java |
---|
File deleted |
\ No newline at end of file |
/trunk/src/org/tela_botanica/client/vues/PersonneListeVue.java |
---|
File deleted |
/trunk/src/org/tela_botanica/client/vues/PublicationDetailVue.java |
---|
File deleted |
\ No newline at end of file |
/trunk/src/org/tela_botanica/client/vues/PersonneForm.java |
---|
File deleted |
/trunk/src/org/tela_botanica/client/vues/StructureVue.java |
---|
File deleted |
/trunk/src/org/tela_botanica/client/vues/StructureListeVue.java |
---|
File deleted |
/trunk/src/org/tela_botanica/client/vues/ProjetVue.java |
---|
File deleted |
/trunk/src/org/tela_botanica/client/vues/ProjetListeVue.java |
---|
File deleted |
/trunk/src/org/tela_botanica/client/vues/StructureForm.java |
---|
File deleted |
\ No newline at end of file |
/trunk/src/org/tela_botanica/client/vues/ProjetForm.java |
---|
File deleted |
\ No newline at end of file |
/trunk/src/org/tela_botanica/client/vues/PublicationVue.java |
---|
File deleted |
/trunk/src/org/tela_botanica/client/vues/PublicationListeVue.java |
---|
File deleted |
/trunk/src/org/tela_botanica/client/vues/PersonneDetailVue.java |
---|
File deleted |
\ No newline at end of file |
/trunk/src/org/tela_botanica/client/vues/PublicationForm.java |
---|
File deleted |
\ No newline at end of file |
/trunk/src/org/tela_botanica/client/vues/personne/PersonneVue.java |
---|
New file |
0,0 → 1,65 |
package org.tela_botanica.client.vues.personne; |
import org.tela_botanica.client.Mediateur; |
import org.tela_botanica.client.RegistreId; |
import org.tela_botanica.client.interfaces.Rafraichissable; |
import org.tela_botanica.client.modeles.Information; |
import org.tela_botanica.client.modeles.personne.Personne; |
import org.tela_botanica.client.modeles.personne.PersonneListe; |
import org.tela_botanica.client.util.Debug; |
import com.extjs.gxt.ui.client.Registry; |
import com.extjs.gxt.ui.client.Style.LayoutRegion; |
import com.extjs.gxt.ui.client.util.Margins; |
import com.extjs.gxt.ui.client.widget.Info; |
import com.extjs.gxt.ui.client.widget.LayoutContainer; |
import com.extjs.gxt.ui.client.widget.layout.BorderLayout; |
import com.extjs.gxt.ui.client.widget.layout.BorderLayoutData; |
import com.google.gwt.core.client.GWT; |
public class PersonneVue extends LayoutContainer implements Rafraichissable { |
private PersonneListeVue panneauPersonneListe; |
private PersonneDetailVue panneauPersonneDetail; |
private Mediateur mediateur = null; |
public PersonneVue(Mediateur mediateur) { |
this.mediateur = mediateur; |
BorderLayout layout = new BorderLayout(); |
layout.setEnableState(false); |
setLayout(layout); |
panneauPersonneListe = new PersonneListeVue(); |
this.add(panneauPersonneListe, new BorderLayoutData(LayoutRegion.CENTER)); |
panneauPersonneDetail = new PersonneDetailVue(mediateur); |
BorderLayoutData southData = new BorderLayoutData(LayoutRegion.SOUTH, .5f, 200, 1000); |
southData.setSplit(true); |
southData.setMargins(new Margins(5, 0, 0, 0)); |
this.add(panneauPersonneDetail, southData); |
} |
public void rafraichir(Object nouvellesDonnees) { |
if (nouvellesDonnees instanceof Personne) { |
panneauPersonneDetail.rafraichir((Personne) nouvellesDonnees); |
} else if (nouvellesDonnees instanceof PersonneListe) { |
panneauPersonneListe.rafraichir((PersonneListe) nouvellesDonnees); |
} else if (nouvellesDonnees instanceof Information) { |
Information info = (Information) nouvellesDonnees; |
// Affichage des éventuels messages de déboguage ou d'alerte |
if (info.getMessages() != null && !info.getMessages().toString().equals("[]")) { |
GWT.log(info.getMessages().toString(), null); |
} |
// Traitement en fonction des types d'information |
if (info.getType().equals("liste_personne")) { |
panneauPersonneListe.rafraichir((PersonneListe) info.getDonnee(0)); |
Info.display("Chargement d'une liste de personnes", ""); |
} else { |
panneauPersonneListe.rafraichir(info); |
} |
} else { |
GWT.log(mediateur.i18nM.erreurRafraichir(nouvellesDonnees.getClass(), this.getClass()), null); |
} |
} |
} |
/trunk/src/org/tela_botanica/client/vues/personne/PersonneListeVue.java |
---|
New file |
0,0 → 1,204 |
package org.tela_botanica.client.vues.personne; |
import java.util.ArrayList; |
import java.util.List; |
import org.tela_botanica.client.Mediateur; |
import org.tela_botanica.client.RegistreId; |
import org.tela_botanica.client.images.Images; |
import org.tela_botanica.client.interfaces.Rafraichissable; |
import org.tela_botanica.client.modeles.Information; |
import org.tela_botanica.client.modeles.Utilisateur; |
import org.tela_botanica.client.modeles.personne.Personne; |
import org.tela_botanica.client.modeles.personne.PersonneListe; |
import org.tela_botanica.client.vues.BarrePaginationVue; |
import com.extjs.gxt.ui.client.Registry; |
import com.extjs.gxt.ui.client.Style.SortDir; |
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.ContentPanel; |
import com.extjs.gxt.ui.client.widget.Info; |
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.Grid; |
import com.extjs.gxt.ui.client.widget.grid.GridSelectionModel; |
import com.extjs.gxt.ui.client.widget.layout.FitLayout; |
import com.extjs.gxt.ui.client.widget.toolbar.ToolBar; |
import com.google.gwt.core.client.GWT; |
public class PersonneListeVue extends ContentPanel implements Rafraichissable { |
private Mediateur mediateur = null ; |
private Grid<Personne> grille = null; |
private ListStore<Personne> store = null; |
private BarrePaginationVue pagination = null; |
private ColumnModel modeleColonnes = null; |
private Button ajouter = null; |
private Button modifier = null; |
private Button supprimer = null; |
public PersonneListeVue() { |
mediateur = Registry.get(RegistreId.MEDIATEUR); |
setHeading(Mediateur.i18nC.personneListeLabel()); |
setLayout(new FitLayout()); |
//Définition de la barre d'outil |
ToolBar toolBar = new ToolBar(); |
ajouter = new Button(Mediateur.i18nC.ajouter()); |
ajouter.setIcon(Images.ICONES.ajouter()); |
ajouter.addSelectionListener(new SelectionListener<ButtonEvent>() { |
public void componentSelected(ButtonEvent ce) { |
mediateur.clicAjouterPersonne(); |
} |
}); |
toolBar.add(ajouter); |
modifier = new Button(Mediateur.i18nC.modifier()); |
modifier.setIcon(Images.ICONES.formModifier()); |
modifier.addSelectionListener(new SelectionListener<ButtonEvent>() { |
public void componentSelected(ButtonEvent ce) { |
mediateur.clicModifierPersonne(grille.getSelectionModel().getSelectedItems()); |
} |
}); |
toolBar.add(modifier); |
supprimer = new Button(Mediateur.i18nC.supprimer()); |
supprimer.setIcon(Images.ICONES.supprimer()); |
supprimer.addSelectionListener(new SelectionListener<ButtonEvent>() { |
public void componentSelected(ButtonEvent ce) { |
clicSupprimerPersonne(grille.getSelectionModel().getSelectedItems()); |
} |
}); |
toolBar.add(supprimer); |
setTopComponent(toolBar); |
// Définition des colomnes de la grille: |
List<ColumnConfig> lstColumns = new ArrayList<ColumnConfig>(); |
lstColumns.add(new ColumnConfig("id_personne", "Id", 45)); |
lstColumns.add(new ColumnConfig("nom", "Nom", 100)); |
lstColumns.add(new ColumnConfig("prenom", "Prénom", 100)); |
lstColumns.add(new ColumnConfig("fmt_nom_complet", "Nom Complet", 200)); |
lstColumns.add(new ColumnConfig("code_postal", "Code postal", 100)); |
lstColumns.add(new ColumnConfig("ville", "Ville", 100)); |
lstColumns.add(new ColumnConfig("courriel_princ", "Courriel", 200)); |
lstColumns.get(0).setHidden(true); |
lstColumns.get(1).setHidden(true); |
lstColumns.get(2).setHidden(true); |
modeleColonnes = new ColumnModel(lstColumns); |
// Définition de la grille |
GridSelectionModel<Personne> gsmSelectionGrille = new GridSelectionModel<Personne>(); |
gsmSelectionGrille.addSelectionChangedListener(new SelectionChangedListener<Personne>() { |
public void selectionChanged(SelectionChangedEvent<Personne> event) { |
Personne personneSelectionnee = (Personne) event.getSelectedItem(); |
clicListe(personneSelectionnee); |
} |
}); |
store = new ListStore<Personne>(); |
store.sort("fmt_nom_complet", SortDir.ASC); |
grille = new Grid<Personne>(store, modeleColonnes); |
grille.setSelectionModel(gsmSelectionGrille); |
grille.setWidth("100%"); |
grille.setAutoExpandColumn("fmt_nom_complet"); |
grille.getView().setAutoFill(true); |
grille.getView().setForceFit(true); |
grille.addListener(Events.ViewReady, new Listener<BaseEvent>() { |
@Override |
public void handleEvent(BaseEvent be) { |
grille.getStore().sort("fmt_nom_complet", SortDir.ASC); |
grille.getSelectionModel().select(0, false); |
} |
}); |
grille.addListener(Events.OnDoubleClick, new Listener<BaseEvent>(){ |
@Override |
public void handleEvent(BaseEvent be) { |
modifier.fireEvent(Events.Select); |
} |
}); |
add(grille); |
// Définition de la barre de pagination |
pagination = new BarrePaginationVue(new PersonneListe(), mediateur); |
setBottomComponent(pagination); |
} |
private void clicListe(Personne personne) { |
if (personne != null && store.getCount() > 0) { |
mediateur.clicListePersonne(personne); |
} |
} |
private void clicSupprimerPersonne(List<Personne> personnesASupprimer) { |
if (store.getCount() > 0) { |
mediateur.clicSupprimerPersonne(this, personnesASupprimer); |
} |
} |
private void gererEtatActivationBouton() { |
int nbreElementDuMagazin = store.getCount(); |
ajouter.enable(); |
if (nbreElementDuMagazin == 0) { |
supprimer.disable(); |
modifier.disable(); |
} else if (nbreElementDuMagazin > 0) { |
modifier.enable(); |
if (((Utilisateur) Registry.get(RegistreId.UTILISATEUR_COURANT)).isIdentifie()) { |
supprimer.enable(); |
} |
} |
} |
public void rafraichir(Object nouvellesDonnees) { |
if (nouvellesDonnees instanceof PersonneListe) { |
PersonneListe listePersonnes = (PersonneListe) nouvellesDonnees; |
pagination.setlistePaginable(listePersonnes); |
pagination.rafraichir(listePersonnes.getPageTable()); |
if (listePersonnes != null) { |
List<Personne> liste = (List<Personne>) listePersonnes.toList(); |
store.removeAll(); |
store.add(liste); |
mediateur.actualiserPanneauCentral(); |
grille.fireEvent(Events.ViewReady); |
} |
} else if (nouvellesDonnees instanceof Information) { |
Information info = (Information) nouvellesDonnees; |
if (info.getType().equals("suppression_personne")) { |
Info.display("Suppression de personne", info.getMessages().toString()); |
pagination.getlistePaginable().recharger(); |
gererEtatActivationBouton(); |
} else if (info.getType().equals("maj_utilisateur")) { |
gererEtatActivationBouton(); |
} else { |
Info.display("Erreur", info.getMessages().toString()); |
} |
} else { |
GWT.log(Mediateur.i18nM.erreurRafraichir(nouvellesDonnees.getClass(), this.getClass()), null); |
} |
layout(); |
} |
} |
/trunk/src/org/tela_botanica/client/vues/personne/PersonneDetailVue.java |
---|
New file |
0,0 → 1,384 |
package org.tela_botanica.client.vues.personne; |
import java.util.Collection; |
import java.util.HashMap; |
import java.util.Iterator; |
import java.util.LinkedList; |
import java.util.MissingResourceException; |
import org.tela_botanica.client.ComposantId; |
import org.tela_botanica.client.Mediateur; |
import org.tela_botanica.client.RegistreId; |
import org.tela_botanica.client.configuration.Configuration; |
import org.tela_botanica.client.interfaces.Rafraichissable; |
import org.tela_botanica.client.modeles.Valeur; |
import org.tela_botanica.client.modeles.ValeurListe; |
import org.tela_botanica.client.modeles.personne.Personne; |
import org.tela_botanica.client.util.Debug; |
import org.tela_botanica.client.vues.collection.DetailVue; |
import com.extjs.gxt.ui.client.Registry; |
import com.extjs.gxt.ui.client.Style.Scroll; |
import com.extjs.gxt.ui.client.util.Format; |
import com.extjs.gxt.ui.client.util.Params; |
import com.extjs.gxt.ui.client.widget.ContentPanel; |
import com.extjs.gxt.ui.client.widget.Html; |
import com.extjs.gxt.ui.client.widget.TabItem; |
import com.extjs.gxt.ui.client.widget.TabPanel; |
import com.extjs.gxt.ui.client.widget.form.FieldSet; |
import com.extjs.gxt.ui.client.widget.form.LabelField; |
import com.extjs.gxt.ui.client.widget.layout.AnchorLayout; |
import com.extjs.gxt.ui.client.widget.layout.FitLayout; |
import com.extjs.gxt.ui.client.widget.layout.FlowLayout; |
import com.google.gwt.user.client.ui.Image; |
public class PersonneDetailVue extends DetailVue implements Rafraichissable { |
private TabPanel tabPanel; |
private Html entete; |
private TabItem tabIdentite; |
private TabItem tabAdresse; |
private TabItem tabInfosNat; |
private TabItem tabLogos; |
private HashMap hmLabelFieldRegion = new HashMap(); |
private Configuration config = (Configuration) Registry.get(RegistreId.CONFIG); |
private boolean ontologieRecue = false; |
private Personne personneAAfficher = null; |
private void chargerOntologie() { |
mediateur.obtenirListeValeurEtRafraichir(this, "pays"); |
} |
public PersonneDetailVue(Mediateur mediateur) { |
super(mediateur); |
chargerOntologie(); |
mediateur.obtenirListeValeurEtRafraichir(this, "pays"); |
setLayout(new FitLayout()); |
entete = new Html(); |
entete.setId(ComposantId.ZONE_DETAIL_ENTETE); |
ContentPanel panneauPrincipal = new ContentPanel(); |
panneauPrincipal.setLayout(new FitLayout()); |
panneauPrincipal.setHeaderVisible(false); |
panneauPrincipal.setBodyBorder(true); |
panneauPrincipal.setTopComponent(entete); |
tabIdentite = new TabItem(i18nC.personneIdentite()); |
tabIdentite.setLayout(new AnchorLayout()); |
tabIdentite.setScrollMode(Scroll.AUTO); |
tabAdresse = new TabItem(i18nC.personneAdresses()); |
tabAdresse.setLayout(new FitLayout()); |
tabAdresse.setScrollMode(Scroll.AUTO); |
tabInfosNat = new TabItem(i18nC.personneInfoNat()); |
tabInfosNat.setScrollMode(Scroll.AUTO); |
tabLogos = new TabItem(i18nC.personneLogos()); |
tabLogos.setScrollMode(Scroll.AUTO); |
tabLogos.setLayout(new FlowLayout()); |
tabPanel = new TabPanel(); |
tabPanel.setId(ComposantId.ZONE_DETAIL_CORPS); |
tabPanel.setBodyBorder(false); |
tabPanel.add(tabIdentite); |
tabPanel.add(tabAdresse); |
tabPanel.add(tabInfosNat); |
tabPanel.add(tabLogos); |
panneauPrincipal.add(tabPanel); |
add(panneauPrincipal); |
} |
public void afficherDetailPersonne(Personne personne) { |
if (personne != null) { |
String tplEntete = initialiserTplEntete(); |
Params enteteParams = new Params(); |
enteteParams.set("nom", (String) personne.get("fmt_nom_complet")); |
enteteParams.set("mail", (String) personne.get("courriel_princ")); |
LinkedList lstLogos = (LinkedList) personne |
.getChaineDenormaliseAsMapOrList("truk_logo"); |
if (lstLogos != null && lstLogos.size() > 0) { |
tabLogos.removeAll(); |
String urlLogoPrinc = (String) lstLogos.get(0); |
if (!urlLogoPrinc.trim().equals("")) { |
tplEntete = "<div id='personne-logo-div'><img src='{image}' alt='logo' /></div>" |
+ tplEntete; |
enteteParams.set("image", urlLogoPrinc); |
} |
Iterator<String> itLogo = lstLogos.iterator(); |
while (itLogo.hasNext()) { |
String urlLogoCourant = itLogo.next(); |
Image imgCourante = new Image(urlLogoCourant); |
tabLogos.add(imgCourante); |
} |
tabLogos.enable(); |
} else { |
enteteParams.set("image", ""); |
tabLogos.disable(); |
} |
entete.el().setInnerHtml(Format.substitute(tplEntete, enteteParams)); |
String tplIdentite = initialiserTplIdentite(); |
Params tabIdentiteParams = new Params(); |
tabIdentiteParams.set("nom_complet", personne.getString("fmt_nom_complet")); |
tabIdentiteParams.set("abreviation", personne.getString("abreviation")); |
tabIdentiteParams.set("naissance_date", personne.getNaissanceDate()); |
tabIdentiteParams.set("naissance_lieu", personne.getString("naissance_lieu")); |
String tplDeces = ""; |
if (personne.estDecedee()) { |
tplDeces = " <h2>Décès:</h2>" |
+ " <span><b>" |
+ i18nC.personneDateDeces() |
+ ":</b></span> {deces_date}<br />" |
+ " <span><b>" |
+ i18nC.personneLieuDeces() |
+ ":</b></span> {deces_lieu}<br /><br />"; |
tabIdentiteParams.set("deces_date", personne.getDecesDate()); |
tabIdentiteParams.set("deces_lieu", personne.getString("deces_lieu")); |
} |
Params paramsDeces = new Params(); |
paramsDeces.set("tplDeces", tplDeces); |
tplIdentite = Format.substitute(tplIdentite, paramsDeces); |
tabIdentiteParams.set("description", personne.getString("description")); |
tabInfosNat.removeAll(); |
tabIdentiteParams.set("nom_autre", construireTxtTruck(personne.getString("truk_nom_autre"))); |
tabIdentiteParams.set("abreviation_autre", construireTxtTruck(personne.getString("truk_abreviation_autre"))); |
HashMap<String, String> mapTelephones = (HashMap<String, String>) personne |
.getChaineDenormaliseAsMapOrList("truk_telephone"); |
if ((mapTelephones != null) && (mapTelephones.size() > 0)) { |
Collection<String> telephoneKeys = mapTelephones.keySet(); |
Iterator<String> itTelephones = telephoneKeys.iterator(); |
while (itTelephones.hasNext()) { |
String key = itTelephones.next(); |
String label = mapTelephones.get(key); |
try { |
label = i18nC.getString(label); |
} catch (MissingResourceException e) { |
} |
tplIdentite += "<b>" + label + ":</b> " + key; |
tplIdentite += "<br />"; |
} |
} |
// Courriel :Champ truk de la forme |
// "Adresse@adr.com;; adr2@adr.fr ..." |
LinkedList<String> listeCourriel = (LinkedList<String>) personne |
.getChaineDenormaliseAsMapOrList("truk_courriel"); |
if ((listeCourriel != null) && (listeCourriel.size() > 0)) { |
String strLabelCourriel = "Courriel"; |
if (listeCourriel.size() > 1) { |
strLabelCourriel += "s"; |
} |
String valeurCourriel = ""; |
Iterator<String> itCourriel = listeCourriel.iterator(); |
while (itCourriel.hasNext()) { |
String valeurCourante = itCourriel.next(); |
valeurCourriel += "<br /><a href=\"mailto:" |
+ valeurCourante + "\">" + valeurCourante + "</a>"; |
} |
tplIdentite += valeurCourriel; |
} |
// Url Site Webs |
LinkedList listeUrl = (LinkedList) personne |
.getChaineDenormaliseAsMapOrList("truk_url"); |
if (listeUrl != null && listeUrl.size() > 0) { |
tplIdentite += "<br /><br /><b>Sites web:</b><br /><span style='display:inline-block'>"; |
String strUrl = ""; |
Iterator<String> urlIt = listeUrl.iterator(); |
while (urlIt.hasNext()) { |
String urlCourante = urlIt.next(); |
strUrl += "<a href=\"" + urlCourante + "\">" + urlCourante |
+ "</a> <br/>"; |
} |
tplIdentite += strUrl + "</span><br />"; |
} |
tplIdentite += "</div>"; |
afficherOnglet(tplIdentite, tabIdentiteParams, tabIdentite); |
String tabAdresseTpl = "<div class='{css_corps}'>" |
+ " <div class='{css_fieldset}'>" |
+ " <h2>Adresse personnelle:</h2>" |
+ " {adresse01} <br />" + " {adresse02} <br />" |
+ " {boitePostale}<br />" |
+ " {codePostal} {region}<br />" |
+ " <span style='uppercase'>{pays}</span><br />" |
+ "</div>"; |
// Adresses : |
Params paramAdresseTpl = new Params(); |
paramAdresseTpl.set("adresse01", (String) personne |
.obtenirValeurChamp("adresse_01")); |
paramAdresseTpl.set("adresse02", (String) personne |
.obtenirValeurChamp("adresse_02")); |
paramAdresseTpl.set("boitePostale", (String) personne |
.obtenirValeurChamp("bp")); |
paramAdresseTpl.set("codePostal", (String) personne |
.obtenirValeurChamp("code_postal")); |
paramAdresseTpl.set("ville", (String) personne |
.obtenirValeurChamp("ville")); |
paramAdresseTpl.set("region", (String) personne |
.obtenirValeurChamp("region")); |
paramAdresseTpl.set("pays", (String) personne |
.obtenirValeurChamp("pays")); |
afficherOnglet(tabAdresseTpl, paramAdresseTpl, tabAdresse); |
tabAdresse.setStyleAttribute("padding", "15px"); |
// Infos naturalistes :Biographie, Spécialité (typé) |
String tplInfosNat = "<div class='{css_corps}'>" |
+ " <div class='{css_fieldset}'>" + " <h2>" |
+ i18nC.personneSpecialite() + "</h1>" |
+ " {specialites}" + " <h2>" |
+ i18nC.personneRecolte() + "</h2>" |
+ " {recoltes}" + " </div>" + "</div>"; |
Params prmInfosNat = new Params(); |
// TODO : replace id region par valeur |
String specialite = construireTxtTruck(personne.getSpecialite()); |
prmInfosNat.set("specialites", specialite); |
String recolte = construireTxtListeOntologie(personne.getString("truk_recolte")); |
prmInfosNat.set("recoltes", recolte); |
afficherOnglet(tplInfosNat, prmInfosNat, tabInfosNat); |
tabAdresse.setStyleAttribute("padding", "15px"); |
changerLabelRegions(); |
layout(); |
} |
} |
public String initialiserTplEntete() { |
return "<div id='{css_id}'>" + "<h1>{nom}</h1>" |
+ "<h2><a href='{mail}'>{mail}</a></h2>" + "</div>"; |
} |
public String initialiserTplIdentite() { |
return "<div class='{css_corps}'>" + " <div class='{css_fieldset}'>" |
+ " <h2>Noms:</h2>" + " <span><b>" |
+ i18nC.personneNomComplet() |
+ ":</b></span> {nom_complet}<br />" |
+ " <span><b>" |
+ i18nC.personneNomAutre() |
+ ":</b></span> {nom_autre}<br />" |
+ " <span><b>" |
+ i18nC.personneAbreviation() |
+ ":</b></span> {abreviation}<br />" |
+ " <span><b>" |
+ i18nC.personneAbreviationAutre() |
+ ":</b></b></span> {abreviation_autre}<br /><br />" |
+ " <h2>Naissance:</h2>" |
+ " <span><b>" |
+ i18nC.personneDateNaissance() |
+ ":</b></span> {naissance_date}<br />" |
+ " <span><b>" |
+ i18nC.personneLieuNaissance() |
+ ":</b></span> {naissance_lieu}<br /><br />" |
+ "{tplDeces}" |
+ " </div>" |
+ "</div>" |
+ "<div class='{css_corps}'>" |
+ " <div class='css_fieldset'> " |
+ " <h2>Description:</h2>" |
+ " {description}<br />" + " </div>" + "<br />"; |
} |
private void changerLabelRegions() { |
Collection<String> colClesComposants = hmLabelFieldRegion.keySet(); |
Iterator<String> itComposants = colClesComposants.iterator(); |
while (itComposants.hasNext()) { |
String region = itComposants.next(); |
mediateur.obtenirValeurEtRafraichir(this, "region", region); |
} |
} |
private void ajouterLabelField(FieldSet fs, String tfLabel, Object tfValue) { |
if ((tfValue != null) && (!tfValue.toString().trim().equals(""))) { |
LabelField tf = new LabelField(); |
tf.setFieldLabel(tfLabel + ":"); |
if ((tfLabel == null) || ("".equals(tfLabel))) { |
tf.setHideLabel(true); |
tf.setStyleAttribute("margin", "0 0 0 105px"); |
} |
tf.setValue(tfValue); |
// Ajout au fieldSet |
fs.add(tf); |
} |
} |
public void rafraichir(Object nouvellesDonnees) { |
// Si on a reçu une personne on en affiche les détails |
if (nouvellesDonnees instanceof Personne) { |
personneAAfficher = (Personne) nouvellesDonnees; |
} else if (nouvellesDonnees instanceof ValeurListe) { |
ValeurListe ontologieReceptionnee = (ValeurListe) nouvellesDonnees; |
ajouterListeValeursAOntologie(ontologieReceptionnee); |
ontologieRecue = true; |
// Remplacer ci-dessous par Ontologie |
ValeurListe listeValeur = (ValeurListe) nouvellesDonnees; |
if (listeValeur.getId().equals(config.getListeId("region"))) { |
Collection colCleListeValeur = listeValeur.keySet(); |
Iterator<String> itLv = colCleListeValeur.iterator(); |
while (itLv.hasNext()) { |
String idRegion = itLv.next(); |
Valeur region = listeValeur.get(idRegion); |
if (region != null) { |
String strRegionId = region.getAbreviation(); |
LinkedList<LabelField> listComposantsRegion = (LinkedList) hmLabelFieldRegion.get(strRegionId); |
for (int i = 0; i < listComposantsRegion.size(); i++) { |
LabelField lfRegion = listComposantsRegion.get(i); |
lfRegion.setFieldLabel(region.getNom()); |
} |
} |
} |
} |
} |
if (ontologieRecue && personneAAfficher != null) { |
afficherDetailPersonne(personneAAfficher); |
} |
} |
} |
/trunk/src/org/tela_botanica/client/vues/personne/PersonneForm.java |
---|
New file |
0,0 → 1,1283 |
package org.tela_botanica.client.vues.personne; |
import java.util.ArrayList; |
import java.util.Collection; |
import java.util.Date; |
import java.util.HashMap; |
import java.util.Iterator; |
import java.util.LinkedList; |
import java.util.List; |
import org.tela_botanica.client.ComposantClass; |
import org.tela_botanica.client.Mediateur; |
import org.tela_botanica.client.RegistreId; |
import org.tela_botanica.client.composants.ChampMultiValeurs; |
import org.tela_botanica.client.composants.ChampMultiValeursImage; |
import org.tela_botanica.client.composants.ChampMultiValeursMultiTypes; |
import org.tela_botanica.client.configuration.Configuration; |
import org.tela_botanica.client.images.Images; |
import org.tela_botanica.client.interfaces.Rafraichissable; |
import org.tela_botanica.client.modeles.Information; |
import org.tela_botanica.client.modeles.MenuApplicationId; |
import org.tela_botanica.client.modeles.Valeur; |
import org.tela_botanica.client.modeles.ValeurListe; |
import org.tela_botanica.client.modeles.personne.Personne; |
import org.tela_botanica.client.modeles.personne.PersonneListe; |
import org.tela_botanica.client.modeles.projet.Projet; |
import org.tela_botanica.client.modeles.projet.ProjetListe; |
import org.tela_botanica.client.util.Pattern; |
import org.tela_botanica.client.util.UtilString; |
import org.tela_botanica.client.vues.Formulaire; |
import com.extjs.gxt.ui.client.event.Events; |
import com.extjs.gxt.ui.client.Registry; |
import com.extjs.gxt.ui.client.Style.IconAlign; |
import com.extjs.gxt.ui.client.Style.Scroll; |
import com.extjs.gxt.ui.client.Style.VerticalAlignment; |
import com.extjs.gxt.ui.client.binding.FormBinding; |
import com.extjs.gxt.ui.client.event.ButtonEvent; |
import com.extjs.gxt.ui.client.event.ComponentEvent; |
import com.extjs.gxt.ui.client.event.KeyListener; |
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.LayoutContainer; |
import com.extjs.gxt.ui.client.widget.MessageBox; |
import com.extjs.gxt.ui.client.widget.Info; |
import com.extjs.gxt.ui.client.widget.TabItem; |
import com.extjs.gxt.ui.client.widget.TabPanel; |
import com.extjs.gxt.ui.client.widget.button.Button; |
import com.extjs.gxt.ui.client.widget.button.ButtonBar; |
import com.extjs.gxt.ui.client.widget.form.ComboBox; |
import com.extjs.gxt.ui.client.widget.form.DateField; |
import com.extjs.gxt.ui.client.widget.form.FieldSet; |
import com.extjs.gxt.ui.client.widget.form.LabelField; |
import com.extjs.gxt.ui.client.widget.form.Radio; |
import com.extjs.gxt.ui.client.widget.form.RadioGroup; |
import com.extjs.gxt.ui.client.widget.form.TextArea; |
import com.extjs.gxt.ui.client.widget.form.TextField; |
import com.extjs.gxt.ui.client.widget.form.ComboBox.TriggerAction; |
import com.extjs.gxt.ui.client.widget.form.FormPanel.LabelAlign; |
import com.extjs.gxt.ui.client.widget.layout.ColumnData; |
import com.extjs.gxt.ui.client.widget.layout.ColumnLayout; |
import com.extjs.gxt.ui.client.widget.layout.FormData; |
import com.extjs.gxt.ui.client.widget.layout.FormLayout; |
import com.extjs.gxt.ui.client.widget.layout.RowLayout; |
import com.extjs.gxt.ui.client.widget.layout.TableData; |
import com.extjs.gxt.ui.client.widget.layout.TableLayout; |
import com.google.gwt.core.client.GWT; |
import com.google.gwt.i18n.client.DateTimeFormat; |
import com.google.gwt.user.client.Window; |
import com.google.gwt.user.client.ui.Widget; |
public class PersonneForm extends Formulaire implements Rafraichissable { |
// VARIABLES |
private TabItem tiIdentite, tiAdresses, tiInfosNat; |
private Configuration config = (Configuration) Registry.get(RegistreId.CONFIG); |
private Personne personneSelectionnee, personneSauvegarde = null; |
//hmIdentite[...] référence par une chaine de caractère tous les composants de l'onglet Identite |
private HashMap<String, Widget>hmIdentite = new HashMap<String, Widget>(); |
private HashMap<String, Widget>hmAdresse = new HashMap<String, Widget>(); |
private HashMap<String, Widget>hmInfosNat = new HashMap<String, Widget>(); |
private HashMap<String, Valeur> hmCbSelectionnee = new HashMap(); |
private FormData fd100 = new FormData("95%"); |
private Button enregistrer, enregistrerEtRevenir; |
private Personne personne = null; |
private String personneId = null; |
private FormBinding binding = null; |
// CONSTRUCTEUR |
public PersonneForm(Mediateur mediateurCourrant, String personneId) { |
initialiserPersonneForm(mediateurCourrant, personneId); |
} |
public PersonneForm(Mediateur mediateurCourrant, String personneId, Rafraichissable vueARafraichirApresValidation) { |
vueExterneARafraichirApresValidation = vueARafraichirApresValidation; |
initialiserPersonneForm(mediateurCourrant, personneId); |
} |
private void initialiserPersonneForm(Mediateur mediateurCourrant, String personneIdCourrant) { |
personne = new Personne(); |
personne.setId(personneIdCourrant); |
personneId = personneIdCourrant; |
String modeDeCreation = (UtilString.isEmpty(personneId) ? Formulaire.MODE_AJOUTER : Formulaire.MODE_MODIFIER); |
initialiserFormulaire(mediateurCourrant, modeDeCreation, MenuApplicationId.PERSONNE); |
initialiserComposants(); |
genererTitreFormulaire(); |
if (modeDeCreation.equals(Formulaire.MODE_MODIFIER)) { |
mediateur.selectionnerPersonne(this, personne, null); |
} |
} |
private void genererTitreFormulaire() { |
String titre = i18nC.personneModeAjout(); |
if (mode.equals(Formulaire.MODE_MODIFIER)) { |
titre = i18nC.personneModeModifier()+" - "+i18nC.id()+": "+personneId; |
} |
panneauFormulaire.setHeading(titre); |
} |
public void initialiserComposants() { |
personneSelectionnee = new Personne(); |
personneSauvegarde = new Personne(); |
initialiserOnglets(); |
creerComposantsIdentite(); |
creerComposantsAdresse(); |
creerComposantsInfosNat(); |
binderPersonne(personneSelectionnee); |
} |
/** |
* Crée les onglets identité, adresse et informations naturaliste |
* |
* */ |
public void initialiserOnglets() { |
//TabPanel |
TabPanel formulaireOnglets = new TabPanel(); |
//Tab 1 : identite |
tiIdentite = new TabItem(i18nC.personneIdentite()); |
tiIdentite.setLayout(new FormLayout()); |
tiIdentite.setScrollMode(Scroll.AUTO); |
formulaireOnglets.add(tiIdentite); |
hmIdentite.put("tiIdentite", tiIdentite); |
//Tab 2 : Adresse |
tiAdresses = new TabItem(i18nC.adresse()); |
tiAdresses.setLayout(new FormLayout()); |
tiAdresses.setScrollMode(Scroll.AUTO); |
formulaireOnglets.add(tiAdresses); |
//Tab 3 : Infos Naturalistes |
tiInfosNat = new TabItem(i18nC.personneInfoNat()); |
tiInfosNat.setLayout(new FormLayout()); |
tiInfosNat.setScrollMode(Scroll.AUTO); |
formulaireOnglets.add(tiInfosNat); |
getFormulaire().add(formulaireOnglets); |
} |
/** |
* Crée les widgets pour l'onglet identité |
* |
* */ |
public void creerComposantsIdentite() { |
// Gestion de l'affichage en colonnes : 3 Layout container : principal, gauche & droite |
LayoutContainer left = new LayoutContainer(); |
left.setLayout(new FormLayout()); |
left.setStyleAttribute("padding", "15px"); |
LayoutContainer right = new LayoutContainer(); |
right.setLayout(new FormLayout()); |
right.setStyleAttribute("padding", "15px"); |
LayoutContainer main = new LayoutContainer(); |
main.add(left, new ColumnData(.45)); |
main.add(right, new ColumnData(.45)); |
main.setLayout(new ColumnLayout()); |
main.setHeight("100%"); |
main.setScrollMode(Scroll.AUTO); |
// Création des champs |
FormLayout formLayout = new FormLayout(); |
formLayout.setLabelAlign(LabelAlign.LEFT); |
FieldSet fsProjet = new FieldSet(); |
fsProjet.setHeading(i18nC.menuProjet()); |
fsProjet.setLayout(new FormLayout()); |
ListStore<Projet> storeProjets = new ListStore<Projet>(); |
ComboBox cbProjets = new ComboBox<Projet>(); |
cbProjets.setFieldLabel(i18nC.personneProjet()+ " :"); |
cbProjets.setEmptyText(i18nC.txtListeProjetDefaut()); |
cbProjets.setLabelSeparator(""); |
cbProjets.setDisplayField("nom"); |
cbProjets.setEditable(false); |
cbProjets.setTriggerAction(TriggerAction.ALL); |
cbProjets.setStore(storeProjets); |
cbProjets.setAllowBlank(false); |
fsProjet.add(cbProjets); |
hmIdentite.put("cbProjets", cbProjets); |
mediateur.selectionnerProjet(this, null); |
left.add(fsProjet); |
FieldSet fsNoms = new FieldSet(); |
fsNoms.setHeading("Noms"); |
fsNoms.setLayout(formLayout); |
// Nom complet : Affiché que si valeurs saisies |
LabelField nomComplet = new LabelField(); |
nomComplet.setFieldLabel(i18nC.personneNomComplet() +" :"); |
nomComplet.hide(); |
fsNoms.add(nomComplet); |
hmIdentite.put("nomComplet", nomComplet); |
//Préfixe |
ListStore<Valeur> storePrefixe = new ListStore<Valeur>(); |
ComboBox<Valeur> cbPrefixe = new ComboBox<Valeur>(); |
cbPrefixe.setStore(storePrefixe); |
cbPrefixe.setDisplayField("nom"); |
cbPrefixe.setEmptyText("Choisissez le préfixe:"); |
cbPrefixe.setFieldLabel("Prefix"); |
fsNoms.add(cbPrefixe); |
hmIdentite.put("cbPrefixe", cbPrefixe); |
mediateur.obtenirListeValeurEtRafraichir(this, "prefixe"); |
//Prénom |
TextField<String> tfPrenom = new TextField<String>(); |
tfPrenom.setFieldLabel("Prénom"); |
tfPrenom.setName("prenom"); |
fsNoms.add(tfPrenom); |
hmIdentite.put("tfPrenom", tfPrenom); |
//Nom |
TextField<String> tfNom = new TextField<String>(); |
tfNom.setFieldLabel("Nom"); |
tfNom.setAllowBlank(false); |
tfNom.setName("nom"); |
fsNoms.add(tfNom); |
hmIdentite.put("tfNom", tfNom); |
//Suffixe |
ListStore<Valeur> storeSuffixe = new ListStore<Valeur>(); |
ComboBox<Valeur> cbSuffixe = new ComboBox<Valeur>(); |
cbSuffixe.setStore(storeSuffixe); |
cbSuffixe.setFieldLabel("Suffixe"); |
cbSuffixe.setDisplayField("nom"); |
cbSuffixe.setEmptyText("Choisissez un suffixe:"); |
fsNoms.add(cbSuffixe); |
hmIdentite.put("cbSuffixe", cbSuffixe); |
mediateur.obtenirListeValeurEtRafraichir(this, "suffixes"); |
TextField<String> tfAbreviation = new TextField<String>(); |
tfAbreviation.setFieldLabel("Abréviation"); |
tfAbreviation.setName("abreviation"); |
fsNoms.add(tfAbreviation); |
hmIdentite.put("tfAbreviation", tfAbreviation); |
TableLayout layoutAutreNoms = new TableLayout(2); |
layoutAutreNoms.setCellVerticalAlign(VerticalAlignment.TOP); |
LayoutContainer autresNoms = new LayoutContainer(layoutAutreNoms); |
ChampMultiValeurs nomAutre = new ChampMultiValeurs("Autres noms",150); |
hmIdentite.put("nomAutre", nomAutre); |
autresNoms.add(nomAutre, new TableData("200px", "15px")); |
ChampMultiValeurs abreviationAutre = new ChampMultiValeurs("Autres abréviation",150); |
hmIdentite.put("abreviationAutre", abreviationAutre); |
autresNoms.add(abreviationAutre, new TableData("200px", "15px")); |
fsNoms.add(autresNoms); |
left.add(fsNoms); |
formLayout = new FormLayout(); |
formLayout.setLabelAlign(LabelAlign.LEFT); |
FieldSet fsNaissance = new FieldSet(); |
fsNaissance.setHeading("Naissance"); |
fsNaissance.setLayout(formLayout); |
DateField dfDateNaissance = new DateField(); |
dfDateNaissance.getPropertyEditor().setFormat(DateTimeFormat.getFormat("dd/MM/yyyy")); |
dfDateNaissance.setFieldLabel("Date"); |
dfDateNaissance.getMessages().setInvalidText("La valeur saisie n'est pas une date valide. La date doit être au format «jj/mm/aaaa»."); |
fsNaissance.add(dfDateNaissance); |
hmIdentite.put("dfDateNaissance", dfDateNaissance); |
// Lieu naissance |
TextField<String> tfLieuNaissance = new TextField<String>(); |
tfLieuNaissance.setFieldLabel("Lieu"); |
tfLieuNaissance.setName("naissance_lieu"); |
fsNaissance.add(tfLieuNaissance); |
hmIdentite.put("tfLieuNaissance", tfLieuNaissance); |
left.add(fsNaissance); |
formLayout = new FormLayout(); |
formLayout.setLabelAlign(LabelAlign.LEFT); |
FieldSet fsDeces = new FieldSet(); |
fsDeces.setHeading("Décès"); |
fsDeces.setLayout(formLayout); |
Radio rbEstDecedee = new Radio(); |
rbEstDecedee.setBoxLabel("oui"); |
rbEstDecedee.setValueAttribute("1"); |
rbEstDecedee.addListener(Events.Change, new Listener<ComponentEvent>() { |
public void handleEvent(ComponentEvent be) { |
if(((Radio) be.getComponent()).getValue().equals(true)) { |
((DateField) hmIdentite.get("dfDateDeces")).setVisible(true); |
((TextField) hmIdentite.get("tfLieuDeces")).setVisible(true); |
} else { |
DateField dfDateDeces = ((DateField) hmIdentite.get("dfDateDeces")); |
dfDateDeces.setValue(null); |
dfDateDeces.setVisible(false); |
TextField tfLieuDeces = ((TextField) hmIdentite.get("tfLieuDeces")); |
tfLieuDeces.setValue(null); |
tfLieuDeces.setVisible(false); |
} |
} |
}); |
hmIdentite.put("rbEstDecedee", rbEstDecedee); |
Radio rbNestPasDecedee = new Radio(); |
rbNestPasDecedee.setValueAttribute("0"); |
rbNestPasDecedee.setBoxLabel("non"); |
rbNestPasDecedee.setValue(true); |
/* Radio rbDecesInconnu = new Radio(); |
rbDecesInconnu.setBoxLabel("Ne sais pas"); |
rbDecesInconnu.setValue(true);*/ |
RadioGroup rbgDeces = new RadioGroup(); |
rbgDeces.setFieldLabel("Est décédée"); |
rbgDeces.add(rbEstDecedee); |
rbgDeces.add(rbNestPasDecedee); |
fsDeces.add(rbgDeces); |
DateField dfDateDeces = new DateField(); |
dfDateDeces.getPropertyEditor().setFormat(DateTimeFormat.getFormat("dd/MM/yyyy")); |
dfDateDeces.setFormatValue(true); |
dfDateDeces.getMessages().setInvalidText("La valeur saisie n'est pas une date valide. La date doit être au format «jj/mm/aaaa»."); |
dfDateDeces.setFieldLabel("Date"); |
dfDateDeces.setVisible(false); |
fsDeces.add(dfDateDeces); |
hmIdentite.put("dfDateDeces", dfDateDeces); |
TextField<String> tfLieuDeces = new TextField<String>(); |
tfLieuDeces.setFieldLabel("Lieu"); |
tfLieuDeces.setName("deces_lieu"); |
tfLieuDeces.setVisible(false); |
fsDeces.add(tfLieuDeces); |
hmIdentite.put("tfLieuDeces", tfLieuDeces); |
left.add(fsDeces); |
tiIdentite.add(main); |
FieldSet fsContactTel = new FieldSet(); |
fsContactTel.setHeading("Contact - Téléphones"); |
fsContactTel.setLayout(new RowLayout()); |
ChampMultiValeursMultiTypes telephones = new ChampMultiValeursMultiTypes("Téléphones"); |
hmIdentite.put("telephones", telephones); |
telephones.initialiserType("tel"); |
fsContactTel.add(telephones); |
right.add(fsContactTel); |
hmIdentite.put("fsContactTel", fsContactTel); |
FieldSet fsContact = new FieldSet(); |
fsContact.setHeading("Contact - Autres"); |
fsContact.setId("fsContact"); |
fsContact.setLayout(new RowLayout()); |
right.add(fsContact); |
hmIdentite.put("fsContact", fsContact); |
ChampMultiValeurs courriels = new ChampMultiValeurs("Courriels"); |
courriels.setValidation(Pattern.email, "moi@domaine.fr"); |
fsContact.add(courriels); |
hmIdentite.put("courriels", courriels); |
LayoutContainer lcCourrielContainer = new LayoutContainer(new RowLayout()); |
fsContact.add(lcCourrielContainer); |
hmIdentite.put("lcCourrielContainer", lcCourrielContainer); |
ChampMultiValeurs sites = new ChampMultiValeurs("Sites web"); |
sites.setValeurParDefaut("http://"); |
sites.setValidation(Pattern.url, "http://www.monsite.com"); |
fsContact.add(sites); |
hmIdentite.put("sites", sites); |
FieldSet fsAutresInfos = new FieldSet(); |
fsAutresInfos.setHeading("Autres informations"); |
formLayout = new FormLayout(); |
formLayout.setLabelAlign(LabelAlign.LEFT); |
fsAutresInfos.setLayout(formLayout); |
formLayout = new FormLayout(); |
formLayout.setLabelAlign(LabelAlign.TOP); |
LayoutContainer lcAutreInformations1 = new LayoutContainer(formLayout); |
//Civilité |
ListStore<Valeur> storeSexe = new ListStore<Valeur>(); |
ComboBox<Valeur> cbSexe = new ComboBox<Valeur>(); |
cbSexe.setStore(storeSexe); |
cbSexe.setFieldLabel("Sexe"); |
cbSexe.setDisplayField("nom"); |
cbSexe.setEmptyText("Choisissez le sexe:"); |
lcAutreInformations1.add(cbSexe, new FormData(100, 10)); |
hmIdentite.put("cbSexe", cbSexe); |
mediateur.obtenirListeValeurEtRafraichir(this, "sexe"); |
//Description |
TextArea taDescription = new TextArea(); |
taDescription.setEmptyText("Saisissez une description"); |
taDescription.setFieldLabel("Description"); |
taDescription.setWidth("100%"); |
taDescription.setName("description"); |
lcAutreInformations1.add(taDescription, fd100); |
hmIdentite.put("taDescription", taDescription); |
fsAutresInfos.add(lcAutreInformations1); |
// Logo |
LayoutContainer lcLogoUrl = new LayoutContainer(); |
hmIdentite.put("lcLogoUrl", lcLogoUrl); |
ChampMultiValeursImage logo = new ChampMultiValeursImage(i18nC.personneLogos()); |
logo.setImageHeight("150px"); |
logo.setValeurParDefaut("http://"); |
logo.setValidation(Pattern.url, "http://www.monsite.com/mon_image.jpg"); |
logo.setValeurBoutonSupprimer("Supprimer"); |
hmIdentite.put("logos", logo); |
lcLogoUrl.add(logo); |
fsAutresInfos.add(logo); |
LayoutContainer lcAutreInformations2 = new LayoutContainer(new ColumnLayout()); |
hmIdentite.put("lcAutreInformations2", lcAutreInformations2); |
fsAutresInfos.add(lcAutreInformations2); |
right.add(fsAutresInfos); |
// Ajout des évènements saisi |
KeyListener klNoms = new KeyListener() { |
public void componentKeyUp(ComponentEvent ev) { |
rafraichir(null); |
} |
}; |
SelectionChangedListener<Valeur> selectionChange = new SelectionChangedListener<Valeur>() { |
public void selectionChanged(SelectionChangedEvent se) { |
rafraichir(null); |
} |
}; |
cbPrefixe.addSelectionChangedListener(selectionChange); |
cbPrefixe.addKeyListener(klNoms); |
tfPrenom.addKeyListener(klNoms); |
tfNom.addKeyListener(klNoms); |
cbSuffixe.addSelectionChangedListener(selectionChange); |
} |
public void creerComposantsAdresse() { |
// Gauche |
LayoutContainer left = new LayoutContainer(); |
left.setLayout(new FormLayout()); |
left.setStyleAttribute("padding", "15px"); |
// Droite |
LayoutContainer right = new LayoutContainer(); |
right.setLayout(new FormLayout()); |
// Principal |
LayoutContainer main = new LayoutContainer(); |
main.setLayout(new TableLayout(2)); |
// Ajout au principal |
main.add(left); |
main.add(right); |
TextField<String> tfAdresse1 = new TextField(); |
tfAdresse1.setFieldLabel("Adresse"); |
tfAdresse1.setName("adresse_01"); |
left.add(tfAdresse1, fd100); |
hmAdresse.put("tfAdresse1", tfAdresse1); |
TextField<String> tfAdresse2 = new TextField(); |
tfAdresse2.setFieldLabel("Complément d'adresse"); |
tfAdresse2.setName("adresse_02"); |
left.add(tfAdresse2, fd100); |
hmAdresse.put("tfAdresse2", tfAdresse2); |
ComboBox<Valeur> cbPays = new ComboBox<Valeur>(); |
cbPays.setFieldLabel("Pays"); |
cbPays.setDisplayField("nom"); |
cbPays.setEmptyText("Sélectionnez le pays:"); |
ListStore<Valeur> storePays = new ListStore<Valeur>(); |
cbPays.setStore(storePays); |
right.add(cbPays, fd100); |
hmAdresse.put("cbPays", cbPays); |
SelectionChangedListener<Valeur> selectionChange = new SelectionChangedListener<Valeur>() { |
public void selectionChanged(SelectionChangedEvent se) { |
// Rafraichir avec le pays sélectionné |
obtenirListeRegionParPays(((Valeur) se.getSelectedItem()).getAbreviation().toString()); |
} |
}; |
cbPays.addSelectionChangedListener(selectionChange); |
ComboBox<Valeur> cbRegion = new ComboBox<Valeur>(); |
cbRegion.setFieldLabel("Region"); |
cbRegion.setDisplayField("nom"); |
cbRegion.setEmptyText("Sélectionnez la région:"); |
cbRegion.setVisible(false); |
ListStore<Valeur> storeRegion = new ListStore<Valeur>(); |
cbRegion.setStore(storeRegion); |
right.add(cbRegion, fd100); |
hmAdresse.put("cbRegion", cbRegion); |
TextField<String> tfBoitePostale = new TextField<String>(); |
tfBoitePostale.setFieldLabel("Boite postale"); |
tfBoitePostale.setName("bp"); |
left.add(tfBoitePostale, fd100); |
hmAdresse.put("tfBoitePostale", tfBoitePostale); |
TextField<Integer> tfCodePostal = new TextField<Integer>(); |
tfCodePostal.setFieldLabel("Code postal"); |
tfCodePostal.setName("code_postal"); |
right.add(tfCodePostal, fd100); |
hmAdresse.put("tfCodePostal", tfCodePostal); |
TextField tfVille = new TextField(); |
tfVille.setFieldLabel("Ville"); |
tfVille.setName("ville"); |
right.add(tfVille, fd100); |
hmAdresse.put("tfVille", tfVille); |
// MAJ ComboBox |
mediateur.obtenirListeValeurEtRafraichir(this, "pays"); |
FieldSet fsAdresse = new FieldSet(); |
fsAdresse.setHeading("Adresse personnelle"); |
fsAdresse.add(main); |
tiAdresses.add(fsAdresse); |
} |
public void creerComposantsInfosNat() { |
FieldSet fsInfosNat = new FieldSet(); |
fsInfosNat.setTitle("Informations Naturaliste"); |
ChampMultiValeurs specialite = new ChampMultiValeurs(i18nC.personneSpecialite()); |
fsInfosNat.add(specialite); |
hmInfosNat.put("specialite", specialite); |
ChampMultiValeursMultiTypes recolte = new ChampMultiValeursMultiTypes(i18nC.personneRecolte()); |
recolte.initialiserType("pays"); |
hmInfosNat.put("recolte", recolte); |
fsInfosNat.add(recolte); |
tiInfosNat.add(fsInfosNat); |
} |
/** |
* Ajouter le bouton Sauvegarder et revenir à la liste à la barre d'outils donnée |
* |
* @param barreOutils la barre d'outils à modifier |
* */ |
private void ajouterBoutonEnregistrerEtRevenir(ButtonBar barreOutils) { |
//Le bouton réintialiser recharge la page sans sauvegarder les informations |
enregistrerEtRevenir = new Button("Enregistrer et revenir à la liste"); |
enregistrerEtRevenir.setIcon(Images.ICONES.scriptGo()); |
enregistrerEtRevenir.setIconAlign(IconAlign.LEFT); |
enregistrerEtRevenir.addSelectionListener(new SelectionListener<ButtonEvent>() { |
public void componentSelected(ButtonEvent ce) { |
if (enregistrer() == true) { |
((Mediateur) Registry.get(RegistreId.MEDIATEUR)).clicMenu("Personnes"); |
} |
} |
}); |
hmIdentite.put("btnEnregistrerRevenir", enregistrerEtRevenir); |
barreOutils.add(enregistrerEtRevenir); |
enregistrerEtRevenir.setEnabled(false); |
} |
/** |
* Ajouter le bouton Sauvegarder à la barre d'outils donnée |
* |
* @param barreOutils la barre d'outils à modifier |
* */ |
private void ajouterBoutonEnregistrer(ButtonBar barreOutils) { |
//Le bouton réintialiser recharge la page sans sauvegarder les informations |
enregistrer = new Button("Enregistrer"); |
enregistrer.setIcon(Images.ICONES.scriptSave()); |
enregistrer.setIconAlign(IconAlign.LEFT); |
enregistrer.setId("main-button"); |
enregistrer.addSelectionListener(new SelectionListener<ButtonEvent>() { |
public void componentSelected(ButtonEvent ce) { |
enregistrer(); |
} |
}); |
enregistrer.setEnabled(false); |
hmIdentite.put("btnEnregistrer", enregistrer); |
barreOutils.add(enregistrer); |
} |
/** |
* Ajouter le bouton annuler à la barre d'outils donnée |
* |
* @param barreOutils la barre d'outils à modifier |
* */ |
public static void ajouterBoutonAnnuler(ButtonBar barreOutils) { |
// Le bouton annuler ne sauvegarde pas les informations et renvoie vers la page précédente |
Button annuler = new Button("Revenir à la liste"); |
annuler.addSelectionListener(new SelectionListener<ButtonEvent>() { |
public void componentSelected(ButtonEvent ce) { |
((Mediateur) Registry.get(RegistreId.MEDIATEUR)).clicMenu("Personnes"); |
} |
}); |
annuler.setIconStyle(ComposantClass.ICONE_SUPPRIMER); |
barreOutils.add(annuler); |
} |
public void obtenirListeRegionParPays(String strPays) { |
mediateur.obtenirListeRegionsEtRafraichir(this, "region", strPays); |
} |
// RAFRAICHISSEMENT DU PANNEAU |
public void rafraichir(Object nouvellesDonnees) { |
if (nouvellesDonnees instanceof ValeurListe) { |
ValeurListe listeValeurs = (ValeurListe) nouvellesDonnees; |
// Créer une liste de valeurs |
List<Valeur> liste = new ArrayList<Valeur>(); |
for (Iterator<String> it = listeValeurs.keySet().iterator(); it.hasNext();) { |
liste.add(listeValeurs.get(it.next())); |
} |
if (listeValeurs.getId().equals(config.getListeId("prefixe"))) { |
remplirCombobox("cbPrefixe", liste, "hmIdentite"); |
} else if (listeValeurs.getId().equals(config.getListeId("suffixes"))) { |
remplirCombobox("cbSuffixe", liste, "hmIdentite"); |
} else if (listeValeurs.getId().equals(config.getListeId("sexe"))) { |
remplirCombobox("cbSexe", liste, "hmIdentite"); |
} else if (listeValeurs.getId().equals(config.getListeId("tel"))) { |
remplirCombobox("cbTelephone", liste, "hmIdentite"); |
//Préselection du tél |
ComboBox<Valeur> cbTelephone = (ComboBox<Valeur>) hmIdentite.get("cbTelephone"); |
cbTelephone.setValue(liste.get(1)); |
} else if (listeValeurs.getId().equals(config.getListeId("pays"))) { |
remplirCombobox("cbPays", liste, "hmAdresse"); |
} else if (listeValeurs.getId().equals(config.getListeId("region"))) { |
remplirCombobox("cbRegion", liste, "hmAdresse"); |
((ComboBox) hmAdresse.get("cbRegion")).setVisible(true); |
} |
} else if (nouvellesDonnees instanceof ProjetListe) { |
ProjetListe projets = (ProjetListe) nouvellesDonnees; |
List<Projet> liste = projets.toList(); |
ComboBox cbProjets = (ComboBox) hmIdentite.get("cbProjets"); |
ListStore<Projet> storeProjets= cbProjets.getStore(); |
storeProjets.removeAll(); |
storeProjets.add(liste); |
cbProjets.setStore(storeProjets); |
} else if (nouvellesDonnees instanceof Information) { |
Information info = (Information) nouvellesDonnees; |
if (info.getType().equals("ajout_personne")) { |
if (info.getDonnee(0) != null) { |
personneSelectionnee.setId(info.getDonnee(0).toString()); |
GWT.log("Ajout de la personne " + personneSelectionnee.getId(), null); |
Info.display("Enregistrement", "La personne a été ajoutée (id: " + personneSelectionnee.getId() + ")"); |
repandreRafraichissement(); |
if (clicBoutonvalidation) { |
mediateur.clicMenu(menuIdCourant); |
} |
} else { |
Info.display("Enregistrement", info.getMessages().toString()); |
} |
} else if (info.getType().equals("modification_personne")) { |
Info.display("Enregistrement", "Les modifications apportées à la personne " + personneSelectionnee.getId() + " ont été correctement enregistrées."); |
repandreRafraichissement(); |
if (clicBoutonvalidation) { |
mediateur.clicMenu(menuIdCourant); |
} |
} else if (info.getType().equals("maj_utilisateur")) { |
gererEtatActivationBouton(); |
} else if (info.getDonnee(0) instanceof PersonneListe) { |
Collection colPersonneListe = ((PersonneListe) info.getDonnee(0)).values(); |
Iterator itPersonneListe = colPersonneListe.iterator(); |
Personne personne = (Personne) itPersonneListe.next(); |
personneSauvegarde = new Personne(); |
personneSauvegarde = (Personne) personne.cloner(personneSauvegarde); |
binderPersonne(personne); |
mettreAJourPersonne(personne); |
nouvellesDonnees = null; |
} else { |
Info.display("messages", info.getMessages().toString()); |
} |
} |
if (nouvellesDonnees == null) { |
ComboBox cb= (ComboBox) hmIdentite.get("cbPrefixe"); |
//Met à jour le nom Complet du formulaire |
String valeurRetour = ""; |
// Prefixe |
String prefixe = ""; |
Valeur valPrefixe = (Valeur) ((ComboBox) hmIdentite.get("cbPrefixe")).getValue(); |
if (valPrefixe != null) { |
prefixe = valPrefixe.getNom(); |
} else { |
prefixe = (String) ((ComboBox) hmIdentite.get("cbPrefixe")).getRawValue(); |
} |
// Prénom |
String prenom = (String) ((TextField) hmIdentite.get("tfPrenom")).getValue(); |
// Nom |
String nom = (String) ((TextField) hmIdentite.get("tfNom")).getValue(); |
// Suffixe |
String suffixe = ""; |
Valeur valSuffixe = (Valeur) ((ComboBox) hmIdentite.get("cbSuffixe")).getValue(); |
if (valSuffixe != null) { |
suffixe = valSuffixe.getNom(); |
} else { |
suffixe = (String) ((ComboBox) hmIdentite.get("cbSuffixe")).getRawValue(); |
} |
// Mettre à jour la valeur |
valeurRetour = prefixe + " " + prenom + " " + nom + " " + suffixe; |
valeurRetour = valeurRetour.replaceAll("null", ""); |
((LabelField) hmIdentite.get("nomComplet")).setValue(valeurRetour); |
if (!valeurRetour.trim().equals("")) { |
((LabelField) hmIdentite.get("nomComplet")).show(); |
} else { |
((LabelField) hmIdentite.get("nomComplet")).hide(); |
} |
} |
mediateur.masquerPopinChargement(); |
if (this.mode.equals(MODE_AJOUTER)) { |
gererEtatActivationBouton(); |
} |
} |
private void repandreRafraichissement() { |
if (vueExterneARafraichirApresValidation != null) { |
String type = "personne_modifiee"; |
if (mode.equals(Formulaire.MODE_AJOUTER)) { |
type = "personne_ajoutee"; |
} |
Information info = new Information(type); |
info.setDonnee(0, personneSelectionnee); |
vueExterneARafraichirApresValidation.rafraichir(info); |
} |
} |
private void mettreAJourPersonne(Personne personne) { |
//Mise à jour de la personne |
//Personne personne = (Personne) nouvellesDonnees; |
ComboBox cbProjets = (ComboBox) hmIdentite.get("cbProjets"); |
cbProjets.setValue(cbProjets.getStore().findModel("id_projet", personne.get("ce_projet"))); |
//Prefixe |
String prefixe = personne.get("ce_truk_prefix"); |
ComboBox<Valeur> cbPrefixe = (ComboBox<Valeur>) hmIdentite.get("cbPrefixe"); |
String prefixeCourant = personne.get("ce_truk_prefix"); |
if (cbPrefixe.getStore().findModel("id_valeur", prefixeCourant) != null) { |
cbPrefixe.setValue(cbPrefixe.getStore().findModel("id_valeur", prefixeCourant)); |
} else { |
cbPrefixe.setRawValue(prefixeCourant); |
} |
((TextField) hmIdentite.get("tfPrenom")).setValue(personne.get("prenom")); |
((TextField) hmIdentite.get("tfNom")).setValue(personne.get("nom")); |
//Suffixe |
String suffixe = personne.get("ce_truk_suffixe"); |
ComboBox<Valeur> cbSuffixe = (ComboBox<Valeur>) hmIdentite.get("cbSuffixe"); |
String suffixeCourant = personne.get("ce_truk_suffix"); |
if (cbSuffixe.getStore().findModel("id_valeur", suffixeCourant) != null) { |
cbSuffixe.setValue(cbSuffixe.getStore().findModel("id_valeur", suffixeCourant)); |
} else { |
cbSuffixe.setRawValue(suffixeCourant); |
} |
((ChampMultiValeurs) hmIdentite.get("nomAutre")).peupler(personne.getString("truk_nom_autre")); |
((TextField) hmIdentite.get("tfAbreviation")).setValue(personne.get("abreviation")); |
((ChampMultiValeurs) hmIdentite.get("abreviationAutre")).peupler(personne.getString("truk_abreviation_autre")); |
(((DateField) hmIdentite.get("dfDateNaissance"))).setValue(personne.getDate("naissance_date")); |
((TextField) hmIdentite.get("tfLieuNaissance")).setValue(personne.get("naissance_lieu")); |
if (personne.estDecedee()) { |
(((DateField) hmIdentite.get("dfDateDeces"))).setValue(personne.getDate("deces_date")); |
((TextField) hmIdentite.get("tfLieuDeces")).setValue(personne.get("deces_lieu")); |
Radio rbEstDecede = (Radio) hmIdentite.get("rbEstDecedee"); |
rbEstDecede.setValue(true); |
} |
((ChampMultiValeurs) hmIdentite.get("telephones")).peupler(personne.getString("truk_telephone")); |
//Courriel |
((ChampMultiValeurs) hmIdentite.get("courriels")).peupler(personne.getCourriel()); |
//Sites web |
((ChampMultiValeurs) hmIdentite.get("sites")).peupler(personne.getString("truk_url")); |
// Sexe |
String strSexe = personne.get("ce_sexe"); |
ComboBox<Valeur> cbSexe = (ComboBox<Valeur>) hmIdentite.get("cbSexe"); |
if (cbSexe.getStore().findModel("id_valeur", strSexe) != null) { |
cbSexe.setValue(cbSexe.getStore().findModel("id_valeur", strSexe)); |
} else { |
cbSexe.setRawValue(strSexe); |
} |
((TextArea) hmIdentite.get("taDescription")).setRawValue((String) personne.get("description")); |
//Logo |
((ChampMultiValeurs) hmIdentite.get("logos")).peupler(personne.getString("truk_logo")); |
/*-------------------------------------------------- |
Adresse |
---------------------------------------------------*/ |
// Adresse |
((TextField<String>) hmAdresse.get("tfAdresse1")).setValue((String) personne.get("adresse_01")); |
// Complément |
((TextField<String>) hmAdresse.get("tfAdresse2")).setValue((String) personne.get("adresse_02")); |
//Boite postale |
((TextField<String>) hmAdresse.get("tfBoitePostale")).setValue((String) personne.get("bp")); |
//Pays |
String strPays = personne.get("pays"); |
ComboBox<Valeur> cbPays = (ComboBox<Valeur>) hmAdresse.get("cbPays"); |
if (cbPays.getStore().findModel("nom", strPays) != null) { |
cbPays.setValue(cbPays.getStore().findModel("nom", strPays)); |
} else { |
cbPays.setRawValue(strPays); |
} |
//Région |
String strRegion = personne.get("region"); |
if ((strRegion!=null)&&(!strRegion.equals(""))) { |
ComboBox<Valeur> cbRegion = (ComboBox<Valeur>) hmAdresse.get("cbRegion"); |
cbRegion.setVisible(true); |
if (cbRegion.getStore().findModel("nom", strRegion) != null) { |
cbRegion.setValue(cbRegion.getStore().findModel("nom", strRegion)); |
} else { |
cbRegion.setRawValue(strRegion); |
} |
} |
//Cp |
((TextField) hmAdresse.get("tfCodePostal")).setValue(personne.get("code_postal")); |
//Ville |
((TextField) hmAdresse.get("tfVille")).setValue(personne.get("ville")); |
/*-------------------------------------------------------- |
* Infos naturalistes |
* -----------------------------------------------------*/ |
((ChampMultiValeurs) hmInfosNat.get("specialite")).peupler(personne.getString("ce_truk_specialite")); |
((ChampMultiValeursMultiTypes) hmInfosNat.get("recolte")).peupler(personne.getString("truk_recolte")); |
gererEtatActivationBouton(); |
} |
public void remplirCombobox(String idComboBox, List liste, String hashMapId) { |
HashMap hm = null; |
if (hashMapId.equals("hmIdentite")) { |
hm = hmIdentite; |
} else if (hashMapId.equals("hmAdresse")){ |
hm = hmAdresse; |
} else { |
hm = hmInfosNat; |
} |
ListStore<Valeur> store = ((ComboBox) hm.get(idComboBox)).getStore(); |
store.removeAll(); |
store.add(liste); |
((ComboBox) hm.get(idComboBox)).setStore(store); |
} |
private void gererEtatActivationBouton() { |
/* if (((Utilisateur) Registry.get(RegistreId.UTILISATEUR_COURANT)).isIdentifie() == false) { |
enregistrer.setEnabled(false); |
enregistrerEtRevenir.setEnabled(false); |
} else { |
enregistrer.setEnabled(true); |
enregistrerEtRevenir.setEnabled(true); |
}*/ |
} |
public void reinitialiserFormulaire() { |
mediateur.afficherPopinChargement(); |
mettreAJourPersonne(personneSauvegarde); |
mediateur.masquerPopinChargement(); |
} |
public void binderPersonne(Personne personne) { |
binding = new FormBinding(getFormulaire()); |
personneSelectionnee = personne; |
binding.autoBind(); |
binding.bind(personneSelectionnee); |
layout(); |
} |
/** |
* Enregistre les information de la personne en cours |
* |
*/ |
public boolean enregistrer() { |
boolean success = false; |
LinkedList lstMessageErreur = new LinkedList<String>(); |
ComboBox<Projet> cbProjets = (ComboBox<Projet>) hmIdentite.get("cbProjets"); |
Projet projet = cbProjets.getValue(); |
if (projet == null) { |
lstMessageErreur.add("Le projet n'a pas été renseigné"); |
} else { |
personneSelectionnee.set("ce_projet", projet.getId()); |
} |
String strTfNom = ((TextField<String>) hmIdentite.get("tfNom")).getValue(); |
if ((strTfNom == null)||(strTfNom.trim().equals(""))) { |
lstMessageErreur.add("Le nom n'a pas été saisi"); |
} else { |
strTfNom = UtilString.ucFirst(strTfNom); |
personneSelectionnee.set("nom", strTfNom); |
} |
String strTfPrenom = ((TextField<String>) hmIdentite.get("tfPrenom")).getValue(); |
personneSelectionnee.set("prenom", UtilString.ucFirst(strTfPrenom)); |
//Préparer les données |
ComboBox combo = (ComboBox) hmIdentite.get("cbSexe"); |
Valeur valeur; |
String strValeur = ""; |
valeur = (Valeur) combo.getValue(); |
if (valeur!=null) { |
personneSelectionnee.set("ce_sexe", valeur.getId()); |
} |
strValeur = obtenirValeurCombo("cbPrefixe"); |
personneSelectionnee.set("ce_truk_prefix", strValeur); |
strValeur = obtenirValeurCombo("cbSuffixe"); |
personneSelectionnee.set("ce_truk_suffix", strValeur); |
String nomAutre = ((ChampMultiValeurs) hmIdentite.get("nomAutre")).getValeurs(); |
personneSelectionnee.set("truk_nom_autre", nomAutre); |
String abreviationAutre = ((ChampMultiValeurs) hmIdentite.get("abreviationAutre")).getValeurs(); |
personneSelectionnee.set("truk_abreviation_autre", abreviationAutre); |
personneSelectionnee.set("truk_courriel", ((ChampMultiValeurs) hmIdentite.get("courriels")).getValeurs()); |
//Pour le nom complet, on enregistre dans la bdd la valeur du prefixe/suffixe et non l'id |
String strPrefixe = ""; |
combo = (ComboBox) hmIdentite.get("cbPrefixe"); |
valeur = (Valeur) combo.getValue(); |
if (valeur != null) { |
strPrefixe = valeur.getNom(); |
} else { |
strPrefixe = combo.getRawValue(); |
} |
String strSuffixe = ""; |
combo = (ComboBox) hmIdentite.get("cbSuffixe"); |
valeur = (Valeur) combo.getValue(); |
if (valeur != null) { |
strSuffixe = valeur.getNom() + " "; |
} else { |
strSuffixe = combo.getRawValue() +" "; |
} |
personneSelectionnee.setFmtNomComplet(strPrefixe, strSuffixe); |
DateField dfDateNaissance = (DateField) hmIdentite.get("dfDateNaissance"); |
Date naissanceDate = dfDateNaissance.getValue(); |
personneSelectionnee.setNaissanceDate(naissanceDate); |
Radio rbEstDecedee = (Radio) hmIdentite.get("rbEstDecedee"); |
if (rbEstDecedee.getValue() == true) { |
DateField dfDecesDate = (DateField) hmIdentite.get("dfDateDeces"); |
String decesLieu = ((TextField<String>) hmIdentite.get("tfLieuDeces")).getValue(); |
personneSelectionnee.setDeces(dfDecesDate.getValue(), decesLieu); |
} else { |
personneSelectionnee.setNonDecedee(); |
} |
strValeur = obtenirValeurCombo("cbPays"); |
personneSelectionnee.set("ce_truk_pays", strValeur); |
strValeur = obtenirValeurCombo("cbRegion"); |
personneSelectionnee.set("ce_truk_region", strValeur); |
personneSelectionnee.set("truk_telephone", ((ChampMultiValeursMultiTypes) hmIdentite.get("telephones")).getValeurs()); |
String logoUrls = ((ChampMultiValeursImage) hmIdentite.get("logos")).getValeurs(); |
personneSelectionnee.set("truk_logo", logoUrls); |
personneSelectionnee.set("truk_url", ((ChampMultiValeurs) hmIdentite.get("sites")).getValeurs()); |
//Infos Naturalistes |
String recolte = ((ChampMultiValeursMultiTypes) hmInfosNat.get("recolte")).getValeurs(); |
personneSelectionnee.set("truk_recolte", recolte); |
String specialite = ((ChampMultiValeurs) hmInfosNat.get("specialite")).getValeurs(); |
personneSelectionnee.set("ce_truk_specialite", specialite); |
if (lstMessageErreur.size() == 0) { |
mediateur.enregistrerPersonne(this, personneSelectionnee); |
success = true; |
} else { |
String strMessagesErreur = "<span><br />"; |
Iterator<String> itMessagesErreur = lstMessageErreur.iterator(); |
while (itMessagesErreur.hasNext()) { |
strMessagesErreur += "<br /> - " + itMessagesErreur.next(); |
} |
strMessagesErreur += "</span>"; |
MessageBox.alert("Erreurs", "Les erreurs suivantes ont été commises : \n" + strMessagesErreur, null); |
success = false; |
} |
return success; |
} |
private String obtenirValeurCombo(String strComboName) { |
String strValeur = ""; |
Valeur valeur; |
ComboBox combo = (ComboBox) hmIdentite.get(strComboName); |
if (combo == null) { |
combo = (ComboBox) hmAdresse.get(strComboName); |
} |
strValeur = combo.getRawValue(); |
valeur = (Valeur) combo.getStore().findModel(strValeur); |
if (valeur != null) { |
strValeur = valeur.getId(); |
} |
/*if (combo.getValue()!=null) { |
valeur = (Valeur) combo.getValue(); |
strValeur = valeur.getId(); |
} else { |
strValeur = combo.getRawValue(); |
}*/ |
return strValeur; |
} |
public boolean soumettreFormulaire() { |
if (verifierFormulaire()) { |
mediateur.enregistrerPersonne(this, personneSelectionnee); |
} |
return true; |
} |
public boolean verifierFormulaire() { |
boolean success = true; |
LinkedList<String> lstMessageErreur = new LinkedList<String>(); |
ComboBox<Projet> cbProjets = (ComboBox<Projet>) hmIdentite.get("cbProjets"); |
Projet projet = cbProjets.getValue(); |
if (projet == null) { |
lstMessageErreur.add("Le projet n'a pas été renseigné"); |
} else { |
personneSelectionnee.set("ce_projet", projet.getId()); |
} |
String strTfNom = ((TextField<String>) hmIdentite.get("tfNom")).getValue(); |
if ((strTfNom == null)||(strTfNom.trim().equals(""))) { |
lstMessageErreur.add("Le nom n'a pas été saisi"); |
} else { |
strTfNom = UtilString.ucFirst(strTfNom); |
personneSelectionnee.set("nom", strTfNom); |
} |
String strTfPrenom = ((TextField<String>) hmIdentite.get("tfPrenom")).getValue(); |
personneSelectionnee.set("prenom", UtilString.ucFirst(strTfPrenom)); |
//Préparer les données |
ComboBox combo = (ComboBox) hmIdentite.get("cbSexe"); |
Valeur valeur; |
String strValeur = ""; |
valeur = (Valeur) combo.getValue(); |
if (valeur!=null) { |
personneSelectionnee.set("ce_sexe", valeur.getId()); |
} |
strValeur = obtenirValeurCombo("cbPrefixe"); |
personneSelectionnee.set("ce_truk_prefix", strValeur); |
strValeur = obtenirValeurCombo("cbSuffixe"); |
personneSelectionnee.set("ce_truk_suffix", strValeur); |
String nomAutre = ((ChampMultiValeurs) hmIdentite.get("nomAutre")).getValeurs(); |
personneSelectionnee.set("truk_nom_autre", nomAutre); |
String abreviationAutre = ((ChampMultiValeurs) hmIdentite.get("abreviationAutre")).getValeurs(); |
personneSelectionnee.set("truk_abreviation_autre", abreviationAutre); |
personneSelectionnee.set("truk_courriel", ((ChampMultiValeurs) hmIdentite.get("courriels")).getValeurs()); |
//Pour le nom complet, on enregistre dans la bdd la valeur du prefixe/suffixe et non l'id |
String strPrefixe = ""; |
combo = (ComboBox) hmIdentite.get("cbPrefixe"); |
valeur = (Valeur) combo.getValue(); |
if (valeur != null) { |
strPrefixe = valeur.getNom(); |
} else { |
strPrefixe = combo.getRawValue(); |
} |
String strSuffixe = ""; |
combo = (ComboBox) hmIdentite.get("cbSuffixe"); |
valeur = (Valeur) combo.getValue(); |
if (valeur != null) { |
strSuffixe = valeur.getNom() + " "; |
} else { |
strSuffixe = combo.getRawValue() +" "; |
} |
personneSelectionnee.setFmtNomComplet(strPrefixe, strSuffixe); |
DateField dfDateNaissance = (DateField) hmIdentite.get("dfDateNaissance"); |
Date naissanceDate = dfDateNaissance.getValue(); |
personneSelectionnee.setNaissanceDate(naissanceDate); |
Radio rbEstDecedee = (Radio) hmIdentite.get("rbEstDecedee"); |
if (rbEstDecedee.getValue() == true) { |
DateField dfDecesDate = (DateField) hmIdentite.get("dfDateDeces"); |
String decesLieu = ((TextField<String>) hmIdentite.get("tfLieuDeces")).getValue(); |
personneSelectionnee.setDeces(dfDecesDate.getValue(), decesLieu); |
} else { |
personneSelectionnee.setNonDecedee(); |
} |
strValeur = obtenirValeurCombo("cbPays"); |
personneSelectionnee.set("ce_truk_pays", strValeur); |
strValeur = obtenirValeurCombo("cbRegion"); |
personneSelectionnee.set("ce_truk_region", strValeur); |
personneSelectionnee.set("truk_telephone", ((ChampMultiValeursMultiTypes) hmIdentite.get("telephones")).getValeurs()); |
String logoUrls = ((ChampMultiValeursImage) hmIdentite.get("logos")).getValeurs(); |
personneSelectionnee.set("truk_logo", logoUrls); |
personneSelectionnee.set("truk_url", ((ChampMultiValeurs) hmIdentite.get("sites")).getValeurs()); |
//Infos Naturalistes |
String recolte = ((ChampMultiValeursMultiTypes) hmInfosNat.get("recolte")).getValeurs(); |
personneSelectionnee.set("truk_recolte", recolte); |
String specialite = ((ChampMultiValeurs) hmInfosNat.get("specialite")).getValeurs(); |
personneSelectionnee.set("ce_truk_specialite", specialite); |
if (lstMessageErreur.size() != 0) { |
String strMessagesErreur = "<span><br />"; |
Iterator<String> itMessagesErreur = lstMessageErreur.iterator(); |
while (itMessagesErreur.hasNext()) { |
strMessagesErreur += "<br /> - " + itMessagesErreur.next(); |
} |
strMessagesErreur += "</span>"; |
MessageBox.alert("Erreurs", "Les erreurs suivantes ont été commises : \n" + strMessagesErreur, null); |
success = false; |
} |
return success; |
} |
} |
/trunk/src/org/tela_botanica/client/vues/publication/PublicationDetailVue.java |
---|
New file |
0,0 → 1,164 |
package org.tela_botanica.client.vues.publication; |
import org.tela_botanica.client.ComposantClass; |
import org.tela_botanica.client.ComposantId; |
import org.tela_botanica.client.Mediateur; |
import org.tela_botanica.client.interfaces.Rafraichissable; |
import org.tela_botanica.client.modeles.projet.ProjetListe; |
import org.tela_botanica.client.modeles.publication.Publication; |
import org.tela_botanica.client.vues.collection.DetailVue; |
import com.extjs.gxt.ui.client.util.Format; |
import com.extjs.gxt.ui.client.util.Params; |
import com.extjs.gxt.ui.client.widget.ContentPanel; |
import com.extjs.gxt.ui.client.widget.Html; |
import com.extjs.gxt.ui.client.widget.layout.FitLayout; |
import com.google.gwt.core.client.GWT; |
public class PublicationDetailVue extends DetailVue implements Rafraichissable { |
private String enteteTpl = null; |
private String contenuTpl = null; |
private ContentPanel panneauPrincipal = null; |
private Html entete = null; |
private Html contenu = null; |
private Publication publication = null; |
private boolean publicationChargementOk = false; |
public PublicationDetailVue(Mediateur mediateurCourant) { |
super(mediateurCourant); |
initialiserTousLesTpl(); |
panneauPrincipal = new ContentPanel(); |
panneauPrincipal.setLayout(new FitLayout()); |
panneauPrincipal.setHeaderVisible(false); |
panneauPrincipal.setBodyBorder(false); |
entete = new Html(); |
entete.setId(ComposantId.ZONE_DETAIL_ENTETE); |
panneauPrincipal.setTopComponent(entete); |
contenu = new Html(); |
panneauPrincipal.add(contenu); |
add(panneauPrincipal); |
} |
private void initialiserTousLesTpl() { |
initialiserEnteteHtmlTpl(); |
initialiserGeneralTpl(); |
} |
private void initialiserEnteteHtmlTpl() { |
enteteTpl = |
"<div id='{css_id}'>"+ |
" <h1>{titre}</h1>"+ |
" <h2>{auteurs} ({annee})<span class='{css_meta}'>{projet} <br /> {i18n_id}:{id} - {guid}</span></h2>" + |
"</div>"; |
} |
private void initialiserGeneralTpl() { |
contenuTpl = |
"<div class='{css_corps}'>"+ |
" <div class='{css_fieldset}'>"+ |
" <h2>{i18n_titre_detail}</h2>"+ |
" <span class='{css_label}'>{i18n_auteurs} :</span> {auteurs}<br />"+ |
" <span class='{css_label}'>{i18n_titre} :</span> {titre}<br />"+ |
" <span class='{css_label}'>{i18n_collection} :</span> {collection}<br />"+ |
" <span class='{css_label}'>{i18n_editeur} :</span> {editeur}<br />"+ |
" <span class='{css_label}'>{i18n_annee} :</span> {annee}<br />"+ |
" <span class='{css_label}'>{i18n_nvt} :</span> {nvt}<br />"+ |
" <span class='{css_label}'>{i18n_fascicule} :</span> {fascicule}<br />"+ |
" <span class='{css_label}'>{i18n_pages} :</span> {pages}<br />"+ |
" </div>"+ |
" <hr class='{css_clear}'/>"+ |
"</div>"; |
} |
public void afficherDetail() { |
if (publication != null) { |
afficherEntete(); |
afficherDetailPublication(); |
} |
layout(); |
} |
private void afficherEntete() { |
Params enteteParams = new Params(); |
enteteParams.set("css_id", ComposantId.ZONE_DETAIL_ENTETE); |
enteteParams.set("css_meta", ComposantClass.META); |
enteteParams.set("i18n_id", i18nC.id()); |
enteteParams.set("titre", publication.getTitre()); |
enteteParams.set("auteurs", publication.getAuteur()); |
enteteParams.set("annee", publication.getAnneeParution()); |
enteteParams.set("id", publication.getId()); |
enteteParams.set("guid", getGuid()); |
enteteParams.set("projet", construireTxtProjet(publication.getIdProjet())); |
GWT.log("entete généré", null); |
String eHtml = Format.substitute(enteteTpl, enteteParams); |
entete.getElement().setInnerHTML(eHtml); |
} |
public String getGuid() { |
String guid = "URN:tela-botanica.org:"; |
guid += "coel"+publication.getIdProjet()+":"; |
guid += "pub"+publication.getId(); |
return guid; |
} |
public void afficherDetailPublication() { |
Params contenuParams = new Params(); |
contenuParams.set("i18n_titre_detail", i18nC.publicationTitre()); |
contenuParams.set("i18n_auteurs", i18nC.publicationAuteurs()); |
contenuParams.set("i18n_titre", i18nC.publicationTitre()); |
contenuParams.set("i18n_collection", i18nC.publicationRevueCollection()); |
contenuParams.set("i18n_editeur", i18nC.publicationEditeur()); |
contenuParams.set("i18n_annee", i18nC.publicationDateParution()); |
contenuParams.set("i18n_nvt", i18nC.publicationNvt()); |
contenuParams.set("i18n_fascicule", i18nC.publicationFascicule()); |
contenuParams.set("i18n_pages", i18nC.publicationPage()); |
contenuParams.set("auteurs", publication.getAuteur()); |
contenuParams.set("titre", publication.getTitre()); |
contenuParams.set("collection", publication.getCollection()); |
contenuParams.set("editeur", publication.getNomEditeur()); |
contenuParams.set("annee", publication.getAnneeParution()); |
contenuParams.set("nvt", publication.getIndicationNvt()); |
contenuParams.set("fascicule", publication.getFascicule()); |
contenuParams.set("pages", publication.getPages()); |
String gHtml = formaterContenu(contenuTpl, contenuParams); |
contenu.getElement().setInnerHTML(gHtml); |
} |
public void rafraichir(Object nouvellesDonnees) { |
if (nouvellesDonnees instanceof Publication) { |
publication = (Publication) nouvellesDonnees; |
publicationChargementOk = true; |
} else if (nouvellesDonnees instanceof ProjetListe) { |
projets = (ProjetListe) nouvellesDonnees; |
projetsChargementOk = true; |
GWT.log("projets recu", null); |
} else { |
GWT.log(Mediateur.i18nM.erreurRafraichir(nouvellesDonnees.getClass(), this.getClass()), null); |
} |
if (avoirDonneesChargees()) { |
afficherDetail(); |
} |
} |
private boolean avoirDonneesChargees() { |
boolean ok = false; |
if (projetsChargementOk && publicationChargementOk) { |
ok = true; |
} |
return ok; |
} |
} |
/trunk/src/org/tela_botanica/client/vues/publication/PublicationForm.java |
---|
New file |
0,0 → 1,685 |
package org.tela_botanica.client.vues.publication; |
import java.util.ArrayList; |
import java.util.Iterator; |
import java.util.List; |
import org.tela_botanica.client.Mediateur; |
import org.tela_botanica.client.images.Images; |
import org.tela_botanica.client.interfaces.Rafraichissable; |
import org.tela_botanica.client.modeles.Information; |
import org.tela_botanica.client.modeles.MenuApplicationId; |
import org.tela_botanica.client.modeles.personne.Personne; |
import org.tela_botanica.client.modeles.personne.PersonneListe; |
import org.tela_botanica.client.modeles.publication.Publication; |
import org.tela_botanica.client.modeles.publication.PublicationAPersonne; |
import org.tela_botanica.client.modeles.publication.PublicationAPersonneListe; |
import org.tela_botanica.client.modeles.structure.Structure; |
import org.tela_botanica.client.modeles.structure.StructureListe; |
import org.tela_botanica.client.util.Pattern; |
import org.tela_botanica.client.util.UtilArray; |
import org.tela_botanica.client.util.UtilString; |
import org.tela_botanica.client.vues.Formulaire; |
import com.extjs.gxt.ui.client.event.ButtonEvent; |
import com.extjs.gxt.ui.client.event.SelectionListener; |
import com.extjs.gxt.ui.client.store.ListStore; |
import com.extjs.gxt.ui.client.widget.HorizontalPanel; |
import com.extjs.gxt.ui.client.widget.LayoutContainer; |
import com.extjs.gxt.ui.client.widget.MessageBox; |
import com.extjs.gxt.ui.client.widget.button.Button; |
import com.extjs.gxt.ui.client.widget.form.ComboBox; |
import com.extjs.gxt.ui.client.widget.form.FieldSet; |
import com.extjs.gxt.ui.client.widget.form.TextField; |
import com.extjs.gxt.ui.client.widget.form.ComboBox.TriggerAction; |
import com.extjs.gxt.ui.client.widget.layout.FlowLayout; |
import com.extjs.gxt.ui.client.widget.layout.FormData; |
import com.extjs.gxt.ui.client.widget.layout.FormLayout; |
import com.google.gwt.core.client.GWT; |
public class PublicationForm extends Formulaire implements Rafraichissable { |
private Publication publication; |
private PublicationAPersonneListe publicationAPersonneListe = null; |
private static boolean publicationAPersonneListeChargementOk = false; |
private PublicationAPersonneListe auteursAjoutes = null; |
private PublicationAPersonneListe auteursSupprimes = null; |
private FieldSet auteursFieldset = null; |
private ArrayList<ComboBox<Personne>> auteurComboboxListe = null; |
private LayoutContainer conteneurChamps; |
private ListStore<Personne> auteursStorePartage = null; |
private static boolean auteurStorePartageChargementOk = false; |
private FieldSet generalitesFieldset = null; |
private TextField<String> titreChp = null; |
private TextField<String> collectionChp = null; |
private TextField<String> uriChp = null; |
private FieldSet editionFieldset = null; |
private ComboBox<Structure> editeurCombobox = null; |
private TextField<String> datePublicationChp = null; |
private TextField<String> tomeChp = null; |
private TextField<String> fasciculeChp = null; |
private TextField<String> pagesChp = null; |
private String idStructureEdition = ""; |
private static boolean formulaireValideOk = false; |
private static boolean publicationValideOk = false; |
private static boolean auteursValideOk = false; |
private static boolean attenteAjoutAuteursOk = true; |
private static boolean attenteSuppressionAuteursOk = true; |
public PublicationForm(Mediateur mediateurCourrant, String publicationId) { |
initialiserPublicationForm(mediateurCourrant, publicationId); |
} |
public PublicationForm(Mediateur mediateurCourrant, String publicationId, Rafraichissable vueARafraichirApresValidation) { |
vueExterneARafraichirApresValidation = vueARafraichirApresValidation; |
initialiserPublicationForm(mediateurCourrant, publicationId); |
} |
private void initialiserPublicationForm(Mediateur mediateurCourrant, String publicationId) { |
publicationAPersonneListe = new PublicationAPersonneListe(); |
initialiserValidation(); |
initialiserAffichageAuteurs(); |
publication = new Publication(); |
publication.setId(publicationId); |
String modeDeCreation = (UtilString.isEmpty(publication.getId()) ? Formulaire.MODE_AJOUTER : Formulaire.MODE_MODIFIER); |
initialiserFormulaire(mediateurCourrant, modeDeCreation, MenuApplicationId.PUBLICATION); |
panneauFormulaire.setLayout(new FlowLayout()); |
String titre = genererTitreFormulaire(); |
panneauFormulaire.setHeading(titre); |
creerZoneAuteurs(); |
panneauFormulaire.add(auteursFieldset); |
creerZoneGeneralites(); |
panneauFormulaire.add(generalitesFieldset); |
creerZoneEdition(); |
panneauFormulaire.add(editionFieldset); |
if (modeDeCreation.equals(Formulaire.MODE_MODIFIER)) { |
mediateurCourrant.selectionnerPublication(this, publicationId); |
mediateurCourrant.selectionnerPublicationAPersonne(this, publicationId, null, PublicationAPersonne.ROLE_AUTEUR); |
} |
} |
private String genererTitreFormulaire() { |
String titre = "Ajout d'une publication"; |
if (mode.equals(Formulaire.MODE_MODIFIER)) { |
titre = "Modification d'une publication - "+i18nC.id()+": "+publication.getId(); |
} |
return titre; |
} |
private void creerZoneAuteurs() { |
FormLayout layout = new FormLayout(); |
layout.setLabelWidth(200); |
// Fieldset Auteur |
auteursFieldset = new FieldSet(); |
auteursFieldset.setHeading("Auteur(s)"); |
auteursFieldset.setCollapsible(true); |
auteursFieldset.setLayout(layout); |
auteurComboboxListe = new ArrayList<ComboBox<Personne>>(0); |
auteursStorePartage = new ListStore<Personne>(); |
mediateur.clicObtenirListeAuteurs(this); |
creerChampsAuteur(); |
} |
private void creerChampsAuteur() { |
auteursFieldset.removeAll(); |
conteneurChamps = new LayoutContainer(); |
Button ajouterAuteurBouton = new Button("Ajouter un auteur"); |
ajouterAuteurBouton.setIcon(Images.ICONES.ajouter()); |
ajouterAuteurBouton.addSelectionListener(new SelectionListener<ButtonEvent>() { |
@Override |
public void componentSelected(ButtonEvent be) { |
creerChampAuteurEtBoutonSupprimer(null); |
} |
}); |
auteursFieldset.add(conteneurChamps); |
auteursFieldset.add(ajouterAuteurBouton); |
auteursFieldset.layout(true); |
if (mode.equals(Formulaire.MODE_AJOUTER)) { |
creerChampAuteurEtBoutonSupprimer(null); |
} |
} |
public void creerChampAuteurEtBoutonSupprimer(Personne auteur) { |
final HorizontalPanel panneauHorizontal = new HorizontalPanel(); |
panneauHorizontal.setLayout(new FormLayout()); |
final ComboBox<Personne> auteursSaisisComboBox = creerComboBoxAuteursSaisis(); |
if (auteur != null) { |
GWT.log("Auteur peuplé : "+auteur.getId(), null); |
auteursSaisisComboBox.setValue(auteursStorePartage.findModel("id_personne", auteur.getId())); |
auteursSaisisComboBox.validate(); |
} |
auteurComboboxListe.add(auteursSaisisComboBox); |
auteursSaisisComboBox.setFieldLabel("Auteur "+auteurComboboxListe.size()); |
GWT.log("Nbre de combobox auteur dans liste : "+auteurComboboxListe.size(), null); |
LayoutContainer panneauChampTxtEtBouton = new LayoutContainer(); |
panneauChampTxtEtBouton.setLayout(new FormLayout()); |
panneauChampTxtEtBouton.add(auteursSaisisComboBox, new FormData(300, 0)); |
panneauHorizontal.add(panneauChampTxtEtBouton); |
Button supprimerAuteurBouton = new Button(); |
supprimerAuteurBouton.setIcon(Images.ICONES.supprimer()); |
supprimerAuteurBouton.setToolTip(i18nC.supprimer()); |
supprimerAuteurBouton.addSelectionListener(new SelectionListener<ButtonEvent>() { |
@Override |
public void componentSelected(ButtonEvent be) { |
auteurComboboxListe.remove(auteursSaisisComboBox); |
conteneurChamps.remove(panneauHorizontal); |
int numeroAuteurs = 1; |
for (Iterator<ComboBox<Personne>> it = auteurComboboxListe.iterator(); it.hasNext();) { |
it.next().setFieldLabel("Auteur "+numeroAuteurs); |
numeroAuteurs++; |
} |
auteursFieldset.layout(true); |
} |
}); |
panneauHorizontal.add(supprimerAuteurBouton); |
conteneurChamps.add(panneauHorizontal); |
auteursFieldset.layout(true); |
} |
private ComboBox<Personne> creerComboBoxAuteursSaisis() { |
ComboBox<Personne> comboBox = new ComboBox<Personne>(); |
comboBox.setEmptyText(i18nC.chercherPersonneSaisi()); |
comboBox.setEditable(true); |
comboBox.setForceSelection(true); |
comboBox.setDisplayField("fmt_nom_complet"); |
comboBox.setTriggerAction(TriggerAction.ALL); |
comboBox.setStore(auteursStorePartage); |
return comboBox; |
} |
private void creerZoneGeneralites() { |
FormLayout layout = new FormLayout(); |
layout.setLabelWidth(200); |
// Fieldset Infos Générales |
generalitesFieldset = new FieldSet(); |
generalitesFieldset.setHeading("Informations générales"); |
generalitesFieldset.setCollapsible(true); |
generalitesFieldset.setLayout(layout); |
titreChp = new TextField<String>(); |
titreChp.setName("cpu"); |
titreChp.setFieldLabel("Titre de l'article ou de l'ouvrage"); |
generalitesFieldset.add(titreChp, new FormData(450, 0)); |
collectionChp = new TextField<String>(); |
collectionChp.setFieldLabel("Intitulé de la revue ou de la collection"); |
generalitesFieldset.add(collectionChp, new FormData(450, 0)); |
uriChp = new TextField<String>(); |
uriChp.setFieldLabel("URL de la publication"); |
generalitesFieldset.add(uriChp, new FormData(450, 0)); |
} |
private void creerZoneEdition() { |
FormLayout layout = new FormLayout(); |
layout.setLabelWidth(200); |
// Fieldset Edition |
editionFieldset = new FieldSet(); |
editionFieldset.setHeading("Édition"); |
editionFieldset.setCollapsible(true); |
editionFieldset.setLayout(layout); |
ListStore<Structure> editeurStore = new ListStore<Structure>(); |
editeurCombobox = new ComboBox<Structure>(); |
editeurCombobox.setEmptyText("Sélectionner un éditeur..."); |
editeurCombobox.setFieldLabel("Éditeur de la publication"); |
editeurCombobox.setDisplayField("nom"); |
editeurCombobox.setStore(editeurStore); |
editeurCombobox.setEditable(true); |
editeurCombobox.setTriggerAction(TriggerAction.ALL); |
editionFieldset.add(editeurCombobox, new FormData(450, 0)); |
mediateur.clicObtenirListeEditeurs(this); |
datePublicationChp = new TextField<String>(); |
datePublicationChp.setMaxLength(4); |
datePublicationChp.setMinLength(4); |
datePublicationChp.setFieldLabel("Année de publication"); |
editionFieldset.add(datePublicationChp, new FormData(40, 0)); |
tomeChp = new TextField<String>(); |
tomeChp.setFieldLabel("Série de la revue ou tome"); |
editionFieldset.add(tomeChp, new FormData(75, 0)); |
fasciculeChp = new TextField<String>(); |
fasciculeChp.setFieldLabel("Fascicule de la revue"); |
editionFieldset.add(fasciculeChp, new FormData(75, 0)); |
pagesChp = new TextField<String>(); |
pagesChp.setFieldLabel("Pages"); |
pagesChp.setToolTip("Fomat : NBRE ou NBRE-NBRE. ('NBRE' correspond à une suite de chiffres arabes ou romains ou à un point d'interrogation '?' dans le cas d'une donnée inconnue)"); |
editionFieldset.add(pagesChp, new FormData(100, 0)); |
} |
public void rafraichir(Object nouvellesDonnees) { |
if (nouvellesDonnees instanceof Publication) { |
// Si on a reçu les details d'une publication |
rafraichirPublication((Publication) nouvellesDonnees); |
} else if (nouvellesDonnees instanceof StructureListe) { |
// Si on a reçu une liste des editeurs |
rafraichirListeEditeurs((StructureListe) nouvellesDonnees); |
} else if (nouvellesDonnees instanceof PublicationAPersonneListe) { |
rafraichirListeAuteurs((PublicationAPersonneListe) nouvellesDonnees); |
} else if (nouvellesDonnees instanceof Information) { |
rafraichirInformation((Information) nouvellesDonnees); |
} else { |
GWT.log(Mediateur.i18nM.erreurRafraichir(nouvellesDonnees.getClass(), this.getClass()), null); |
} |
if (etrePretAAfficherAuteurs()) { |
initialiserAffichageAuteurs(); |
afficherAuteurs(); |
} |
if (etreValide()) { |
initialiserValidation(); |
repandreRafraichissement(); |
controlerFermetureApresRafraichissement(); |
} |
} |
private void miseAJourPublicationAPersonneListe() { |
GWT.log("Mise à jour liste publication à personne", null); |
Iterator<String> clesAjoutees = auteursAjoutes.keySet().iterator(); |
while (clesAjoutees.hasNext()) { |
String id = clesAjoutees.next(); |
publicationAPersonneListe.put(id, auteursAjoutes.get(id)); |
GWT.log("Auteurs ajouté :"+publicationAPersonneListe.get(id).getPersonne().getNomComplet(), null); |
} |
Iterator<String> clesSupprimees = auteursSupprimes.keySet().iterator(); |
while (clesSupprimees.hasNext()) { |
String id = clesSupprimees.next(); |
publicationAPersonneListe.remove(id); |
GWT.log("Personne surpprimé :"+id, null); |
} |
GWT.log("Nbre auteurs après maj :"+publicationAPersonneListe.size(), null); |
} |
private void rafraichirPublication(Publication publi) { |
publication = publi; |
peuplerFormulaire(); |
} |
private void rafraichirListeEditeurs(StructureListe editeurs) { |
editeurCombobox.getStore().removeAll(); |
editeurCombobox.getStore().add((List<Structure>) editeurs.toList()); |
if (mode.equals(Formulaire.MODE_MODIFIER)) { |
editeurCombobox.setValue((Structure) editeurs.get(idStructureEdition)); |
} |
editeurCombobox.expand(); |
} |
private void rafraichirListeAuteurs(PublicationAPersonneListe auteurs) { |
publicationAPersonneListe = auteurs; |
publicationAPersonneListeChargementOk = true; |
} |
private void rafraichirInformation(Information info) { |
if (info.getType().equals("liste_personne")) { |
PersonneListe listePersonneAuteur = (PersonneListe) info.getDonnee(0); |
List<Personne> liste = listePersonneAuteur.toList(); |
auteursStorePartage.removeAll(); |
auteursStorePartage.add(liste); |
auteurStorePartageChargementOk = true; |
} else if (info.getType().equals("publication_valide")) { |
publicationValideOk = true; |
publication.setId((String) info.getDonnee(0)); |
if (mode.equals(Formulaire.MODE_AJOUTER)) { |
attenteAjoutAuteursOk = true; |
mediateur.ajouterPublicationAPersonne(this, publication.getId(), auteursAjoutes, PublicationAPersonne.ROLE_AUTEUR); |
} |
} else if (info.getType().equals("ajout_publication_a_personne")) { |
attenteAjoutAuteursOk = false; |
GWT.log("attenteAjoutAuteursOk", null); |
} else if (info.getType().equals("suppression_publication_a_personne")) { |
attenteSuppressionAuteursOk = false; |
GWT.log("attenteSuppressionAuteursOk", null); |
} |
if (avoirAuteursMiseAJourCorrectement()) { |
auteursValideOk = true; |
miseAJourPublicationAPersonneListe(); |
initialiserAuteurs(); |
} |
} |
private boolean avoirAuteursMiseAJourCorrectement() { |
boolean ok = false; |
if (attenteAjoutAuteursOk == false && attenteSuppressionAuteursOk == false) { |
ok = true; |
} |
return ok; |
} |
private void afficherAuteurs() { |
Iterator<String> itap = publicationAPersonneListe.keySet().iterator(); |
GWT.log("Auteur"+publicationAPersonneListe.size(), null); |
while (itap.hasNext()) { |
creerChampAuteurEtBoutonSupprimer(publicationAPersonneListe.get(itap.next()).getPersonne()); |
} |
} |
private void initialiserAffichageAuteurs() { |
auteurStorePartageChargementOk = false; |
publicationAPersonneListeChargementOk = false; |
} |
private boolean etrePretAAfficherAuteurs() { |
boolean ok = false; |
if (auteurStorePartageChargementOk && publicationAPersonneListeChargementOk) { |
ok = true; |
} |
return ok; |
} |
private Boolean etreValide() { |
Boolean valide = false; |
GWT.log("formulaire"+formulaireValideOk+" - Publication :"+publicationValideOk+" - Auteurs :"+auteursValideOk, null); |
if (formulaireValideOk && publicationValideOk && auteursValideOk) { |
valide = true; |
} |
return valide; |
} |
private void initialiserValidation() { |
formulaireValideOk = false; |
publicationValideOk = false; |
initialiserAuteurs(); |
auteursValideOk = false; |
} |
private void initialiserAuteurs() { |
attenteAjoutAuteursOk = true; |
auteursAjoutes = new PublicationAPersonneListe(); |
attenteSuppressionAuteursOk = true; |
auteursSupprimes = new PublicationAPersonneListe(); |
} |
private void repandreRafraichissement() { |
if (vueExterneARafraichirApresValidation != null) { |
String type = "publication_modifiee"; |
if (mode.equals(Formulaire.MODE_AJOUTER)) { |
type = "publication_ajoutee"; |
} |
Information info = new Information(type); |
info.setDonnee(0, publication); |
vueExterneARafraichirApresValidation.rafraichir(info); |
} |
} |
public boolean soumettreFormulaire() { |
formulaireValideOk = verifierFormulaire(); |
GWT.log("Form?"+formulaireValideOk, null); |
if (formulaireValideOk) { |
soumettrePublication(); |
soumettreAuteurs(); |
} |
return formulaireValideOk; |
} |
private void soumettrePublication() { |
Publication publicationCollectee = collecterPublication(); |
if (publicationCollectee != null) { |
GWT.log("Info public collectée ? ok", null); |
if (mode.equals(Formulaire.MODE_AJOUTER)) { |
mediateur.ajouterPublication(this, publicationCollectee); |
} else if (mode.equals(Formulaire.MODE_MODIFIER)) { |
mediateur.modifierPublication(this, publicationCollectee); |
} |
} |
} |
private void soumettreAuteurs() { |
attenteAjoutAuteursOk = false; |
attenteSuppressionAuteursOk = false; |
PersonneListe personnesInitiales = new PersonneListe(); |
if (publicationAPersonneListe != null) { |
GWT.log("Nbre auteur initial :"+publicationAPersonneListe.size(), null); |
Iterator<String> itap = publicationAPersonneListe.keySet().iterator(); |
while (itap.hasNext()) { |
Personne personne = publicationAPersonneListe.get(itap.next()).getPersonne(); |
GWT.log("Auteur initial :"+personne.getNomComplet(), null); |
personnesInitiales.put(personne.getId(), personne); |
} |
} |
PersonneListe personnesActuelles = new PersonneListe(); |
GWT.log("Nbre auteur actuel :"+auteurComboboxListe.size(), null); |
for (int i = 0; i < auteurComboboxListe.size(); i++) { |
if (auteurComboboxListe.get(i).getValue() != null) { |
Personne personne = auteurComboboxListe.get(i).getValue(); |
personnesActuelles.put(personne.getId(), personne); |
} |
} |
// Auteurs ajoutés |
Iterator<String> clesActuelles = personnesActuelles.keySet().iterator(); |
while (clesActuelles.hasNext()) { |
String idActuel = clesActuelles.next(); |
if (personnesInitiales.size() == 0 || personnesInitiales.get(idActuel) == null) { |
Personne personne = personnesActuelles.get(idActuel); |
GWT.log("Auteur ajouté :"+personne.getNomComplet(), null); |
PublicationAPersonne publicationAAuteur = new PublicationAPersonne(); |
if (mode.equals(Formulaire.MODE_MODIFIER)) { |
publicationAAuteur.setIdPublication(publication.getId()); |
} |
publicationAAuteur.setPersonne(personne); |
publicationAAuteur.setIdRole(PublicationAPersonne.ROLE_AUTEUR); |
auteursAjoutes.put(publicationAAuteur.getId(), publicationAAuteur); |
attenteAjoutAuteursOk = true; |
} |
} |
// Auteurs supprimés |
if (mode.equals(Formulaire.MODE_MODIFIER)) { |
Iterator<String> clesInitiales = personnesInitiales.keySet().iterator(); |
while (clesInitiales.hasNext()) { |
String idInitial = clesInitiales.next(); |
if (personnesActuelles.size() == 0 || personnesActuelles.get(idInitial) == null) { |
Personne personne = personnesInitiales.get(idInitial); |
GWT.log("Auteur supprimé :"+personne.getNomComplet(), null); |
PublicationAPersonne publicationAAuteur = new PublicationAPersonne(); |
publicationAAuteur.setIdPublication(publication.getId()); |
publicationAAuteur.setPersonne(personne); |
publicationAAuteur.setIdRole(PublicationAPersonne.ROLE_AUTEUR); |
auteursSupprimes.put(publicationAAuteur.getId(), publicationAAuteur); |
attenteSuppressionAuteursOk = true; |
} |
} |
} |
// Execution de les mise à jour pour le mode MODIFICATION |
if (mode.equals(Formulaire.MODE_MODIFIER)) { |
if (auteursAjoutes != null && auteursAjoutes.size() != 0) { |
mediateur.ajouterPublicationAPersonne(this, publication.getId(), auteursAjoutes, PublicationAPersonne.ROLE_AUTEUR); |
} |
if (auteursSupprimes != null && auteursSupprimes.size() != 0) { |
mediateur.supprimerPublicationAPersonne(this, auteursSupprimes); |
} |
} |
} |
public boolean verifierFormulaire() { |
boolean valide = true; |
ArrayList<String> messages = new ArrayList<String>(); |
boolean auteurErreur = true; |
for (int i = 0; i < auteurComboboxListe.size(); i++) { |
if (auteurComboboxListe.get(i).getValue() != null) { |
auteurErreur = false; |
break; |
} |
} |
if (auteurErreur) { |
messages.add("Veuillez saisir au moins un auteur !"); |
} |
String titre = titreChp.getValue(); |
if (titre == null || titre.equals("")) { |
messages.add("Veuillez saisir le titre de la publication !"); |
} |
String uri = uriChp.getValue(); |
if (uri != null && ! uri.isEmpty() && ! uri.matches(Pattern.url)) { |
messages.add("L'URL saisie n'est pas valide !"); |
} |
String datePublication = datePublicationChp.getRawValue(); |
if (datePublication == null || datePublication.equals("")) { |
messages.add("Veuillez saisir une année de parution !"); |
} else { |
if (!etreDateValide(datePublication)) { |
messages.add("Le format de l'année saisie est incorrect !"); |
} |
} |
String pages = pagesChp.getValue(); |
String valeurPage = "(?:[0-9]+|[IVXLCDM]+|\\?)"; |
if (pages != null && ! pages.matches("^(?:"+valeurPage+"|"+valeurPage+"-"+valeurPage+")$")) { |
messages.add("Le format des pages est incorrect !"); |
} |
if (messages.size() != 0) { |
String[] tableauDeMessages = {}; |
tableauDeMessages = messages.toArray(tableauDeMessages); |
MessageBox.alert("Erreurs de saisies", UtilArray.implode(tableauDeMessages, "<br />"), null); |
valide = false; |
} |
return valide; |
} |
private void peuplerFormulaire() { |
creerChampsAuteur(); |
titreChp.setValue(publication.getTitre()); |
collectionChp.setValue(publication.getCollection()); |
uriChp.setValue(publication.getURI()); |
datePublicationChp.setRawValue(reduireDateParAnnee(publication.getDateParution())); |
tomeChp.setValue(publication.getIndicationNvt()); |
fasciculeChp.setValue(publication.getFascicule()); |
pagesChp.setValue(publication.getPages()); |
if (publication.getEditeur().matches("^[0-9]+$")) { |
editeurCombobox.setValue(editeurCombobox.getStore().findModel("id_structure", publication.getEditeur())); |
idStructureEdition = publication.getEditeur(); |
} else { |
editeurCombobox.setRawValue(publication.getEditeur()); |
} |
} |
private Publication collecterPublication() { |
Publication publicationCollectee = (Publication) publication.cloner(new Publication()); |
String auteurIntituleFormate = ""; |
int auteursNombre = auteurComboboxListe.size(); |
for (int i = 0; i < auteursNombre; i++) { |
if (auteurComboboxListe.get(i).getValue() != null) { |
Personne auteur = auteurComboboxListe.get(i).getValue(); |
auteurIntituleFormate += auteur.getNom()+ " "+auteur.getPrenom(); |
if (i != (auteursNombre - 1)) { |
auteurIntituleFormate += ", "; |
} |
} |
} |
GWT.log("Auteurs formaté :"+auteurIntituleFormate, null); |
publicationCollectee.setAuteur(auteurIntituleFormate); |
String titre = titreChp.getValue(); |
publicationCollectee.setTitre(titre); |
String collection = collectionChp.getValue(); |
publicationCollectee.setCollection(collection); |
String nomComplet = titreChp.getValue()+" "+collectionChp.getValue(); |
publicationCollectee.setNomComplet(nomComplet); |
String uri = uriChp.getValue(); |
publicationCollectee.setUri(uri); |
String editeur = ""; |
if (editeurCombobox.getValue() != null) { |
editeur = editeurCombobox.getValue().getId(); |
publicationCollectee.setStructureEditeur(editeurCombobox.getValue()); |
} else if (editeurCombobox.getRawValue() != "") { |
editeur = editeurCombobox.getRawValue(); |
} |
publicationCollectee.setEditeur(editeur); |
String anneePublication = datePublicationChp.getRawValue(); |
String datePublication = anneePublication+"-00-00"; |
publicationCollectee.setDateParution(datePublication); |
String tome = tomeChp.getValue(); |
publicationCollectee.setIndicationNvt(tome); |
String fascicule = fasciculeChp.getValue(); |
publicationCollectee.setFascicule(fascicule); |
String pages = pagesChp.getValue(); |
publicationCollectee.setPages(pages); |
Publication publicationARetourner = null; |
if (!publicationCollectee.comparer(publication)) { |
publicationARetourner = publication = publicationCollectee; |
} |
return publicationARetourner; |
} |
public void reinitialiserFormulaire() { |
if (mode.equals(Formulaire.MODE_MODIFIER)) { |
mediateur.afficherFormPublication(publication.getId()); |
} else { |
mediateur.afficherFormPublication(null); |
} |
} |
private boolean etreDateValide(String anneePublication) { |
boolean valide = true; |
if (!anneePublication.matches("^[0-2][0-9]{3}$")) { |
valide = false; |
} |
return valide; |
} |
private String reduireDateParAnnee(String datePar) { |
if (datePar.matches("^[0-2][0-9]{3}(-[0-9]{2}){2}$")) { |
return datePar.split("-")[0]; |
} else { |
return ""; |
} |
} |
} |
Property changes: |
Added: svn:executable |
+* |
\ No newline at end of property |
/trunk/src/org/tela_botanica/client/vues/publication/PublicationVue.java |
---|
New file |
0,0 → 1,54 |
package org.tela_botanica.client.vues.publication; |
import org.tela_botanica.client.ComposantId; |
import org.tela_botanica.client.Mediateur; |
import org.tela_botanica.client.interfaces.Rafraichissable; |
import org.tela_botanica.client.modeles.Information; |
import org.tela_botanica.client.modeles.publication.Publication; |
import org.tela_botanica.client.modeles.publication.PublicationAPersonneListe; |
import org.tela_botanica.client.modeles.publication.PublicationListe; |
import org.tela_botanica.client.util.Debug; |
import com.extjs.gxt.ui.client.Style.LayoutRegion; |
import com.extjs.gxt.ui.client.util.Margins; |
import com.extjs.gxt.ui.client.widget.LayoutContainer; |
import com.extjs.gxt.ui.client.widget.layout.BorderLayout; |
import com.extjs.gxt.ui.client.widget.layout.BorderLayoutData; |
import com.google.gwt.core.client.GWT; |
public class PublicationVue extends LayoutContainer implements Rafraichissable { |
private Mediateur mediateur = null; |
private PublicationListeVue panneauPublicationListe; |
private PublicationDetailVue panneauPublicationDetail; |
public PublicationVue(Mediateur mediateurCourant) { |
mediateur = mediateurCourant; |
BorderLayout layout = new BorderLayout(); |
layout.setEnableState(false); |
setLayout(layout); |
panneauPublicationListe = new PublicationListeVue(mediateur); |
add(panneauPublicationListe, new BorderLayoutData(LayoutRegion.CENTER)); |
panneauPublicationDetail = new PublicationDetailVue(mediateur); |
BorderLayoutData southData = new BorderLayoutData(LayoutRegion.SOUTH, .5f, 200, 1000); |
southData.setSplit(true); |
southData.setMargins(new Margins(5, 0, 0, 0)); |
add(panneauPublicationDetail, southData); |
setId(ComposantId.PANNEAU_PUBLICATION_LISTE); |
} |
public void rafraichir(Object nouvellesDonnees) { |
if (nouvellesDonnees instanceof Publication) { |
panneauPublicationDetail.rafraichir(nouvellesDonnees); |
} else if (nouvellesDonnees instanceof PublicationListe) { |
panneauPublicationListe.rafraichir(nouvellesDonnees); |
} else if (nouvellesDonnees instanceof Information) { |
panneauPublicationListe.rafraichir(nouvellesDonnees); |
} else { |
GWT.log(Mediateur.i18nM.erreurRafraichir(nouvellesDonnees.getClass(), this.getClass()), null); |
} |
} |
} |
/trunk/src/org/tela_botanica/client/vues/publication/PublicationListeVue.java |
---|
New file |
0,0 → 1,226 |
package org.tela_botanica.client.vues.publication; |
import java.util.ArrayList; |
import java.util.Iterator; |
import java.util.List; |
import org.tela_botanica.client.Mediateur; |
import org.tela_botanica.client.RegistreId; |
import org.tela_botanica.client.i18n.Constantes; |
import org.tela_botanica.client.images.Images; |
import org.tela_botanica.client.interfaces.Rafraichissable; |
import org.tela_botanica.client.modeles.Information; |
import org.tela_botanica.client.modeles.Utilisateur; |
import org.tela_botanica.client.modeles.publication.Publication; |
import org.tela_botanica.client.modeles.publication.PublicationAPersonneListe; |
import org.tela_botanica.client.modeles.publication.PublicationListe; |
import org.tela_botanica.client.util.Debug; |
import com.extjs.gxt.ui.client.Registry; |
import com.extjs.gxt.ui.client.Style.SortDir; |
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.ContentPanel; |
import com.extjs.gxt.ui.client.widget.Info; |
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.ColumnData; |
import com.extjs.gxt.ui.client.widget.grid.ColumnModel; |
import com.extjs.gxt.ui.client.widget.grid.Grid; |
import com.extjs.gxt.ui.client.widget.grid.GridCellRenderer; |
import com.extjs.gxt.ui.client.widget.grid.GridSelectionModel; |
import com.extjs.gxt.ui.client.widget.layout.FitLayout; |
import com.extjs.gxt.ui.client.widget.toolbar.ToolBar; |
import com.google.gwt.core.client.GWT; |
import com.google.gwt.user.client.Window; |
public class PublicationListeVue extends ContentPanel implements Rafraichissable { |
private Mediateur mediateur = null; |
private Constantes i18nC = null; |
private Grid<Publication> grille = null; |
private ListStore<Publication> store = null; |
private ColumnModel modeleDesColonnes = null; |
private Button ajouter; |
private Button modifier; |
private Button supprimer; |
public PublicationListeVue(Mediateur mediateurCourant) { |
mediateur = mediateurCourant; |
i18nC = Mediateur.i18nC; |
setLayout(new FitLayout()); |
setHeading("Publications"); |
// Gestion de la barre d'outil |
ToolBar toolBar = new ToolBar(); |
ajouter = new Button(i18nC.ajouter()); |
ajouter.setIcon(Images.ICONES.ajouter()); |
ajouter.addSelectionListener(new SelectionListener<ButtonEvent>() { |
public void componentSelected(ButtonEvent be) { |
mediateur.clicAjouterPublication(); |
} |
}); |
toolBar.add(ajouter); |
modifier = new Button(i18nC.modifier()); |
modifier.setIcon(Images.ICONES.formModifier()); |
modifier.addSelectionListener(new SelectionListener<ButtonEvent>() { |
public void componentSelected(ButtonEvent be) { |
mediateur.clicModifierPublication(grille.getSelectionModel().getSelectedItems()); |
} |
}); |
toolBar.add(modifier); |
supprimer = new Button(i18nC.supprimer()); |
supprimer.setIcon(Images.ICONES.supprimer()); |
supprimer.addSelectionListener(new SelectionListener<ButtonEvent>() { |
public void componentSelected(ButtonEvent be) { |
mediateur.clicSupprimerPublication(grille.getSelectionModel().getSelectedItems()); |
} |
}); |
toolBar.add(supprimer); |
setTopComponent(toolBar); |
// Gestion de la grille |
List<ColumnConfig> colonnes = new ArrayList<ColumnConfig>(); |
// ATTENTION : les noms des colonnes doivent correspondre aux noms variables de la classe utilisée dans la liste |
colonnes.add(new ColumnConfig("fmt_auteur", i18nC.publicationAuteurs(), 200)); |
colonnes.add(new ColumnConfig("titre", i18nC.publicationTitre(), 150)); |
colonnes.add(new ColumnConfig("collection", i18nC.publicationRevueCollection(), 110)); |
colonnes.add(creerColonneEditeur()); |
colonnes.add(creerColonneAnneePublication()); |
colonnes.add(new ColumnConfig("indication_nvt", i18nC.publicationNvt(), 35)); |
colonnes.add(new ColumnConfig("fascicule", i18nC.publicationFascicule(), 35)); |
colonnes.add(new ColumnConfig("truk_pages", i18nC.publicationPage(), 35)); |
modeleDesColonnes = new ColumnModel(colonnes); |
GridSelectionModel<Publication> modeleDeSelection = new GridSelectionModel<Publication>(); |
modeleDeSelection.addSelectionChangedListener(new SelectionChangedListener<Publication>() { |
public void selectionChanged(SelectionChangedEvent<Publication> event) { |
Publication publication = (Publication) event.getSelectedItem(); |
clicListe(publication); |
} |
}); |
store = new ListStore<Publication>(); |
store.sort("titre", SortDir.ASC); |
grille = new Grid<Publication>(store, modeleDesColonnes); |
grille.setWidth("100%"); |
grille.setAutoExpandColumn("titre"); |
grille.getView().setAutoFill(true); |
grille.getView().setForceFit(true); |
grille.setSelectionModel(modeleDeSelection); |
grille.addListener(Events.ViewReady, new Listener<BaseEvent>() { |
@Override |
public void handleEvent(BaseEvent be) { |
grille.getSelectionModel().select(0, false); |
} |
}); |
grille.addListener(Events.OnDoubleClick, new Listener<BaseEvent>(){ |
@Override |
public void handleEvent(BaseEvent be) { |
modifier.fireEvent(Events.Select); |
} |
}); |
add(grille); |
} |
private ColumnConfig creerColonneEditeur() { |
GridCellRenderer<Publication> editeurRendu = new GridCellRenderer<Publication>() { |
@Override |
public String render(Publication model, String property, ColumnData config, int rowIndex, int colIndex, ListStore<Publication> store, Grid<Publication> grid) { |
String editeur = model.getNomEditeur(); |
model.set("_editeur_", editeur); |
return editeur; |
} |
}; |
ColumnConfig editeurColonne = new ColumnConfig("_editeur_", Mediateur.i18nC.publicationEditeur(), 135); |
editeurColonne.setRenderer(editeurRendu); |
return editeurColonne; |
} |
private ColumnConfig creerColonneAnneePublication() { |
GridCellRenderer<Publication> datePublicationRendu = new GridCellRenderer<Publication>() { |
@Override |
public String render(Publication model, String property, ColumnData config, int rowIndex, int colIndex, ListStore<Publication> store, Grid<Publication> grid) { |
String annee = model.getAnneeParution(); |
model.set("_annee_", annee); |
return annee; |
} |
}; |
ColumnConfig datePublicationColonne = new ColumnConfig("_annee_", Mediateur.i18nC.publicationDateParution(), 75); |
datePublicationColonne.setRenderer(datePublicationRendu); |
return datePublicationColonne; |
} |
private void clicListe(Publication publication) { |
if (publication != null && store.getCount() > 0) { |
mediateur.clicListePublication(publication); |
} |
} |
private void gererEtatActivationBouton() { |
int nbreElementDuMagazin = store.getCount(); |
ajouter.enable(); |
if (nbreElementDuMagazin <= 0) { |
supprimer.disable(); |
modifier.disable(); |
} else if (nbreElementDuMagazin > 0) { |
modifier.enable(); |
if (((Utilisateur) Registry.get(RegistreId.UTILISATEUR_COURANT)).isIdentifie()) { |
supprimer.enable(); |
} |
} |
} |
public void rafraichir(Object nouvellesDonnees) { |
if (nouvellesDonnees instanceof PublicationListe) { |
PublicationListe publications = (PublicationListe) nouvellesDonnees; |
if (publications != null) { |
List<Publication> liste = publications.toList(); |
store.removeAll(); |
store.add(liste); |
mediateur.actualiserPanneauCentral(); |
} |
} else if (nouvellesDonnees instanceof Information) { |
Information info = (Information) nouvellesDonnees; |
if (info.getType().equals("maj_utilisateur")) { |
gererEtatActivationBouton(); |
} else if (info.getType().equals("suppression_publication")) { |
String message = info.toString(); |
if (info.getDonnee(0) != null) { |
message = (String) info.getDonnee(0); |
} |
Info.display(i18nC.publicationTitreSuppression(), message); |
supprimerPublicationsSelectionnees(); |
gererEtatActivationBouton(); |
} |
} else { |
GWT.log(Mediateur.i18nM.erreurRafraichir(nouvellesDonnees.getClass(), this.getClass()), null); |
} |
layout(); |
} |
private void supprimerPublicationsSelectionnees() { |
List<Publication> publicationsSelectionnees = grille.getSelectionModel().getSelectedItems(); |
Iterator<Publication> it = publicationsSelectionnees.iterator(); |
while (it.hasNext()) { |
grille.getStore().remove(it.next()); |
} |
layout(true); |
} |
} |
/trunk/src/org/tela_botanica/client/vues/collection/CollectionFormPersonne.java |
---|
7,26 → 7,26 |
import org.tela_botanica.client.Mediateur; |
import org.tela_botanica.client.images.Images; |
import org.tela_botanica.client.interfaces.Rafraichissable; |
import org.tela_botanica.client.modeles.Collection; |
import org.tela_botanica.client.modeles.CollectionAPersonne; |
import org.tela_botanica.client.modeles.CollectionAPersonneListe; |
import org.tela_botanica.client.modeles.Information; |
import org.tela_botanica.client.modeles.InterneValeur; |
import org.tela_botanica.client.modeles.Personne; |
import org.tela_botanica.client.modeles.PersonneListe; |
import org.tela_botanica.client.modeles.Publication; |
import org.tela_botanica.client.modeles.StructureAPersonne; |
import org.tela_botanica.client.modeles.UniteBase; |
import org.tela_botanica.client.modeles.UniteRangement; |
import org.tela_botanica.client.modeles.Valeur; |
import org.tela_botanica.client.modeles.ValeurListe; |
import org.tela_botanica.client.modeles.aDonnee; |
import org.tela_botanica.client.modeles.collection.Collection; |
import org.tela_botanica.client.modeles.collection.CollectionAPersonne; |
import org.tela_botanica.client.modeles.collection.CollectionAPersonneListe; |
import org.tela_botanica.client.modeles.personne.Personne; |
import org.tela_botanica.client.modeles.personne.PersonneListe; |
import org.tela_botanica.client.modeles.publication.Publication; |
import org.tela_botanica.client.modeles.structure.StructureAPersonne; |
import org.tela_botanica.client.util.Debug; |
import org.tela_botanica.client.vues.FenetreForm; |
import org.tela_botanica.client.vues.Formulaire; |
import org.tela_botanica.client.vues.FormulaireBarreValidation; |
import org.tela_botanica.client.vues.FormulaireOnglet; |
import org.tela_botanica.client.vues.PersonneForm; |
import org.tela_botanica.client.vues.personne.PersonneForm; |
import com.extjs.gxt.ui.client.event.BaseEvent; |
import com.extjs.gxt.ui.client.event.ButtonEvent; |
/trunk/src/org/tela_botanica/client/vues/collection/CollectionFormPublication.java |
---|
6,19 → 6,19 |
import org.tela_botanica.client.Mediateur; |
import org.tela_botanica.client.images.Images; |
import org.tela_botanica.client.interfaces.Rafraichissable; |
import org.tela_botanica.client.modeles.Collection; |
import org.tela_botanica.client.modeles.CollectionAPublication; |
import org.tela_botanica.client.modeles.CollectionAPublicationListe; |
import org.tela_botanica.client.modeles.Information; |
import org.tela_botanica.client.modeles.Publication; |
import org.tela_botanica.client.modeles.PublicationListe; |
import org.tela_botanica.client.modeles.aDonnee; |
import org.tela_botanica.client.modeles.collection.Collection; |
import org.tela_botanica.client.modeles.collection.CollectionAPublication; |
import org.tela_botanica.client.modeles.collection.CollectionAPublicationListe; |
import org.tela_botanica.client.modeles.publication.Publication; |
import org.tela_botanica.client.modeles.publication.PublicationListe; |
import org.tela_botanica.client.util.Debug; |
import org.tela_botanica.client.vues.FenetreForm; |
import org.tela_botanica.client.vues.Formulaire; |
import org.tela_botanica.client.vues.FormulaireBarreValidation; |
import org.tela_botanica.client.vues.FormulaireOnglet; |
import org.tela_botanica.client.vues.PublicationForm; |
import org.tela_botanica.client.vues.publication.PublicationForm; |
import com.extjs.gxt.ui.client.core.XTemplate; |
import com.extjs.gxt.ui.client.event.BaseEvent; |
/trunk/src/org/tela_botanica/client/vues/collection/CollectionVue.java |
---|
2,9 → 2,9 |
import org.tela_botanica.client.Mediateur; |
import org.tela_botanica.client.interfaces.Rafraichissable; |
import org.tela_botanica.client.modeles.Collection; |
import org.tela_botanica.client.modeles.CollectionListe; |
import org.tela_botanica.client.modeles.Information; |
import org.tela_botanica.client.modeles.collection.Collection; |
import org.tela_botanica.client.modeles.collection.CollectionListe; |
import com.extjs.gxt.ui.client.Style.LayoutRegion; |
import com.extjs.gxt.ui.client.util.Margins; |
/trunk/src/org/tela_botanica/client/vues/collection/ContenuVue.java |
---|
2,12 → 2,12 |
import org.tela_botanica.client.Mediateur; |
import org.tela_botanica.client.interfaces.Rafraichissable; |
import org.tela_botanica.client.modeles.CollectionListe; |
import org.tela_botanica.client.modeles.Information; |
import org.tela_botanica.client.modeles.PersonneListe; |
import org.tela_botanica.client.modeles.ProjetListe; |
import org.tela_botanica.client.modeles.PublicationListe; |
import org.tela_botanica.client.modeles.StructureListe; |
import org.tela_botanica.client.modeles.collection.CollectionListe; |
import org.tela_botanica.client.modeles.personne.PersonneListe; |
import org.tela_botanica.client.modeles.projet.ProjetListe; |
import org.tela_botanica.client.modeles.publication.PublicationListe; |
import org.tela_botanica.client.modeles.structure.StructureListe; |
import com.extjs.gxt.ui.client.widget.Info; |
import com.extjs.gxt.ui.client.widget.LayoutContainer; |
/trunk/src/org/tela_botanica/client/vues/collection/CollectionListeVue.java |
---|
9,11 → 9,11 |
import org.tela_botanica.client.i18n.Constantes; |
import org.tela_botanica.client.images.Images; |
import org.tela_botanica.client.interfaces.Rafraichissable; |
import org.tela_botanica.client.modeles.Collection; |
import org.tela_botanica.client.modeles.CollectionListe; |
import org.tela_botanica.client.modeles.Information; |
import org.tela_botanica.client.modeles.Publication; |
import org.tela_botanica.client.modeles.Utilisateur; |
import org.tela_botanica.client.modeles.collection.Collection; |
import org.tela_botanica.client.modeles.collection.CollectionListe; |
import org.tela_botanica.client.modeles.publication.Publication; |
import com.extjs.gxt.ui.client.Registry; |
import com.extjs.gxt.ui.client.Style.SortDir; |
/trunk/src/org/tela_botanica/client/vues/collection/CollectionFormGeneral.java |
---|
7,14 → 7,14 |
import org.tela_botanica.client.composants.ChampMultiValeurs; |
import org.tela_botanica.client.composants.ConteneurMultiChamps; |
import org.tela_botanica.client.interfaces.Rafraichissable; |
import org.tela_botanica.client.modeles.Collection; |
import org.tela_botanica.client.modeles.CollectionListe; |
import org.tela_botanica.client.modeles.Projet; |
import org.tela_botanica.client.modeles.ProjetListe; |
import org.tela_botanica.client.modeles.Structure; |
import org.tela_botanica.client.modeles.StructureListe; |
import org.tela_botanica.client.modeles.Valeur; |
import org.tela_botanica.client.modeles.ValeurListe; |
import org.tela_botanica.client.modeles.collection.Collection; |
import org.tela_botanica.client.modeles.collection.CollectionListe; |
import org.tela_botanica.client.modeles.projet.Projet; |
import org.tela_botanica.client.modeles.projet.ProjetListe; |
import org.tela_botanica.client.modeles.structure.Structure; |
import org.tela_botanica.client.modeles.structure.StructureListe; |
import org.tela_botanica.client.vues.Formulaire; |
import org.tela_botanica.client.vues.FormulaireOnglet; |
/trunk/src/org/tela_botanica/client/vues/collection/CollectionDetailVue.java |
---|
6,17 → 6,17 |
import org.tela_botanica.client.ComposantId; |
import org.tela_botanica.client.Mediateur; |
import org.tela_botanica.client.interfaces.Rafraichissable; |
import org.tela_botanica.client.modeles.Collection; |
import org.tela_botanica.client.modeles.CollectionAPersonne; |
import org.tela_botanica.client.modeles.CollectionAPersonneListe; |
import org.tela_botanica.client.modeles.CollectionAPublication; |
import org.tela_botanica.client.modeles.CollectionAPublicationListe; |
import org.tela_botanica.client.modeles.Information; |
import org.tela_botanica.client.modeles.Personne; |
import org.tela_botanica.client.modeles.ProjetListe; |
import org.tela_botanica.client.modeles.Publication; |
import org.tela_botanica.client.modeles.Structure; |
import org.tela_botanica.client.modeles.ValeurListe; |
import org.tela_botanica.client.modeles.collection.Collection; |
import org.tela_botanica.client.modeles.collection.CollectionAPersonne; |
import org.tela_botanica.client.modeles.collection.CollectionAPersonneListe; |
import org.tela_botanica.client.modeles.collection.CollectionAPublication; |
import org.tela_botanica.client.modeles.collection.CollectionAPublicationListe; |
import org.tela_botanica.client.modeles.personne.Personne; |
import org.tela_botanica.client.modeles.projet.ProjetListe; |
import org.tela_botanica.client.modeles.publication.Publication; |
import org.tela_botanica.client.modeles.structure.Structure; |
import com.extjs.gxt.ui.client.Style.Scroll; |
import com.extjs.gxt.ui.client.util.Format; |
/trunk/src/org/tela_botanica/client/vues/collection/CollectionForm.java |
---|
5,14 → 5,14 |
import org.tela_botanica.client.Mediateur; |
import org.tela_botanica.client.composants.ChampComboBoxListeValeurs; |
import org.tela_botanica.client.interfaces.Rafraichissable; |
import org.tela_botanica.client.modeles.Collection; |
import org.tela_botanica.client.modeles.Information; |
import org.tela_botanica.client.modeles.MenuApplicationId; |
import org.tela_botanica.client.modeles.Valeur; |
import org.tela_botanica.client.modeles.collection.Collection; |
import org.tela_botanica.client.util.UtilArray; |
import org.tela_botanica.client.util.UtilString; |
import org.tela_botanica.client.vues.Formulaire; |
import org.tela_botanica.client.vues.StructureForm; |
import org.tela_botanica.client.vues.structure.StructureForm; |
import com.extjs.gxt.ui.client.event.BaseEvent; |
import com.extjs.gxt.ui.client.event.Events; |
/trunk/src/org/tela_botanica/client/vues/collection/DetailVue.java |
---|
10,10 → 10,10 |
import org.tela_botanica.client.configuration.Configuration; |
import org.tela_botanica.client.i18n.Constantes; |
import org.tela_botanica.client.interfaces.Rafraichissable; |
import org.tela_botanica.client.modeles.Projet; |
import org.tela_botanica.client.modeles.ProjetListe; |
import org.tela_botanica.client.modeles.Valeur; |
import org.tela_botanica.client.modeles.ValeurListe; |
import org.tela_botanica.client.modeles.projet.Projet; |
import org.tela_botanica.client.modeles.projet.ProjetListe; |
import org.tela_botanica.client.util.UtilString; |
import com.extjs.gxt.ui.client.Registry; |
/trunk/src/org/tela_botanica/client/vues/structure/StructureVue.java |
---|
New file |
0,0 → 1,56 |
package org.tela_botanica.client.vues.structure; |
import org.tela_botanica.client.Mediateur; |
import org.tela_botanica.client.interfaces.Rafraichissable; |
import org.tela_botanica.client.modeles.Information; |
import org.tela_botanica.client.modeles.structure.Structure; |
import org.tela_botanica.client.modeles.structure.StructureListe; |
import com.extjs.gxt.ui.client.Style.LayoutRegion; |
import com.extjs.gxt.ui.client.util.Margins; |
import com.extjs.gxt.ui.client.widget.LayoutContainer; |
import com.extjs.gxt.ui.client.widget.layout.BorderLayout; |
import com.extjs.gxt.ui.client.widget.layout.BorderLayoutData; |
import com.google.gwt.core.client.GWT; |
public class StructureVue extends LayoutContainer implements Rafraichissable { |
private Mediateur mediateur = null; |
private StructureListeVue panneauInstitutionListe = null; |
private StructureDetailVue panneauInstitutionDetail = null; |
public StructureVue(Mediateur mediateurCourant) { |
mediateur = mediateurCourant; |
BorderLayout layout = new BorderLayout(); |
layout.setEnableState(false); |
setLayout(layout); |
panneauInstitutionListe = new StructureListeVue(mediateur); |
add(panneauInstitutionListe, new BorderLayoutData(LayoutRegion.CENTER)); |
panneauInstitutionDetail = new StructureDetailVue(mediateur); |
BorderLayoutData dispositionSud = new BorderLayoutData(LayoutRegion.SOUTH, .5f, 200, 1000); |
dispositionSud.setSplit(true); |
dispositionSud.setMargins(new Margins(5, 0, 0, 0)); |
add(panneauInstitutionDetail, dispositionSud); |
} |
public void rafraichir(Object nouvellesDonnees) { |
// Nous passons l'objet aux méthodes rafraichir des panneaux composant le panneau principal Structure |
if (nouvellesDonnees instanceof Structure) { |
panneauInstitutionDetail.rafraichir(nouvellesDonnees); |
} else if (nouvellesDonnees instanceof StructureListe) { |
panneauInstitutionListe.rafraichir(nouvellesDonnees); |
mediateur.desactiverChargement(); |
} else if (nouvellesDonnees instanceof Information) { |
Information info = (Information) nouvellesDonnees; |
if (info.getType().equals("liste_structure_a_personne")) { |
panneauInstitutionDetail.rafraichir(nouvellesDonnees); |
} |
} else { |
GWT.log(Mediateur.i18nM.erreurRafraichir(nouvellesDonnees.getClass(), this.getClass()), null); |
} |
} |
} |
/trunk/src/org/tela_botanica/client/vues/structure/StructureListeVue.java |
---|
New file |
0,0 → 1,190 |
package org.tela_botanica.client.vues.structure; |
import java.util.ArrayList; |
import java.util.List; |
import org.tela_botanica.client.Mediateur; |
import org.tela_botanica.client.RegistreId; |
import org.tela_botanica.client.i18n.Constantes; |
import org.tela_botanica.client.images.Images; |
import org.tela_botanica.client.interfaces.Rafraichissable; |
import org.tela_botanica.client.modeles.Information; |
import org.tela_botanica.client.modeles.Utilisateur; |
import org.tela_botanica.client.modeles.structure.Structure; |
import org.tela_botanica.client.modeles.structure.StructureListe; |
import org.tela_botanica.client.util.Debug; |
import com.extjs.gxt.ui.client.Registry; |
import com.extjs.gxt.ui.client.Style.SortDir; |
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.ContentPanel; |
import com.extjs.gxt.ui.client.widget.Info; |
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.Grid; |
import com.extjs.gxt.ui.client.widget.grid.GridSelectionModel; |
import com.extjs.gxt.ui.client.widget.layout.FitLayout; |
import com.extjs.gxt.ui.client.widget.toolbar.ToolBar; |
import com.google.gwt.core.client.GWT; |
public class StructureListeVue extends ContentPanel implements Rafraichissable { |
private Mediateur mediateur = null; |
private Constantes i18nC = null; |
private Grid<Structure> grille = null; |
private ListStore<Structure> store = null; |
private Button modifier; |
private Button supprimer; |
private Button ajouter; |
public StructureListeVue(Mediateur mediateurCourant) { |
mediateur = mediateurCourant; |
i18nC = mediateur.i18nC; |
setHeading(i18nC.titreStructureListe()); |
setLayout(new FitLayout()); |
ToolBar toolBar = new ToolBar(); |
ajouter = new Button(i18nC.ajouter()); |
ajouter.setIcon(Images.ICONES.ajouter()); |
ajouter.addSelectionListener(new SelectionListener<ButtonEvent>() { |
public void componentSelected(ButtonEvent ce) { |
mediateur.clicAjouterStructure(); |
} |
}); |
toolBar.add(ajouter); |
modifier = new Button(i18nC.modifier()); |
modifier.setIcon(Images.ICONES.formModifier()); |
modifier.addSelectionListener(new SelectionListener<ButtonEvent>() { |
public void componentSelected(ButtonEvent ce) { |
mediateur.clicModifierStructure(grille.getSelectionModel().getSelectedItems()); |
} |
}); |
toolBar.add(modifier); |
supprimer = new Button(i18nC.supprimer()); |
supprimer.setIcon(Images.ICONES.supprimer()); |
supprimer.addSelectionListener(new SelectionListener<ButtonEvent>() { |
public void componentSelected(ButtonEvent ce) { |
clicSupprimerStructure(grille.getSelectionModel().getSelectedItems()); |
} |
}); |
toolBar.add(supprimer); |
setTopComponent(toolBar); |
List<ColumnConfig> colonnes = new ArrayList<ColumnConfig>(); |
colonnes.add(new ColumnConfig("ville", "Ville", 150)); |
colonnes.add(new ColumnConfig("nom", "Nom", 450)); |
ColumnModel modeleDeColonne = new ColumnModel(colonnes); |
GridSelectionModel<Structure> modeleDeSelection = new GridSelectionModel<Structure>(); |
modeleDeSelection.addSelectionChangedListener(new SelectionChangedListener<Structure>() { |
public void selectionChanged(SelectionChangedEvent<Structure> event) { |
Structure structureSelectionnee = (Structure) event.getSelectedItem(); |
clicListe(structureSelectionnee); |
} |
}); |
store = new ListStore<Structure>(); |
store.sort("ville", SortDir.ASC); |
grille = new Grid<Structure>(store, modeleDeColonne); |
grille.setWidth("100%"); |
grille.setAutoExpandColumn("nom"); |
grille.getView().setAutoFill(true); |
grille.getView().setForceFit(true); |
grille.setSelectionModel(modeleDeSelection); |
grille.addListener(Events.ViewReady, new Listener<BaseEvent>() { |
@Override |
public void handleEvent(BaseEvent be) { |
grille.getSelectionModel().select(0, false); |
} |
}); |
grille.addListener(Events.OnDoubleClick, new Listener<BaseEvent>() { |
@Override |
public void handleEvent(BaseEvent be) { |
modifier.fireEvent(Events.Select); |
} |
}); |
add(grille); |
} |
private void clicListe(Structure structure) { |
if (structure != null && store.getCount() > 0) { |
mediateur.clicListeStructure(structure); |
} |
} |
private void clicSupprimerStructure(List<Structure> structuresASupprimer) { |
mediateur.clicSupprimerStructure(this, structuresASupprimer); |
} |
private void gererEtatActivationBouton() { |
int nbreElementDuMagazin = store.getCount(); |
if (nbreElementDuMagazin == 0) { |
supprimer.disable(); |
modifier.disable(); |
} else if (nbreElementDuMagazin > 0) { |
modifier.enable(); |
if (((Utilisateur) Registry.get(RegistreId.UTILISATEUR_COURANT)).isIdentifie()) { |
supprimer.enable(); |
} |
} |
} |
public void rafraichir(Object nouvellesDonnees) { |
if (nouvellesDonnees instanceof StructureListe) { |
StructureListe structures = (StructureListe) nouvellesDonnees; |
if (structures != null) { |
List<Structure> liste = structures.toList(); |
store.removeAll(); |
store.add(liste); |
gererEtatActivationBouton(); |
mediateur.actualiserPanneauCentral(); |
} |
} else if (nouvellesDonnees instanceof Information) { |
Information info = (Information) nouvellesDonnees; |
if (info.getType().equals("suppression_structure")) { |
// Affichage d'un message d'information |
Info.display(i18nC.suppressionStructure(), info.toString().replaceAll("\n", "<br />")); |
List<Structure> selectionStructure = grille.getSelectionModel().getSelectedItems(); |
if (info.toString().replaceAll("\n", "").equals("OK")) { |
mediateur.supprimerStructureAPersonne(this, selectionStructure); |
} |
// Suppression des structures sélectionnées de la grille |
final int taille = selectionStructure.size(); |
for (int i = 0; i < taille; i++) { |
store.remove(selectionStructure.get(i)); |
} |
gererEtatActivationBouton(); |
} else if (info.getType().equals("maj_utilisateur")) { |
gererEtatActivationBouton(); |
} else if (info.getType().equals("suppression_structure_a_personne")) { |
// Affichage d'un message d'information |
Info.display(i18nC.suppressionStructureAPersonne(), info.toString().replaceAll("\n", "<br />")); |
} |
} else { |
GWT.log(Mediateur.i18nM.erreurRafraichir(nouvellesDonnees.getClass(), this.getClass()), null); |
} |
layout(); |
} |
} |
/trunk/src/org/tela_botanica/client/vues/structure/StructureDetailVue.java |
---|
New file |
0,0 → 1,639 |
package org.tela_botanica.client.vues.structure; |
import java.util.Iterator; |
import org.tela_botanica.client.ComposantClass; |
import org.tela_botanica.client.ComposantId; |
import org.tela_botanica.client.Mediateur; |
import org.tela_botanica.client.interfaces.Rafraichissable; |
import org.tela_botanica.client.modeles.Information; |
import org.tela_botanica.client.modeles.ValeurListe; |
import org.tela_botanica.client.modeles.projet.Projet; |
import org.tela_botanica.client.modeles.projet.ProjetListe; |
import org.tela_botanica.client.modeles.structure.Structure; |
import org.tela_botanica.client.modeles.structure.StructureAPersonne; |
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.vues.collection.DetailVue; |
import com.extjs.gxt.ui.client.Style.Scroll; |
import com.extjs.gxt.ui.client.util.Format; |
import com.extjs.gxt.ui.client.util.Params; |
import com.extjs.gxt.ui.client.widget.ContentPanel; |
import com.extjs.gxt.ui.client.widget.Html; |
import com.extjs.gxt.ui.client.widget.TabItem; |
import com.extjs.gxt.ui.client.widget.TabPanel; |
import com.extjs.gxt.ui.client.widget.layout.AnchorLayout; |
import com.extjs.gxt.ui.client.widget.layout.FitLayout; |
import com.google.gwt.core.client.GWT; |
public class StructureDetailVue extends DetailVue implements Rafraichissable { |
private String enteteTpl = null; |
private String identificationTpl = null; |
private String personnelTpl = null; |
private String tableauPersonnelTpl = null; |
private String lignePersonnelTpl = null; |
private String conservationTpl = null; |
private String traitementConservationTpl = null; |
private String valorisationTpl = null; |
private String typeTraitementConservationTpl = null; |
private String rechercheValorisationTpl = null; |
private Structure structure = null; |
private boolean structureChargementOk = false; |
private StructureAPersonneListe personnel = null; |
private boolean personnelChargementOk = false; |
private StructureValorisation valorisation = null; |
private StructureConservation conservation = null; |
private ContentPanel panneauPrincipal = null; |
private Html entete = null; |
private TabPanel onglets = null; |
private TabItem identificationOnglet = null; |
private TabItem personnelOnglet = null; |
private TabItem conservationOnglet = null; |
private TabItem valorisationOnglet = null; |
public StructureDetailVue(Mediateur mediateurCourant) { |
super(mediateurCourant); |
initialiserTousLesTpl(); |
chargerOntologie(); |
panneauPrincipal = new ContentPanel(); |
panneauPrincipal.setLayout(new FitLayout()); |
panneauPrincipal.setHeaderVisible(false); |
panneauPrincipal.setBodyBorder(false); |
entete = new Html(); |
entete.setId(ComposantId.ZONE_DETAIL_ENTETE); |
panneauPrincipal.setTopComponent(entete); |
onglets = new TabPanel(); |
onglets.setId(ComposantId.ZONE_DETAIL_CORPS); |
onglets.setBodyBorder(false); |
identificationOnglet = new TabItem(i18nC.structureInfoGeneral()); |
identificationOnglet.setLayout(new AnchorLayout()); |
identificationOnglet.setScrollMode(Scroll.AUTO); |
onglets.add(identificationOnglet); |
personnelOnglet = new TabItem(i18nC.structureInfoPersonnel()); |
personnelOnglet.setLayout(new AnchorLayout()); |
personnelOnglet.setScrollMode(Scroll.AUTO); |
onglets.add(personnelOnglet); |
conservationOnglet = new TabItem(i18nC.structureInfoConservation()); |
conservationOnglet.setLayout(new AnchorLayout()); |
conservationOnglet.setScrollMode(Scroll.AUTO); |
onglets.add(conservationOnglet); |
valorisationOnglet = new TabItem(i18nC.structureInfoValorisation()); |
valorisationOnglet.setLayout(new AnchorLayout()); |
valorisationOnglet.setScrollMode(Scroll.AUTO); |
onglets.add(valorisationOnglet); |
panneauPrincipal.add(onglets); |
add(panneauPrincipal); |
} |
private void chargerOntologie() { |
String[] listesCodes = {"stpr", "stpu", "statut", "fonction", "pays", "localStockage", "meubleStockage", |
"parametreStockage", "autreCollection", "onep", "opRestau", "autreMateriel", "poisonTraitement", |
"insecteTraitement", "actionValorisation", "continentEtFr", "typeRecherche"}; |
lancerChargementListesValeurs(listesCodes); |
} |
private void afficherDetailInstitution() { |
if (structure != null) { |
personnel = structure.getPersonnel(); |
valorisation = structure.getValorisation(); |
conservation = structure.getConservation(); |
afficherEntete(); |
afficherIdentification(); |
if (personnel != null) { |
afficherPersonnel(); |
} |
if (conservation != null) { |
afficherConservation(); |
} |
if (valorisation != null) { |
afficherValorisation(); |
} |
} |
layout(); |
} |
private void afficherEntete() { |
Params enteteParams = new Params(); |
enteteParams.set("css_id", ComposantId.ZONE_DETAIL_ENTETE); |
enteteParams.set("css_meta", ComposantClass.META); |
enteteParams.set("i18n_id", i18nC.id()); |
enteteParams.set("nom", structure.getNom()); |
enteteParams.set("ville", structure.getVille()); |
enteteParams.set("id", structure.getId()); |
enteteParams.set("guid", structure.getGuid()); |
enteteParams.set("projet", construireTxtProjet(structure.getIdProjet())); |
String eHtml = Format.substitute(enteteTpl, enteteParams); |
entete.getElement().setInnerHTML(eHtml); |
} |
private void afficherIdentification() { |
Params identificationParams = new Params(); |
identificationParams.set("i18n_titre_administratif", i18nC.titreAdministratif()); |
identificationParams.set("i18n_acronyme", i18nC.acronyme()); |
identificationParams.set("i18n_statut", i18nC.statut()); |
identificationParams.set("i18n_date_fondation", i18nC.dateFondation()); |
identificationParams.set("i18n_nbre_personnel", i18nC.nbrePersonnel()); |
identificationParams.set("i18n_titre_description", i18nC.description()); |
identificationParams.set("i18n_description", i18nC.description()); |
identificationParams.set("i18n_titre_adresse", i18nC.adresse()); |
identificationParams.set("i18n_adresse", i18nC.adresse()); |
identificationParams.set("i18n_cp", i18nC.codePostal()); |
identificationParams.set("i18n_ville", i18nC.ville()); |
identificationParams.set("i18n_region", i18nC.region()); |
identificationParams.set("i18n_pays", i18nC.pays()); |
identificationParams.set("i18n_titre_communication", i18nC.titreCommunication()); |
identificationParams.set("i18n_tel", i18nC.telephone()); |
identificationParams.set("i18n_fax", i18nC.FAX()); |
identificationParams.set("i18n_courriel", i18nC.courriel()); |
identificationParams.set("i18n_acces", i18nC.acces()); |
identificationParams.set("i18n_web", i18nC.siteWeb()); |
String acronyme = construireTxtTruck(structure.getIdAlternatif()); |
String typePrive = construireTxtListeOntologie(structure.getTypePrive()); |
String typePublic = construireTxtListeOntologie(structure.getTypePublic()); |
String pays = construireTxtListeOntologie(structure.getPays()); |
String web = construireTxtTruck(structure.getUrl()); |
identificationParams.set("acronyme", acronyme); |
identificationParams.set("statut", typePrive+typePublic); |
identificationParams.set("date_fondation", structure.getDateFondationFormatLong()); |
identificationParams.set("nbre_personnel", structure.getNbrePersonne()); |
identificationParams.set("description", structure.getDescription()); |
identificationParams.set("adresse", structure.getAdresse()); |
identificationParams.set("cp", structure.getCodePostal()); |
identificationParams.set("ville", structure.getVille()); |
identificationParams.set("region", structure.getRegion()); |
identificationParams.set("pays", pays); |
identificationParams.set("tel", structure.getTelephoneFixe()); |
identificationParams.set("fax", structure.getFax()); |
identificationParams.set("courriel", structure.getCourriel()); |
identificationParams.set("acces", structure.getConditionAcces()); |
identificationParams.set("web", web); |
afficherOnglet(identificationTpl, identificationParams, identificationOnglet); |
} |
private void afficherPersonnel() { |
String tableauPersonnelHtml = ""; |
if (personnel.size() > 0) { |
tableauPersonnelHtml = construireTableauDuPersonnel(); |
} |
Params personnelParams = new Params(); |
personnelParams.set("i18n_titre_personnel", i18nC.titrePersonnel()); |
personnelParams.set("i18n_nbre_personnel_collection", i18nC.nbrePersonnelCollection()); |
personnelParams.set("nbre_personnel_collection", personnel.size()); |
personnelParams.set("tableau_personnel", tableauPersonnelHtml); |
afficherOnglet(personnelTpl, personnelParams, personnelOnglet); |
} |
private String construireTableauDuPersonnel() { |
Params contenuParams = new Params(); |
contenuParams.set("i18n_titre_membre", i18nC.titreMembre()); |
contenuParams.set("i18n_fonction", i18nC.fonction()); |
contenuParams.set("i18n_prenom", i18nC.personnePrenom()); |
contenuParams.set("i18n_nom", i18nC.personneNom()); |
contenuParams.set("i18n_tel", i18nC.FIX()); |
contenuParams.set("i18n_fax", i18nC.FAX()); |
contenuParams.set("i18n_courriel", i18nC.courrielPrincipal()); |
contenuParams.set("i18n_statut", i18nC.statut()); |
contenuParams.set("i18n_tps_w", i18nC.tpsTravail()); |
contenuParams.set("i18n_specialite", i18nC.specialite()); |
contenuParams.set("i18n_contact", i18nC.boolContact()); |
String lignesPersonnel = ""; |
Iterator<String> it = personnel.keySet().iterator(); |
while (it.hasNext()) { |
StructureAPersonne personne = personnel.get(it.next()); |
Params ligneParams = new Params(); |
String fonction = construireTxtListeOntologie(personne.getFonction()); |
String statut = construireTxtListeOntologie(personne.getStatut()); |
String contact = formaterOuiNon(personne.getContact()); |
ligneParams.set("fonction", fonction); |
ligneParams.set("prenom", personne.getPrenom()); |
ligneParams.set("nom", personne.getNom()); |
ligneParams.set("tel_fix", personne.getTelephoneFixe()); |
ligneParams.set("tel_fax", personne.getFax()); |
ligneParams.set("courriel", personne.getCourriel()); |
ligneParams.set("statut", statut); |
ligneParams.set("tps_w", personne.getBotaTravailHebdoTps()); |
ligneParams.set("specialite", personne.afficherSpecialite()); |
ligneParams.set("contact", contact); |
lignesPersonnel += Format.substitute(lignePersonnelTpl, ligneParams); |
} |
contenuParams.set("lignes", lignesPersonnel); |
String cHtml = Format.substitute(tableauPersonnelTpl, contenuParams); |
return cHtml; |
} |
private void afficherConservation() { |
Params conservationParams = new Params(); |
conservationParams.set("i18n_titre_conservation_personnel", i18nC.titreConservationPersonnel()); |
conservationParams.set("i18n_formation", i18nC.formation()); |
conservationParams.set("i18n_formation_interet", i18nC.formationInteret()); |
conservationParams.set("i18n_titre_local", i18nC.titreLocal()); |
conservationParams.set("i18n_local_specifique", i18nC.localSpecifique()); |
conservationParams.set("i18n_meuble_specifique", i18nC.meubleSpecifique()); |
conservationParams.set("i18n_local_parametre", i18nC.localParametre()); |
conservationParams.set("i18n_conservation_en_commun", i18nC.conservationEnCommun()); |
conservationParams.set("i18n_acces_controle", i18nC.accesControle()); |
conservationParams.set("i18n_titre_operation", i18nC.titreOperation()); |
conservationParams.set("i18n_restauration", i18nC.restauration()); |
conservationParams.set("i18n_materiel_conservation", i18nC.materielConservation()); |
conservationParams.set("i18n_traitement", i18nC.traitement()); |
conservationParams.set("i18n_titre_acquisition", i18nC.titreAcquisition()); |
conservationParams.set("i18n_acquisition_collection", i18nC.acquisitionCollection()); |
conservationParams.set("i18n_acquisition_echantillon", i18nC.acquisitionEchantillon()); |
conservationParams.set("formation", formaterOuiNon(conservation.getFormation())); |
conservationParams.set("formation_info", formaterSautDeLigne(conservation.getFormationInfo())); |
conservationParams.set("formation_interet", formaterOuiNon(conservation.getFormationInteret())); |
conservationParams.set("meuble_specifique", conservation.getStockageMeuble()); |
String chaineAAnalyser = conservation.getStockageLocal(); |
String chaineAAfficher = construireTxtListeOntologie(chaineAAnalyser); |
conservationParams.set("local_specifique", chaineAAfficher); |
chaineAAnalyser = conservation.getStockageMeuble(); |
chaineAAfficher = construireTxtListeOntologie(chaineAAnalyser); |
conservationParams.set("meuble_specifique", chaineAAfficher); |
chaineAAnalyser = conservation.getStockageParametre(); |
chaineAAfficher = construireTxtListeOntologie(chaineAAnalyser); |
conservationParams.set("local_parametre", chaineAAfficher); |
conservationParams.set("conservation_en_commun", formaterOuiNon(conservation.getCollectionCommune())); |
chaineAAnalyser = conservation.getCollectionAutre(); |
chaineAAfficher = construireTxtListeOntologie(chaineAAnalyser); |
conservationParams.set("collection_autre", formaterParenthese(chaineAAfficher)); |
conservationParams.set("acces_controle", formaterOuiNon(conservation.getAccesControle())); |
conservationParams.set("restauration", formaterOuiNon(conservation.getRestauration())); |
chaineAAnalyser = conservation.getRestaurationOperation(); |
chaineAAfficher = construireTxtListeOntologie(chaineAAnalyser); |
conservationParams.set("restauration_operation", formaterParenthese(chaineAAfficher)); |
chaineAAnalyser = conservation.getMaterielConservation(); |
chaineAAfficher = construireTxtListeOntologie(chaineAAnalyser); |
conservationParams.set("materiel_conservation", chaineAAfficher); |
chaineAAnalyser = conservation.getMaterielAutre(); |
chaineAAfficher = construireTxtListeOntologie(chaineAAnalyser); |
conservationParams.set("materiel_autre", formaterParenthese(chaineAAfficher)); |
conservationParams.set("traitement", formaterOuiNon(conservation.getTraitement())); |
chaineAAnalyser = conservation.getTraitements(); |
chaineAAfficher = construireTxtListeOntologie(chaineAAnalyser); |
conservationParams.set("traitements", formaterParenthese(chaineAAfficher)); |
conservationParams.set("acquisition_collection", formaterOuiNon(conservation.getAcquisitionCollection())); |
conservationParams.set("acquisition_echantillon", formaterOuiNon(conservation.getAcquisitionEchantillon())); |
conservationParams.set("acquisition_traitement_info", construireTraitement()); |
afficherOnglet(conservationTpl, conservationParams, conservationOnglet); |
} |
private String construireTraitement() { |
String cHtml = ""; |
String echantillon = conservation.getAcquisitionEchantillon(); |
if (echantillon.equals("1")) { |
Params traitementConservationParams = new Params(); |
traitementConservationParams.set("i18n_acquisition_traitement", i18nC.acquisitionTraitement()); |
traitementConservationParams.set("acquisition_traitement", formaterOuiNon(conservation.getAcquisitionTraitement())); |
traitementConservationParams.set("acquisition_traitement_type_info", construireTraitementType()); |
cHtml = Format.substitute(traitementConservationTpl, traitementConservationParams); |
} |
return cHtml; |
} |
private String construireTraitementType() { |
String cHtml = ""; |
String traitement = conservation.getAcquisitionTraitement(); |
if (traitement.equals("1")) { |
Params typeTraitementParams = new Params(); |
typeTraitementParams.set("i18n_acquisition_traitement_insecte", i18nC.acquisitionTraitementInsecte()); |
typeTraitementParams.set("i18n_acquisition_traitement_poison", i18nC.acquisitionTraitementPoison()); |
String acquisitionTraitementInsecte = construireTxtListeOntologie(conservation.getAcquisitionTraitementInsecte()); |
typeTraitementParams.set("acquisition_traitement_insecte", acquisitionTraitementInsecte); |
String acquisitionTraitementPoison = construireTxtListeOntologie(conservation.getAcquisitionTraitementPoison()); |
typeTraitementParams.set("acquisition_traitement_poison", acquisitionTraitementPoison); |
cHtml = Format.substitute(typeTraitementConservationTpl, typeTraitementParams); |
} |
return cHtml; |
} |
private void afficherValorisation() { |
Params valorisationParams = new Params(); |
valorisationParams.set("i18n_titre_action_valorisation", i18nC.titreActionValorisation()); |
valorisationParams.set("i18n_action", i18nC.action()); |
valorisationParams.set("i18n_action_publication", i18nC.actionPublication()); |
valorisationParams.set("i18n_collection_autre", i18nC.collectionAutre()); |
valorisationParams.set("i18n_action_future", i18nC.actionFuture()); |
valorisationParams.set("action", formaterOuiNon(valorisation.getAction())); |
String actionInfo = construireTxtListeOntologie(valorisation.getActionInfo()); |
valorisationParams.set("action_info", formaterParenthese(actionInfo)); |
valorisationParams.set("action_publication", valorisation.getPublication()); |
String collectionAutre = construireTxtListeOntologie(valorisation.getCollectionAutre()); |
valorisationParams.set("collection_autre", collectionAutre); |
valorisationParams.set("action_future", formaterOuiNon(valorisation.getActionFuture())); |
valorisationParams.set("action_future_info", formaterParenthese(valorisation.getActionFutureInfo())); |
valorisationParams.set("i18n_titre_recherche_scientifique", i18nC.titreRechercherScientifique()); |
valorisationParams.set("i18n_recherche", i18nC.recherche()); |
valorisationParams.set("recherche", formaterOuiNon(valorisation.getRecherche())); |
valorisationParams.set("recherche_info", construireRecherche()); |
valorisationParams.set("i18n_titre_acces_usage", i18nC.titreAccesUsage()); |
valorisationParams.set("i18n_acces", i18nC.acces()); |
valorisationParams.set("i18n_visite", i18nC.visite()); |
valorisationParams.set("acces", formaterOuiNon(valorisation.getAccesSansMotif())); |
valorisationParams.set("acces_info", formaterParenthese(valorisation.getAccesSansMotifInfo())); |
valorisationParams.set("visite", formaterOuiNon(valorisation.getVisiteAvecMotif())); |
valorisationParams.set("visite_info", formaterParenthese(valorisation.getVisiteAvecMotifInfo())); |
afficherOnglet(valorisationTpl, valorisationParams, valorisationOnglet); |
} |
private String construireRecherche() { |
String cHtml = ""; |
String recherche = valorisation.getRecherche(); |
if (recherche.equals("1")) { |
Params rechercheParams = new Params(); |
rechercheParams.set("i18n_recherche_provenance", i18nC.rechercheProvenance()); |
rechercheParams.set("i18n_recherche_type", i18nC.rechercheType()); |
String rechercheProvenance = construireTxtListeOntologie(valorisation.getRechercheProvenance()); |
rechercheParams.set("recherche_provenance", rechercheProvenance); |
String rechercheType = construireTxtListeOntologie(valorisation.getRechercheType()); |
rechercheParams.set("recherche_type", rechercheType); |
cHtml = Format.substitute(rechercheValorisationTpl, rechercheParams); |
} |
return cHtml; |
} |
private void initialiserTousLesTpl() { |
initialiserEnteteTpl(); |
initialiserIdentificationTpl(); |
initialiserPersonnelTpl(); |
initialiserTableauPersonnelTpl(); |
initialiserLignePersonnelTpl(); |
initialiserConservationTpl(); |
initialiserTraitementConservationTpl(); |
initialiserTypeTraitementConservationTpl(); |
initialiserValorisationTpl(); |
initialiserRechercheValorisationTpl(); |
} |
private void initialiserEnteteTpl() { |
enteteTpl = |
"<div id='{css_id}'>"+ |
" <h1>{nom}</h1>"+ |
" <h2>{ville}<span class='{css_meta}'>{projet} <br /> {i18n_id}:{id} - {guid}</span></h2>" + |
" " + |
"</div>"; |
} |
private void initialiserIdentificationTpl() { |
identificationTpl = |
"<div class='{css_corps}'>"+ |
" <div class='{css_fieldset}'>"+ |
" <h2>{i18n_titre_administratif}</h2>"+ |
" <span class='{css_label}'>{i18n_acronyme} :</span> {acronyme}<br />"+ |
" <span class='{css_label}'>{i18n_acces} :</span> {acces}<br />"+ |
" <span class='{css_label}'>{i18n_statut} :</span> {statut}<br />"+ |
" <span class='{css_label}'>{i18n_date_fondation} :</span> {date_fondation}<br />"+ |
" <span class='{css_label}'>{i18n_nbre_personnel} :</span> {nbre_personnel}<br />"+ |
" </div>"+ |
" <div class='{css_fieldset}'>"+ |
" <h2>{i18n_titre_description}</h2>"+ |
" {description}"+ |
" </div>"+ |
" <hr class='{css_clear}'/>"+ |
" <div class='{css_fieldset}'>"+ |
" <h2>{i18n_titre_adresse}</h2>"+ |
" <span class='{css_label}'>{i18n_adresse} :</span> {adresse}<br />" + |
" <span class='{css_label}'>{i18n_cp} :</span> {cp}<br />" + |
" <span class='{css_label}'>{i18n_ville} :</span> {ville}<br />" + |
" <span class='{css_label}'>{i18n_region} :</span> {region}<br />" + |
" <span class='{css_label}'>{i18n_pays} :</span> {pays}<br />" + |
" </div>"+ |
" <div class='{css_fieldset}'>"+ |
" <h2>{i18n_titre_communication}</h2>"+ |
" <span class='{css_label}'>{i18n_tel} :</span> {tel}<br />"+ |
" <span class='{css_label}'>{i18n_fax} :</span> {fax}<br />"+ |
" <span class='{css_label}'>{i18n_courriel} :</span> {courriel}<br />"+ |
" <span class='{css_label}'>{i18n_web} :</span> {web}<br />"+ |
" </div>"+ |
"</div>"; |
} |
private void initialiserPersonnelTpl() { |
personnelTpl = |
"<div class='{css_corps}'>"+ |
" <h2>{i18n_titre_personnel}</h2>"+ |
" <p><span class='{css_label}'>{i18n_nbre_personnel_collection} :</span> {nbre_personnel_collection}</p>"+ |
" {tableau_personnel}"+ |
"</div>"; |
} |
private void initialiserTableauPersonnelTpl() { |
tableauPersonnelTpl = |
"<h3>{i18n_titre_membre}</h3>"+ |
"<table>"+ |
" <thead>"+ |
" <tr>" + |
" <th>{i18n_fonction}</th>" + |
" <th>{i18n_prenom}</th>" + |
" <th>{i18n_nom}</th>" + |
" <th>{i18n_tel}</th>" + |
" <th>{i18n_fax}</th>" + |
" <th>{i18n_courriel}</th>" + |
" <th>{i18n_statut}</th>" + |
" <th>{i18n_tps_w}</th>" + |
" <th>{i18n_specialite}</th>" + |
" <th>{i18n_contact}</th>" + |
" </tr>"+ |
" </thead>"+ |
" <tbody>"+ |
" {lignes}"+ |
" </tbody>"+ |
"</table>"; |
} |
private void initialiserLignePersonnelTpl() { |
lignePersonnelTpl = |
"<tr>"+ |
" <td>{fonction}</td>"+ |
" <td>{prenom}</td>"+ |
" <td>{nom}</td>"+ |
" <td>{tel_fix}</td>" + |
" <td>{tel_fax}</td>" + |
" <td>{courriel}</td>" + |
" <td>{statut}</td>" + |
" <td>{tps_w}</td>" + |
" <td>{specialite}</td>" + |
" <td>{contact}</td>" + |
"</tr>"; |
} |
private void initialiserConservationTpl() { |
conservationTpl = |
"<div class='{css_corps}'>"+ |
" <div class='{css_fieldset}'>"+ |
" <h2>{i18n_titre_conservation_personnel}</h2>"+ |
" <span class='{css_label}'>{i18n_formation} :</span> {formation}<br />"+ |
" {formation_info}<br />"+ |
" <span class='{css_label}'>{i18n_formation_interet} :</span> {formation_interet}<br />"+ |
" </div>"+ |
" <div class='{css_fieldset}'>"+ |
" <h2>{i18n_titre_local}</h2>"+ |
" <span class='{css_label}'>{i18n_local_specifique} :</span> {local_specifique}<br />"+ |
" <span class='{css_label}'>{i18n_meuble_specifique} :</span> {meuble_specifique}<br />"+ |
" <span class='{css_label}'>{i18n_local_parametre} :</span> {local_parametre}<br />"+ |
" <span class='{css_label}'>{i18n_conservation_en_commun} :</span> {conservation_en_commun} {collection_autre}<br />"+ |
" <span class='{css_label}'>{i18n_acces_controle} :</span> {acces_controle}<br />"+ |
" </div>"+ |
" <hr class='{css_clear}'/>"+ |
" <div class='{css_fieldset}'>"+ |
" <h2>{i18n_titre_operation}</h2>"+ |
" <span class='{css_label}'>{i18n_restauration} :</span> {restauration} {restauration_operation}<br />"+ |
" <span class='{css_label}'>{i18n_materiel_conservation} :</span> {materiel_conservation} {materiel_autre}<br />"+ |
" <span class='{css_label}'>{i18n_traitement} :</span> {traitement} {traitements}<br />"+ |
" </div>"+ |
" <div class='{css_fieldset}'>"+ |
" <h2>{i18n_titre_acquisition}</h2>"+ |
" <span class='{css_label}'>{i18n_acquisition_collection} :</span> {acquisition_collection}<br />"+ |
" <span class='{css_label}'>{i18n_acquisition_echantillon} :</span> {acquisition_echantillon}<br />"+ |
" {acquisition_traitement_info}" + |
" </div>"+ |
"</div>"; |
} |
private void initialiserTraitementConservationTpl() { |
traitementConservationTpl = |
"<span class='{css_indentation} {css_label}'>{i18n_acquisition_traitement} :</span> {acquisition_traitement}<br />"+ |
" <div class='{css_indentation}'>"+ |
" {acquisition_traitement_type_info}"+ |
" </div>"; |
} |
private void initialiserTypeTraitementConservationTpl() { |
typeTraitementConservationTpl = |
"<span class='{css_indentation} {css_label}'>{i18n_acquisition_traitement_insecte} :</span> {acquisition_traitement_insecte}<br />"+ |
"<span class='{css_indentation} {css_label}'>{i18n_acquisition_traitement_poison} :</span> {acquisition_traitement_poison}<br />"; |
} |
private void initialiserValorisationTpl() { |
valorisationTpl = |
"<div class='{css_corps}'>"+ |
" <div class='{css_fieldset}'>"+ |
" <h2>{i18n_titre_action_valorisation}</h2>"+ |
" <span class='{css_label}'>{i18n_action} :</span> {action} {action_info}<br />"+ |
" <span class='{css_label}'>{i18n_action_publication} :</span> {action_publication}<br />"+ |
" <span class='{css_label}'>{i18n_collection_autre} :</span> {collection_autre}<br />"+ |
" <span class='{css_label}'>{i18n_action_future} :</span> {action_future} {action_future_info}<br />"+ |
" </div>"+ |
" <div class='{css_fieldset}'>"+ |
" <h2>{i18n_titre_recherche_scientifique}</h2>"+ |
" <span class='{css_label}'>{i18n_recherche} :</span> {recherche}<br />"+ |
" {recherche_info}"+ |
" </div>"+ |
" <hr class='{css_clear}'/>"+ |
" <div class='{css_fieldset}'>"+ |
" <h2>{i18n_titre_acces_usage}</h2>"+ |
" <span class='{css_label}'>{i18n_visite} :</span> {visite} {visite_info}<br />"+ |
" <span class='{css_label}'>{i18n_acces} :</span> {acces} {acces_info}<br />"+ |
" </div>"+ |
"</div>"; |
} |
private void initialiserRechercheValorisationTpl() { |
rechercheValorisationTpl = |
"<span class='{css_indentation} {css_label}'>{i18n_recherche_provenance} :</span> {recherche_provenance}<br />"+ |
"<span class='{css_indentation} {css_label}'>{i18n_recherche_type} :</span> {recherche_type}<br />"; |
} |
public void rafraichir(Object nouvellesDonnees) { |
if (nouvellesDonnees instanceof Structure) { |
structure = (Structure) nouvellesDonnees; |
structureChargementOk = true; |
} else if (nouvellesDonnees instanceof ProjetListe) { |
projets = (ProjetListe) nouvellesDonnees; |
projetsChargementOk = true; |
} else if (nouvellesDonnees instanceof ValeurListe) { |
ValeurListe listeValeursReceptionnee = (ValeurListe) nouvellesDonnees; |
receptionerListeValeurs(listeValeursReceptionnee); |
} else if (nouvellesDonnees instanceof Information) { |
Information info = (Information) nouvellesDonnees; |
if (info.getType().equals("liste_structure_a_personne")) { |
allouerPersonnelAStructure((StructureAPersonneListe) info.getDonnee(0)); |
personnelChargementOk = true; |
} |
} else { |
GWT.log(Mediateur.i18nM.erreurRafraichir(nouvellesDonnees.getClass(), this.getClass()), null); |
} |
if (avoirDonneesChargees()) { |
afficherDetailInstitution(); |
} |
} |
protected void allouerPersonnelAStructure(StructureAPersonneListe personnel) { |
structure.setPersonnel(personnel); |
} |
private boolean avoirDonneesChargees() { |
boolean ok = false; |
if (projetsChargementOk && structureChargementOk && personnelChargementOk && ontologieChargementOk) { |
ok = true; |
} |
return ok; |
} |
} |
/trunk/src/org/tela_botanica/client/vues/structure/StructureForm.java |
---|
New file |
0,0 → 1,2074 |
package org.tela_botanica.client.vues.structure; |
import java.util.ArrayList; |
import java.util.Iterator; |
import java.util.List; |
import org.tela_botanica.client.Mediateur; |
import org.tela_botanica.client.RegistreId; |
import org.tela_botanica.client.images.Images; |
import org.tela_botanica.client.interfaces.Rafraichissable; |
import org.tela_botanica.client.modeles.Information; |
import org.tela_botanica.client.modeles.InterneValeur; |
import org.tela_botanica.client.modeles.InterneValeurListe; |
import org.tela_botanica.client.modeles.MenuApplicationId; |
import org.tela_botanica.client.modeles.Valeur; |
import org.tela_botanica.client.modeles.ValeurListe; |
import org.tela_botanica.client.modeles.personne.Personne; |
import org.tela_botanica.client.modeles.personne.PersonneListe; |
import org.tela_botanica.client.modeles.projet.Projet; |
import org.tela_botanica.client.modeles.projet.ProjetListe; |
import org.tela_botanica.client.modeles.structure.Structure; |
import org.tela_botanica.client.modeles.structure.StructureAPersonne; |
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.UtilArray; |
import org.tela_botanica.client.vues.Formulaire; |
import com.extjs.gxt.ui.client.event.Events; |
import com.extjs.gxt.ui.client.Registry; |
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.KeyListener; |
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.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.Html; |
import com.extjs.gxt.ui.client.widget.Info; |
import com.extjs.gxt.ui.client.widget.LayoutContainer; |
import com.extjs.gxt.ui.client.widget.MessageBox; |
import com.extjs.gxt.ui.client.widget.TabItem; |
import com.extjs.gxt.ui.client.widget.TabPanel; |
import com.extjs.gxt.ui.client.widget.button.Button; |
import com.extjs.gxt.ui.client.widget.form.CheckBox; |
import com.extjs.gxt.ui.client.widget.form.CheckBoxGroup; |
import com.extjs.gxt.ui.client.widget.form.ComboBox; |
import com.extjs.gxt.ui.client.widget.form.DateField; |
import com.extjs.gxt.ui.client.widget.form.Field; |
import com.extjs.gxt.ui.client.widget.form.FieldSet; |
import com.extjs.gxt.ui.client.widget.form.HiddenField; |
import com.extjs.gxt.ui.client.widget.form.LabelField; |
import com.extjs.gxt.ui.client.widget.form.NumberField; |
import com.extjs.gxt.ui.client.widget.form.Radio; |
import com.extjs.gxt.ui.client.widget.form.RadioGroup; |
import com.extjs.gxt.ui.client.widget.form.TextArea; |
import com.extjs.gxt.ui.client.widget.form.TextField; |
import com.extjs.gxt.ui.client.widget.form.ComboBox.TriggerAction; |
import com.extjs.gxt.ui.client.widget.form.FormPanel.LabelAlign; |
import com.extjs.gxt.ui.client.widget.grid.CellEditor; |
import com.extjs.gxt.ui.client.widget.grid.CheckColumnConfig; |
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.GridSelectionModel; |
import com.extjs.gxt.ui.client.widget.grid.RowNumberer; |
import com.extjs.gxt.ui.client.widget.layout.ColumnData; |
import com.extjs.gxt.ui.client.widget.layout.ColumnLayout; |
import com.extjs.gxt.ui.client.widget.layout.FitLayout; |
import com.extjs.gxt.ui.client.widget.layout.FormData; |
import com.extjs.gxt.ui.client.widget.tips.ToolTipConfig; |
import com.extjs.gxt.ui.client.widget.toolbar.SeparatorToolItem; |
import com.extjs.gxt.ui.client.widget.toolbar.ToolBar; |
import com.google.gwt.core.client.GWT; |
import com.google.gwt.i18n.client.DateTimeFormat; |
import com.google.gwt.i18n.client.NumberFormat; |
public class StructureForm extends Formulaire implements Rafraichissable { |
private static int decompteRafraichissementPersonnel = 0; |
private TabPanel onglets = null; |
private TabItem identificationOnglet = null; |
private TabItem personnelOnglet = null; |
private TabItem conservationOnglet = null; |
private TabItem valorisationOnglet = null; |
private HiddenField<String> idStructureChp = null; |
// Onglet IDENTIFICATION |
private Structure identification = null; |
private ListStore<Valeur> magazinLstpr = null; |
private ComboBox<Valeur> comboLstpr = null; |
private ListStore<Valeur> magazinLstpu = null; |
private ComboBox<Valeur> comboLstpu = null; |
private ListStore<Valeur> magazinLiStatut = null; |
private ComboBox<Valeur> comboLiStatut = null; |
private ListStore<Valeur> fonctionsMagazin = null; |
private ComboBox<Valeur> fonctionsCombo = null; |
private ComboBox<InterneValeur> comboAcronyme = null; |
private TextField<String> ihChp = null; |
private TextField<String> mnhnChp = null; |
private ComboBox<InterneValeur> comboTypeStructure = null; |
private TextField<String> nomStructureChp = null; |
private DateField dateFondationChp = null; |
private TextArea adrChp = null; |
private TextField<String> cpChp = null; |
private TextField<String> villeChp = null; |
private TextField<String> regionChp = null; |
private TextField<String> telChp = null; |
private TextField<String> faxChp = null; |
private TextField<String> emailChp = null; |
private TextField<String> urlChp = null; |
private ListStore<Valeur> magazinPays = null; |
private ComboBox<Valeur> comboPays = null; |
// Onglet PERSONNEL |
private StructureAPersonneListe personnel = null; |
private StructureAPersonneListe personnelAjoute = null; |
private StructureAPersonneListe personnelModifie = null; |
private StructureAPersonneListe personnelSupprime = null; |
private NumberField nbreTotalPersonneStructureChp = null; |
private EditorGrid<StructureAPersonne> grillePersonnel = null; |
private ListStore<StructureAPersonne> personnelGrilleMagazin = null; |
// Onglet CONSERVATION |
private StructureConservation conservation = null; |
private RadioGroup formationMarkRGrpChp = null; |
private RadioGroup interetFormationMarkRGrpChp = null; |
private RadioGroup collectionCommuneMarkRGrpChp = null; |
private RadioGroup accesControleMarkRGrpChp = null; |
private RadioGroup restaurationMarkRGrpChp = null; |
private RadioGroup traitementMarkRGrpChp = null; |
private RadioGroup collectionAcquisitionMarkRGrpChp = null; |
private RadioGroup echantillonAcquisitionMarkRGrpChp = null; |
private TextField<String> localStockageAutreChp = null; |
private TextField<String> meubleStockageAutreChp = null; |
private TextField<String> parametreStockageAutreChp = null; |
private TextField<String> collectionAutreAutreChp = null; |
private TextField<String> autreCollectionAutreChp = null; |
private TextField<String> opRestauAutreChp = null; |
private TextField<String> autreMaterielAutreChp = null; |
private TextField<String> poisonTraitementAutreChp = null; |
private TextField<String> traitementAutreChp = null; |
private TextField<String> insecteTraitementAutreChp = null; |
private TextField<String> actionAutreChp = null; |
private TextField<String> provenanceRechercheAutreChp = null; |
private TextField<String> typeRechercheAutreChp = null; |
private CheckBoxGroup localStockageTrukCacGrpChp = null; |
private LayoutContainer localStockageTrukCp = null; |
private CheckBoxGroup meubleStockageTrukCacGrpChp = null; |
private LayoutContainer meubleStockageTrukCp = null; |
private CheckBoxGroup parametreStockageTrukCacGrpChp = null; |
private LayoutContainer parametreStockageTrukCp = null; |
private LayoutContainer collectionAutreTrukCp = null; |
private CheckBoxGroup collectionAutreTrukCacGrpChp = null; |
private CheckBoxGroup opRestauTrukCacGrpChp = null; |
private LayoutContainer opRestauTrukCp = null; |
private CheckBoxGroup autreMaterielTrukCacGrpChp = null; |
private LayoutContainer autreMaterielTrukCp = null; |
private LayoutContainer traitementTrukCp = null; |
private CheckBoxGroup traitementTrukCacGrpChp = null; |
private LayoutContainer poisonTraitementTrukCp = null; |
private LayoutContainer insecteTraitementTrukCp = null; |
private CheckBoxGroup insecteTraitementTrukCacGrpChp = null; |
private CheckBoxGroup poisonTraitementTrukCacGrpChp = null; |
private LayoutContainer autreCollectionTrukCp = null; |
private CheckBoxGroup autreCollectionTrukCacGrpChp = null; |
private LayoutContainer provenanceRechercheTrukCp = null; |
private CheckBoxGroup provenanceRechercheTrukCacGrpChp = null; |
private CheckBoxGroup typeRechercheTrukCacGrpChp = null; |
private LayoutContainer typeRechercheTrukCp = null; |
private TextField<String> futureActionChp = null; |
private TextField<String> sansMotifAccesChp = null; |
private TextField<String> avecMotifAccesChp = null; |
private TextField<String> formationChp = null; |
private RadioGroup traitementAcquisitionMarkRGrpChp = null; |
private LabelField traitementAcquisitionMarkLabel = null; |
private RadioGroup materielConservationCeRGrpChp = null; |
// Onglet VALORISATION |
private StructureValorisation valorisation = null; |
private RadioGroup actionMarkRGrpChp = null; |
private LayoutContainer actionTrukCp = null; |
private CheckBoxGroup actionTrukCacGrpChp = null; |
private RadioGroup futureActionMarkRGrpChp = null; |
private RadioGroup rechercheMarkRGrpChp = null; |
private RadioGroup sansMotifAccesMarkRGrpChp = null; |
private RadioGroup avecMotifAccesMarkRGrpChp = null; |
private TextField<String> publicationChp = null; |
private LayoutContainer materielConservationCp = null; |
private ListStore<Personne> personneExistanteMagazin = null; |
private ComboBox<Personne> personneExistanteCombo = null; |
private Button supprimerPersonnelBtn = null; |
private ListStore<Projet> projetsMagazin = null; |
private ComboBox<Projet> projetsCombo = null; |
private CellEditor fonctionEditor = null; |
private List<Valeur> fonctionsListe = null; |
public StructureForm(Mediateur mediateurCourrant, String modeDeCreation) { |
initialiserFormulaire(mediateurCourrant, modeDeCreation, MenuApplicationId.STRUCTURE); |
// Ajout du titre |
panneauFormulaire.setHeading(i18nC.titreAjoutFormStructurePanneau()); |
// Création des onglets |
onglets = creerOnglets(); |
// Ajout des onglets au formulaire général |
panneauFormulaire.add(onglets); |
} |
protected TabPanel creerOnglets() { |
TabPanel ongletsStructure = new TabPanel(); |
// NOTE : pour faire apparaître les scrollBar il faut définir la hauteur du panneau d'onglets à 100% (autoHeight ne semble pas fonctionner) |
ongletsStructure.setHeight("100%"); |
// Onlget formulaire IDENTIFICATION |
ongletsStructure.add(creerOngletIdentification()); |
// Onlget formulaire PERSONNEL |
ongletsStructure.add(creerOngletPersonnel()); |
// Onlget formulaire CONSERVATION |
ongletsStructure.add(creerOngletConservation()); |
// Onlget formulaire VALORISATION |
ongletsStructure.add(creerOngletValorisation()); |
// Sélection de l'onglet par défaut |
//ongletsStructure(personnelOnglet); |
return ongletsStructure; |
} |
public void reinitialiserFormulaire() { |
if (mode.equals(StructureForm.MODE_MODIFIER)) { |
mediateur.afficherFormStructure(identification.getId()); |
} else { |
mediateur.afficherFormStructure(null); |
} |
} |
public boolean soumettreFormulaire() { |
// Vérification de la validité des champs du formulaire |
boolean fomulaireValide = verifierFormulaire(); |
if (fomulaireValide) { |
// Collecte des données du formulaire |
Structure structure = collecterStructureIdentification(); |
StructureConservation conservation = collecterStructureConservation(); |
StructureValorisation valorisation = collecterStructureValorisation(); |
collecterStructurePersonnel(); |
if (mode.equals(MODE_AJOUTER)) { |
// Ajout des informations sur la Structure |
mediateur.ajouterStructure(this, structure, conservation, valorisation); |
// 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)) { |
// 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é."); |
} else { |
mediateur.modifierStructure(this, identification.getId(), structure, conservation, valorisation); |
} |
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é."); |
} else { |
if (personnelModifie.size() != 0) { |
decompteRafraichissementPersonnel++; |
mediateur.modifierStructureAPersonne(this, personnelModifie); |
} |
// Ajout des relations StructureAPersonne |
if (personnelAjoute.size() != 0) { |
decompteRafraichissementPersonnel++; |
mediateur.ajouterStructureAPersonne(this, identification.getId(), personnelAjoute); |
} |
// Suppression des relations StructureAPersonne |
if (personnelSupprime.size() != 0) { |
decompteRafraichissementPersonnel++; |
mediateur.supprimerStructureAPersonne(this, personnelSupprime); |
} |
} |
} |
} |
return fomulaireValide; |
} |
public boolean verifierFormulaire() { |
ArrayList<String> messages = new ArrayList<String>(); |
// Vérification des infos sur le nom de la structure |
if ( (identificationOnglet.getData("acces").equals(true) && nomStructureChp.getValue() == null) || |
(identificationOnglet.getData("acces").equals(true) && nomStructureChp.getValue().equals("")) || |
(identificationOnglet.getData("acces").equals(false) && identification.getNom().equals(""))) { |
messages.add("Veuillez indiquez un nom à l'institution."); |
} |
// Vérification des infos sur le projet de la structure |
if ( (identificationOnglet.getData("acces").equals(true) && projetsCombo.getValue() == null) || |
(identificationOnglet.getData("acces").equals(true) && projetsCombo.getValue().equals("")) || |
(identificationOnglet.getData("acces").equals(false) && identification.getIdProjet().equals(""))) { |
messages.add("Veuillez sélectionner un projet pour l'institution."); |
} |
// Vérification du Personnel |
if (personnelOnglet.getData("acces").equals(true)) { |
String personnelNumero = ""; |
int nbrePersonne = personnelGrilleMagazin.getCount(); |
for (int i = 0; i < nbrePersonne; i++) { |
StructureAPersonne personne = personnelGrilleMagazin.getAt(i); |
if (personne.getNom().equals("") || personne.getPrenom().equals("")) { |
personnelNumero += (i != 0 ? ", " : "")+(i+1); |
} |
} |
if (!personnelNumero.equals("")) { |
messages.add("Veuillez indiquez un prénom et un nom au personnel numéro : "+personnelNumero); |
} |
} |
// Affichage des messages d'alerte |
if (messages.size() != 0) { |
String[] a = {}; |
a = messages.toArray(a); |
MessageBox.alert("Erreurs de saisies", UtilArray.implode(a, "\n\n"), null); |
return false; |
} |
return true; |
} |
private StructureValorisation collecterStructureValorisation() { |
StructureValorisation valorisationARetourner = null; |
if (valorisationOnglet.getData("acces").equals(true)) { |
// Création de l'objet |
StructureValorisation valorisationCollectee = (StructureValorisation) valorisation.cloner(new StructureValorisation()); |
// ACTION |
if (actionMarkRGrpChp.getValue() != null) { |
valorisationCollectee.setAction(actionMarkRGrpChp.getValue().getValueAttribute()); |
} |
// ACTION INFO |
valorisationCollectee.setActionInfo(creerChaineDenormalisee(actionTrukCacGrpChp.getValues())); |
valorisationCollectee.setActionInfo("AUTRE", actionAutreChp.getValue()); |
// PUBLICATION |
valorisationCollectee.setPublication(publicationChp.getValue()); |
// COLLECTION AUTRE |
valorisationCollectee.setCollectionAutre(creerChaineDenormalisee(autreCollectionTrukCacGrpChp.getValues())); |
valorisationCollectee.setCollectionAutre("AUTRE", autreCollectionAutreChp.getValue()); |
// ACTION FUTURE |
if (futureActionMarkRGrpChp.getValue() != null) { |
valorisationCollectee.setActionFuture(futureActionMarkRGrpChp.getValue().getValueAttribute()); |
} |
// ACTION FUTURE INFO |
valorisationCollectee.setActionFutureInfo(futureActionChp.getValue()); |
// RECHERCHE |
if (rechercheMarkRGrpChp.getValue() != null) { |
valorisationCollectee.setRecherche(rechercheMarkRGrpChp.getValue().getValueAttribute()); |
// RECHERCHE PROVENANCE |
valorisationCollectee.setRechercheProvenance(creerChaineDenormalisee(provenanceRechercheTrukCacGrpChp.getValues())); |
valorisationCollectee.setRechercheProvenance("AUTRE", provenanceRechercheAutreChp.getValue()); |
// RECHERCHE TYPE |
valorisationCollectee.setRechercheType(creerChaineDenormalisee(typeRechercheTrukCacGrpChp.getValues())); |
valorisationCollectee.setRechercheType("AUTRE", typeRechercheAutreChp.getValue()); |
} |
// ACCÈS SANS MOTIF |
if (sansMotifAccesMarkRGrpChp.getValue() != null) { |
valorisationCollectee.setAccesSansMotif(sansMotifAccesMarkRGrpChp.getValue().getValueAttribute()); |
} |
// ACCÈS SANS MOTIF INFO |
valorisationCollectee.setAccesSansMotifInfo(sansMotifAccesChp.getValue()); |
// VISITE AVEC MOTIF |
if (avecMotifAccesMarkRGrpChp.getValue() != null) { |
valorisationCollectee.setVisiteAvecMotif(avecMotifAccesMarkRGrpChp.getValue().getValueAttribute()); |
} |
// VISITE AVEC MOTIF INFO |
valorisationCollectee.setVisiteAvecMotifInfo(avecMotifAccesChp.getValue()); |
// Retour de l'objet |
if (!valorisationCollectee.comparer(valorisation)) { |
valorisationARetourner = valorisation = valorisationCollectee; |
} |
} |
return valorisationARetourner; |
} |
private void peuplerStructureValorisation() { |
if (mode.equals(MODE_AJOUTER)) { |
// Indique que l'onglet a pu être modifié pour la méthode collecter... |
valorisationOnglet.setData("acces", true); |
// Initialisation de l'objet Structure |
valorisation = new StructureValorisation(); |
} |
if (mode.equals(MODE_MODIFIER) && valorisation != null && valorisationOnglet.getData("acces").equals(false)) { |
// ACTION : |
//TODO : check below: |
((Radio) actionMarkRGrpChp.get((valorisation.getAction().equals("1") ? 0 : 1))).setValue(true); |
// ACTION INFO |
peuplerCasesACocher(valorisation.getActionInfo(), actionTrukCacGrpChp, actionAutreChp); |
// PUBLICATION |
publicationChp.setValue(valorisation.getPublication()); |
// COLLECTION AUTRE |
peuplerCasesACocher(valorisation.getCollectionAutre(), autreCollectionTrukCacGrpChp, autreCollectionAutreChp); |
// ACTION FUTURE |
((Radio) futureActionMarkRGrpChp.get((valorisation.getActionFuture().equals("1") ? 0 : 1))).setValue(true); |
// ACTION FUTURE INFO |
futureActionChp.setValue(valorisation.getActionFutureInfo()); |
// RECHERCHE |
((Radio) rechercheMarkRGrpChp.get((valorisation.getRecherche().equals("1") ? 0 : 1))).setValue(true); |
// RECHERCHE PROVENANCE |
peuplerCasesACocher(valorisation.getRechercheProvenance(), provenanceRechercheTrukCacGrpChp, provenanceRechercheAutreChp); |
// RECHERCHE TYPE |
peuplerCasesACocher(valorisation.getRechercheType(), typeRechercheTrukCacGrpChp, typeRechercheAutreChp); |
// ACCÈS SANS MOTIF |
((Radio) sansMotifAccesMarkRGrpChp.get((valorisation.getAccesSansMotif().equals("1") ? 0 : 1))).setValue(true); |
// ACCÈS SANS MOTIF INFO |
sansMotifAccesChp.setValue(valorisation.getAccesSansMotifInfo()); |
// VISITE AVEC MOTIF |
((Radio) avecMotifAccesMarkRGrpChp.get((valorisation.getVisiteAvecMotif().equals("1") ? 0 : 1))).setValue(true); |
// VISITE AVEC MOTIF INFO |
avecMotifAccesChp.setValue(valorisation.getVisiteAvecMotifInfo()); |
// Indique que l'onglet a été rempli et a pu être modifié pour la méthode collecter... |
valorisationOnglet.setData("acces", true); |
} |
} |
private StructureConservation collecterStructureConservation() { |
StructureConservation conservationARetourner = null; |
if (conservationOnglet.getData("acces").equals(true)) { |
// Création de l'objet |
StructureConservation conservationCollectee = (StructureConservation) conservation.cloner(new StructureConservation()); |
// FORMATION |
if (formationMarkRGrpChp.getValue() != null) { |
conservationCollectee.setFormation(formationMarkRGrpChp.getValue().getValueAttribute()); |
} |
// FORMATION INFO |
conservationCollectee.setFormationInfo(formationChp.getValue()); |
// FORMATION INTERET |
if (interetFormationMarkRGrpChp.getValue() != null) { |
conservationCollectee.setFormationInteret(interetFormationMarkRGrpChp.getValue().getValueAttribute()); |
} |
// STOCKAGE LOCAL |
conservationCollectee.setStockageLocal(creerChaineDenormalisee(localStockageTrukCacGrpChp.getValues())); |
conservationCollectee.setStockageLocal("AUTRE", localStockageAutreChp.getValue()); |
// STOCKAGE MEUBLE |
conservationCollectee.setStockageMeuble(creerChaineDenormalisee(meubleStockageTrukCacGrpChp.getValues())); |
conservationCollectee.setStockageMeuble("AUTRE", meubleStockageAutreChp.getValue()); |
// STOCKAGE PAREMETRE |
conservationCollectee.setStockageParametre(creerChaineDenormalisee(parametreStockageTrukCacGrpChp.getValues())); |
conservationCollectee.setStockageParametre("AUTRE", parametreStockageAutreChp.getValue()); |
// COLLECTION COMMUNE |
if (collectionCommuneMarkRGrpChp.getValue() != null) { |
conservationCollectee.setCollectionCommune(collectionCommuneMarkRGrpChp.getValue().getValueAttribute()); |
} |
// COLLECTION AUTRE |
conservationCollectee.setCollectionAutre(creerChaineDenormalisee(collectionAutreTrukCacGrpChp.getValues())); |
conservationCollectee.setCollectionAutre("AUTRE", collectionAutreAutreChp.getValue()); |
// ACCÈS CONTROLÉ |
if (accesControleMarkRGrpChp.getValue() != null) { |
conservationCollectee.setAccesControle(accesControleMarkRGrpChp.getValue().getValueAttribute()); |
} |
// RESTAURATION |
if (restaurationMarkRGrpChp.getValue() != null) { |
conservationCollectee.setRestauration(restaurationMarkRGrpChp.getValue().getValueAttribute()); |
} |
// RESTAURATION OPÉRATION |
conservationCollectee.setRestaurationOperation(creerChaineDenormalisee(opRestauTrukCacGrpChp.getValues())); |
conservationCollectee.setRestaurationOperation("AUTRE", opRestauAutreChp.getValue()); |
// MATERIEL CONSERVATION |
if (materielConservationCeRGrpChp.getValue() != null) { |
conservationCollectee.setMaterielConservation(materielConservationCeRGrpChp.getValue().getValueAttribute()); |
// MATERIEL AUTRE |
conservationCollectee.setMaterielAutre(creerChaineDenormalisee(autreMaterielTrukCacGrpChp.getValues())); |
conservationCollectee.setMaterielAutre("AUTRE", autreMaterielAutreChp.getValue()); |
} |
// TRAITEMENT |
if (traitementMarkRGrpChp.getValue() != null) { |
conservationCollectee.setTraitement(traitementMarkRGrpChp.getValue().getValueAttribute()); |
} |
// TRAIEMENTS |
conservationCollectee.setTraitements(creerChaineDenormalisee(traitementTrukCacGrpChp.getValues())); |
conservationCollectee.setTraitements("AUTRE", traitementAutreChp.getValue()); |
// ACQUISITION COLLECTION |
if (collectionAcquisitionMarkRGrpChp.getValue() != null) { |
conservationCollectee.setAcquisitionCollection(collectionAcquisitionMarkRGrpChp.getValue().getValueAttribute()); |
} |
// ACQUISITION ECHANTILLON |
if (echantillonAcquisitionMarkRGrpChp.getValue() != null) { |
conservationCollectee.setAcquisitionEchantillon(echantillonAcquisitionMarkRGrpChp.getValue().getValueAttribute()); |
} |
// ACQUISITION TRAITEMENT |
if (traitementAcquisitionMarkRGrpChp.getValue() != null) { |
conservationCollectee.setAcquisitionTraitement(traitementAcquisitionMarkRGrpChp.getValue().getValueAttribute()); |
} |
// ACQUISITION TRAITEMENT POISON |
conservationCollectee.setAcquisitionTraitementPoison(creerChaineDenormalisee(poisonTraitementTrukCacGrpChp.getValues())); |
conservationCollectee.setAcquisitionTraitementPoison("AUTRE", poisonTraitementAutreChp.getValue()); |
// ACQUISITION TRAITEMENT INSECTE |
conservationCollectee.setAcquisitionTraitementInsecte(creerChaineDenormalisee(insecteTraitementTrukCacGrpChp.getValues())); |
conservationCollectee.setAcquisitionTraitementInsecte("AUTRE", insecteTraitementAutreChp.getValue()); |
// Retour de l'objet |
if (!conservationCollectee.comparer(conservation)) { |
GWT.log("Collecte différent de Retour", null); |
conservationARetourner = conservation = conservationCollectee; |
} |
} |
return conservationARetourner; |
} |
private void peuplerStructureConservation() { |
if (mode.equals(MODE_AJOUTER)) { |
// Indique que l'onglet a pu être modifié pour la méthode collecter... |
conservationOnglet.setData("acces", true); |
// Initialisation de l'objet Structure |
conservation = new StructureConservation(); |
} |
if (mode.equals(MODE_MODIFIER) && conservation != null && conservationOnglet.getData("acces").equals(false)) { |
// FORMATION |
// Bouton oui, à toujours l'index 0 donc on teste en fonction... |
((Radio) formationMarkRGrpChp.get((conservation.getFormation().equals("1") ? 0 : 1))).setValue(true); |
// FORMATION INFO |
formationChp.setValue(conservation.getFormationInfo()); |
// FORMATION INTERET |
((Radio) interetFormationMarkRGrpChp.get((conservation.getFormationInteret().equals("1") ? 0 : 1))).setValue(true); |
// STOCKAGE LOCAL |
peuplerCasesACocher(conservation.getStockageLocal(), localStockageTrukCacGrpChp,localStockageAutreChp); |
// STOCKAGE MEUBLE |
peuplerCasesACocher(conservation.getStockageMeuble(), meubleStockageTrukCacGrpChp, meubleStockageAutreChp); |
// STOCKAGE PAREMETRE |
peuplerCasesACocher(conservation.getStockageParametre(), parametreStockageTrukCacGrpChp, parametreStockageAutreChp); |
// COLLECTION COMMUNE |
((Radio) collectionCommuneMarkRGrpChp.get((conservation.getCollectionCommune().equals("1") ? 0 : 1))).setValue(true); |
// COLLECTION AUTRE |
peuplerCasesACocher(conservation.getCollectionAutre(), collectionAutreTrukCacGrpChp, collectionAutreAutreChp); |
// ACCÈS CONTROLÉ |
((Radio) accesControleMarkRGrpChp.get((conservation.getAccesControle().equals("1") ? 0 : 1))).setValue(true); |
// RESTAURATION |
((Radio) restaurationMarkRGrpChp.get((conservation.getRestauration().equals("1") ? 0 : 1))).setValue(true); |
// RESTAURATION OPÉRATION |
peuplerCasesACocher(conservation.getRestaurationOperation(), opRestauTrukCacGrpChp, opRestauAutreChp); |
// MATERIEL CONSERVATION |
peuplerBoutonsRadio(conservation.getMaterielConservation(), materielConservationCeRGrpChp); |
// MATERIEL AUTRE |
peuplerCasesACocher(conservation.getMaterielAutre(), autreMaterielTrukCacGrpChp, autreMaterielAutreChp); |
// TRAITEMENT |
((Radio) traitementMarkRGrpChp.get((conservation.getTraitement().equals("1") ? 0 : 1))).setValue(true); |
// TRAITEMENTS |
peuplerCasesACocher(conservation.getTraitements(), traitementTrukCacGrpChp, traitementAutreChp); |
// ACQUISITION COLLECTION |
((Radio) collectionAcquisitionMarkRGrpChp.get((conservation.getAcquisitionCollection().equals("1") ? 0 : 1))).setValue(true); |
// ACQUISITION ECHANTILLON |
((Radio) echantillonAcquisitionMarkRGrpChp.get((conservation.getAcquisitionEchantillon().equals("1") ? 0 : 1))).setValue(true); |
// ACQUISITION TRAITEMENT |
((Radio) traitementAcquisitionMarkRGrpChp.get((conservation.getAcquisitionTraitement().equals("1") ? 0 : 1))).setValue(true); |
// ACQUISITION TRAITEMENT POISON |
peuplerCasesACocher(conservation.getAcquisitionTraitementPoison(), poisonTraitementTrukCacGrpChp, poisonTraitementAutreChp); |
// ACQUISITION TRAITEMENT INSECTE |
peuplerCasesACocher(conservation.getAcquisitionTraitementInsecte(), insecteTraitementTrukCacGrpChp, insecteTraitementAutreChp); |
// Indique que l'onglet a été rempli et a pu être modifié pour la méthode collecter... |
conservationOnglet.setData("acces", true); |
} |
} |
private Structure collecterStructureIdentification() { |
Structure structureARetourner = null; |
if (identificationOnglet.getData("acces").equals(true)) { |
Structure structureCollectee = (Structure) identification.cloner(new Structure()); |
structureCollectee.setId(idStructureChp.getValue()); |
structureCollectee.setNom(nomStructureChp.getValue()); |
// Récupération de l'identifiant du projet |
if (projetsCombo.getValue() != null) { |
structureCollectee.setIdProjet(projetsCombo.getValue().getId()); |
} |
// Récupération de l'acronyme (= identifiant alternatif) |
structureCollectee.setIdAlternatif(null); |
if (comboAcronyme.getValue() != null) { |
String typeAcronyme = comboAcronyme.getValue().getAbr(); |
if (typeAcronyme == "IH") { |
structureCollectee.setIdAlternatif(typeAcronyme+"##"+ihChp.getValue()); |
} else if (typeAcronyme == "MNHN") { |
structureCollectee.setIdAlternatif(typeAcronyme+"##"+mnhnChp.getValue()); |
} |
} |
// Récupération statut de la structure |
structureCollectee.setTypePublic(null); |
structureCollectee.setTypePrive(null); |
if (comboTypeStructure.getValue() != null) { |
String typeStructure = comboTypeStructure.getValue().getAbr(); |
if (typeStructure == "stpu" && comboLstpu.getValue() != null) { |
structureCollectee.setTypePublic(comboLstpu.getValue().getId()); |
} else if (typeStructure == "stpr" && comboLstpr.getValue() != null) { |
structureCollectee.setTypePrive(comboLstpr.getValue().getId()); |
} |
} |
structureCollectee.setDateFondation(dateFondationChp.getValue()); |
structureCollectee.setAdresse(adrChp.getValue()); |
structureCollectee.setCodePostal(cpChp.getValue()); |
structureCollectee.setVille(villeChp.getValue()); |
structureCollectee.setRegion(regionChp.getValue()); |
structureCollectee.setPays(null); |
if (comboPays.getValue() != null) { |
structureCollectee.setPays(comboPays.getValue().getId()); |
} else if (comboPays.getRawValue() != "") { |
structureCollectee.setPays(comboPays.getRawValue()); |
} |
structureCollectee.setTelephoneFixe(telChp.getValue()); |
structureCollectee.setFax(faxChp.getValue()); |
structureCollectee.setCourriel(emailChp.getValue()); |
structureCollectee.setUrl(Structure.URL_SITE, urlChp.getValue()); |
if (nbreTotalPersonneStructureChp.getValue() != null) { |
structureCollectee.setNbrePersonne(nbreTotalPersonneStructureChp.getValue().intValue()); |
} |
if (!structureCollectee.comparer(identification)) { |
structureARetourner = identification = structureCollectee; |
} |
} |
return structureARetourner; |
} |
private void peuplerStructureIdentification() { |
if (mode.equals(MODE_AJOUTER)) { |
// Indique que l'ongleta pu être modifié pour la méthode collecter... |
identificationOnglet.setData("acces", true); |
// Initialisation de l'objet Structure |
identification = new Structure(); |
// Indication du projet sélectionné par défaut |
String projetCourantId = ((Mediateur) Registry.get(RegistreId.MEDIATEUR)).getProjetId(); |
if (projetCourantId != null && !projetCourantId.equals("0")) { |
projetsCombo.setValue(projetsCombo.getStore().findModel("id_projet", projetCourantId)); |
} |
} |
if (mode.equals(MODE_MODIFIER) && identification != null && identificationOnglet.getData("acces").equals(false)) { |
idStructureChp.setValue(identification.getId()); |
nomStructureChp.setValue(identification.getNom()); |
if (!identification.getIdProjet().equals("0")) { |
projetsCombo.setValue(projetsCombo.getStore().findModel("id_projet", identification.getIdProjet())); |
} |
if (!identification.getIdAlternatif().isEmpty()) { |
String[] acronyme = identification.getIdAlternatif().split("##"); |
if (acronyme[0].matches("^IH$")) { |
comboAcronyme.setValue(InterneValeurListe.getTypeAcronymeIH()); |
ihChp.setValue(acronyme[1]); |
} else if (acronyme[0].matches("^MNHN$")) { |
comboAcronyme.setValue(InterneValeurListe.getTypeAcronymeMNHN()); |
mnhnChp.setValue(acronyme[1]); |
} |
} |
if (!identification.getTypePrive().isEmpty()) { |
if (identification.getTypePrive().matches("^[0-9]+$")) { |
comboTypeStructure.setValue(InterneValeurListe.getTypePrivee()); |
comboLstpr.setValue(comboLstpr.getStore().findModel("id_valeur", identification.getTypePrive())); |
} |
} else if (!identification.getTypePublic().isEmpty()) { |
if (identification.getTypePublic().matches("^[0-9]+$")) { |
comboTypeStructure.setValue(InterneValeurListe.getTypePublique()); |
comboLstpu.setValue(comboLstpu.getStore().findModel("id_valeur", identification.getTypePublic())); |
} |
} |
dateFondationChp.setValue(identification.getDateFondation()); |
adrChp.setValue(identification.getAdresse()); |
cpChp.setValue(identification.getCodePostal()); |
villeChp.setValue(identification.getVille()); |
regionChp.setValue(identification.getRegion()); |
if (identification.getPays().matches("^[0-9]+$")) { |
comboPays.setValue(comboPays.getStore().findModel("id_valeur", identification.getPays())); |
} else { |
comboPays.setRawValue(identification.getPays()); |
} |
telChp.setValue(identification.getTelephoneFixe()); |
faxChp.setValue(identification.getFax()); |
emailChp.setValue(identification.getCourriel()); |
urlChp.setValue(identification.getUrl("WEB")); |
nbreTotalPersonneStructureChp.setValue(identification.getNbrePersonne()); |
// Indique que l'onglet a été rempli et a pu être modifié pour la méthode collecter... |
identificationOnglet.setData("acces", true); |
} |
} |
private TabItem creerOngletValorisation() { |
valorisationOnglet = creerOnglet("Valorisation", "valorisation"); |
valorisationOnglet.setLayout(creerFormLayout(650, LabelAlign.TOP)); |
Listener<ComponentEvent> ecouteurSelection = new Listener<ComponentEvent>() { |
public void handleEvent(ComponentEvent be) { |
peuplerStructureValorisation(); |
valorisationOnglet.layout(); |
} |
}; |
valorisationOnglet.addListener(Events.Select, ecouteurSelection); |
actionMarkRGrpChp = creerChoixUniqueRadioGroupe("action_mark", "ouiNon"); |
actionMarkRGrpChp.setFieldLabel("Avez-vous réalisé des actions de valorisation de vos collections botaniques ou avez-vous été sollicités pour la valorisation de ces collections ?"); |
valorisationOnglet.add(actionMarkRGrpChp); |
actionTrukCp = creerChoixMultipleCp(); |
actionTrukCp.hide(); |
actionTrukCacGrpChp = new CheckBoxGroup(); |
actionTrukCacGrpChp.setFieldLabel("Si oui, lesquelles ?"); |
valorisationOnglet.add(actionTrukCp); |
mediateur.obtenirListeValeurEtRafraichir(this, "actionValorisation"); |
publicationChp = new TextArea(); |
publicationChp.setFieldLabel("Quelques titres des ouvrages, articles scientifiques, ..."); |
valorisationOnglet.add(publicationChp, new FormData(550, 0)); |
autreCollectionTrukCp = creerChoixMultipleCp(); |
autreCollectionTrukCacGrpChp = new CheckBoxGroup(); |
autreCollectionTrukCacGrpChp.setFieldLabel("L'organisme dispose-t-il d'autres collections (permettant une valorisation pluridisciplinaire) ?"); |
valorisationOnglet.add(autreCollectionTrukCp); |
mediateur.obtenirListeValeurEtRafraichir(this, "autreCollection"); |
futureActionMarkRGrpChp = creerChoixUniqueRadioGroupe("future_action_mark", "ouiNon"); |
futureActionMarkRGrpChp.setFieldLabel("Envisagez vous des actions de valorisation dans le cadre de votre politique culturelle ?"); |
valorisationOnglet.add(futureActionMarkRGrpChp); |
futureActionChp = new TextArea(); |
futureActionChp.setFieldLabel("Si oui, lesquelles ?"); |
futureActionChp.hide(); |
futureActionChp.addListener(Events.Hide, new Listener<BaseEvent>() { |
public void handleEvent(BaseEvent be) { |
((TextArea) be.getSource()).setValue(""); |
} |
}); |
valorisationOnglet.add(futureActionChp, new FormData(550, 0)); |
rechercheMarkRGrpChp = creerChoixUniqueRadioGroupe("recherche_mark", "ouiNon"); |
rechercheMarkRGrpChp.setFieldLabel("Vos collections botaniques sont-elles utilisées pour des recherches scientifiques ?"); |
valorisationOnglet.add(rechercheMarkRGrpChp); |
provenanceRechercheTrukCp = creerChoixMultipleCp(); |
provenanceRechercheTrukCp.hide(); |
provenanceRechercheTrukCacGrpChp = new CheckBoxGroup(); |
provenanceRechercheTrukCacGrpChp.setFieldLabel("Si oui, par des chercheurs (professionnels ou amateurs) de quelle provenance ?"); |
valorisationOnglet.add(provenanceRechercheTrukCp); |
mediateur.obtenirListeValeurEtRafraichir(this, "continentEtFr"); |
typeRechercheTrukCp = creerChoixMultipleCp(); |
typeRechercheTrukCp.hide(); |
typeRechercheTrukCacGrpChp = new CheckBoxGroup(); |
typeRechercheTrukCacGrpChp.setFieldLabel("Et pour quelles recherches ?"); |
valorisationOnglet.add(typeRechercheTrukCp); |
mediateur.obtenirListeValeurEtRafraichir(this, "typeRecherche"); |
sansMotifAccesMarkRGrpChp = creerChoixUniqueRadioGroupe("sans_motif_acces_mark", "ouiNon"); |
sansMotifAccesMarkRGrpChp.setFieldLabel("Peut-on consulter vos collections botaniques sans motif de recherches scientifiques ?"); |
valorisationOnglet.add(sansMotifAccesMarkRGrpChp); |
valorisationOnglet.add(sansMotifAccesChp = new TextArea(), new FormData(550, 0)); |
sansMotifAccesChp.hide(); |
sansMotifAccesChp.addListener(Events.Hide, new Listener<BaseEvent>() { |
public void handleEvent(BaseEvent be) { |
((TextArea) be.getSource()).setValue(""); |
} |
}); |
sansMotifAccesChp.setFieldLabel("Si oui, quelles démarches doit-on faire pour les consulter ?"); |
avecMotifAccesMarkRGrpChp = creerChoixUniqueRadioGroupe("avec_motif_acces_mark", "ouiNon"); |
avecMotifAccesMarkRGrpChp.setFieldLabel("Peut-on visiter vos collections botaniques avec des objectifs de recherches scientifiques ?"); |
valorisationOnglet.add(avecMotifAccesMarkRGrpChp); |
valorisationOnglet.add(avecMotifAccesChp = new TextArea(), new FormData(550, 0)); |
avecMotifAccesChp.hide(); |
avecMotifAccesChp.addListener(Events.Hide, new Listener<BaseEvent>() { |
public void handleEvent(BaseEvent be) { |
((TextArea) be.getSource()).setValue(""); |
} |
}); |
avecMotifAccesChp.setFieldLabel("Si oui, quelles démarches doit-on faire pour les visiter ?"); |
return valorisationOnglet; |
} |
private TabItem creerOngletConservation() { |
conservationOnglet = creerOnglet("Conservation", "conservation"); |
conservationOnglet.setLayout(creerFormLayout(650, LabelAlign.TOP)); |
Listener<ComponentEvent> ecouteurSelection = new Listener<ComponentEvent>() { |
public void handleEvent(ComponentEvent be) { |
peuplerStructureConservation(); |
conservationOnglet.layout(); |
} |
}; |
conservationOnglet.addListener(Events.Select, ecouteurSelection); |
formationMarkRGrpChp = creerChoixUniqueRadioGroupe("formation_mark", "ouiNon"); |
formationMarkRGrpChp.setFieldLabel("Le personnel s'occupant des collections a-t-il suivi des formations en conservations ?"); |
conservationOnglet.add(formationMarkRGrpChp); |
formationChp = new TextArea(); |
formationChp.hide(); |
formationChp.addListener(Events.Hide, new Listener<BaseEvent>() { |
public void handleEvent(BaseEvent be) { |
((TextArea) be.getSource()).setValue(""); |
} |
}); |
formationChp.setFieldLabel("Si oui, lesquelles ?"); |
conservationOnglet.add(formationChp); |
interetFormationMarkRGrpChp = creerChoixUniqueRadioGroupe("interet_formation_mark", "ouiNon"); |
interetFormationMarkRGrpChp.setFieldLabel("Seriez vous intéressé par une formation à la conservation et à la restauration d'herbier ?"); |
conservationOnglet.add(interetFormationMarkRGrpChp); |
localStockageTrukCacGrpChp = new CheckBoxGroup(); |
localStockageTrukCacGrpChp.setFieldLabel("Avez vous des locaux spécifiques de stockage des collections botaniques ?"); |
localStockageTrukCp = creerChoixMultipleCp(); |
conservationOnglet.add(localStockageTrukCp); |
mediateur.obtenirListeValeurEtRafraichir(this, "localStockage"); |
meubleStockageTrukCp = creerChoixMultipleCp(); |
meubleStockageTrukCacGrpChp = new CheckBoxGroup(); |
meubleStockageTrukCacGrpChp.setFieldLabel("Avez vous des meubles spécifiques au stockage des collections botaniques ?"); |
conservationOnglet.add(meubleStockageTrukCp); |
mediateur.obtenirListeValeurEtRafraichir(this, "meubleStockage"); |
parametreStockageTrukCp = creerChoixMultipleCp(); |
parametreStockageTrukCacGrpChp = new CheckBoxGroup(); |
parametreStockageTrukCacGrpChp.setFieldLabel("Quels paramètres maîtrisez vous ?"); |
conservationOnglet.add(parametreStockageTrukCp); |
mediateur.obtenirListeValeurEtRafraichir(this, "parametreStockage"); |
collectionCommuneMarkRGrpChp = creerChoixUniqueRadioGroupe("collection_commune_mark", "ouiNon"); |
collectionCommuneMarkRGrpChp.setFieldLabel("Les collections botaniques sont-elles conservées avec d'autres collections dans les mêmes locaux (problème de conservation en commun) ?"); |
conservationOnglet.add(collectionCommuneMarkRGrpChp); |
collectionAutreTrukCp = creerChoixMultipleCp(); |
collectionAutreTrukCacGrpChp = new CheckBoxGroup(); |
collectionAutreTrukCacGrpChp.setFieldLabel("Si oui, lesquelles ?"); |
collectionAutreTrukCp.hide(); |
conservationOnglet.add(collectionAutreTrukCp); |
mediateur.obtenirListeValeurEtRafraichir(this, "autreCollection"); |
accesControleMarkRGrpChp = creerChoixUniqueRadioGroupe("mark_acces_controle", "ouiNon"); |
accesControleMarkRGrpChp.setFieldLabel("L'accès à vos collections botanique est-il contrôlé (ex. : manipulation réservées à des personnes compétentes) ?"); |
conservationOnglet.add(accesControleMarkRGrpChp); |
restaurationMarkRGrpChp = creerChoixUniqueRadioGroupe("restauration_mark", "ouiNon"); |
restaurationMarkRGrpChp.setFieldLabel("Effectuez vous des opérations de restauration ou de remise en état de vos collections botaniques ?"); |
conservationOnglet.add(restaurationMarkRGrpChp); |
opRestauTrukCp = creerChoixMultipleCp(); |
opRestauTrukCacGrpChp = new CheckBoxGroup(); |
opRestauTrukCacGrpChp.setFieldLabel("Si oui, lesquelles ?"); |
opRestauTrukCp.hide(); |
conservationOnglet.add(opRestauTrukCp); |
mediateur.obtenirListeValeurEtRafraichir(this, "opRestau"); |
// Création d'un ContentPanel vide et du groupe de bouton radio |
// Le groupe de bouton radio recevra les boutons au moment de la réception des données (rafraichir()) et ser à ce moment là ajouter au ContenetPanel |
materielConservationCp = creerChoixMultipleCp(); |
conservationOnglet.add(materielConservationCp); |
materielConservationCeRGrpChp = creerChoixUniqueRadioGroupe("materiel_conservation_ce", "onep"); |
materielConservationCeRGrpChp.setFieldLabel("Utilisez vous du matériel de conservation ?"); |
materielConservationCeRGrpChp.setToolTip(new ToolTipConfig("Matériel de conservation", "matériel spécialisé pour la conservation des archives ou du patrimoine fragile. Ce matériel possède des propriétés mécaniques et chimiques qui font qu'il résiste dans le temps et que sa dégradation n'entraîne pas de dommages sur le matériel qu'il aide à conserver. Exemples : papier neutre, papier gommé, etc...")); |
mediateur.obtenirListeValeurEtRafraichir(this, "onep"); |
autreMaterielTrukCp = creerChoixMultipleCp(); |
autreMaterielTrukCacGrpChp = new CheckBoxGroup(); |
autreMaterielTrukCacGrpChp.setFieldLabel("Si non, qu'utilisez vous comme matériel ?"); |
autreMaterielTrukCp.hide(); |
conservationOnglet.add(autreMaterielTrukCp); |
mediateur.obtenirListeValeurEtRafraichir(this, "autreMateriel"); |
traitementMarkRGrpChp = creerChoixUniqueRadioGroupe("traitement_mark", "ouiNon"); |
traitementMarkRGrpChp.setFieldLabel("Réalisez vous actuellement des traitements globaux contre les insectes ?"); |
conservationOnglet.add(traitementMarkRGrpChp); |
traitementTrukCp = creerChoixMultipleCp(); |
traitementTrukCp.hide(); |
traitementTrukCacGrpChp = new CheckBoxGroup(); |
traitementTrukCacGrpChp.setFieldLabel("Si oui, lesquels ?"); |
conservationOnglet.add(traitementTrukCp); |
mediateur.obtenirListeValeurEtRafraichir(this, "insecteTraitement"); |
collectionAcquisitionMarkRGrpChp = creerChoixUniqueRadioGroupe("collection_acquisition_mark", "ouiNon"); |
collectionAcquisitionMarkRGrpChp.setFieldLabel("Actuellement, vos collections botaniques s'accroissent-elles de nouvelles acquisitions ?"); |
conservationOnglet.add(collectionAcquisitionMarkRGrpChp); |
echantillonAcquisitionMarkRGrpChp = creerChoixUniqueRadioGroupe("echantillon_acquisition_mark", "ouiNon"); |
echantillonAcquisitionMarkRGrpChp.setFieldLabel("Actuellement, mettez vous en herbier de nouveaux échantillons ?"); |
conservationOnglet.add(echantillonAcquisitionMarkRGrpChp); |
traitementAcquisitionMarkRGrpChp = creerChoixUniqueRadioGroupe("traitement_acquisition_mark", "ouiNon"); |
traitementAcquisitionMarkRGrpChp.hide(); |
traitementAcquisitionMarkRGrpChp.setFieldLabel("Si oui, faites-vous un traitement contre les insectes avant l'intégration dans vos collections ?"); |
conservationOnglet.add(traitementAcquisitionMarkRGrpChp); |
traitementAcquisitionMarkLabel = new LabelField(); |
traitementAcquisitionMarkLabel.hide(); |
traitementAcquisitionMarkLabel.setFieldLabel("Si oui, lesquels ?"); |
conservationOnglet.add(traitementAcquisitionMarkLabel); |
poisonTraitementTrukCp = creerChoixMultipleCp(); |
poisonTraitementTrukCp.hide(); |
poisonTraitementTrukCacGrpChp = new CheckBoxGroup(); |
poisonTraitementTrukCacGrpChp.setFieldLabel("Empoisonnement"); |
poisonTraitementTrukCacGrpChp.setLabelStyle("font-weight:normal;text-decoration:underline;"); |
poisonTraitementTrukCacGrpChp.setLabelSeparator(""); |
conservationOnglet.add(poisonTraitementTrukCp); |
mediateur.obtenirListeValeurEtRafraichir(this, "poisonTraitement"); |
insecteTraitementTrukCp = creerChoixMultipleCp(); |
insecteTraitementTrukCp.hide(); |
insecteTraitementTrukCacGrpChp = new CheckBoxGroup(); |
insecteTraitementTrukCacGrpChp.setLabelStyle("font-weight:normal;text-decoration:underline;"); |
insecteTraitementTrukCacGrpChp.setLabelSeparator(""); |
insecteTraitementTrukCacGrpChp.setFieldLabel("Désinsectisation"); |
conservationOnglet.add(insecteTraitementTrukCp); |
mediateur.obtenirListeValeurEtRafraichir(this, "insecteTraitement"); |
conservationOnglet.add(new Html("<br />")); |
return conservationOnglet; |
} |
private void collecterStructurePersonnel() { |
if (personnelOnglet.getData("acces").equals(true)) { |
personnelGrilleMagazin.commitChanges(); |
int nbrePersonne = personnelGrilleMagazin.getCount(); |
for (int i = 0; i < nbrePersonne; i++) { |
StructureAPersonne personne = personnelGrilleMagazin.getAt(i); |
// 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) )) { |
// Gestion de l'id de la structure |
if (mode.equals("MODIF")) { |
personne.setIdStructure(identification.getId()); |
} |
// Récupération de l'id du projet de la structure qui servira aussi pour les Personnes crées dans ce formulaire |
if (personne.getIdPersonne().equals("") && projetsCombo.getValue() != null) { |
personne.setIdProjetPersonne(projetsCombo.getValue().getId()); |
} |
// Gestion de la fonction |
String fonction = personne.get("fonction"); |
if (fonction != null && !fonction.equals("")) { |
Valeur valeurRecherche = fonctionsCombo.getStore().findModel("nom", fonction); |
if (valeurRecherche != null) { |
personne.setFonction(valeurRecherche.getId()); |
} else { |
personne.setFonction("AUTRE", fonction); |
} |
} else { |
personne.setFonction(""); |
} |
// Gestion de la notion de "contact" |
personne.setContact(false); |
if (personne.get("contact").equals(true)) { |
personne.setContact(true); |
} |
// Gestion du statut |
String statut = personne.get("statut"); |
if (statut != null && !statut.equals("")) { |
Valeur valeurRecherche = comboLiStatut.getStore().findModel("nom", statut); |
if (valeurRecherche != null) { |
personne.setStatut(valeurRecherche.getId()); |
} else { |
personne.setStatut("AUTRE", statut); |
} |
} else { |
personne.setStatut(""); |
} |
// Gestion du temps de travail |
personne.setBotaTravailHebdoTps(personne.get("travail").toString()); |
// Gestion du téléphone |
String telephoneFixe = personne.get("tel_fix"); |
personne.setTelephoneFixe(telephoneFixe); |
// Gestion du fax |
String fax = personne.get("tel_fax"); |
personne.setFax(fax); |
// Gestion du courriel |
String courriel = personne.get("courriel"); |
personne.setCourriel(courriel); |
// Gestion de la spécialité |
String specialite = personne.get("specialite"); |
personne.setSpecialite(specialite); |
// Ajout de la personne dans la liste correspondant à son état (ajouté ou modifié) |
if (personne.get("etat") != null && personne.get("etat").equals(StructureAPersonne.ETAT_AJOUTE)) {// 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); |
} |
} |
} |
} |
private void peuplerStructurePersonnel() { |
if (mode.equals(MODE_MODIFIER) && personnel != null) { |
ArrayList<StructureAPersonne> personnes = new ArrayList<StructureAPersonne>(); |
for (Iterator<String> it = personnel.keySet().iterator(); it.hasNext();) { |
String index = it.next(); |
// Gestion de la fonction |
if (fonctionsMagazin != null && !((String) personnel.get(index).getFonction()).startsWith("AUTRE##")) { |
if (fonctionsMagazin.findModel("id_valeur", personnel.get(index).getFonction()) != null) { |
personnel.get(index).set("fonction", fonctionsMagazin.findModel("id_valeur", personnel.get(index).getFonction()).getNom()); |
} |
} else { |
personnel.get(index).set("fonction", personnel.get(index).getFonction().replaceFirst("AUTRE##", "")); |
} |
// Gestion de la notion de "contact" |
personnel.get(index).set("contact", (personnel.get(index).getContact().equals("1") ? true : false)); |
// Gestion du statut |
if (magazinLiStatut != null && ((String) personnel.get(index).getStatut()).matches("^[0-9]+$")) { |
personnel.get(index).set("statut", magazinLiStatut.findModel("id_valeur", personnel.get(index).getStatut()).getNom()); |
} else { |
personnel.get(index).set("statut", personnel.get(index).getStatut().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)); |
personnes.add(personnel.get(index)); |
} |
personnelGrilleMagazin.removeAll(); |
personnelGrilleMagazin.add(personnes); |
// Nous vidons la variable personnel une fois qu'elle a remplie la grille |
personnel = null; |
} |
} |
private TabItem creerOngletPersonnel() { |
// Création des objets contenant les manipulations de la grille |
personnelModifie = new StructureAPersonneListe(); |
personnelAjoute = new StructureAPersonneListe(); |
personnelSupprime = new StructureAPersonneListe(); |
personnelOnglet = creerOnglet("Personnel", "personnel"); |
personnelOnglet.setLayout(creerFormLayout(400, LabelAlign.LEFT)); |
personnelOnglet.setStyleAttribute("padding", "0"); |
personnelOnglet.addListener(Events.Select, new Listener<ComponentEvent>() { |
public void handleEvent(ComponentEvent be) { |
// Indique que l'onglet a été rempli et a pu être modifié pour la méthode collecter... |
personnelOnglet.setData("acces", true); |
// Rafraichissement du contenu de la grille du personnel |
if (mode.equals(MODE_AJOUTER)) { |
rafraichirPersonnel(); |
} |
} |
}); |
ContentPanel cp = new ContentPanel(); |
cp.setHeading("Personnes travaillant sur les collections"); |
cp.setIcon(Images.ICONES.table()); |
//cp.setScrollMode(Scroll.AUTO); |
cp.setLayout(new FitLayout()); |
//cp.setWidth(1250); |
//cp.setHeight("100%"); |
cp.setFrame(true); |
personnelGrilleMagazin = new ListStore<StructureAPersonne>(); |
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(); |
List<ColumnConfig> configs = new ArrayList<ColumnConfig>(); |
GridSelectionModel<StructureAPersonne> sm = new GridSelectionModel<StructureAPersonne>(); |
configs.add(r); |
ColumnConfig column = new ColumnConfig("fonction", "Fonction", 150); |
fonctionsMagazin = new ListStore<Valeur>(); |
fonctionsCombo = new ComboBox<Valeur>(); |
fonctionsCombo.setTriggerAction(TriggerAction.ALL); |
fonctionsCombo.setEditable(true); |
fonctionsCombo.setDisplayField("nom"); |
fonctionsCombo.setStore(fonctionsMagazin); |
mediateur.obtenirListeValeurEtRafraichir(this, "fonction"); |
fonctionEditor = new CellEditor(fonctionsCombo) { |
@Override |
public Object preProcessValue(Object valeur) { |
Valeur retour = null; |
if (valeur != null) { |
String chaineTransmise = (String) valeur; |
if (fonctionsMagazin.getCount() == 0 && fonctionsListe != null) { |
fonctionsMagazin.add(fonctionsListe); |
} |
if (fonctionsMagazin.findModel("id_valeur", chaineTransmise) != null) { |
retour = fonctionsMagazin.findModel("id_valeur", chaineTransmise); |
} else if (fonctionsMagazin.findModel("nom", chaineTransmise) != null) { |
retour = fonctionsMagazin.findModel("nom", chaineTransmise); |
} else { |
retour = new Valeur("", chaineTransmise, "", ""); |
} |
} |
return retour; |
} |
@Override |
public Object postProcessValue(Object valeur) { |
String retour = ""; |
Valeur fonctionTrouvee = null; |
if (valeur == null) { |
String valeurBrute = this.getField().getRawValue(); |
if (fonctionsMagazin.getCount() == 0 && fonctionsListe != null) { |
fonctionsMagazin.add(fonctionsListe); |
} |
if (valeurBrute.matches("^[0-9]+$") && fonctionsMagazin.findModel("id_valeur", valeurBrute) != null) { |
fonctionTrouvee = fonctionsMagazin.findModel("id_valeur", valeurBrute); |
} else { |
retour = valeurBrute; |
} |
} else if (valeur instanceof Valeur) { |
fonctionTrouvee = (Valeur) valeur; |
} |
if (fonctionTrouvee != null) { |
retour = fonctionTrouvee.getNom(); |
} |
return retour; |
} |
}; |
column.setEditor(fonctionEditor); |
configs.add(column); |
column = new ColumnConfig("prenom", "Prénom", 100); |
TextField<String> prenomChp = new TextField<String>(); |
prenomChp.setAllowBlank(false); |
prenomChp.getMessages().setBlankText("Ce champ est obligatoire."); |
prenomChp.setAutoValidate(true); |
column.setEditor(new CellEditor(prenomChp)); |
configs.add(column); |
column = new ColumnConfig("nom", "Nom", 100); |
TextField<String> nomChp = new TextField<String>(); |
nomChp.setAllowBlank(false); |
nomChp.getMessages().setBlankText("Ce champ est obligatoire."); |
nomChp.setAutoValidate(true); |
column.setEditor(new CellEditor(nomChp)); |
configs.add(column); |
column = new ColumnConfig("tel_fix", "Téléphone fixe", 100); |
TextField<String> telChp = new TextField<String>(); |
column.setEditor(new CellEditor(telChp)); |
configs.add(column); |
column = new ColumnConfig("tel_fax", "Fax", 100); |
TextField<String> faxChp = new TextField<String>(); |
column.setEditor(new CellEditor(faxChp)); |
configs.add(column); |
column = new ColumnConfig("courriel", "Courriel principal", 200); |
TextField<String> emailChp = new TextField<String>(); |
column.setEditor(new CellEditor(emailChp)); |
configs.add(column); |
magazinLiStatut = new ListStore<Valeur>(); |
magazinLiStatut.add(new ArrayList<Valeur>()); |
comboLiStatut = new ComboBox<Valeur>(); |
comboLiStatut.setTriggerAction(TriggerAction.ALL); |
comboLiStatut.setEditable(false); |
comboLiStatut.disableTextSelection(true); |
comboLiStatut.setDisplayField("nom"); |
comboLiStatut.setStore(magazinLiStatut); |
mediateur.obtenirListeValeurEtRafraichir(this, "statut"); |
CellEditor statutEditor = new CellEditor(comboLiStatut) { |
@Override |
public Object preProcessValue(Object value) { |
if (value == null) { |
return value; |
} |
return comboLiStatut.getStore().findModel("nom", (String) value); |
} |
@Override |
public Object postProcessValue(Object value) { |
if (value == null) { |
return value; |
} |
return ((Valeur) value).get("nom"); |
} |
}; |
column = new ColumnConfig("statut", "Statut", 100); |
column.setEditor(statutEditor); |
configs.add(column); |
column = new ColumnConfig("travail", "Temps travail", 100); |
column.setNumberFormat(NumberFormat.getFormat("##")); |
NumberField tpsWChp = new NumberField(); |
tpsWChp.setFormat(NumberFormat.getFormat("##")); |
tpsWChp.setToolTip("Ce champ doit contenir un nombre"); |
column.setEditor(new CellEditor(tpsWChp)); |
configs.add(column); |
column = new ColumnConfig("specialite", "Spécialité principale", 150); |
TextField<String> speChp = new TextField<String>(); |
column.setEditor(new CellEditor(speChp)); |
configs.add(column); |
CheckColumnConfig checkColumn = new CheckColumnConfig("contact", "Contact ?", 60); |
configs.add(checkColumn); |
ToolBar toolBar = new ToolBar(); |
Button ajouterPersonnelBtn = new Button("Ajouter"); |
ajouterPersonnelBtn.setIcon(Images.ICONES.vcardAjouter()); |
ajouterPersonnelBtn.addSelectionListener(new SelectionListener<ButtonEvent>() { |
@Override |
public void componentSelected(ButtonEvent ce) { |
StructureAPersonne membreDuPersonnel = new StructureAPersonne("", StructureAPersonne.ROLE_EQUIPE, StructureAPersonne.ETAT_AJOUTE); |
ajouterMembreAGrillePersonnel(membreDuPersonnel); |
} |
}); |
toolBar.add(ajouterPersonnelBtn); |
toolBar.add(new SeparatorToolItem()); |
supprimerPersonnelBtn = new Button("Supprimer"); |
supprimerPersonnelBtn.setIcon(Images.ICONES.vcardSupprimer()); |
supprimerPersonnelBtn.addSelectionListener(new SelectionListener<ButtonEvent>() { |
@Override |
public void componentSelected(ButtonEvent ce) { |
StructureAPersonne personne = grillePersonnel.getSelectionModel().getSelectedItem(); |
if (personne != null) { |
// Ajout de la personne supprimée à la liste |
if (personne.getIdPersonne() != null && !personne.getIdPersonne().equals("")) { |
personnelSupprime.put(personne.getId(), personne); |
} |
// Suppression de l'enregistrement de la grille |
grillePersonnel.getStore().remove(personne); |
// Désactivation du bouton supprimer si la grille contient plus d'élément |
if (grillePersonnel.getStore().getCount() == 0) { |
//TODO : check : Item -> component |
ce.getComponent().disable(); |
} |
} |
} |
}); |
toolBar.add(supprimerPersonnelBtn); |
toolBar.add(new SeparatorToolItem()); |
Button rafraichirPersonnelBtn = new Button("Rafraichir"); |
rafraichirPersonnelBtn.setIcon(Images.ICONES.rafraichir()); |
rafraichirPersonnelBtn.addSelectionListener(new SelectionListener<ButtonEvent>() { |
@Override |
public void componentSelected(ButtonEvent ce) { |
rafraichirPersonnel(); |
} |
}); |
toolBar.add(rafraichirPersonnelBtn); |
toolBar.add(new SeparatorToolItem()); |
personneExistanteMagazin = new ListStore<Personne>(); |
personneExistanteMagazin.add(new ArrayList<Personne>()); |
personneExistanteCombo = new ComboBox<Personne>(); |
personneExistanteCombo.setWidth(200); |
personneExistanteCombo.setEmptyText("Chercher une personne existante..."); |
personneExistanteCombo.setTriggerAction(TriggerAction.ALL); |
personneExistanteCombo.setEditable(true); |
personneExistanteCombo.setDisplayField("fmt_nom_complet"); |
personneExistanteCombo.setStore(personneExistanteMagazin); |
personneExistanteCombo.addKeyListener(new KeyListener() { |
public void componentKeyUp(ComponentEvent ce) { |
if (!ce.isNavKeyPress() && personneExistanteCombo.getRawValue() != null && personneExistanteCombo.getRawValue().length() > 0) { |
rafraichirPersonneExistante(personneExistanteCombo.getRawValue()); |
} |
} |
}); |
// TODO : dans GXT 2.0 plus besoin de l'adaptateur, on peut ajouter la combobox directement sur la toolbar |
//> CHECK |
toolBar.add(personneExistanteCombo); |
Button ajouterPersonneExistanteBtn = new Button("Ajouter"); |
ajouterPersonneExistanteBtn.addSelectionListener(new SelectionListener<ButtonEvent>() { |
@Override |
public void componentSelected(ButtonEvent ce) { |
Personne personneExistante = personneExistanteCombo.getValue(); |
if (personneExistante != null) { |
StructureAPersonne membreDuPersonnel = new StructureAPersonne("", StructureAPersonne.ROLE_EQUIPE, StructureAPersonne.ETAT_AJOUTE); |
membreDuPersonnel.setIdPersonne(personneExistante.getId()); |
membreDuPersonnel.setIdProjetPersonne(personneExistante.getIdProjet()); |
membreDuPersonnel.setNom(personneExistante.getNom()); |
membreDuPersonnel.setPrenom(personneExistante.getPrenom()); |
membreDuPersonnel.setTelephone(personneExistante.getTelephone()); |
membreDuPersonnel.setCourriel(personneExistante.selectionnerCourriel(1)); |
membreDuPersonnel.setSpecialite(personneExistante.afficherSpecialite()); |
ajouterMembreAGrillePersonnel(membreDuPersonnel); |
} |
} |
}); |
toolBar.add(ajouterPersonneExistanteBtn); |
cp.setTopComponent(toolBar); |
ColumnModel cm = new ColumnModel(configs); |
grillePersonnel = new EditorGrid<StructureAPersonne>(personnelGrilleMagazin, cm); |
grillePersonnel.setHeight("100%"); |
grillePersonnel.setBorders(true); |
grillePersonnel.setSelectionModel(sm); |
grillePersonnel.addPlugin(checkColumn); |
grillePersonnel.addPlugin(r); |
grillePersonnel.getView().setForceFit(true); |
grillePersonnel.setAutoExpandColumn("specialite"); |
grillePersonnel.setStripeRows(true); |
grillePersonnel.setTrackMouseOver(true); |
cp.add(grillePersonnel); |
personnelOnglet.add(cp); |
return personnelOnglet; |
} |
private TabItem creerOngletIdentification() { |
//+-----------------------------------------------------------------------------------------------------------+ |
// Onlget formulaire IDENTIFICATION |
identificationOnglet = creerOnglet("Identification", "identification"); |
identificationOnglet.addListener(Events.Select, new Listener<ComponentEvent>() { |
public void handleEvent(ComponentEvent be) { |
peuplerStructureIdentification(); |
identificationOnglet.layout(); |
} |
}); |
//+-----------------------------------------------------------------------------------------------------------+ |
// Champs cachés |
idStructureChp = new HiddenField<String>(); |
//+-----------------------------------------------------------------------------------------------------------+ |
// Fieldset IDENTITÉ |
FieldSet fieldSetIdentite = new FieldSet(); |
fieldSetIdentite.setHeading("Identité"); |
fieldSetIdentite.setCollapsible(true); |
fieldSetIdentite.setLayout(creerFormLayout(120, LabelAlign.LEFT)); |
nomStructureChp = new TextField<String>(); |
nomStructureChp.setTabIndex(tabIndex++); |
nomStructureChp.setFieldLabel("Nom de la structure"); |
nomStructureChp.setAllowBlank(false); |
nomStructureChp.getMessages().setBlankText("Ce champ est obligatoire."); |
fieldSetIdentite.add(nomStructureChp, new FormData(450, 0)); |
projetsMagazin = new ListStore<Projet>(); |
mediateur.selectionnerProjet(this, null); |
projetsCombo = new ComboBox<Projet>(); |
projetsCombo.setTabIndex(tabIndex++); |
projetsCombo.setFieldLabel("Projet"); |
projetsCombo.setLabelSeparator(""); |
projetsCombo.setDisplayField("nom"); |
projetsCombo.setEditable(false); |
projetsCombo.setTriggerAction(TriggerAction.ALL); |
projetsCombo.setStore(projetsMagazin); |
fieldSetIdentite.add(projetsCombo, new FormData(450, 0)); |
// Création du sous-formulaire : Acronyme |
LayoutContainer ligne = new LayoutContainer(); |
ligne.setLayout(new ColumnLayout()); |
ligne.setSize(600, -1); |
LayoutContainer gauche = new LayoutContainer(); |
gauche.setLayout(creerFormLayout(120, LabelAlign.LEFT)); |
LayoutContainer droite = new LayoutContainer(); |
droite.setLayout(creerFormLayout(10, LabelAlign.LEFT)); |
ListStore<InterneValeur> acronymes = new ListStore<InterneValeur>(); |
acronymes.add(InterneValeurListe.getTypeAcronyme()); |
comboAcronyme = new ComboBox<InterneValeur>(); |
comboAcronyme.setTabIndex(tabIndex++); |
comboAcronyme.setEmptyText("Sélectioner un type d'acronyme..."); |
comboAcronyme.setFieldLabel("Type d'acronyme"); |
comboAcronyme.setDisplayField("nom"); |
comboAcronyme.setStore(acronymes); |
comboAcronyme.setEditable(false); |
comboAcronyme.setTypeAhead(true); |
comboAcronyme.setTriggerAction(TriggerAction.ALL); |
comboAcronyme.addSelectionChangedListener(new SelectionChangedListener<InterneValeur>() { |
@Override |
public void selectionChanged(SelectionChangedEvent<InterneValeur> se) { |
String acronymeAbr = se.getSelectedItem().getAbr(); |
if (acronymeAbr.equals("IH")) { |
mnhnChp.hide(); |
ihChp.show(); |
} else if (acronymeAbr.equals("MNHN")) { |
ihChp.hide(); |
mnhnChp.show(); |
} else if (acronymeAbr.equals("")) { |
ihChp.hide(); |
mnhnChp.hide(); |
comboAcronyme.clearSelections(); |
} |
} |
}); |
gauche.add(comboAcronyme, new FormData("95%")); |
ihChp = new TextField<String>(); |
ihChp.setTabIndex(tabIndex++); |
ihChp.setLabelSeparator(""); |
ihChp.setToolTip("Index Herbariorum : herbier de plus de 5000 échantillons"); |
ihChp.hide(); |
droite.add(ihChp, new FormData("95%")); |
mnhnChp = new TextField<String>(); |
mnhnChp.setTabIndex(tabIndex++); |
mnhnChp.setLabelSeparator(""); |
mnhnChp.setToolTip("Acronyme MNHN : herbier de moins de 5000 échantillons"); |
mnhnChp.hide(); |
droite.add(mnhnChp, new FormData("95%")); |
ligne.add(gauche, new ColumnData(.5)); |
ligne.add(droite, new ColumnData(.5)); |
fieldSetIdentite.add(ligne); |
// Création du sous-formulaire : Type de Structure |
LayoutContainer ligneTs = new LayoutContainer(); |
ligneTs.setLayout(new ColumnLayout()); |
ligneTs.setSize(600, -1); |
LayoutContainer gaucheTs = new LayoutContainer(); |
gaucheTs.setLayout(creerFormLayout(120, LabelAlign.LEFT)); |
LayoutContainer droiteTs = new LayoutContainer(); |
droiteTs.setLayout(creerFormLayout(10, LabelAlign.LEFT)); |
ListStore<InterneValeur> typesStructure = new ListStore<InterneValeur>(); |
typesStructure.add(InterneValeurListe.getTypeStructure()); |
comboTypeStructure = new ComboBox<InterneValeur>(); |
comboTypeStructure.setTabIndex(tabIndex++); |
comboTypeStructure.setEmptyText("Sélectioner un type de structure..."); |
comboTypeStructure.setFieldLabel("Statut des structures"); |
comboTypeStructure.setDisplayField("nom"); |
comboTypeStructure.setStore(typesStructure); |
comboTypeStructure.setEditable(false); |
comboTypeStructure.setTypeAhead(true); |
comboTypeStructure.setTriggerAction(TriggerAction.ALL); |
comboTypeStructure.addSelectionChangedListener(new SelectionChangedListener<InterneValeur>() { |
@Override |
public void selectionChanged(SelectionChangedEvent<InterneValeur> se) { |
String typeAbr = se.getSelectedItem().getAbr(); |
if (typeAbr.equals("stpu")) { |
comboLstpr.hide(); |
comboLstpu.show(); |
} else if (typeAbr.equals("stpr")) { |
comboLstpu.hide(); |
comboLstpr.show(); |
} else if (typeAbr.equals("")) { |
comboLstpr.hide(); |
comboLstpu.hide(); |
comboTypeStructure.clearSelections(); |
} |
} |
}); |
gaucheTs.add(comboTypeStructure, new FormData("95%")); |
magazinLstpu = new ListStore<Valeur>(); |
comboLstpu = new ComboBox<Valeur>(); |
comboLstpu.setTabIndex(tabIndex++); |
//comboLstpu.setFieldLabel("Statut des structures publiques"); |
comboLstpu.setLabelSeparator(""); |
comboLstpu.setDisplayField("nom"); |
comboLstpu.setEditable(false); |
comboLstpu.setTriggerAction(TriggerAction.ALL); |
comboLstpu.setStore(magazinLstpu); |
comboLstpu.hide(); |
droiteTs.add(comboLstpu, new FormData("95%")); |
mediateur.obtenirListeValeurEtRafraichir(this, "stpu"); |
magazinLstpr = new ListStore<Valeur>(); |
comboLstpr = new ComboBox<Valeur>(); |
comboLstpr.setTabIndex(tabIndex++); |
//comboLstpr.setFieldLabel("Statut des structures privées"); |
comboLstpr.setLabelSeparator(""); |
comboLstpr.setDisplayField("nom"); |
comboLstpr.setEditable(false); |
comboLstpr.setTriggerAction(TriggerAction.ALL); |
comboLstpr.setStore(magazinLstpr); |
comboLstpr.hide(); |
droiteTs.add(comboLstpr, new FormData("95%")); |
mediateur.obtenirListeValeurEtRafraichir(this, "stpr"); |
ligneTs.add(gaucheTs, new ColumnData(0.5)); |
ligneTs.add(droiteTs, new ColumnData(0.5)); |
fieldSetIdentite.add(ligneTs); |
dateFondationChp = new DateField(); |
dateFondationChp.setTabIndex(tabIndex++); |
dateFondationChp.setFieldLabel("Date de fondation"); |
dateFondationChp.getPropertyEditor().getFormat(); |
dateFondationChp.getPropertyEditor().setFormat(DateTimeFormat.getFormat("dd/MM/yyyy")); |
dateFondationChp.getMessages().setInvalidText("La valeur saisie n'est pas une date valide. La date doit être au format «jj/mm/aaaa»."); |
fieldSetIdentite.add(dateFondationChp); |
nbreTotalPersonneStructureChp = new NumberField(); |
nbreTotalPersonneStructureChp.setFieldLabel("Nombre de personne travaillant dans l'institution"); |
nbreTotalPersonneStructureChp.setFormat(NumberFormat.getFormat("#")); |
nbreTotalPersonneStructureChp.setToolTip(i18nC.champNumerique()); |
fieldSetIdentite.add(nbreTotalPersonneStructureChp); |
identificationOnglet.add(fieldSetIdentite); |
//+-----------------------------------------------------------------------------------------------------------+ |
// Fieldset ADRESSE |
LayoutContainer principalFdAdresse = new LayoutContainer(); |
principalFdAdresse.setLayout(new ColumnLayout()); |
principalFdAdresse.setSize(600, -1); |
LayoutContainer gaucheFdAdresse = new LayoutContainer(); |
gaucheFdAdresse.setLayout(creerFormLayout(null, LabelAlign.LEFT)); |
LayoutContainer droiteFdAdresse = new LayoutContainer(); |
droiteFdAdresse.setLayout(creerFormLayout(null, LabelAlign.LEFT)); |
FieldSet fieldSetAdresse = new FieldSet(); |
fieldSetAdresse.setHeading("Adresse"); |
fieldSetAdresse.setCollapsible(true); |
fieldSetAdresse.setLayout(creerFormLayout(null, LabelAlign.LEFT)); |
adrChp = new TextArea(); |
adrChp.setTabIndex(tabIndex++); |
adrChp.setFieldLabel("Adresse"); |
fieldSetAdresse.add(adrChp, new FormData(550, 0)); |
cpChp = new TextField<String>(); |
cpChp.setTabIndex(tabIndex++); |
cpChp.setFieldLabel("Code postal"); |
gaucheFdAdresse.add(cpChp, new FormData("95%")); |
villeChp = new TextField<String>(); |
villeChp.setTabIndex(tabIndex++); |
villeChp.setFieldLabel("Ville"); |
droiteFdAdresse.add(villeChp, new FormData("95%")); |
regionChp = new TextField<String>(); |
regionChp.setTabIndex(tabIndex++); |
regionChp.setFieldLabel("Région"); |
gaucheFdAdresse.add(regionChp, new FormData("95%")); |
magazinPays = new ListStore<Valeur>(); |
comboPays = new ComboBox<Valeur>(); |
comboPays.setTabIndex(tabIndex++); |
comboPays.setFieldLabel("Pays"); |
comboPays.setEmptyText("Sélectioner un pays..."); |
comboPays.setEditable(true); |
comboPays.setLabelSeparator(""); |
comboPays.setDisplayField("nom"); |
comboPays.setTemplate(getTemplatePays()); |
comboPays.setTypeAhead(true); |
comboPays.setTriggerAction(TriggerAction.ALL); |
comboPays.setStore(magazinPays); |
droiteFdAdresse.add(comboPays, new FormData("95%")); |
mediateur.obtenirListeValeurEtRafraichir(this, "pays"); |
principalFdAdresse.add(gaucheFdAdresse, new ColumnData(.5)); |
principalFdAdresse.add(droiteFdAdresse, new ColumnData(.5)); |
fieldSetAdresse.add(principalFdAdresse); |
identificationOnglet.add(fieldSetAdresse); |
//+-----------------------------------------------------------------------------------------------------------+ |
// Fieldset TÉLÉPHONE et EMAIL |
LayoutContainer principalFdTelMail = new LayoutContainer(); |
principalFdTelMail.setLayout(new ColumnLayout()); |
principalFdTelMail.setSize(700, -1); |
LayoutContainer gaucheFdTelMail = new LayoutContainer(); |
gaucheFdTelMail.setLayout(creerFormLayout(60, LabelAlign.LEFT)); |
LayoutContainer droiteFdTelMail = new LayoutContainer(); |
droiteFdTelMail.setLayout(creerFormLayout(60, LabelAlign.LEFT)); |
FieldSet fieldSetTelMail = new FieldSet(); |
fieldSetTelMail.setHeading("Communication"); |
fieldSetTelMail.setCollapsible(true); |
fieldSetTelMail.setLayout(creerFormLayout(null, LabelAlign.LEFT)); |
telChp = new TextField<String>(); |
telChp.setTabIndex(tabIndex++); |
telChp.setFieldLabel("Téléphone fixe"); |
gaucheFdTelMail.add(telChp, new FormData("95%")); |
faxChp = new TextField<String>(); |
faxChp.setTabIndex(tabIndex++); |
faxChp.setFieldLabel("Fax"); |
droiteFdTelMail.add(faxChp, new FormData("95%")); |
emailChp = new TextField<String>(); |
emailChp.setTabIndex(tabIndex++); |
emailChp.setFieldLabel("Courriel"); |
emailChp.setToolTip("Saisir le courriel de l'organisation, pas de courriel individuel. Ex. : accueil@organisation.org"); |
gaucheFdTelMail.add(emailChp, new FormData("95%")); |
urlChp = new TextField<String>(); |
urlChp.setTabIndex(tabIndex++); |
urlChp.setFieldLabel("Site web"); |
droiteFdTelMail.add(urlChp, new FormData("95%")); |
principalFdTelMail.add(gaucheFdTelMail, new ColumnData(.5)); |
principalFdTelMail.add(droiteFdTelMail, new ColumnData(.5)); |
fieldSetTelMail.add(principalFdTelMail); |
identificationOnglet.add(fieldSetTelMail); |
return identificationOnglet; |
} |
private native String getTemplatePays() /*-{ |
return [ |
'<tpl for=".">', |
'<div class="x-combo-list-item">{nom} ({abreviation})</div>', |
'</tpl>' |
].join(""); |
}-*/; |
private void peuplerCasesACocher(String donnees, CheckBoxGroup groupeCac, TextField<String> champAutre) { |
String[] valeurs = donnees.split(";;"); |
for (int i = 0; i < valeurs.length; i++) { |
if (valeurs[i].startsWith("AUTRE##")) { |
champAutre.setValue(valeurs[i].replaceFirst("^AUTRE##", "")); |
} else { |
//TODO : check : List<CheckBox> cases = groupeCac.getAll(); |
List<Field<?>> cases = groupeCac.getAll(); |
for (int j = 0; j < cases.size(); j++) { |
if (cases.get(j).getId().equals("val-"+valeurs[i])) { |
((CheckBox) cases.get(j)).setValue(true); |
} |
} |
} |
} |
} |
private void peuplerBoutonsRadio(String valeur, RadioGroup groupeBr) { |
//List<Radio> boutons = groupeBr.getAll(); |
List<Field<?>> boutons = groupeBr.getAll(); |
String id = valeur+"_"+groupeBr.getName().replace("_grp", ""); |
for (int i = 0; i < boutons.size(); i++) { |
if (boutons.get(i).getId().equals(id)) { |
((Radio) boutons.get(i)).setValue(true); |
} |
} |
} |
private String creerChaineDenormalisee(List<CheckBox> liste) { |
String identifiants = ""; |
if (liste != null) { |
int taille = liste.size(); |
for (int i = 0; i < taille; i++) { |
CheckBox cac = liste.get(i); |
if (cac.isEnabled()) { |
identifiants = identifiants.concat(";;"+cac.getData("id")); |
} |
} |
identifiants.replaceFirst("^;;", ""); |
} |
return identifiants; |
} |
public void afficherChampSupplementaire(Radio radioBtn) { |
//GWT.log("Nom btn : "+radioBtn.getName()+" - Nom group : "+radioBtn.getGroup().getName(), null); |
// Valeur du bouton radio déclenchant l'affichage des composants cachés |
String valeurPourAfficher = "oui"; |
// Construction de la liste des composants à afficher/cacher |
String radioGroupeNom = radioBtn.getGroup().getName(); |
ArrayList<Object> composants = new ArrayList<Object>(); |
if (radioGroupeNom.equals("action_mark_grp")) { |
composants.add(actionTrukCp); |
} else if (radioGroupeNom.equals("future_action_mark_grp")) { |
composants.add(futureActionChp); |
} else if (radioGroupeNom.equals("sans_motif_acces_mark_grp")) { |
composants.add(sansMotifAccesChp); |
} else if (radioGroupeNom.equals("avec_motif_acces_mark_grp")) { |
composants.add(avecMotifAccesChp); |
} else if (radioGroupeNom.equals("recherche_mark_grp")) { |
composants.add(provenanceRechercheTrukCp); |
composants.add(typeRechercheTrukCp); |
} else if (radioGroupeNom.equals("formation_mark_grp")) { |
composants.add(formationChp); |
} else if (radioGroupeNom.equals("collection_commune_mark_grp")) { |
composants.add(collectionAutreTrukCp); |
} else if (radioGroupeNom.equals("restauration_mark_grp")) { |
composants.add(opRestauTrukCp); |
} else if (radioGroupeNom.equals("traitement_mark_grp")) { |
composants.add(traitementTrukCp); |
} else if (radioGroupeNom.equals("echantillon_acquisition_mark_grp")) { |
composants.add(traitementAcquisitionMarkRGrpChp); |
} else if (radioGroupeNom.equals("traitement_acquisition_mark_grp")) { |
composants.add(traitementAcquisitionMarkLabel); |
composants.add(poisonTraitementTrukCp); |
composants.add(insecteTraitementTrukCp); |
} else if (radioGroupeNom.equals("materiel_conservation_ce_grp")) { |
composants.add(autreMaterielTrukCp); |
valeurPourAfficher = "non"; |
} |
// Nous affichons/cachons les composant de la liste |
final int nbreComposants = composants.size(); |
//GWT.log("Id : "+radioBtn.getId()+" - Class : "+radioBtn.getClass().toString()+"- Taille : "+tailleMax, null); |
//Window.alert("Radio grp nom : "+radioGroupeNom+" - Id btn : "+radioBtn.getId()+" - Class : "+radioBtn.getClass().toString()+"- Taille : "+tailleMax); |
for (int i = 0; i < nbreComposants; i++) { |
// En fonction du type de bouton cliquer, on affiche ou cache les champs |
String type = radioBtn.getBoxLabel().toLowerCase(); |
//GWT.log(type, null); |
if (radioBtn.getValue() == true) { |
if (type.equals(valeurPourAfficher)) { |
((Component) composants.get(i)).show(); |
} else { |
((Component) composants.get(i)).hide(); |
} |
} |
// Si on a à faire à un ContentPanel, on l'actualise pour déclencher l'affichage |
if (composants.get(i) instanceof ContentPanel) { |
((ContentPanel) composants.get(i)).layout(); |
} |
} |
} |
public void rafraichir(Object nouvellesDonnees) { |
try { |
if (nouvellesDonnees instanceof Information) { |
Information info = (Information) nouvellesDonnees; |
rafraichirInformation(info); |
} else if (nouvellesDonnees instanceof ValeurListe) { |
ValeurListe listeValeurs = (ValeurListe) nouvellesDonnees; |
rafraichirValeurListe(listeValeurs); |
} else if (nouvellesDonnees instanceof ProjetListe) { |
ProjetListe projets = (ProjetListe) nouvellesDonnees; |
rafraichirProjetListe(projets); |
} else { |
GWT.log(Mediateur.i18nM.erreurRafraichir(nouvellesDonnees.getClass(), this.getClass()), null); |
} |
} catch (Exception e) { |
GWT.log(Mediateur.i18nM.erreurRafraichir(nouvellesDonnees.getClass(), this.getClass()), e); |
} |
controlerFermetureApresRafraichissement(); |
} |
public void rafraichirInformation(Information info) { |
if (info.getMessages() != null && !info.getMessages().toString().equals("[]")) { |
GWT.log("MESSAGES:\n"+info.getMessages().toString(), null); |
} |
if (info.getType().equals("modif_structure")) { |
Info.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"); |
// 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()); |
} |
} else if (info.getType().equals("modif_structure_a_personne")) { |
Info.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()); |
GWT.log("Decompte:"+decompteRafraichissementPersonnel, null); |
testerLancementRafraichirPersonnel(); |
} else if (info.getType().equals("ajout_structure_a_personne")) { |
Info.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()); |
String titre = i18nC.titreModifFormStructurePanneau(); |
if (info.getDonnee(0) != null) { |
identification = (Structure) info.getDonnee(0); |
if (onglets.getSelectedItem().equals(identificationOnglet)) { |
peuplerStructureIdentification(); |
} |
// Composition du titre |
titre += " - ID : "+identification.getId(); |
} |
if (info.getDonnee(1) != null) { |
conservation = (StructureConservation) info.getDonnee(1); |
if (onglets.getSelectedItem().equals(conservationOnglet)) { |
peuplerStructureConservation(); |
} |
} |
if (info.getDonnee(2) != null) { |
valorisation = (StructureValorisation) info.getDonnee(2); |
if (valorisation != null) { |
if (onglets.getSelectedItem().equals(valorisationOnglet)) { |
peuplerStructureValorisation(); |
} |
} |
} |
panneauFormulaire.setHeading(titre); |
} else if (info.getType().equals("liste_structure_a_personne")) { |
if (info.getDonnee(0) != null) { |
personnel = (StructureAPersonneListe) info.getDonnee(0); |
peuplerStructurePersonnel(); |
personnelOnglet.layout(); |
Info.display("Chargement du Personnel", "ok"); |
// Remise à zéro des modification dans la liste du personnel |
personnelModifie = new StructureAPersonneListe(); |
personnelAjoute = new StructureAPersonneListe(); |
personnelSupprime = new StructureAPersonneListe(); |
} |
} else if (info.getType().equals("liste_personne")) { |
if (info.getDonnee(0) != null) { |
PersonneListe personnes = (PersonneListe) info.getDonnee(0); |
List<Personne> liste = personnes.toList(); |
personneExistanteMagazin.removeAll(); |
personneExistanteMagazin.add(liste); |
personneExistanteCombo.setStore(personneExistanteMagazin); |
personneExistanteCombo.expand(); |
} |
} |
} |
public void rafraichirValeurListe(ValeurListe listeValeurs) { |
List<Valeur> liste = listeValeurs.toList(); |
// Test pour savoir si la liste contient des éléments |
if (liste.size() > 0) { |
if (listeValeurs.getId().equals(config.getListeId("stpr"))) { |
magazinLstpr.removeAll(); |
magazinLstpr.add(liste); |
comboLstpr.setStore(magazinLstpr); |
} |
if (listeValeurs.getId().equals(config.getListeId("stpu"))) { |
magazinLstpu.removeAll(); |
magazinLstpu.add(liste); |
comboLstpu.setStore(magazinLstpu); |
} |
if (listeValeurs.getId().equals(config.getListeId("statut"))) { |
magazinLiStatut.removeAll(); |
magazinLiStatut.add(liste); |
comboLiStatut.setStore(magazinLiStatut); |
} |
if (listeValeurs.getId().equals(config.getListeId("fonction"))) { |
// FIXME : le store ne contient pas tout le temps les données, chose étrange. |
// On stocke donc les données dans une variables de la classe pour recharger le store si besoin. |
fonctionsListe = liste; |
fonctionsMagazin.removeAll(); |
fonctionsMagazin.add(liste); |
fonctionsCombo.setStore(fonctionsMagazin); |
} |
if (listeValeurs.getId().equals(config.getListeId("pays"))) { |
magazinPays.removeAll(); |
magazinPays.add(liste); |
comboPays.setStore(magazinPays); |
} |
if (listeValeurs.getId().equals(config.getListeId("localStockage"))) { |
localStockageAutreChp = new TextField<String>(); |
creerChoixMultipleCac(localStockageTrukCp, localStockageTrukCacGrpChp, listeValeurs, localStockageAutreChp); |
} |
if (listeValeurs.getId().equals(config.getListeId("meubleStockage"))) { |
meubleStockageAutreChp = new TextField<String>(); |
creerChoixMultipleCac(meubleStockageTrukCp, meubleStockageTrukCacGrpChp, listeValeurs, meubleStockageAutreChp); |
} |
if (listeValeurs.getId().equals(config.getListeId("parametreStockage"))) { |
parametreStockageAutreChp = new TextField<String>(); |
creerChoixMultipleCac(parametreStockageTrukCp, parametreStockageTrukCacGrpChp, listeValeurs, parametreStockageAutreChp); |
} |
if (listeValeurs.getId().equals(config.getListeId("autreCollection"))) { |
if (collectionAutreTrukCp != null && collectionAutreTrukCp.getItemByItemId("collectionAutreTrukCacGrpChp") == null) { |
collectionAutreTrukCacGrpChp.setId("collectionAutreTrukCacGrpChp"); |
collectionAutreAutreChp = new TextField<String>(); |
creerChoixMultipleCac(collectionAutreTrukCp, collectionAutreTrukCacGrpChp, listeValeurs, collectionAutreAutreChp); |
} |
if (autreCollectionTrukCp != null && autreCollectionTrukCp.getItemByItemId("autreCollectionTrukCacGrpChp") == null) { |
autreCollectionTrukCacGrpChp.setId("autreCollectionTrukCacGrpChp"); |
autreCollectionAutreChp = new TextField<String>(); |
creerChoixMultipleCac(autreCollectionTrukCp, autreCollectionTrukCacGrpChp, listeValeurs, autreCollectionAutreChp); |
} |
} |
if (listeValeurs.getId().equals(config.getListeId("opRestau"))) { |
opRestauAutreChp = new TextField<String>(); |
creerChoixMultipleCac(opRestauTrukCp, opRestauTrukCacGrpChp, listeValeurs, opRestauAutreChp); |
} |
if (listeValeurs.getId().equals(config.getListeId("onep"))) { |
creerChoixUniqueBoutonRadio(materielConservationCeRGrpChp, listeValeurs); |
materielConservationCp.add(materielConservationCeRGrpChp); |
materielConservationCp.layout(); |
} |
if (listeValeurs.getId().equals(config.getListeId("autreMateriel"))) { |
autreMaterielAutreChp = new TextField<String>(); |
creerChoixMultipleCac(autreMaterielTrukCp, autreMaterielTrukCacGrpChp, listeValeurs, autreMaterielAutreChp); |
} |
if (listeValeurs.getId().equals(config.getListeId("poisonTraitement"))) { |
poisonTraitementAutreChp = new TextField<String>(); |
creerChoixMultipleCac(poisonTraitementTrukCp, poisonTraitementTrukCacGrpChp, listeValeurs, poisonTraitementAutreChp); |
} |
if (listeValeurs.getId().equals(config.getListeId("insecteTraitement"))) { |
if (traitementTrukCp != null && traitementTrukCp.getItemByItemId("traitementTrukCacGrpChp") == null) { |
traitementTrukCacGrpChp.setId("traitementTrukCacGrpChp"); |
traitementAutreChp = new TextField<String>(); |
creerChoixMultipleCac(traitementTrukCp, traitementTrukCacGrpChp, listeValeurs, traitementAutreChp); |
} |
if (insecteTraitementTrukCp != null && insecteTraitementTrukCp.getItemByItemId("insecteTraitementTrukCacGrpChp") == null) { |
insecteTraitementTrukCacGrpChp.setId("insecteTraitementTrukCacGrpChp"); |
insecteTraitementAutreChp = new TextField<String>(); |
creerChoixMultipleCac(insecteTraitementTrukCp, insecteTraitementTrukCacGrpChp, listeValeurs, insecteTraitementAutreChp); |
} |
} |
if (listeValeurs.getId().equals(config.getListeId("actionValorisation"))) { |
actionAutreChp = new TextField<String>(); |
creerChoixMultipleCac(actionTrukCp, actionTrukCacGrpChp, listeValeurs, actionAutreChp); |
} |
if (listeValeurs.getId().equals(config.getListeId("continentEtFr"))) { |
provenanceRechercheAutreChp = new TextField<String>(); |
creerChoixMultipleCac(provenanceRechercheTrukCp, provenanceRechercheTrukCacGrpChp, listeValeurs, provenanceRechercheAutreChp); |
} |
if (listeValeurs.getId().equals(config.getListeId("typeRecherche"))) { |
typeRechercheAutreChp = new TextField<String>(); |
creerChoixMultipleCac(typeRechercheTrukCp, typeRechercheTrukCacGrpChp, listeValeurs, typeRechercheAutreChp); |
} |
//GWT.log("La liste #"+listeValeurs.getId()+" a été reçue!", null); |
} else { |
GWT.log("La liste #"+listeValeurs.getId()+" ne contient aucune valeurs!", null); |
} |
} |
private void rafraichirProjetListe(ProjetListe projets) { |
List<Projet> liste = projets.toList(); |
projetsMagazin.removeAll(); |
projetsMagazin.add(liste); |
projetsCombo.setStore(projetsMagazin); |
} |
private void testerLancementRafraichirPersonnel() { |
decompteRafraichissementPersonnel--; |
if (decompteRafraichissementPersonnel == 0) { |
// Nous rechargeons la liste du Personnel |
rafraichirPersonnel(); |
} |
} |
private void rafraichirPersonnel() { |
decompteRafraichissementPersonnel = 0; |
if (mode.equals(MODE_MODIFIER)) { |
initialiserGrillePersonnelEnModification(); |
} else if (mode.equals(MODE_AJOUTER)) { |
initialiserGrillePersonnelEnAjout(); |
} |
} |
private void rafraichirPersonneExistante(String nom) { |
mediateur.selectionnerPersonneParNomComplet(this, null, nom+"%"); |
} |
private void ajouterMembreAGrillePersonnel(StructureAPersonne personnel) { |
grillePersonnel.stopEditing(); |
personnelGrilleMagazin.insert(personnel, 0); |
grillePersonnel.startEditing(0, 0); |
} |
private void initialiserGrillePersonnelEnAjout() { |
personnelGrilleMagazin.removeAll(); |
StructureAPersonne conservateurDesCollections = new StructureAPersonne(StructureAPersonne.FONCTION_CONSERVATEUR, StructureAPersonne.ROLE_EQUIPE, StructureAPersonne.ETAT_AJOUTE); |
ajouterMembreAGrillePersonnel(conservateurDesCollections); |
StructureAPersonne directeurDuPersonnel = new StructureAPersonne(StructureAPersonne.FONCTION_DIRECTEUR, StructureAPersonne.ROLE_EQUIPE, StructureAPersonne.ETAT_AJOUTE); |
ajouterMembreAGrillePersonnel(directeurDuPersonnel); |
personnelOnglet.layout(); |
} |
private void initialiserGrillePersonnelEnModification() { |
mediateur.selectionnerStructureAPersonne(this, identification.getId(), StructureAPersonne.ROLE_EQUIPE); |
} |
} |
/trunk/src/org/tela_botanica/client/vues/projet/ProjetVue.java |
---|
New file |
0,0 → 1,71 |
package org.tela_botanica.client.vues.projet; |
import org.tela_botanica.client.Mediateur; |
import org.tela_botanica.client.interfaces.Rafraichissable; |
import org.tela_botanica.client.modeles.Information; |
import org.tela_botanica.client.modeles.ValeurListe; |
import org.tela_botanica.client.modeles.projet.Projet; |
import org.tela_botanica.client.modeles.projet.ProjetListe; |
import org.tela_botanica.client.util.Debug; |
import com.extjs.gxt.ui.client.Style.LayoutRegion; |
import com.extjs.gxt.ui.client.util.Margins; |
import com.extjs.gxt.ui.client.widget.LayoutContainer; |
import com.extjs.gxt.ui.client.widget.layout.BorderLayout; |
import com.extjs.gxt.ui.client.widget.layout.BorderLayoutData; |
import com.google.gwt.core.client.GWT; |
public class ProjetVue extends LayoutContainer implements Rafraichissable { |
private ProjetListeVue panneauProjetListe; |
private ProjetDetailVue panneauProjetDetail; |
private Mediateur mediateur = null; |
public ProjetVue(Mediateur mediateurCourant) { |
super(); |
mediateur = mediateurCourant; |
BorderLayout layout = new BorderLayout(); |
layout.setEnableState(false); |
setLayout(layout); |
panneauProjetListe = new ProjetListeVue(mediateur); |
this.add(panneauProjetListe, new BorderLayoutData(LayoutRegion.CENTER)); |
panneauProjetDetail = new ProjetDetailVue(mediateur); |
BorderLayoutData southData = new BorderLayoutData(LayoutRegion.SOUTH, .5f, 200, 1000); |
southData.setSplit(true); |
southData.setMargins(new Margins(5, 0, 0, 0)); |
this.add(panneauProjetDetail, southData); |
} |
public void rafraichir(Object nouvellesDonnees) { |
if (nouvellesDonnees instanceof Projet) { |
panneauProjetDetail.rafraichir((Projet) nouvellesDonnees); |
} else if (nouvellesDonnees instanceof ProjetListe) { |
panneauProjetListe.rafraichir((ProjetListe) nouvellesDonnees); |
mediateur.desactiverChargement(); |
} else if (nouvellesDonnees instanceof Information) { |
Information info = (Information) nouvellesDonnees; |
// Affichage des éventuels messages de déboguage ou d'alerte |
if (info.getMessages() != null && !info.getMessages().toString().equals("[]")) { |
GWT.log(info.getMessages().toString(), null); |
} |
// Traitement en fonction des types d'information |
if (info.getType().equals("liste_projet")) { |
GWT.log("Une liste de projets a été reçue", null); |
panneauProjetListe.rafraichir((ProjetListe) info.getDonnee(0)); |
} else { |
panneauProjetListe.rafraichir(info); |
} |
} else if (nouvellesDonnees instanceof ValeurListe) { |
panneauProjetDetail.rafraichir(nouvellesDonnees); |
} else { |
if (nouvellesDonnees != null) { |
GWT.log(Mediateur.i18nM.erreurRafraichir(nouvellesDonnees.getClass(), this.getClass()), null); |
} |
} |
layout(); |
} |
} |
/trunk/src/org/tela_botanica/client/vues/projet/ProjetListeVue.java |
---|
New file |
0,0 → 1,207 |
package org.tela_botanica.client.vues.projet; |
import java.util.ArrayList; |
import java.util.Iterator; |
import java.util.List; |
import org.tela_botanica.client.Mediateur; |
import org.tela_botanica.client.RegistreId; |
import org.tela_botanica.client.i18n.Constantes; |
import org.tela_botanica.client.images.Images; |
import org.tela_botanica.client.interfaces.Rafraichissable; |
import org.tela_botanica.client.modeles.Information; |
import org.tela_botanica.client.modeles.Utilisateur; |
import org.tela_botanica.client.modeles.projet.Projet; |
import org.tela_botanica.client.modeles.projet.ProjetListe; |
import org.tela_botanica.client.util.Debug; |
import com.extjs.gxt.ui.client.Registry; |
import com.extjs.gxt.ui.client.Style.SortDir; |
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.ContentPanel; |
import com.extjs.gxt.ui.client.widget.Info; |
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.Grid; |
import com.extjs.gxt.ui.client.widget.grid.GridSelectionModel; |
import com.extjs.gxt.ui.client.widget.layout.FitLayout; |
import com.extjs.gxt.ui.client.widget.toolbar.ToolBar; |
import com.google.gwt.core.client.GWT; |
public class ProjetListeVue extends ContentPanel implements Rafraichissable { |
private Mediateur mediateur = null; |
private Constantes i18nC = null; |
private Grid<Projet> grille = null; |
private ListStore<Projet> store = null; |
private ColumnModel modeleDesColonnes = null; |
private Button ajouter; |
private Button modifier; |
private Button supprimer; |
public ProjetListeVue(Mediateur mediateurCourant) { |
super(); |
mediateur = mediateurCourant; |
i18nC = Mediateur.i18nC; |
setLayout(new FitLayout()); |
setHeading("Projets"); |
ToolBar toolBar = new ToolBar(); |
ajouter = new Button(i18nC.ajouter()); |
ajouter.setIcon(Images.ICONES.ajouter()); |
ajouter.addSelectionListener(new SelectionListener<ButtonEvent>() { |
public void componentSelected(ButtonEvent be) { |
mediateur.clicAjouterProjet(); |
} |
}); |
toolBar.add(ajouter); |
modifier = new Button(i18nC.modifier()); |
modifier.setIcon(Images.ICONES.formModifier()); |
modifier.addSelectionListener(new SelectionListener<ButtonEvent>() { |
public void componentSelected(ButtonEvent be) { |
mediateur.clicModifierProjet(grille.getSelectionModel().getSelectedItems()); |
} |
}); |
toolBar.add(modifier); |
supprimer = new Button(i18nC.supprimer()); |
supprimer.setIcon(Images.ICONES.supprimer()); |
supprimer.addSelectionListener(new SelectionListener<ButtonEvent>() { |
public void componentSelected(ButtonEvent be) { |
mediateur.clicSupprimerProjet(grille.getSelectionModel().getSelectedItems()); |
} |
}); |
toolBar.add(supprimer); |
setTopComponent(toolBar); |
List<ColumnConfig> colonnes = new ArrayList<ColumnConfig>(); |
// ATTENTION : les noms des colonnes doivent correspondre aux noms variables de la classe utilisée dans la liste |
colonnes.add(new ColumnConfig("id_projet", i18nC.id(), 20)); |
colonnes.add(new ColumnConfig("nom", i18nC.nom(), 200)); |
colonnes.add(new ColumnConfig("abreviation", i18nC.projetAbreviation(), 200)); |
colonnes.add(new ColumnConfig("resume", i18nC.projetResume(), 300)); |
colonnes.add(new ColumnConfig("url", i18nC.projetUrl(), 200)); |
colonnes.add(new ColumnConfig("mot_cles", i18nC.projetMotsCles(), 280)); |
modeleDesColonnes = new ColumnModel(colonnes); |
GridSelectionModel<Projet> modeleDeSelection = new GridSelectionModel<Projet>(); |
modeleDeSelection.addSelectionChangedListener(new SelectionChangedListener<Projet>() { |
public void selectionChanged(SelectionChangedEvent<Projet> event) { |
Projet projet = (Projet) event.getSelectedItem(); |
clicListe(projet); |
} |
}); |
store = new ListStore<Projet>(); |
store.sort("id_projet", SortDir.ASC); |
grille = new Grid<Projet>(store, modeleDesColonnes); |
grille.setWidth("100%"); |
grille.setAutoExpandColumn("nom"); |
grille.getView().setAutoFill(true); |
grille.getView().setForceFit(true); |
grille.setSelectionModel(modeleDeSelection); |
grille.addListener(Events.ViewReady, new Listener<BaseEvent>() { |
@Override |
public void handleEvent(BaseEvent be) { |
grille.getSelectionModel().select(0, false); |
} |
}); |
grille.addListener(Events.OnDoubleClick, new Listener<BaseEvent>(){ |
@Override |
public void handleEvent(BaseEvent be) { |
modifier.fireEvent(Events.Select); |
} |
}); |
add(grille); |
} |
public ListStore<Projet> getStore() { |
return store; |
} |
private void clicListe(Projet projet) { |
mediateur.clicListeProjet(projet); |
} |
private void gererEtatActivationBouton() { |
int nbreElementDuMagazin = store.getCount(); |
ajouter.enable(); |
if(!((Utilisateur)Registry.get(RegistreId.UTILISATEUR_COURANT)).isIdentifie()) { |
supprimer.disable(); |
modifier.disable(); |
} else { |
if (nbreElementDuMagazin <= 0) { |
supprimer.disable(); |
modifier.disable(); |
} else { |
supprimer.enable(); |
modifier.enable(); |
} |
} |
} |
public void rafraichir(Object nouvellesDonnees) { |
if (nouvellesDonnees instanceof ProjetListe) { |
ProjetListe projets = (ProjetListe) nouvellesDonnees; |
if (projets != null) { |
List<Projet> projetsListe = projets.toList(); |
store.removeAll(); |
if (mediateur.getProjetId() != null) { |
String projetIdSelectionne = mediateur.getProjetId(); |
Iterator<Projet> it = projetsListe.iterator(); |
while (it.hasNext()) { |
Projet projetCourant = it.next(); |
if (projetCourant.getId().equals(projetIdSelectionne)) { |
store.add(projetCourant); |
} |
} |
} else { |
store.add(projetsListe); |
} |
mediateur.actualiserPanneauCentral(); |
} |
} else if (nouvellesDonnees instanceof Information) { |
Information info = (Information) nouvellesDonnees; |
if (info.getType().equals("maj_utilisateur")) { |
gererEtatActivationBouton(); |
} else if (info.getType().equals("suppression_projet")) { |
String message = info.toString(); |
if (info.getDonnee(0) != null) { |
message = (String) info.getDonnee(0); |
} |
Info.display(i18nC.projetTitreSuppression(), message); |
supprimerProjetsSelectionnees(); |
gererEtatActivationBouton(); |
} |
} else { |
GWT.log(Mediateur.i18nM.erreurRafraichir(nouvellesDonnees.getClass(), this.getClass()), null); |
} |
} |
public void supprimerProjetsSelectionnees() { |
List<Projet> selPub = grille.getSelectionModel().getSelectedItems(); |
GWT.log("Le résultat dans supprimer est : "+grille.getSelectionModel().getSelection().size()+" ", null); |
for(Iterator<Projet> it = selPub.iterator(); it.hasNext();) { |
GWT.log("Le résultat dans rafraichir est : "+grille.getSelectionModel().getSelection().size()+" ", null); |
grille.getStore().remove(it.next()); |
} |
layout(true); |
} |
} |
/trunk/src/org/tela_botanica/client/vues/projet/ProjetDetailVue.java |
---|
New file |
0,0 → 1,257 |
package org.tela_botanica.client.vues.projet; |
import org.tela_botanica.client.ComposantClass; |
import org.tela_botanica.client.ComposantId; |
import org.tela_botanica.client.Mediateur; |
import org.tela_botanica.client.interfaces.Rafraichissable; |
import org.tela_botanica.client.modeles.ValeurListe; |
import org.tela_botanica.client.modeles.projet.Projet; |
import org.tela_botanica.client.modeles.projet.ProjetListe; |
import org.tela_botanica.client.vues.collection.DetailVue; |
import com.extjs.gxt.ui.client.util.Format; |
import com.extjs.gxt.ui.client.util.Params; |
import com.extjs.gxt.ui.client.widget.ContentPanel; |
import com.extjs.gxt.ui.client.widget.Html; |
import com.extjs.gxt.ui.client.widget.layout.FitLayout; |
import com.google.gwt.core.client.GWT; |
public class ProjetDetailVue extends DetailVue implements Rafraichissable { |
private String enteteTpl = null; |
private String contenuTpl = null; |
private ContentPanel panneauPrincipal = null; |
private Html entete = null; |
private Html contenu = null; |
private final String listeValeurIndexationDureeId = "dureesIndexation"; |
private final int listeValeurIndexationDureeInt = 1072; |
private final String listeValeurIndexationFrequenceId = "frequencesIndexation"; |
private final int listeValeurIndexationFrequenceInt = 1073; |
private final String listeLanguesId = "langues"; |
private final int listeLanguesInt = 1071; |
private Projet projet = null; |
private boolean projetChargementOk = false; |
private ValeurListe valeurListeIndexationDuree = null; |
private boolean listeIndexationDureeChargee = false; |
private ValeurListe valeurListeIndexationFrequence = null; |
private boolean listeIndexationFrequenceChargee = false; |
private ValeurListe valeurListeLangue = null; |
private boolean listeLangueChargee = false; |
public ProjetDetailVue(Mediateur mediateurCourant) { |
super(mediateurCourant); |
initialiserTousLesTpl(); |
panneauPrincipal = new ContentPanel(); |
panneauPrincipal.setLayout(new FitLayout()); |
panneauPrincipal.setHeaderVisible(false); |
panneauPrincipal.setBodyBorder(false); |
entete = new Html(); |
entete.setId(ComposantId.ZONE_DETAIL_ENTETE); |
panneauPrincipal.setTopComponent(entete); |
contenu = new Html(); |
panneauPrincipal.add(contenu); |
add(panneauPrincipal); |
mediateurCourant.obtenirListeValeurEtRafraichir(this, listeValeurIndexationDureeId); |
mediateurCourant.obtenirListeValeurEtRafraichir(this, listeValeurIndexationFrequenceId); |
mediateurCourant.obtenirListeValeurEtRafraichir(this, listeLanguesId); |
} |
private void initialiserTousLesTpl() { |
initialiserEnteteHtmlTpl(); |
initialiserGeneralTpl(); |
} |
private void initialiserEnteteHtmlTpl() { |
enteteTpl = |
"<div id='{css_id}'>"+ |
" <h1>{projet}</h1>"+ |
" <h2>{abreviation} <span class='{css_meta}'>{projet} <br /> {i18n_id}:{id} - {guid}</span></h2>" + |
"</div>"; |
} |
private void initialiserGeneralTpl() { |
contenuTpl = |
"<div class='{css_corps}'>"+ |
" <div class='{css_fieldset}'>"+ |
" <h2>{i18n_titre_info_generale}</h2>"+ |
" <span class='{css_label}'>{i18n_nom} :</span> {nom}<br />"+ |
" <span class='{css_label}'>{i18n_abreviation} :</span> {abreviation}<br />"+ |
" <span class='{css_label}'>{i18n_resume} :</span> {resume}<br />"+ |
" <span class='{css_label}'>{i18n_description} :</span> {description}<br />"+ |
" </div>"+ |
" <div class='{css_fieldset}'>"+ |
" <h2>{i18n_titre_complement}</h2>"+ |
" <span class='{css_label}'>{i18n_mot_cles} :</span> {mot_cles}<br />"+ |
" <span class='{css_label}'>{i18n_citation} :</span> {citation}<br />"+ |
" <span class='{css_label}'>{i18n_licence} :</span> {licence}<br />"+ |
" <span class='{css_label}'>{i18n_langue} :</span> {langue}<br />"+ |
" </div>"+ |
" <hr class='{css_clear}'/>"+ |
" <div class='{css_fieldset}'>"+ |
" <h2>{i18n_titre_indexation}</h2>"+ |
" <span class='{css_label}'>{i18n_indexation_heure} :</span> {indexation_heure}<br />"+ |
" <span class='{css_label}'>{i18n_indexation_duree} :</span> {indexation_duree}<br />"+ |
" <span class='{css_label}'>{i18n_indexation_frequence} :</span> {indexation_frequence}<br />"+ |
" <span class='{css_label}'>{i18n_mark_public} :</span> {mark_public}<br />"+ |
" </div>"+ |
"</div>"; |
} |
public void afficherDetail() { |
if (projet != null) { |
afficherEntete(); |
afficherDetailProjet(); |
} |
layout(); |
} |
private void afficherEntete() { |
Params enteteParams = new Params(); |
enteteParams.set("css_id", ComposantId.ZONE_DETAIL_ENTETE); |
enteteParams.set("css_meta", ComposantClass.META); |
enteteParams.set("i18n_id", i18nC.id()); |
enteteParams.set("id", projet.getId()); |
enteteParams.set("guid", getGuid()); |
enteteParams.set("projet", construireTxtProjet(projet.getId())); |
enteteParams.set("abreviation", projet.getAbreviation()); |
GWT.log("entete généré", null); |
String eHtml = Format.substitute(enteteTpl, enteteParams); |
entete.getElement().setInnerHTML(eHtml); |
} |
public String getGuid() { |
String guid = "URN:tela-botanica.org:"; |
guid += "coel"+projet.getId()+":"; |
guid += "pro"+projet.getId(); |
return guid; |
} |
public void afficherDetailProjet() { |
Params contenuParams = new Params(); |
contenuParams.set("i18n_titre_info_generale", i18nC.projetTitreInfoGenerale()); |
contenuParams.set("i18n_nom", i18nC.nom()); |
contenuParams.set("nom", projet.getNom()); |
contenuParams.set("i18n_abreviation", i18nC.projetAbreviation()); |
contenuParams.set("abreviation", projet.getAbreviation()); |
contenuParams.set("i18n_resume", i18nC.projetResume()); |
contenuParams.set("resume", projet.getResume()); |
contenuParams.set("i18n_description", i18nC.projetDescription()); |
contenuParams.set("description", projet.getDescription()); |
contenuParams.set("i18n_titre_complement", i18nC.projetTitreComplement()); |
contenuParams.set("i18n_mot_cles", i18nC.projetMotsCles()); |
contenuParams.set("mot_cles", projet.getMotsCles()); |
contenuParams.set("i18n_citation", i18nC.projetCitation()); |
contenuParams.set("citation", projet.getCitation()); |
contenuParams.set("i18n_licence", i18nC.projetLicence()); |
contenuParams.set("licence", projet.getLicence()); |
contenuParams.set("i18n_langue", i18nC.projetLangue()); |
contenuParams.set("langue", obtenirValeurLangue(projet.getLangue())); |
contenuParams.set("i18n_titre_indexation", i18nC.projetTitreIndexation()); |
contenuParams.set("i18n_indexation_heure", i18nC.projetIndexationHeure()); |
contenuParams.set("indexation_heure", projet.getIndexationHeure()); |
contenuParams.set("i18n_indexation_duree", i18nC.projetIndexationDuree()); |
contenuParams.set("indexation_duree", obtenirValeurIndexationDuree(projet.getIndexationDuree())); |
contenuParams.set("i18n_indexation_frequence", i18nC.projetIndexationFrequence()); |
contenuParams.set("indexation_frequence", obtenirValeurIndexationFrequence(projet.getIndexationFreq())); |
contenuParams.set("i18n_mark_public", i18nC.projetMarkPublic()); |
contenuParams.set("mark_public", obtenirValeurPublic(projet.getMarkPublic())); |
String gHtml = formaterContenu(contenuTpl, contenuParams); |
contenu.getElement().setInnerHTML(gHtml); |
} |
public void rafraichir(Object nouvellesDonnees) { |
if (nouvellesDonnees instanceof Projet) { |
projet = (Projet) nouvellesDonnees; |
projetChargementOk = true; |
} else if (nouvellesDonnees instanceof ProjetListe) { |
projets = (ProjetListe) nouvellesDonnees; |
projetsChargementOk = true; |
} else if(nouvellesDonnees instanceof ValeurListe) { |
ValeurListe nValeurListe = (ValeurListe)nouvellesDonnees; |
if (nValeurListe.getId() == listeValeurIndexationDureeInt) { |
valeurListeIndexationDuree = (ValeurListe)nouvellesDonnees; |
listeIndexationDureeChargee = true; |
} |
if (nValeurListe.getId() == listeValeurIndexationFrequenceInt) { |
valeurListeIndexationFrequence = (ValeurListe)nouvellesDonnees; |
listeIndexationFrequenceChargee = true; |
} |
if (nValeurListe.getId() == listeLanguesInt) { |
valeurListeLangue = (ValeurListe)nouvellesDonnees; |
listeLangueChargee = true; |
} |
} else { |
GWT.log(Mediateur.i18nM.erreurRafraichir(nouvellesDonnees.getClass(), this.getClass()), null); |
} |
if (avoirDonneesChargees()) { |
afficherDetail(); |
} |
} |
private boolean avoirDonneesChargees() { |
boolean ok = false; |
if (projetsChargementOk && projetChargementOk && listeIndexationDureeChargee && listeIndexationFrequenceChargee && listeLangueChargee) { |
ok = true; |
} |
return ok; |
} |
private String obtenirValeurIndexationDuree(String id) { |
if (valeurListeIndexationDuree.get(id) != null) { |
return valeurListeIndexationDuree.get(id).getNom(); |
} |
return ""; |
} |
private String obtenirValeurIndexationFrequence(String id) { |
if (valeurListeIndexationFrequence.get(id) != null) { |
return valeurListeIndexationFrequence.get(id).getNom(); |
} |
return ""; |
} |
private String obtenirValeurLangue(String id) { |
if (valeurListeLangue.get(id) != null) { |
return valeurListeLangue.get(id).getNom(); |
} |
return ""; |
} |
private String obtenirValeurPublic(String ouiNon) { |
if (ouiNon.equals("1")) { |
return i18nC.oui(); |
} |
return i18nC.non(); |
} |
} |
/trunk/src/org/tela_botanica/client/vues/projet/ProjetForm.java |
---|
New file |
0,0 → 1,532 |
package org.tela_botanica.client.vues.projet; |
import java.util.ArrayList; |
import java.util.Iterator; |
import org.tela_botanica.client.Mediateur; |
import org.tela_botanica.client.interfaces.Rafraichissable; |
import org.tela_botanica.client.modeles.Information; |
import org.tela_botanica.client.modeles.MenuApplicationId; |
import org.tela_botanica.client.modeles.Valeur; |
import org.tela_botanica.client.modeles.ValeurListe; |
import org.tela_botanica.client.modeles.projet.Projet; |
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; |
import org.tela_botanica.client.vues.Formulaire; |
import com.extjs.gxt.ui.client.Style.SortDir; |
import com.extjs.gxt.ui.client.store.ListStore; |
import com.extjs.gxt.ui.client.widget.Info; |
import com.extjs.gxt.ui.client.widget.MessageBox; |
import com.extjs.gxt.ui.client.widget.form.CheckBox; |
import com.extjs.gxt.ui.client.widget.form.ComboBox; |
import com.extjs.gxt.ui.client.widget.form.FieldSet; |
import com.extjs.gxt.ui.client.widget.form.TextArea; |
import com.extjs.gxt.ui.client.widget.form.TextField; |
import com.extjs.gxt.ui.client.widget.layout.FlowLayout; |
import com.extjs.gxt.ui.client.widget.layout.FormData; |
import com.extjs.gxt.ui.client.widget.layout.FormLayout; |
public class ProjetForm extends Formulaire implements Rafraichissable { |
private Projet projet; |
private String listeValeurIndexationDureeId = "dureesIndexation"; |
private int listeValeurIndexationDureeInt = 1072; |
private String listeValeurIndexationFrequenceId = "frequencesIndexation"; |
private int listeValeurIndexationFrequenceInt = 1073; |
private String listeLanguesId = "langues"; |
private int listeLanguesInt = 1071; |
private ListStore<Valeur> listeIndexationDuree = null; |
private ListStore<Valeur> listeIndexationFrequence = null; |
private ListStore<Valeur> listeLangue = null; |
private ValeurListe valeurListeIndexationDuree = null; |
private ValeurListe valeurListeIndexationFrequence = null; |
private ValeurListe valeurListeLangue = null; |
private boolean listeIndexationDureeChargee = false; |
private boolean listeIndexationFrequenceChargee = false; |
private boolean listeLangueChargee = false; |
private FieldSet generalitesFieldset = null; |
private TextField<String> nomChp = null; |
private TextField<String> abreviationChp = null; |
private TextArea descriptionChp = null; |
private TextArea resumeChp = null; |
private TextField<String> urlChp = null; |
private FieldSet complementFieldset = null; |
private TextField<String> motsClesChp = null; |
private TextField<String> citationChp = null; |
private TextField<String> licenceChp = null; |
private ComboBox<Valeur> langueChp = null; |
private CheckBox markPublicChp = null; |
private FieldSet indexationFieldset = null; |
private TextField<String> indexationHeureChp = null; |
private ComboBox<Valeur> indexationDureeChp = null; |
private ComboBox<Valeur> indexationFrequenceChp = null; |
private boolean formulaireValideOk = false; |
private boolean projetValideOk = false; |
private Rafraichissable vueExterneARafraichirApresValidation = null; |
public ProjetForm(Mediateur mediateurCourrant, String projetId) { |
initialiserProjetForm(mediateurCourrant, projetId); |
} |
public ProjetForm(Mediateur mediateurCourrant, String projetId, Rafraichissable vueARafraichirApresValidation) { |
vueExterneARafraichirApresValidation = vueARafraichirApresValidation; |
initialiserProjetForm(mediateurCourrant, projetId); |
} |
private void initialiserProjetForm(Mediateur mediateurCourant, String projetId) { |
projet = new Projet(); |
projet.setId(projetId); |
String modeDeCreation = (projet.getId().isEmpty() ? Formulaire.MODE_AJOUTER : Formulaire.MODE_MODIFIER); |
initialiserFormulaire(mediateurCourant, modeDeCreation, MenuApplicationId.PROJET); |
panneauFormulaire.setLayout(new FlowLayout()); |
actualiserTitreFormulaire(); |
creerZoneGeneralites(); |
panneauFormulaire.add(generalitesFieldset); |
creerZoneComplement(); |
panneauFormulaire.add(complementFieldset); |
creerZoneIndexation(); |
panneauFormulaire.add(indexationFieldset); |
creerTabIndex(); |
if (modeDeCreation.equals(Formulaire.MODE_MODIFIER)) { |
mediateur.selectionnerProjet(this, projetId); |
} |
mediateur.obtenirListeValeurEtRafraichir(this, listeValeurIndexationDureeId); |
mediateur.obtenirListeValeurEtRafraichir(this, listeValeurIndexationFrequenceId); |
mediateur.obtenirListeValeurEtRafraichir(this, listeLanguesId); |
} |
private void actualiserTitreFormulaire() { |
String titre = i18nC.projetTitreFormAjout(); |
if (mode.equals(Formulaire.MODE_MODIFIER)) { |
titre = i18nC.projetTitreFormModif()+" - "+i18nC.id()+": "+projet.getId(); |
} |
panneauFormulaire.setHeading(titre); |
} |
private void creerZoneGeneralites() { |
FormLayout layout = new FormLayout(); |
layout.setLabelWidth(100); |
// Fieldset Infos Générales |
generalitesFieldset = new FieldSet(); |
generalitesFieldset.setHeading(i18nC.projetTitreInfoGenerale()); |
generalitesFieldset.setCollapsible(true); |
generalitesFieldset.setLayout(layout); |
nomChp = new TextField<String>(); |
nomChp.setName("cpu"); |
nomChp.setFieldLabel("Nom"); |
generalitesFieldset.add(nomChp, new FormData(450, 0)); |
abreviationChp = new TextField<String>(); |
abreviationChp.setFieldLabel("Abréviation"); |
generalitesFieldset.add(abreviationChp, new FormData(450, 0)); |
descriptionChp = new TextArea(); |
descriptionChp.setFieldLabel("Description"); |
generalitesFieldset.add(descriptionChp, new FormData(450, 0)); |
resumeChp = new TextArea(); |
resumeChp.setFieldLabel("Résumé"); |
generalitesFieldset.add(resumeChp, new FormData(450, 0)); |
urlChp = new TextField<String>(); |
urlChp.setFieldLabel("URL du projet"); |
generalitesFieldset.add(urlChp, new FormData(450, 0)); |
} |
private void creerZoneComplement() { |
FormLayout layout = new FormLayout(); |
layout.setLabelWidth(100); |
// Fieldset Complément |
complementFieldset = new FieldSet(); |
complementFieldset.setHeading(i18nC.projetTitreComplement()); |
complementFieldset.setCollapsible(true); |
complementFieldset.setLayout(layout); |
motsClesChp = new TextField<String>(); |
motsClesChp.setFieldLabel("Mots Clés"); |
complementFieldset.add(motsClesChp); |
citationChp = new TextField<String>(); |
citationChp.setFieldLabel("Citation"); |
complementFieldset.add(citationChp); |
licenceChp = new TextField<String>(); |
licenceChp.setFieldLabel("Licence"); |
complementFieldset.add(licenceChp); |
listeLangue = new ListStore<Valeur>(); |
langueChp = new ComboBox<Valeur>(); |
langueChp.setStore(listeLangue); |
langueChp.setDisplayField("nom"); |
langueChp.setEditable(true); |
langueChp.setForceSelection(true); |
langueChp.setTypeAhead(true); |
langueChp.setFieldLabel("Langue"); |
complementFieldset.add(langueChp); |
markPublicChp = new CheckBox(); |
markPublicChp.setFieldLabel("Public"); |
complementFieldset.add(markPublicChp); |
} |
private void creerZoneIndexation() { |
FormLayout layout = new FormLayout(); |
layout.setLabelWidth(100); |
// Fieldset Indexation |
indexationFieldset = new FieldSet(); |
indexationFieldset.setHeading(i18nC.projetTitreIndexation()); |
indexationFieldset.setCollapsible(true); |
indexationFieldset.setLayout(layout); |
indexationHeureChp = new TextField<String>(); |
indexationHeureChp.setFieldLabel(i18nC.projetIndexationHeure()); |
indexationFieldset.add(indexationHeureChp, new FormData(80, 0)); |
// liste 1073 |
listeIndexationFrequence = new ListStore<Valeur>(); |
indexationFrequenceChp = new ComboBox<Valeur>(); |
indexationFrequenceChp.setStore(listeIndexationFrequence); |
indexationFrequenceChp.setDisplayField("nom"); |
indexationFrequenceChp.setEditable(true); |
indexationFrequenceChp.setForceSelection(true); |
indexationFrequenceChp.setTypeAhead(true); |
indexationFrequenceChp.setFieldLabel(i18nC.projetIndexationFrequence()); |
indexationFieldset.add(indexationFrequenceChp, new FormData(120, 0)); |
// liste 1072 |
listeIndexationDuree = new ListStore<Valeur>(); |
indexationDureeChp = new ComboBox<Valeur>(); |
indexationDureeChp.setStore(listeIndexationDuree); |
indexationDureeChp.setDisplayField("nom"); |
indexationDureeChp.setEditable(true); |
indexationDureeChp.setForceSelection(true); |
indexationDureeChp.setTypeAhead(true); |
indexationDureeChp.setFieldLabel(i18nC.projetIndexationDuree()); |
indexationFieldset.add(indexationDureeChp, new FormData(80, 0)); |
} |
private void creerTabIndex() { |
nomChp.setTabIndex(1); |
abreviationChp.setTabIndex(2); |
descriptionChp.setTabIndex(3); |
resumeChp.setTabIndex(4); |
urlChp.setTabIndex(5); |
motsClesChp.setTabIndex(6); |
citationChp.setTabIndex(7); |
licenceChp.setTabIndex(8); |
langueChp.setTabIndex(9); |
markPublicChp.setTabIndex(10); |
indexationHeureChp.setTabIndex(11); |
indexationFrequenceChp.setTabIndex(12); |
indexationDureeChp.setTabIndex(13); |
nomChp.focus(); |
} |
public void rafraichir(Object nouvellesDonnees) { |
if (nouvellesDonnees instanceof Information) { |
Information info = (Information) nouvellesDonnees; |
rafraichirInformation(info); |
} else if (nouvellesDonnees instanceof ValeurListe) { |
ValeurListe valeursListe = (ValeurListe) nouvellesDonnees; |
rafraichirValeurListe(valeursListe); |
Debug.log("une liste de valeurs est arrivée "+valeursListe.getId()); |
} |
if (etreValide()) { |
initialiserValidation(); |
repandreRafraichissement(); |
controlerFermetureApresRafraichissement(); |
} |
} |
private void rafraichirInformation(Information info) { |
final String type = info.getType(); |
// Gestion des problèmes |
if (info.getMessages() != null && !info.getMessages().toString().equals("[]")) { |
Debug.log("MESSAGES:\n"+info.getMessages().toString()); |
} |
// Gestion des actions |
if (type.equals("selection_projet")) { |
if (info.getDonnee(0) != null) { |
projet = (Projet) info.getDonnee(0); |
} |
peuplerFormulaire(); |
actualiserTitreFormulaire(); |
} else if (type.equals("modif_projet") || type.equals("ajout_projet") ) { |
if (info.getDonnee(0) != null && info.getDonnee(0) instanceof String) { |
String projetId = (String) info.getDonnee(0); |
projet.setId(projetId); |
projetValideOk = true; |
} |
} |
// Gestion des messages |
if (type.equals("selection_projet")) { |
Info.display(i18nC.projetTitreFormModif(), info.toString()); |
} else if (type.equals("modif_projet")) { |
Info.display(i18nC.projetTitreFormModif(), info.toString()); |
} else if (type.equals("ajout_projet")) { |
if (!UtilString.isEmpty(projet.getId())) { |
info.setMessage("Le projet '"+projet.getId()+"' a bien été ajouté"); |
} |
Info.display(i18nC.projetTitreFormAjout(), info.toString()); |
} |
} |
private void rafraichirValeurListe(ValeurListe valeursListe) { |
if (valeursListe.getId() == listeValeurIndexationDureeInt) { |
valeurListeIndexationDuree = valeursListe; |
for (Iterator<String> it = valeursListe.keySet().iterator(); it.hasNext();) { |
listeIndexationDuree.add(valeursListe.get(it.next())); |
listeIndexationDuree.sort("id_valeur", SortDir.ASC); |
} |
listeIndexationDureeChargee = true; |
if (mode.equals(MODE_MODIFIER)) { |
if (valeurListeIndexationDuree.get(projet.getIndexationDuree()) != null) { |
indexationDureeChp.setValue(valeurListeIndexationDuree.get(projet.getIndexationDuree())); |
indexationDureeChp.validate(); |
} |
} |
indexationDureeChp.expand(); |
} else if (valeursListe.getId() == listeValeurIndexationFrequenceInt) { |
valeurListeIndexationFrequence = valeursListe; |
for (Iterator<String> it = valeursListe.keySet().iterator(); it.hasNext();) { |
listeIndexationFrequence.add(valeursListe.get(it.next())); |
listeIndexationFrequence.sort("id_valeur", SortDir.ASC); |
} |
listeIndexationFrequenceChargee = true; |
if (mode.equals(MODE_MODIFIER)) { |
if (valeurListeIndexationFrequence.get(projet.getIndexationFreq()) != null) { |
indexationFrequenceChp.setValue(valeurListeIndexationFrequence.get(projet.getIndexationFreq())); |
indexationFrequenceChp.validate(); |
} |
} |
indexationFrequenceChp.expand(); |
} else if (valeursListe.getId() == listeLanguesInt) { |
valeurListeLangue = valeursListe; |
for (Iterator<String> it = valeursListe.keySet().iterator(); it.hasNext();) { |
listeLangue.add(valeursListe.get(it.next())); |
listeLangue.sort("id_valeur", SortDir.ASC); |
} |
listeLangueChargee = true; |
if (mode.equals(MODE_MODIFIER)) { |
if (valeurListeLangue.get(projet.getLangue()) != null) { |
langueChp.setValue(valeurListeLangue.get(projet.getLangue())); |
langueChp.validate(); |
} |
} |
} |
} |
private Boolean etreValide() { |
Boolean valide = false; |
if (formulaireValideOk && projetValideOk) { |
valide = true; |
} |
return valide; |
} |
private void initialiserValidation() { |
formulaireValideOk = false; |
projetValideOk = false; |
} |
private void repandreRafraichissement() { |
if (vueExterneARafraichirApresValidation != null) { |
String type = "projet_modifie"; |
if (mode.equals(Formulaire.MODE_AJOUTER)) { |
type = "projet_ajoute"; |
} |
Information info = new Information(type); |
info.setDonnee(0, projet); |
vueExterneARafraichirApresValidation.rafraichir(info); |
} |
} |
public boolean soumettreFormulaire() { |
formulaireValideOk = verifierFormulaire(); |
if (formulaireValideOk) { |
Projet projetCollecte = collecterProjet(); |
if (projetCollecte != null) { |
if (mode.equals(Formulaire.MODE_AJOUTER)) { |
mediateur.ajouterProjet(this, projetCollecte); |
} else if (mode.equals(Formulaire.MODE_MODIFIER)) { |
mediateur.modifierProjet(this, projetCollecte); |
} |
} |
} |
return formulaireValideOk; |
} |
public boolean verifierFormulaire() { |
boolean valide = true; |
ArrayList<String> messages = new ArrayList<String>(); |
String titre = nomChp.getValue(); |
if (titre == null || titre.equals("")) { |
messages.add("Veuillez saisir le nom du projet !"); |
} |
String abr = abreviationChp.getValue(); |
if (abr == null || abr.equals("")) { |
messages.add("Veuillez saisir l'abréviation du projet !"); |
} |
String desc = descriptionChp.getValue(); |
if (desc == null || desc.equals("")) { |
messages.add("Veuillez saisir la description du projet !"); |
} |
String resume = resumeChp.getValue(); |
if (resume == null || resume.equals("")) { |
messages.add("Veuillez saisir le résumé du projet !"); |
} |
String uri = urlChp.getValue(); |
if (uri != null && ! uri.trim().isEmpty() && ! uri.matches(Pattern.url)) { |
messages.add("L'URL saisie n'est pas valide !"); |
} |
String heure = indexationHeureChp.getValue(); |
if (!UtilString.isEmpty(heure)) { |
if (!heure.matches(Pattern.heureMinute)) { |
messages.add("L'heureMinute d'indexation saisie n'est pas valide !"); |
} |
} |
if (messages.size() != 0) { |
String[] tableauDeMessages = {}; |
tableauDeMessages = messages.toArray(tableauDeMessages); |
MessageBox.alert("Erreurs de saisies", UtilArray.implode(tableauDeMessages, "<br />"), null); |
valide = false; |
} |
return valide; |
} |
private void peuplerFormulaire() { |
nomChp.setValue(projet.getNom()); |
abreviationChp.setValue(projet.getAbreviation()); |
descriptionChp.setValue(projet.getDescription()); |
resumeChp.setValue(projet.getResume()); |
urlChp.setValue(projet.getUrl()); |
motsClesChp.setValue(projet.getMotsCles()); |
citationChp.setValue(projet.getCitation()); |
licenceChp.setValue(projet.getLicence()); |
if (projet.getMarkPublic().equals("1")) { |
markPublicChp.setValue(true); |
} else { |
markPublicChp.setValue(false); |
} |
if (listeLangueChargee) { |
if(valeurListeLangue.get(projet.getLangue()) != null) { |
langueChp.setValue(valeurListeLangue.get(projet.getLangue())); |
langueChp.validate(); |
} |
} |
if (listeIndexationFrequenceChargee) { |
if (valeurListeIndexationFrequence.get(projet.getIndexationFreq()) != null) { |
indexationFrequenceChp.setValue(valeurListeIndexationFrequence.get(projet.getIndexationFreq())); |
indexationFrequenceChp.validate(); |
} |
} |
if (listeIndexationDureeChargee) { |
if (valeurListeIndexationDuree.get(projet.getIndexationDuree()) != null) { |
indexationDureeChp.setValue(valeurListeIndexationDuree.get(projet.getIndexationDuree())); |
indexationDureeChp.validate(); |
} |
} |
String[] heureTab = projet.getIndexationHeure().split(":"); |
if (heureTab.length > 1) { |
String heure = heureTab[0]+":"+heureTab[1]; |
if (heure.matches(Pattern.heureMinute)) { |
indexationHeureChp.setValue(heure); |
} |
} |
doLayout(true); |
} |
private Projet collecterProjet() { |
Projet projetCollecte = (Projet) projet.cloner(new Projet()); |
projetCollecte.setNom(nomChp.getValue()); |
projetCollecte.setAbreviation(abreviationChp.getValue()); |
projetCollecte.setDescription(descriptionChp.getValue()); |
projetCollecte.setResume(resumeChp.getValue()); |
projetCollecte.setUrl(urlChp.getValue()); |
projetCollecte.setMotsCles(motsClesChp.getValue()); |
projetCollecte.setCitation(citationChp.getValue()); |
projetCollecte.setLicence(licenceChp.getValue()); |
if (langueChp.getValue() != null) { |
projetCollecte.setLangue(langueChp.getValue().getId()); |
} |
String markPublic = (markPublicChp.getValue()) ? "1" : "0"; |
projetCollecte.setMarkPublic(markPublic); |
projetCollecte.setIndexationHeure(indexationHeureChp.getValue()); |
if (indexationFrequenceChp.getValue() != null) { |
projetCollecte.setIndexationFreq(indexationFrequenceChp.getValue().getId()); |
} |
if (indexationDureeChp.getValue() != null) { |
projetCollecte.setIndexationDuree(indexationDureeChp.getValue().getId()); |
} |
Projet projetARetourner = null; |
if (!projetCollecte.comparer(projet)) { |
projetARetourner = projet = projetCollecte; |
Debug.log(projetARetourner.toString()); |
} |
return projetARetourner; |
} |
public void reinitialiserFormulaire() { |
if (mode.equals(Formulaire.MODE_MODIFIER)) { |
mediateur.afficherFormProjet(projet.getId()); |
} else { |
mediateur.afficherFormProjet(null); |
} |
} |
} |
/trunk/src/org/tela_botanica/client/vues/MenuVue.java |
---|
8,8 → 8,8 |
import org.tela_botanica.client.interfaces.Rafraichissable; |
import org.tela_botanica.client.modeles.Menu; |
import org.tela_botanica.client.modeles.MenuApplicationId; |
import org.tela_botanica.client.modeles.Projet; |
import org.tela_botanica.client.modeles.ProjetListe; |
import org.tela_botanica.client.modeles.projet.Projet; |
import org.tela_botanica.client.modeles.projet.ProjetListe; |
import com.extjs.gxt.ui.client.event.Events; |
import com.extjs.gxt.ui.client.GXT; |
/trunk/src/org/tela_botanica/client/Modele.java |
---|
5,29 → 5,29 |
import java.util.List; |
import org.tela_botanica.client.interfaces.Rafraichissable; |
import org.tela_botanica.client.modeles.Collection; |
import org.tela_botanica.client.modeles.CollectionAPersonne; |
import org.tela_botanica.client.modeles.CollectionAPersonneAsyncDao; |
import org.tela_botanica.client.modeles.CollectionAPublication; |
import org.tela_botanica.client.modeles.CollectionAPublicationAsyncDao; |
import org.tela_botanica.client.modeles.CollectionAsyncDao; |
import org.tela_botanica.client.modeles.Personne; |
import org.tela_botanica.client.modeles.PersonneAsyncDao; |
import org.tela_botanica.client.modeles.Projet; |
import org.tela_botanica.client.modeles.ProjetAsyncDao; |
import org.tela_botanica.client.modeles.Publication; |
import org.tela_botanica.client.modeles.PublicationAPersonne; |
import org.tela_botanica.client.modeles.PublicationAPersonneAsyncDao; |
import org.tela_botanica.client.modeles.PublicationAsyncDao; |
import org.tela_botanica.client.modeles.Structure; |
import org.tela_botanica.client.modeles.StructureAPersonne; |
import org.tela_botanica.client.modeles.StructureAPersonneAsyncDao; |
import org.tela_botanica.client.modeles.StructureAsyncDao; |
import org.tela_botanica.client.modeles.StructureConservation; |
import org.tela_botanica.client.modeles.StructureValorisation; |
import org.tela_botanica.client.modeles.Utilisateur; |
import org.tela_botanica.client.modeles.UtilisateurAsyncDao; |
import org.tela_botanica.client.modeles.ValeurListeAsyncDao; |
import org.tela_botanica.client.modeles.collection.Collection; |
import org.tela_botanica.client.modeles.collection.CollectionAPersonne; |
import org.tela_botanica.client.modeles.collection.CollectionAPersonneAsyncDao; |
import org.tela_botanica.client.modeles.collection.CollectionAPublication; |
import org.tela_botanica.client.modeles.collection.CollectionAPublicationAsyncDao; |
import org.tela_botanica.client.modeles.collection.CollectionAsyncDao; |
import org.tela_botanica.client.modeles.personne.Personne; |
import org.tela_botanica.client.modeles.personne.PersonneAsyncDao; |
import org.tela_botanica.client.modeles.projet.Projet; |
import org.tela_botanica.client.modeles.projet.ProjetAsyncDao; |
import org.tela_botanica.client.modeles.publication.Publication; |
import org.tela_botanica.client.modeles.publication.PublicationAPersonne; |
import org.tela_botanica.client.modeles.publication.PublicationAPersonneAsyncDao; |
import org.tela_botanica.client.modeles.publication.PublicationAsyncDao; |
import org.tela_botanica.client.modeles.structure.Structure; |
import org.tela_botanica.client.modeles.structure.StructureAPersonne; |
import org.tela_botanica.client.modeles.structure.StructureAPersonneAsyncDao; |
import org.tela_botanica.client.modeles.structure.StructureAsyncDao; |
import org.tela_botanica.client.modeles.structure.StructureConservation; |
import org.tela_botanica.client.modeles.structure.StructureValorisation; |
import com.extjs.gxt.ui.client.Registry; |
import com.google.gwt.core.client.GWT; |
/trunk/src/org/tela_botanica/client/modeles/CollectionBotanique.java |
---|
File deleted |
\ No newline at end of file |
/trunk/src/org/tela_botanica/client/modeles/CollectionAPersonneListe.java |
---|
File deleted |
\ No newline at end of file |
/trunk/src/org/tela_botanica/client/modeles/CollectionAPublicationAsyncDao.java |
---|
File deleted |
/trunk/src/org/tela_botanica/client/modeles/Publication.java |
---|
File deleted |
\ No newline at end of file |
/trunk/src/org/tela_botanica/client/modeles/PublicationListe.java |
---|
File deleted |
/trunk/src/org/tela_botanica/client/modeles/StructureAsyncDao.java |
---|
File deleted |
\ No newline at end of file |
/trunk/src/org/tela_botanica/client/modeles/PublicationAPersonne.java |
---|
File deleted |
\ No newline at end of file |
/trunk/src/org/tela_botanica/client/modeles/CollectionAPublicationListe.java |
---|
File deleted |
\ No newline at end of file |
/trunk/src/org/tela_botanica/client/modeles/Personne.java |
---|
File deleted |
\ No newline at end of file |
/trunk/src/org/tela_botanica/client/modeles/PersonneListe.java |
---|
File deleted |
\ No newline at end of file |
/trunk/src/org/tela_botanica/client/modeles/StructureValorisation.java |
---|
File deleted |
/trunk/src/org/tela_botanica/client/modeles/PublicationAsyncDao.java |
---|
File deleted |
/trunk/src/org/tela_botanica/client/modeles/Collection.java |
---|
File deleted |
\ No newline at end of file |
/trunk/src/org/tela_botanica/client/modeles/CollectionListe.java |
---|
File deleted |
\ No newline at end of file |
/trunk/src/org/tela_botanica/client/modeles/StructureListe.java |
---|
File deleted |
\ No newline at end of file |
/trunk/src/org/tela_botanica/client/modeles/Projet.java |
---|
File deleted |
/trunk/src/org/tela_botanica/client/modeles/ProjetListe.java |
---|
File deleted |
\ No newline at end of file |
/trunk/src/org/tela_botanica/client/modeles/CollectionAPersonne.java |
---|
File deleted |
\ No newline at end of file |
/trunk/src/org/tela_botanica/client/modeles/PublicationAPersonneAsyncDao.java |
---|
File deleted |
/trunk/src/org/tela_botanica/client/modeles/ProjetVersion.java |
---|
File deleted |
/trunk/src/org/tela_botanica/client/modeles/StructureAPersonne.java |
---|
File deleted |
\ No newline at end of file |
/trunk/src/org/tela_botanica/client/modeles/PersonneAsyncDao.java |
---|
File deleted |
/trunk/src/org/tela_botanica/client/modeles/StructureAPersonneListe.java |
---|
File deleted |
\ No newline at end of file |
/trunk/src/org/tela_botanica/client/modeles/CollectionAsyncDao.java |
---|
File deleted |
\ No newline at end of file |
/trunk/src/org/tela_botanica/client/modeles/PublicationAPersonneListe.java |
---|
File deleted |
\ No newline at end of file |
/trunk/src/org/tela_botanica/client/modeles/ProjetAsyncDao.java |
---|
File deleted |
\ No newline at end of file |
/trunk/src/org/tela_botanica/client/modeles/CollectionAPublication.java |
---|
File deleted |
\ No newline at end of file |
/trunk/src/org/tela_botanica/client/modeles/CollectionAPersonneAsyncDao.java |
---|
File deleted |
/trunk/src/org/tela_botanica/client/modeles/StructureConservation.java |
---|
File deleted |
\ No newline at end of file |
/trunk/src/org/tela_botanica/client/modeles/StructureAPersonneAsyncDao.java |
---|
File deleted |
/trunk/src/org/tela_botanica/client/modeles/Structure.java |
---|
File deleted |
\ No newline at end of file |
/trunk/src/org/tela_botanica/client/modeles/structure/Structure.java |
---|
New file |
0,0 → 1,336 |
package org.tela_botanica.client.modeles.structure; |
import java.util.Date; |
import java.util.Iterator; |
import java.util.Set; |
import org.tela_botanica.client.modeles.aDonnee; |
import org.tela_botanica.client.modeles.personne.Personne; |
import com.extjs.gxt.ui.client.data.BaseModelData; |
import com.google.gwt.i18n.client.DateTimeFormat; |
import com.google.gwt.json.client.JSONObject; |
public class Structure extends aDonnee { |
private static final long serialVersionUID = -5623886668593288218L; |
public static final String PREFIXE = "cs"; |
public static final String URL_SITE = "WEB"; |
public static final String URL_LOGO = "LOGO"; |
private BaseModelData urls = null; |
private StructureAPersonneListe personnel = null; |
private StructureValorisation valorisation = null; |
private StructureConservation conservation = null; |
public Structure() { |
// Constructions du tableau des urls interne |
urls = new BaseModelData(); |
} |
public Structure(JSONObject institution) { |
// Constructions du tableau des urls interne |
urls = new BaseModelData(); |
// l'objet JSON est une table de hachage |
Set<String> im = institution.keySet(); |
// Parcourt pour chaque clé |
for (Iterator<String> it = im.iterator(); it.hasNext();) { |
// Si elle est associée à une valeur, nous l'ajoutons |
String cle = it.next(); |
if (cle.startsWith(PREFIXE+"_")) { |
// Suppression de l'abréviation du champ. Inutile dans le contexte d'un objet |
String cleObjet = cle.replaceFirst("^"+PREFIXE+"_", ""); |
// Sinon, nous ajoutons la clé avec une valeur vide |
String valeur = ""; |
if (institution.get(cle).isString() != null) { |
valeur = institution.get(cle).isString().stringValue(); |
} |
if (cleObjet.equals("truk_url")) { |
this.setUrl(valeur); |
} else { |
this.set(cleObjet, valeur); |
} |
} |
} |
} |
@Override |
protected String getPrefixe() { |
return PREFIXE; |
} |
public String getId() { |
return renvoyerValeurCorrecte("id_structure"); |
} |
public void setId(String idStructure) { |
this.set("id_structure", idStructure); |
} |
public String getIdProjet() { |
return renvoyerValeurCorrecte("ce_projet"); |
} |
public void setIdProjet(String idProjet) { |
this.set("ce_projet", idProjet); |
} |
public String getIdMere() { |
return renvoyerValeurCorrecte("ce_mere"); |
} |
public void setIdMere(String idMere) { |
this.set("ce_mere", idMere); |
} |
public String getGuid() { |
return renvoyerValeurCorrecte("guid"); |
} |
public void setGuid(String guid) { |
this.set("guid", guid); |
} |
public String getIdAlternatif() { |
return renvoyerValeurCorrecte("truk_identifiant_alternatif"); |
} |
public void setIdAlternatif(String idAlter) { |
this.set("truk_identifiant_alternatif", idAlter); |
} |
public String getNom() { |
return renvoyerValeurCorrecte("nom"); |
} |
public void setNom(String nom) { |
this.set("nom", nom); |
} |
public String getNomAlternatif() { |
return renvoyerValeurCorrecte("truk_nom_alternatif"); |
} |
public String getDescription() { |
return renvoyerValeurCorrecte("description"); |
} |
public String getType() { |
return renvoyerValeurCorrecte("ce_type"); |
} |
public void setType(String type) { |
this.set("ce_type", type); |
} |
public String getTypePrive() { |
return renvoyerValeurCorrecte("ce_truk_type_prive"); |
} |
public void setTypePrive(String typePrive) { |
this.set("ce_truk_type_prive", typePrive); |
} |
public String getTypePublic() { |
return renvoyerValeurCorrecte("ce_truk_type_public"); |
} |
public void setTypePublic(String typePublic) { |
this.set("ce_truk_type_public", typePublic); |
} |
public String getAdresse() { |
return (String) renvoyerValeurCorrecte("adresse_01"); |
} |
public void setAdresse(String adr) { |
this.set("adresse_01", adr); |
} |
public String getAdresseComplement() { |
return renvoyerValeurCorrecte("adresse_02"); |
} |
public String getDateFondationFormatMysql() { |
return renvoyerValeurCorrecte("date_fondation"); |
} |
public String getDateFondationFormatLong() { |
String dateFormatee = ""; |
Date dateFondation = getDateFondation(); |
if (dateFondation != null) { |
dateFormatee = DateTimeFormat.getLongDateFormat().format(dateFondation); |
} |
return dateFormatee; |
} |
public Date getDateFondation() { |
Date fondationDate = null; |
String fondationChaine = renvoyerValeurCorrecte("date_fondation"); |
if (!fondationChaine.isEmpty() && !fondationChaine.equals("0000-00-00")) { |
fondationDate = DateTimeFormat.getFormat("yyyy-MM-dd").parseStrict(fondationChaine); |
} |
return fondationDate; |
} |
public void setDateFondation(Date dateFondation) { |
if (dateFondation != null) { |
this.set("date_fondation", DateTimeFormat.getFormat("yyyy-MM-dd").format(dateFondation)); |
} |
} |
public void setDateFondation(String dateFondation) { |
if (dateFondation != null) { |
this.set("date_fondation", dateFondation); |
} |
} |
public String getCodePostal() { |
return renvoyerValeurCorrecte("code_postal"); |
} |
public void setCodePostal(String codePostal) { |
this.set("code_postal", codePostal); |
} |
public String getVille() { |
return renvoyerValeurCorrecte("ville"); |
} |
public void setVille(String ville) { |
this.set("ville", ville); |
} |
public String getRegion() { |
return getChaineDenormaliseUnique("ce_truk_region"); |
} |
public void setRegion(String region) { |
this.set("ce_truk_region", region); |
} |
public String getPays() { |
return getChaineDenormaliseUnique("ce_truk_pays"); |
} |
public void setPays(String pays) { |
this.set("ce_truk_pays", pays); |
} |
public String getLatitude() { |
return renvoyerValeurCorrecte("latitude"); |
} |
public String getLongitude() { |
return renvoyerValeurCorrecte("longitude"); |
} |
// TELEPHONE |
public String getTelephone() { |
return renvoyerValeurCorrecte("truk_telephone"); |
} |
public void setTelephone(String tel) { |
this.set("truk_telephone", tel); |
} |
// TELEPHONE FIXE |
public String getTelephoneFixe() { |
return getInfoDenormaliseParType(renvoyerValeurCorrecte("truk_telephone"), Personne.TELEPHONE_FIXE); |
} |
public void setTelephoneFixe(String fixe) { |
modifierChaineDenormaliseParType("truk_telephone", Personne.TELEPHONE_FIXE, fixe); |
} |
//TELEPHONE FAX |
public String getFax() { |
return getInfoDenormaliseParType(renvoyerValeurCorrecte("truk_telephone"), Personne.TELEPHONE_FAX); |
} |
public void setFax(String fax) { |
modifierChaineDenormaliseParType("truk_telephone", Personne.TELEPHONE_FAX, fax); |
} |
// COURRIEL |
public String getCourriel() { |
return renvoyerValeurCorrecte("courriel"); |
} |
public void setCourriel(String courriel) { |
this.set("courriel", courriel); |
} |
// URL |
public String getUrl(String type) { |
return urls.get(type); |
} |
public String getUrl() { |
String urlsDenormalise = ""; |
Set<String> proprietes = urls.getProperties().keySet(); |
for (Iterator<String> it = proprietes.iterator(); it.hasNext();) { |
String cle = it.next(); |
urlsDenormalise += cle+"##"+urls.get(cle)+";;"; |
} |
urlsDenormalise.replaceFirst(";;$", ""); |
return urlsDenormalise; |
} |
public void setUrl(String urlsDenormalise) { |
if (urlsDenormalise != null && !urlsDenormalise.equals("")) { |
//GWT.log(urlsDenormalise, null); |
String[] tableauUrls = urlsDenormalise.split(";;"); |
for (int i = 0; i < tableauUrls.length; i++) { |
String url = tableauUrls[i]; |
//GWT.log("\t"+url, null); |
String[] tableauUrl = url.split("##"); |
if (tableauUrl.length == 2) { |
//GWT.log("\t\t"+tableauUrl[0]+"-"+tableauUrl[1], null); |
urls.set(tableauUrl[0], tableauUrl[1]); |
} |
} |
} |
} |
public void setUrl(String type, String url) { |
if (url != null) { |
urls.set(type, url); |
} |
} |
public int getNbrePersonne() { |
if (renvoyerValeurCorrecte("nbre_personne").equals("")) { |
return 0; |
} else { |
return Integer.parseInt(renvoyerValeurCorrecte("nbre_personne")); |
} |
} |
public void setNbrePersonne(int nbrePersonne) { |
this.set("nbre_personne", Integer.toString(nbrePersonne)); |
} |
public String getConditionAcces() { |
return renvoyerValeurCorrecte("condition_acces"); |
} |
public String getConditionUsage() { |
return renvoyerValeurCorrecte("condition_usage"); |
} |
public StructureAPersonneListe getPersonnel() { |
return personnel; |
} |
public void setPersonnel(StructureAPersonneListe personnelAStocker) { |
personnel = personnelAStocker; |
} |
public StructureValorisation getValorisation() { |
return valorisation; |
} |
public void setValorisation(StructureValorisation valorisationAStocker) { |
valorisation = valorisationAStocker; |
} |
public StructureConservation getConservation() { |
return conservation; |
} |
public void setConservation(StructureConservation conservationAStocker) { |
conservation = conservationAStocker; |
} |
public String toString() { |
String sortie = ""; |
// Champs du BaseModelData |
Set<String> proprietes = this.getProperties().keySet(); |
for (Iterator<String> it = proprietes.iterator(); it.hasNext();) { |
String cle = it.next(); |
sortie += cle+" : "+this.get(cle)+"\n"; |
} |
// Champs spéciaux |
sortie += getUrl(); |
return sortie; |
} |
} |
/trunk/src/org/tela_botanica/client/modeles/structure/StructureListe.java |
---|
New file |
0,0 → 1,49 |
package org.tela_botanica.client.modeles.structure; |
import org.tela_botanica.client.modeles.aDonneeListe; |
import com.google.gwt.json.client.JSONArray; |
import com.google.gwt.json.client.JSONObject; |
/** |
* Table de hachage composée d'informations sur les Structures, renvoyé par un objet de type DAO |
* La clé est le nom de l'entite + le nom de l'entite parente |
* |
* @author david delon |
* |
*/ |
public class StructureListe extends aDonneeListe<Structure> { |
private static final long serialVersionUID = 7384579567038300856L; |
public StructureListe() { |
super(); |
} |
public StructureListe(int taille) { |
super(taille); |
} |
/** |
* Constructeur pour une liste d'institutions |
* @param dates |
*/ |
public StructureListe(JSONArray structures) { |
super(structures.size()) ; |
final int taillemax = structures.size(); |
for (int i = 0; i < taillemax; i++) { |
JSONObject structureCourante = structures.get(i).isObject() ; |
if (structureCourante != null) { |
Structure structure = new Structure(structureCourante); |
StructureValorisation valorisation = new StructureValorisation(structureCourante); |
structure.setValorisation(valorisation); |
StructureConservation conservation = new StructureConservation(structureCourante); |
structure.setConservation(conservation); |
this.put(structure.getId(), structure); |
} |
} |
} |
} |
Property changes: |
Added: svn:mergeinfo |
/trunk/src/org/tela_botanica/client/modeles/structure/StructureAsyncDao.java |
---|
New file |
0,0 → 1,200 |
package org.tela_botanica.client.modeles.structure; |
import org.tela_botanica.client.Mediateur; |
import org.tela_botanica.client.RegistreId; |
import org.tela_botanica.client.http.JsonRestRequestBuilder; |
import org.tela_botanica.client.http.JsonRestRequestCallback; |
import org.tela_botanica.client.interfaces.Rafraichissable; |
import org.tela_botanica.client.modeles.Information; |
import org.tela_botanica.client.modeles.projet.ProjetListe; |
import org.tela_botanica.client.util.UtilDAO; |
import com.extjs.gxt.ui.client.Registry; |
import com.google.gwt.core.client.GWT; |
import com.google.gwt.http.client.URL; |
import com.google.gwt.json.client.JSONArray; |
import com.google.gwt.json.client.JSONObject; |
import com.google.gwt.json.client.JSONValue; |
public class StructureAsyncDao { |
private static final String SERVICE_NOM = "CoelStructure"; |
private String utilisateurId = null; |
private Rafraichissable vueARafraichir = null; |
public StructureAsyncDao(Rafraichissable vue) { |
vueARafraichir = vue; |
utilisateurId = ((Mediateur) Registry.get(RegistreId.MEDIATEUR)).getUtilisateurId(); |
GWT.log("ID utilisateur :"+utilisateurId, null); |
} |
public void selectionner(final String projetId, final String structureId) { |
String[] parametres = {projetId, structureId}; |
final JsonRestRequestBuilder rb = UtilDAO.construireRequete(SERVICE_NOM, parametres); |
rb.envoyerRequete(null, new JsonRestRequestCallback() { |
@Override |
public void surReponse(JSONValue responseValue) { |
if (responseValue != null) { |
Information info = new Information("selection_structure"); |
// Si la requête est un succès, reception d'un objet ou d'un tableau |
if (responseValue.isObject() != null) { |
final JSONObject reponse = responseValue.isObject(); |
Structure structure = new Structure(reponse); |
StructureConservation structureConservation = new StructureConservation(reponse); |
StructureValorisation structureValorisation = new StructureValorisation(reponse); |
info.setDonnee(0, structure); |
info.setDonnee(1, structureConservation); |
info.setDonnee(2, structureValorisation); |
vueARafraichir.rafraichir(info); |
} else if (responseValue.isArray() != null) { |
final JSONArray reponse = responseValue.isArray(); |
StructureListe structures = new StructureListe(reponse); |
vueARafraichir.rafraichir(structures); |
} else { |
GWT.log(rb.getUrl()+"\n\tLa réponse n'est pas un objet ou un talbeau JSON et vaut : "+responseValue.toString(), null); |
} |
} else { |
if (structureId == null) { |
// Dans le cas, où nous demandons toutes les institutions et qu'il n'y en a pas, nous retournons un objet vide |
StructureListe structures = new StructureListe(0); |
vueARafraichir.rafraichir(structures); |
} |
} |
} |
}); |
} |
public void ajouter(final Structure str, StructureConservation conservation, StructureValorisation valorisation) { |
String postDonneesEncodees = construirePost(null, str, conservation, valorisation); |
final JsonRestRequestBuilder rb = UtilDAO.construireRequetePost(SERVICE_NOM); |
rb.envoyerRequete(postDonneesEncodees, new JsonRestRequestCallback() { |
@Override |
public void surReponse(JSONValue responseValue) { |
if (responseValue.isString() != null) { |
Information info = new Information("ajout_structure"); |
String structureIdOuMessage = responseValue.isString().stringValue(); |
if (structureIdOuMessage.matches("^[0-9]+$")) { |
info.setDonnee(structureIdOuMessage); |
} else { |
info.setMessage(structureIdOuMessage); |
} |
vueARafraichir.rafraichir(info); |
} else { |
GWT.log(rb.getUrl()+"\n\tLa réponse n'est pas une chaine JSON.", null); |
} |
} |
}); |
} |
public void modifier(String structureId, Structure str, StructureConservation conservation, StructureValorisation valorisation) { |
String postDonneesEncodees = construirePost(structureId, str, conservation, valorisation); |
String[] parametres = {structureId}; |
final JsonRestRequestBuilder rb = UtilDAO.construireRequetePost(SERVICE_NOM, parametres); |
rb.envoyerRequete(postDonneesEncodees, new JsonRestRequestCallback() { |
@Override |
public void surReponse(JSONValue responseValue) { |
// Si la requête est un succès, reception d'une chaine |
if (responseValue.isString() != null) { |
Information info = new Information("modif_structure"); |
info.setMessage(responseValue.isString().stringValue()); |
vueARafraichir.rafraichir(info); |
} else { |
GWT.log(rb.getUrl()+"\n\tLa réponse n'est pas une chaine JSON.", null); |
} |
} |
}); |
} |
public void supprimer(String structuresId) { |
String[] parametres = {utilisateurId, structuresId}; |
final JsonRestRequestBuilder rb = UtilDAO.construireRequetePost(SERVICE_NOM, parametres); |
rb.envoyerRequeteSuppression(new JsonRestRequestCallback() { |
@Override |
public void surReponse(JSONValue responseValue) { |
if (responseValue.isString() != null) { |
Information info = new Information("suppression_structure"); |
info.setMessage(responseValue.isString().stringValue()); |
vueARafraichir.rafraichir(info); |
} else { |
GWT.log(rb.getUrl()+"\n\tLa réponse n'est pas une chaine JSON.", null); |
} |
} |
}); |
} |
private String construirePost(String structureId, Structure str, StructureConservation conservation, StructureValorisation valorisation) { |
String postDonnees = "cmhl_ce_modifier_par=" + URL.encodeComponent(utilisateurId); |
if (str != null) { |
if (structureId != null) { |
postDonnees += "&cs_id_structure=" + URL.encodeComponent(structureId); |
} |
postDonnees += "&cpr_abreviation=" + URL.encodeComponent(((ProjetListe) Registry.get(RegistreId.PROJETS)).get(str.getIdProjet()).getAbreviation()); |
postDonnees += "&cs_ce_projet=" + URL.encodeComponent(str.getIdProjet()) + |
"&cs_ce_mere=" + URL.encodeComponent(str.getIdMere()) + |
"&cs_guid=" + URL.encodeComponent(str.getGuid()) + |
"&cs_truk_identifiant_alternatif=" + URL.encodeComponent(str.getIdAlternatif()) + |
"&cs_nom=" + URL.encodeComponent(str.getNom()) + |
"&cs_truk_nom_alternatif=" + URL.encodeComponent(str.getNomAlternatif()) + |
"&cs_ce_type=" + URL.encodeComponent(str.getType()) + |
"&cs_ce_truk_type_prive=" + URL.encodeComponent(str.getTypePrive()) + |
"&cs_ce_truk_type_public=" + URL.encodeComponent(str.getTypePublic()) + |
"&cs_adresse_01=" + URL.encodeComponent(str.getAdresse()) + |
"&cs_adresse_02=" + URL.encodeComponent(str.getAdresseComplement()) + |
"&cs_date_fondation=" + URL.encodeComponent(str.getDateFondationFormatMysql()) + |
"&cs_code_postal=" + URL.encodeComponent(str.getCodePostal()) + |
"&cs_ville=" + URL.encodeComponent(str.getVille()) + |
"&cs_ce_truk_region=" + URL.encodeComponent(str.getRegion()) + |
"&cs_ce_truk_pays=" + URL.encodeComponent(str.getPays()) + |
"&cs_truk_telephone=" + URL.encodeComponent(str.getTelephone()) + |
"&cs_truk_url=" + URL.encodeComponent(str.getUrl()) + |
"&cs_nbre_personne=" + URL.encodeComponent(Integer.toString(str.getNbrePersonne())); |
} |
if (conservation != null) { |
if (structureId != null) { |
postDonnees += "&csc_id_structure=" + URL.encodeComponent(structureId); |
} |
postDonnees += "&csc_mark_formation=" + URL.encodeComponent(conservation.getFormation()) + |
"&csc_formation=" + URL.encodeComponent(conservation.getFormationInfo()) + |
"&csc_mark_formation_interet=" + URL.encodeComponent(conservation.getFormationInteret()) + |
"&csc_truk_stockage_local=" + URL.encodeComponent(conservation.getStockageLocal()) + |
"&csc_truk_stockage_meuble=" + URL.encodeComponent(conservation.getStockageMeuble()) + |
"&csc_truk_stockage_parametre=" + URL.encodeComponent(conservation.getStockageParametre()) + |
"&csc_mark_collection_commune=" + URL.encodeComponent(conservation.getCollectionCommune()) + |
"&csc_truk_collection_autre=" + URL.encodeComponent(conservation.getCollectionAutre()) + |
"&csc_mark_acces_controle=" + URL.encodeComponent(conservation.getAccesControle()) + |
"&csc_mark_restauration=" + URL.encodeComponent(conservation.getRestauration()) + |
"&csc_truk_restauration_operation=" + URL.encodeComponent(conservation.getRestaurationOperation()) + |
"&csc_ce_materiel_conservation=" + URL.encodeComponent(conservation.getMaterielConservation()) + |
"&csc_truk_materiel_autre=" + URL.encodeComponent(conservation.getMaterielAutre()) + |
"&csc_mark_traitement=" + URL.encodeComponent(conservation.getTraitement()) + |
"&csc_truk_traitement=" + URL.encodeComponent(conservation.getTraitements()) + |
"&csc_mark_acquisition_collection=" + URL.encodeComponent(conservation.getAcquisitionCollection()) + |
"&csc_mark_acquisition_echantillon=" + URL.encodeComponent(conservation.getAcquisitionEchantillon()) + |
"&csc_mark_acquisition_traitement=" + URL.encodeComponent(conservation.getAcquisitionTraitement()) + |
"&csc_truk_acquisition_traitement_poison=" + URL.encodeComponent(conservation.getAcquisitionTraitementPoison()) + |
"&csc_truk_acquisition_traitement_insecte=" + URL.encodeComponent(conservation.getAcquisitionTraitementInsecte()); |
} |
if (valorisation != null) { |
if (structureId != null) { |
postDonnees += "&csv_id_structure=" + URL.encodeComponent(structureId); |
} |
postDonnees += "&csv_mark_action=" + URL.encodeComponent(valorisation.getAction()) + |
"&csv_truk_action=" + URL.encodeComponent(valorisation.getActionInfo()) + |
"&csv_publication=" + URL.encodeComponent(valorisation.getPublication()) + |
"&csv_collection_autre=" + URL.encodeComponent(valorisation.getCollectionAutre()) + |
"&csv_mark_action_future=" + URL.encodeComponent(valorisation.getActionFuture()) + |
"&csv_action_future=" + URL.encodeComponent(valorisation.getActionFutureInfo()) + |
"&csv_mark_recherche=" + URL.encodeComponent(valorisation.getRecherche()) + |
"&csv_truk_recherche_provenance=" + URL.encodeComponent(valorisation.getRechercheProvenance()) + |
"&csv_truk_recherche_type=" + URL.encodeComponent(valorisation.getRechercheType()) + |
"&csv_mark_acces_ss_motif=" + URL.encodeComponent(valorisation.getAccesSansMotif()) + |
"&csv_acces_ss_motif=" + URL.encodeComponent(valorisation.getAccesSansMotifInfo()) + |
"&csv_mark_visite_avec_motif=" + URL.encodeComponent(valorisation.getVisiteAvecMotif()) + |
"&csv_visite_avec_motif=" + URL.encodeComponent(valorisation.getVisiteAvecMotifInfo()); |
} |
return postDonnees; |
} |
} |
/trunk/src/org/tela_botanica/client/modeles/structure/StructureAPersonne.java |
---|
New file |
0,0 → 1,295 |
package org.tela_botanica.client.modeles.structure; |
import java.util.Iterator; |
import java.util.Set; |
import org.tela_botanica.client.modeles.aDonnee; |
import org.tela_botanica.client.modeles.personne.Personne; |
import com.google.gwt.json.client.JSONObject; |
public class StructureAPersonne extends aDonnee { |
private static final long serialVersionUID = -7265602594281982891L; |
public static final String PREFIXE = "csap"; |
public static final String FONCTION_DIRECTEUR = "2028"; |
public static final String FONCTION_CONSERVATEUR = "2029"; |
public static final String FONCTION_TECHNICIEN = "2030"; |
public static final String ROLE_ADMIN = "2026"; |
public static final String ROLE_EQUIPE = "2027"; |
public static final String ETAT_AJOUTE = "A"; |
public StructureAPersonne() { |
// Définition des valeurs par défaut de variables obligatoires vis à vis de l'utilisation de l'objet |
set("contact", false); |
set("fonction", ""); |
set("statut", ""); |
set("travail", 0); |
} |
public StructureAPersonne(JSONObject personnel) { |
// Définition des valeurs par défaut de variables obligatoires vis à vis de l'utilisation de l'objet |
set("contact", false); |
set("fonction", ""); |
set("statut", ""); |
set("travail", 0); |
// L'objet JSON est une table de hachage |
Set<String> im = personnel.keySet(); |
// Parcourt pour chaque clé |
for (Iterator<String> it = im.iterator(); it.hasNext();) { |
// Si elle est associée à une valeur, nous l'ajoutons |
String cle = it.next(); |
if (cle.startsWith(PREFIXE+"_")) { |
// Suppression de l'abréviation du champ. Inutile dans le contexte d'un objet |
String cleObjet = cle.replaceFirst("^"+PREFIXE+"_", ""); |
// Sinon, nous ajoutons la clé avec une valeur vide |
String valeur = ""; |
if (personnel.get(cle).isString() != null) { |
valeur = personnel.get(cle).isString().stringValue(); |
} |
set(cleObjet, valeur); |
if (cle.equals("mark_contact")) { |
set("contact", (valeur.equals("1") ? true : false)); |
} else if (cle.equals("bota_travail_hebdo_tps")) { |
set("travail", Integer.parseInt(valeur)); |
} |
} |
if (cle.startsWith(Personne.PREFIXE+"_")) { |
// Suppression de l'abréviation du champ. Inutile dans le contexte d'un objet |
String cleObjet = cle.replaceFirst("^"+Personne.PREFIXE+"_", ""); |
// Sinon, nous ajoutons la clé avec une valeur vide |
String valeur = ""; |
if (personnel.get(cle).isString() != null) { |
valeur = personnel.get(cle).isString().stringValue(); |
} |
if (cleObjet.equals("truk_telephone")) { |
set("telephone", valeur); |
set("tel_fix", getInfoDenormaliseParType(valeur, Personne.TELEPHONE_FIXE)); |
set("tel_fax", getInfoDenormaliseParType(valeur, Personne.TELEPHONE_FAX)); |
} else if (cleObjet.equals("truk_courriel")) { |
set("courriel", getInfoDenormaliseParPosition(valeur, 1)); |
} else if (cleObjet.equals("ce_truk_specialite")) { |
set("specialite", getInfoDenormaliseParPosition(valeur, 1)); |
} else { |
set(cleObjet, valeur); |
} |
} |
} |
} |
/** |
* Constructeur avec la fonction à passer en paramètre |
* |
* @param fonction fonction de la personne dans la structure. |
* @param role identifiant du rôle de la personne vis à vis de la structure. |
*/ |
public StructureAPersonne(String fonction, String roleId) { |
setFonction(fonction); |
setIdRole(roleId); |
// Définition des valeurs par défaut de variables obligatoires vis à vis de l'utilisation de l'objet |
set("contact", false); |
set("fonction", fonction); |
set("statut", ""); |
set("travail", 0); |
} |
/** |
* Constructeur avec la fonction à passer en paramètre |
* |
* @param fonction fonction de la personne dans la structure. |
* @param role identifiant du rôle de la personne vis à vis de la structure. |
*/ |
public StructureAPersonne(String fonction, String roleId, String codeEtat) { |
setFonction(fonction); |
setIdRole(roleId); |
// Définition des valeurs par défaut de variables obligatoires vis à vis de l'utilisation de l'objet |
set("contact", false); |
set("fonction", fonction); |
set("statut", ""); |
set("travail", 0); |
set("etat", codeEtat); |
} |
@Override |
protected String getPrefixe() { |
return PREFIXE; |
} |
// ID |
/** Génère un identifiant de StructureAPersonne. |
* |
* C'est une concaténation des clés primaires de la table coel_structure_a_personne séparées par un tiret "-". |
* |
* @return identifiant unique d'une relation "structure à personne". |
*/ |
public String getId() { |
String idStructure = renvoyerValeurCorrecte("id_structure"); |
String idPersonne = renvoyerValeurCorrecte("id_personne"); |
String idRole = renvoyerValeurCorrecte("id_role"); |
if (idStructure.equals("") && idPersonne.equals("") && idRole.equals("")) { |
return null; |
} else { |
return (idStructure+"-"+idPersonne+"-"+idRole); |
} |
} |
//+---------------------------------------------------------------------------------------------------------------+ |
// CHAMPS PROVENANT de la TABLE COEL_STRUCTURE_A_PERSONNE |
// ID STRUCTURE |
public String getIdStructure() { |
return renvoyerValeurCorrecte("id_structure"); |
} |
public void setIdStructure(String is) { |
set("id_structure", is); |
} |
// ID PERSONNE |
public String getIdPersonne() { |
return renvoyerValeurCorrecte("id_personne"); |
} |
public void setIdPersonne(String ip) { |
set("id_personne", ip); |
} |
// ID RôLE |
public String getIdRole() { |
return renvoyerValeurCorrecte("id_role"); |
} |
public void setIdRole(String ir) { |
set("id_role", ir); |
} |
// FONCTION |
public String getFonction() { |
return renvoyerValeurCorrecte("ce_truk_fonction"); |
} |
public void setFonction(String ctf) { |
set("ce_truk_fonction", ctf); |
} |
public void setFonction(String type, String valeur) { |
setChaineDenormaliseUnique("ce_truk_fonction", type, valeur); |
} |
// SERVICE |
public String getService() { |
return renvoyerValeurCorrecte("service"); |
} |
public void setService(String s) { |
set("service", s); |
} |
// STATUT |
public String getStatut() { |
return renvoyerValeurCorrecte("ce_truk_statut"); |
} |
public void setStatut(String cts) { |
set("ce_truk_statut", cts); |
} |
public void setStatut(String type, String valeur) { |
setChaineDenormaliseUnique("ce_truk_statut", type, valeur); |
} |
// CONTACT |
public String getContact() { |
return renvoyerValeurCorrecte("mark_contact"); |
} |
public void setContact(String c) { |
//set("contact", (c.equals("1") ? true : false)); |
set("mark_contact", c); |
} |
public void setContact(Boolean c) { |
setContact((c.equals(Boolean.TRUE) ? "1" : "0")); |
} |
// BOTA TRAVAIL HEBDO TPS |
public String getBotaTravailHebdoTps() { |
return renvoyerValeurCorrecte("bota_travail_hebdo_tps"); |
} |
public void setBotaTravailHebdoTps(String btht) { |
set("bota_travail_hebdo_tps", btht); |
} |
//+---------------------------------------------------------------------------------------------------------------+ |
// CHAMPS PROVENANT de la TABLE COEL_PERSONNE |
// ID PROJET PERSONNE |
public String getIdProjetPersonne() { |
return renvoyerValeurCorrecte("ce_projet"); |
} |
public void setIdProjetPersonne(String ipp) { |
set("ce_projet", ipp); |
} |
// PRÉNOM |
public String getPrenom() { |
return renvoyerValeurCorrecte("prenom"); |
} |
public void setPrenom(String prenom) { |
set("prenom", prenom); |
} |
// NOM |
public String getNom() { |
return renvoyerValeurCorrecte("nom"); |
} |
public void setNom(String nom) { |
set("nom", nom); |
} |
// TÉLÉPHONE |
public String getTelephone() { |
return renvoyerValeurCorrecte("telephone"); |
} |
public void setTelephone(String tel) { |
set("telephone", tel); |
} |
// TÉLÉPHONE FIXE |
public String getTelephoneFixe() { |
return getInfoDenormaliseParType(renvoyerValeurCorrecte("telephone"), Personne.TELEPHONE_FIXE); |
} |
public void setTelephoneFixe(String fixe) { |
// Nous remplaçons le premier numéro de Téléphone FIX de la personne |
modifierChaineDenormaliseParType("telephone", Personne.TELEPHONE_FIXE, fixe); |
} |
// TÉLÉPHONE FAX |
public String getFax() { |
return getInfoDenormaliseParType(renvoyerValeurCorrecte("telephone"), Personne.TELEPHONE_FAX); |
} |
public void setFax(String fax) { |
// Nous remplaçons le premier numéro de FAX de la personne |
modifierChaineDenormaliseParType("telephone", Personne.TELEPHONE_FAX, fax); |
} |
// COURRIEL |
public String getCourriel() { |
return renvoyerValeurCorrecte("courriel"); |
} |
public void setCourriel(String courriel) { |
// Nous remplaçons le courriel en position 1 (principal) |
this.modifierChaineDenormaliseParPosition("courriel", 1, courriel); |
} |
public String selectionnerCourriel(int position) { |
return getInfoDenormaliseParPosition(renvoyerValeurCorrecte("courriel"), position); |
} |
// SPÉCIALITÉ |
public String getSpecialite() { |
return renvoyerValeurCorrecte("specialite"); |
} |
public void setSpecialite(String specialite) { |
setChaineDenormaliseUnique("specialite", "AUTRE", specialite); |
} |
public String afficherSpecialite() { |
return getChaineDenormaliseUnique("specialite"); |
} |
} |
/trunk/src/org/tela_botanica/client/modeles/structure/StructureConservation.java |
---|
New file |
0,0 → 1,231 |
package org.tela_botanica.client.modeles.structure; |
import java.util.Iterator; |
import java.util.Set; |
import org.tela_botanica.client.modeles.aDonnee; |
import com.google.gwt.json.client.JSONObject; |
public class StructureConservation extends aDonnee { |
private static final long serialVersionUID = -4556005804101933910L; |
public static final String PREFIXE = "csc"; |
public StructureConservation() { |
} |
public StructureConservation(JSONObject conservation) { |
// L'objet JSON est une table de hachage |
Set<String> im = conservation.keySet(); |
// Parcourt pour chaque clé |
for (Iterator<String> it = im.iterator(); it.hasNext();) { |
// Si elle est associée à une valeur, nous l'ajoutons |
String cle = it.next(); |
if (cle.startsWith(PREFIXE+"_")) { |
// Suppression de l'abréviation du champ. Inutile dans le contexte d'un objet |
String cleObjet = cle.replaceFirst("^"+PREFIXE+"_", ""); |
// Sinon, nous ajoutons la clé avec une valeur vide |
String valeur = ""; |
if (conservation.get(cle).isString() != null) { |
valeur = conservation.get(cle).isString().stringValue(); |
} |
this.set(cleObjet, valeur); |
} |
} |
} |
@Override |
protected String getPrefixe() { |
return PREFIXE; |
} |
// FORMATION |
public String getFormation() { |
return renvoyerValeurCorrecte("mark_formation"); |
} |
public void setFormation(String f) { |
this.set("mark_formation", f); |
} |
// FORMATION INFO |
public String getFormationInfo() { |
return renvoyerValeurCorrecte("formation"); |
} |
public void setFormationInfo(String f) { |
this.set("formation", f); |
} |
// FORMATION INTÉRÊT |
public String getFormationInteret() { |
return renvoyerValeurCorrecte("mark_formation_interet"); |
} |
public void setFormationInteret(String f) { |
this.set("mark_formation_interet", f); |
} |
// STOCKAGE LOCAL |
public String getStockageLocal() { |
return renvoyerValeurCorrecte("truk_stockage_local"); |
} |
public void setStockageLocal(String sl) { |
this.set("truk_stockage_local", sl); |
} |
public void setStockageLocal(String type, Object valeur) { |
remplacerTypeDansChaineDenormalise("truk_stockage_local", type, valeur); |
} |
// STOCKAGE MEUBLE |
public String getStockageMeuble() { |
return renvoyerValeurCorrecte("truk_stockage_meuble"); |
} |
public void setStockageMeuble(String sm) { |
this.set("truk_stockage_meuble", sm); |
} |
public void setStockageMeuble(String type, Object valeur) { |
remplacerTypeDansChaineDenormalise("truk_stockage_meuble", type, valeur); |
} |
// STOCKAGE PARAMÊTRE |
public String getStockageParametre() { |
return renvoyerValeurCorrecte("truk_stockage_parametre"); |
} |
public void setStockageParametre(String sl) { |
this.set("truk_stockage_parametre", sl); |
} |
public void setStockageParametre(String type, Object valeur) { |
remplacerTypeDansChaineDenormalise("truk_stockage_parametre", type, valeur); |
} |
// COLLECTION COMMUNE |
public String getCollectionCommune() { |
return renvoyerValeurCorrecte("mark_collection_commune"); |
} |
public void setCollectionCommune(String ccm) { |
this.set("mark_collection_commune", ccm); |
} |
// COLLECTION AUTRE |
public String getCollectionAutre() { |
return renvoyerValeurCorrecte("truk_collection_autre"); |
} |
public void setCollectionAutre(String ca) { |
this.set("truk_collection_autre", ca); |
} |
public void setCollectionAutre(String type, Object valeur) { |
remplacerTypeDansChaineDenormalise("truk_collection_autre", type, valeur); |
} |
// ACCÈS CONTROLÉ |
public String getAccesControle() { |
return renvoyerValeurCorrecte("mark_acces_controle"); |
} |
public void setAccesControle(String ac) { |
this.set("mark_acces_controle", ac); |
} |
// RESTAURATION |
public String getRestauration() { |
return renvoyerValeurCorrecte("mark_restauration"); |
} |
public void setRestauration(String ccm) { |
this.set("mark_restauration", ccm); |
} |
// RESTAURATION OPÉRATION |
public String getRestaurationOperation() { |
return renvoyerValeurCorrecte("truk_restauration_operation"); |
} |
public void setRestaurationOperation(String ro) { |
this.set("truk_restauration_operation", ro); |
} |
public void setRestaurationOperation(String type, Object valeur) { |
ajouterChaineDenormaliseAvecType("truk_restauration_operation", type, valeur); |
} |
// MATERIEL CONSERVATION |
public String getMaterielConservation() { |
return renvoyerValeurCorrecte("ce_materiel_conservation"); |
} |
public void setMaterielConservation(String mc) { |
this.set("ce_materiel_conservation", mc); |
} |
// MATERIEL AUTRE |
public String getMaterielAutre() { |
return renvoyerValeurCorrecte("truk_materiel_autre"); |
} |
public void setMaterielAutre(String ma) { |
this.set("truk_materiel_autre", ma); |
} |
public void setMaterielAutre(String type, Object valeur) { |
ajouterChaineDenormaliseAvecType("truk_materiel_autre", type, valeur); |
} |
// TRAITEMENT |
public String getTraitement() { |
return renvoyerValeurCorrecte("mark_traitement"); |
} |
public void setTraitement(String t) { |
this.set("mark_traitement", t); |
} |
// TRAITEMENTS |
public String getTraitements() { |
return renvoyerValeurCorrecte("truk_traitement"); |
} |
public void setTraitements(String t) { |
this.set("truk_traitement", t); |
} |
public void setTraitements(String type, Object valeur) { |
ajouterChaineDenormaliseAvecType("truk_traitement", type, valeur); |
} |
// ACQUISITION COLLECTION |
public String getAcquisitionCollection() { |
return renvoyerValeurCorrecte("mark_acquisition_collection"); |
} |
public void setAcquisitionCollection(String ac) { |
this.set("mark_acquisition_collection", ac); |
} |
// ACQUISITION ECHANTILLON |
public String getAcquisitionEchantillon() { |
return renvoyerValeurCorrecte("mark_acquisition_echantillon"); |
} |
public void setAcquisitionEchantillon(String ae) { |
this.set("mark_acquisition_echantillon", ae); |
} |
// ACQUISITION TRAITEMENT |
public String getAcquisitionTraitement() { |
return renvoyerValeurCorrecte("mark_acquisition_traitement"); |
} |
public void setAcquisitionTraitement(String at) { |
this.set("mark_acquisition_traitement", at); |
} |
// ACQUISITION TRAITEMENT POISON |
public String getAcquisitionTraitementPoison() { |
return renvoyerValeurCorrecte("truk_acquisition_traitement_poison"); |
} |
public void setAcquisitionTraitementPoison(String atp) { |
this.set("truk_acquisition_traitement_poison", atp); |
} |
public void setAcquisitionTraitementPoison(String type, Object valeur) { |
ajouterChaineDenormaliseAvecType("truk_acquisition_traitement_poison", type, valeur); |
} |
// ACQUISITION TRAITEMENT INSECTE |
public String getAcquisitionTraitementInsecte() { |
return renvoyerValeurCorrecte("truk_acquisition_traitement_insecte"); |
} |
public void setAcquisitionTraitementInsecte(String ati) { |
this.set("truk_acquisition_traitement_insecte", ati); |
} |
public void setAcquisitionTraitementInsecte(String type, Object valeur) { |
ajouterChaineDenormaliseAvecType("truk_acquisition_traitement_insecte", type, valeur); |
} |
} |
/trunk/src/org/tela_botanica/client/modeles/structure/StructureValorisation.java |
---|
New file |
0,0 → 1,162 |
package org.tela_botanica.client.modeles.structure; |
import java.util.Iterator; |
import java.util.Set; |
import org.tela_botanica.client.modeles.aDonnee; |
import com.google.gwt.json.client.JSONObject; |
public class StructureValorisation extends aDonnee { |
private static final long serialVersionUID = 8906713360999774621L; |
public static final String PREFIXE = "csv"; |
public StructureValorisation() { |
} |
public StructureValorisation(JSONObject valorisation) { |
// L'objet JSON est une table de hachage |
Set<String> im = valorisation.keySet(); |
// Parcourt pour chaque clé |
for (Iterator<String> it = im.iterator(); it.hasNext();) { |
// Si elle est associée à une valeur, nous l'ajoutons |
String cle = it.next(); |
if (cle.startsWith(PREFIXE+"_")) { |
// Suppression de l'abréviation du champ. Inutile dans le contexte d'un objet |
String cleObjet = cle.replaceFirst("^"+PREFIXE+"_", ""); |
// Sinon, nous ajoutons la clé avec une valeur vide |
String valeur = ""; |
if (valorisation.get(cle).isString() != null) { |
valeur = valorisation.get(cle).isString().stringValue(); |
} |
this.set(cleObjet, valeur); |
} |
} |
} |
@Override |
protected String getPrefixe() { |
return PREFIXE; |
} |
// ACTION |
public String getAction() { |
return renvoyerValeurCorrecte("mark_action"); |
} |
public void setAction(String a) { |
this.set("mark_action", a); |
} |
// ACTION INFO |
public String getActionInfo() { |
return renvoyerValeurCorrecte("truk_action"); |
} |
public void setActionInfo(String a) { |
this.set("truk_action", a); |
} |
public void setActionInfo(String type, Object valeur) { |
remplacerTypeDansChaineDenormalise("truk_action", type, valeur); |
} |
// PUBLICATION |
public String getPublication() { |
return renvoyerValeurCorrecte("publication"); |
} |
public void setPublication(String p) { |
this.set("publication", p); |
} |
// COLLECTION AUTRE |
public String getCollectionAutre() { |
return renvoyerValeurCorrecte("collection_autre"); |
} |
public void setCollectionAutre(String ca) { |
this.set("collection_autre", ca); |
} |
public void setCollectionAutre(String type, Object valeur) { |
remplacerTypeDansChaineDenormalise("collection_autre", type, valeur); |
} |
// ACTION FUTURE |
public String getActionFuture() { |
return renvoyerValeurCorrecte("mark_action_future"); |
} |
public void setActionFuture(String af) { |
this.set("mark_action_future", af); |
} |
// ACTION FUTURE INFO |
public String getActionFutureInfo() { |
return renvoyerValeurCorrecte("action_future"); |
} |
public void setActionFutureInfo(String af) { |
this.set("action_future", af); |
} |
// RECHERCHE |
public String getRecherche() { |
return renvoyerValeurCorrecte("mark_recherche"); |
} |
public void setRecherche(String r) { |
this.set("mark_recherche", r); |
} |
// RECHERCHE PROVENANCE |
public String getRechercheProvenance() { |
return renvoyerValeurCorrecte("truk_recherche_provenance"); |
} |
public void setRechercheProvenance(String rp) { |
this.set("truk_recherche_provenance", rp); |
} |
public void setRechercheProvenance(String type, Object valeur) { |
remplacerTypeDansChaineDenormalise("truk_recherche_provenance", type, valeur); |
} |
// RECHERCHE TYPE |
public String getRechercheType() { |
return renvoyerValeurCorrecte("truk_recherche_type"); |
} |
public void setRechercheType(String rt) { |
this.set("truk_recherche_type", rt); |
} |
public void setRechercheType(String type, Object valeur) { |
remplacerTypeDansChaineDenormalise("truk_recherche_type", type, valeur); |
} |
// ACCES SANS MOTIF |
public String getAccesSansMotif() { |
return renvoyerValeurCorrecte("mark_acces_ss_motif"); |
} |
public void setAccesSansMotif(String asm) { |
this.set("mark_acces_ss_motif", asm); |
} |
// ACCES SANS MOTIF INFO |
public String getAccesSansMotifInfo() { |
return renvoyerValeurCorrecte("acces_ss_motif"); |
} |
public void setAccesSansMotifInfo(String asm) { |
this.set("acces_ss_motif", asm); |
} |
// VISITE AVEC MOTIF |
public String getVisiteAvecMotif() { |
return renvoyerValeurCorrecte("mark_visite_avec_motif"); |
} |
public void setVisiteAvecMotif(String vam) { |
this.set("mark_visite_avec_motif", vam); |
} |
// VISITE AVEC MOTIF INFO |
public String getVisiteAvecMotifInfo() { |
return renvoyerValeurCorrecte("visite_avec_motif"); |
} |
public void setVisiteAvecMotifInfo(String vam) { |
this.set("visite_avec_motif", vam); |
} |
} |
/trunk/src/org/tela_botanica/client/modeles/structure/StructureAPersonneListe.java |
---|
New file |
0,0 → 1,41 |
package org.tela_botanica.client.modeles.structure; |
import org.tela_botanica.client.modeles.aDonneeListe; |
import com.google.gwt.json.client.JSONArray; |
import com.google.gwt.json.client.JSONObject; |
/** |
* Table de hachage composée d'informations sur les Structures et les Personnes, renvoyé par un objet de type DAO |
* La clé est une concaténation des clés primaires de la table coel_structure_a_personne séparées par un tiret "-". |
* |
* @author david delon |
* |
*/ |
public class StructureAPersonneListe extends aDonneeListe<StructureAPersonne> { |
private static final long serialVersionUID = -2000442795474013672L; |
public StructureAPersonneListe() { |
super(); |
} |
public StructureAPersonneListe(int taille) { |
super(taille); |
} |
public StructureAPersonneListe(JSONArray structures) { |
super(structures.size()) ; |
final int taillemax = structures.size(); |
for (int i = 0; i < taillemax; i++) { |
JSONObject structureAPersonneCourante = structures.get(i).isObject() ; |
if (structureAPersonneCourante != null) { |
StructureAPersonne structureAPersonne = new StructureAPersonne(structureAPersonneCourante); |
this.put(structureAPersonne.getId(), structureAPersonne); |
} |
} |
} |
} |
/trunk/src/org/tela_botanica/client/modeles/structure/StructureAPersonneAsyncDao.java |
---|
New file |
0,0 → 1,137 |
package org.tela_botanica.client.modeles.structure; |
import org.tela_botanica.client.Mediateur; |
import org.tela_botanica.client.RegistreId; |
import org.tela_botanica.client.http.JsonRestRequestBuilder; |
import org.tela_botanica.client.http.JsonRestRequestCallback; |
import org.tela_botanica.client.interfaces.Rafraichissable; |
import org.tela_botanica.client.modeles.Information; |
import org.tela_botanica.client.util.UtilDAO; |
import com.extjs.gxt.ui.client.Registry; |
import com.google.gwt.core.client.GWT; |
import com.google.gwt.http.client.URL; |
import com.google.gwt.json.client.JSONArray; |
import com.google.gwt.json.client.JSONValue; |
public class StructureAPersonneAsyncDao { |
private static final String SERVICE_NOM = "CoelStructureAPersonne"; |
private String utilisateurId = null; |
private Rafraichissable vueARafraichir = null; |
public StructureAPersonneAsyncDao(Rafraichissable vueARafraichirCourrante) { |
vueARafraichir = vueARafraichirCourrante; |
utilisateurId = ((Mediateur) Registry.get(RegistreId.MEDIATEUR)).getUtilisateurId(); |
} |
public void selectionner(final String structureId, final String roleId) { |
String[] parametres = {structureId, roleId}; |
final JsonRestRequestBuilder rb = UtilDAO.construireRequete(SERVICE_NOM, parametres); |
rb.envoyerRequete(null, new JsonRestRequestCallback() { |
@Override |
public void surReponse(JSONValue responseValue) { |
Information info = new Information("liste_structure_a_personne"); |
if (responseValue != null) { |
// Si la requête est un succès, reception d'un tableau |
if (responseValue.isArray() != null) { |
final JSONArray reponse = responseValue.isArray(); |
// Transformation du tableau JSON réponse en ListeInstitution |
StructureAPersonneListe personnel = new StructureAPersonneListe(reponse); |
info.setDonnee(0, personnel); |
// et on met à jour le demandeur des données |
vueARafraichir.rafraichir(info); |
} else { |
GWT.log(rb.getUrl()+"\n\tLa réponse n'est pas un talbeau JSON et vaut : "+responseValue.toString(), null); |
} |
} else { |
if (structureId == null) { |
// Dans le cas, où nous demandons toutes les relations Structure à Personne et qu'il n'y en a pas, nous retournons un message d'information |
info.setMessage("Aucun personnel"); |
vueARafraichir.rafraichir(info); |
} |
} |
} |
}); |
} |
public void ajouter(String structureId, StructureAPersonne personnel) { |
String postDonneesEncodees = construirePost(structureId, personnel); |
final JsonRestRequestBuilder rb = UtilDAO.construireRequetePost(SERVICE_NOM); |
rb.envoyerRequete(postDonneesEncodees, new JsonRestRequestCallback() { |
@Override |
public void surReponse(JSONValue responseValue) { |
// Si la requête est un succès, reception d'une chaine |
if (responseValue.isString() != null) { |
Information info = new Information("ajout_structure_a_personne"); |
info.setMessage(responseValue.isString().stringValue()); |
vueARafraichir.rafraichir(info); |
} else { |
GWT.log(rb.getUrl()+"\n\tLa réponse n'est pas une chaine JSON.", null); |
} |
} |
}); |
} |
public void modifier(StructureAPersonne personnel) { |
String[] parametres = {personnel.getIdStructure(), personnel.getIdPersonne(), personnel.getIdRole()}; |
final JsonRestRequestBuilder rb = UtilDAO.construireRequetePost(SERVICE_NOM, parametres); |
String postDonneesEncodees = construirePost(personnel.getIdStructure(), personnel); |
rb.envoyerRequete(postDonneesEncodees, new JsonRestRequestCallback() { |
@Override |
public void surReponse(JSONValue responseValue) { |
Information info = new Information("modif_structure_a_personne"); |
// Si la requête est un succès, reception d'une chaine |
if (responseValue.isString() != null) { |
info.setMessage(responseValue.isString().stringValue()); |
vueARafraichir.rafraichir(info); |
} else { |
GWT.log(rb.getUrl()+"\n\tLa réponse n'est pas une chaine JSON.", null); |
} |
} |
}); |
} |
public void supprimer(String idStrAPer) { |
String[] parametres = {utilisateurId, idStrAPer}; |
final JsonRestRequestBuilder rb = UtilDAO.construireRequetePost(SERVICE_NOM, parametres); |
rb.envoyerRequeteSuppression(new JsonRestRequestCallback() { |
@Override |
public void surReponse(JSONValue responseValue) { |
if (responseValue.isString() != null) { |
Information info = new Information("suppression_structure_a_personne"); |
info.setMessage(responseValue.isString().stringValue()); |
vueARafraichir.rafraichir(info); |
} else { |
GWT.log(rb.getUrl()+"\n\tLa réponse n'est pas une chaine JSON.", null); |
} |
} |
}); |
} |
private String construirePost(String structureId, StructureAPersonne personnel) { |
String postDonnees = "cmhl_ce_modifier_par=" + URL.encodeComponent(utilisateurId); |
if (!personnel.getIdPersonne().equals("")) { |
postDonnees += "&csap_id_personne=" + URL.encodeComponent(personnel.getIdPersonne()) + |
"&cp_id_personne=" + URL.encodeComponent(personnel.getIdPersonne()); |
} |
postDonnees += "&csap_id_structure=" + URL.encodeComponent(structureId) + |
"&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()) + |
"&csap_mark_contact=" + URL.encodeComponent(personnel.getContact()) + |
"&csap_bota_travail_hebdo_tps=" + URL.encodeComponent(personnel.getBotaTravailHebdoTps()) + |
"&cp_ce_projet=" + URL.encodeComponent(personnel.getIdProjetPersonne()) + |
"&cp_prenom=" + URL.encodeComponent(personnel.getPrenom()) + |
"&cp_nom=" + URL.encodeComponent(personnel.getNom()) + |
"&cp_truk_telephone=" + URL.encodeComponent(personnel.getTelephone()) + |
"&cp_truk_courriel=" + URL.encodeComponent(personnel.getCourriel()) + |
"&cp_ce_truk_specialite=" + URL.encodeComponent(personnel.getSpecialite()) + |
""; |
return postDonnees; |
} |
} |
/trunk/src/org/tela_botanica/client/modeles/projet/ProjetVersion.java |
---|
New file |
0,0 → 1,79 |
package org.tela_botanica.client.modeles.projet; |
import java.util.Iterator; |
import java.util.Set; |
import org.tela_botanica.client.modeles.aDonnee; |
import com.google.gwt.json.client.JSONObject; |
public class ProjetVersion extends aDonnee { |
/** |
* |
*/ |
private static final long serialVersionUID = 1L; |
private static final String PREFIXE = "cprv"; |
public ProjetVersion() { |
//this.set("mark_contact", false); |
super(); |
} |
public ProjetVersion(JSONObject liste) { |
// l'objet JSON est une table de hachage |
Set<String> im = liste.keySet(); |
// Parcourt pour chaque clé |
for (Iterator<String> it = im.iterator(); it.hasNext();) { |
// Si elle est associée à une valeur, nous l'ajoutons |
String cle = it.next(); |
// Suppression de l'abréviation du champ. Inutile dans le contexte d'un objet |
String cleObjet = cle.replaceFirst("^"+PREFIXE+"_", ""); |
if (liste.get(cle).isString() != null) { |
String valeur = liste.get(cle).isString().stringValue(); |
this.set(cleObjet, valeur); |
} else { |
// Sinon, nous ajoutons la clé avec une valeur vide |
String valeur = " "; |
this.set(cleObjet, valeur); |
} |
} |
} |
@Override |
protected String getPrefixe() { |
return PREFIXE; |
} |
public String getIdVersion() { |
return renvoyerValeurCorrecte("id_version"); |
} |
public String getIdProjet() { |
return renvoyerValeurCorrecte("id_projet"); |
} |
public String getNom() { |
return renvoyerValeurCorrecte("nom"); |
} |
public String getCode() { |
return renvoyerValeurCorrecte("code"); |
} |
public String getDateDebut() { |
return renvoyerValeurCorrecte("date_debut"); |
} |
public String getDateFin() { |
return renvoyerValeurCorrecte("date_fin"); |
} |
public String getMeta() { |
return renvoyerValeurCorrecte("ce_meta "); |
} |
} |
/trunk/src/org/tela_botanica/client/modeles/projet/Projet.java |
---|
New file |
0,0 → 1,122 |
package org.tela_botanica.client.modeles.projet; |
import org.tela_botanica.client.modeles.aDonnee; |
import com.google.gwt.json.client.JSONObject; |
public class Projet extends aDonnee { |
private static final long serialVersionUID = 6733053168274995082L; |
private static final String PREFIXE = "cpr"; |
public Projet() {} |
public Projet(JSONObject liste) { |
initialiserModele(liste); |
} |
@Override |
protected String getPrefixe() { |
return PREFIXE; |
} |
public String getId() { |
return renvoyerValeurCorrecte("id_projet"); |
} |
public void setId(String projetId) { |
set("id_projet", projetId); |
} |
public String getNom() { |
return renvoyerValeurCorrecte("nom"); |
} |
public void setNom(String nom) { |
set("nom", nom); |
} |
public String getAbreviation() { |
return renvoyerValeurCorrecte("abreviation"); |
} |
public void setAbreviation(String abrev) { |
set("abreviation", abrev); |
} |
public String getResume() { |
return renvoyerValeurCorrecte("resume"); |
} |
public void setResume(String valeur) { |
set("resume", valeur); |
} |
public String getDescription() { |
return renvoyerValeurCorrecte("description"); |
} |
public void setDescription(String valeur) { |
set("description", valeur); |
} |
public String getUrl() { |
return renvoyerValeurCorrecte("url"); |
} |
public void setUrl(String valeur) { |
set("url", valeur); |
} |
public String getMotsCles() { |
return renvoyerValeurCorrecte("mot_cles"); |
} |
public void setMotsCles(String valeur) { |
set("mot_cles", valeur); |
} |
public String getCitation() { |
return renvoyerValeurCorrecte("citation"); |
} |
public void setCitation(String valeur) { |
set("citation", valeur); |
} |
public String getLicence() { |
return renvoyerValeurCorrecte("licence"); |
} |
public void setLicence(String valeur) { |
set("licence", valeur); |
} |
public String getLangue() { |
return renvoyerValeurCorrecte("ce_langue"); |
} |
public void setLangue(String valeur) { |
set("ce_langue", valeur); |
} |
public String getIndexationHeure() { |
return renvoyerValeurCorrecte("indexation_heure"); |
} |
public void setIndexationHeure(String valeur) { |
set("indexation_heure", valeur); |
} |
public String getIndexationDuree() { |
return renvoyerValeurCorrecte("ce_indexation_duree"); |
} |
public void setIndexationDuree(String valeur) { |
set("ce_indexation_duree", valeur); |
} |
public String getIndexationFreq() { |
return renvoyerValeurCorrecte("ce_indexation_freq"); |
} |
public void setIndexationFreq(String valeur) { |
set("ce_indexation_freq", valeur); |
} |
public String getMarkPublic() { |
return renvoyerValeurCorrecte("mark_public"); |
} |
public void setMarkPublic(String valeur) { |
set("mark_public", valeur); |
} |
} |
/trunk/src/org/tela_botanica/client/modeles/projet/ProjetListe.java |
---|
New file |
0,0 → 1,51 |
package org.tela_botanica.client.modeles.projet; |
import org.tela_botanica.client.modeles.aDonneeListe; |
import com.google.gwt.json.client.JSONArray; |
import com.google.gwt.json.client.JSONObject; |
/** |
* Table de hachage composée d'informations sur les Valeurs des listes, renvoyé par un objet de type DAO |
* La clé est l'id de l'entite. |
* |
* @author Grégoire DUCHÉ |
* |
*/ |
public class ProjetListe extends aDonneeListe<Projet> { |
private static final long serialVersionUID = -9030260944108896455L; |
/** |
* Constructeur sans paramètres |
*/ |
public ProjetListe() { |
super(); |
} |
/** |
* Constructeur avec paramètre |
* @param taille la taille de la table de hachage |
*/ |
public ProjetListe(int taille) { |
super(taille); |
} |
/** |
* Constructeur pour une liste de projets |
* @param dates |
*/ |
public ProjetListe(JSONArray projetsListe) { |
super(projetsListe.size()); |
final int taillemax = projetsListe.size(); |
for (int i = 0; i < taillemax; i++) { |
JSONObject projetCourant = projetsListe.get(i).isObject() ; |
if (projetCourant != null) { |
Projet projet = new Projet(projetCourant); |
this.put(projet.getId(), projet); |
} |
} |
} |
} |
/trunk/src/org/tela_botanica/client/modeles/projet/ProjetAsyncDao.java |
---|
New file |
0,0 → 1,109 |
package org.tela_botanica.client.modeles.projet; |
import org.tela_botanica.client.Mediateur; |
import org.tela_botanica.client.RegistreId; |
import org.tela_botanica.client.http.JsonRestRequestBuilder; |
import org.tela_botanica.client.http.JsonRestRequestCallback; |
import org.tela_botanica.client.interfaces.Rafraichissable; |
import org.tela_botanica.client.modeles.Information; |
import org.tela_botanica.client.util.UtilDAO; |
import com.extjs.gxt.ui.client.Registry; |
import com.google.gwt.core.client.GWT; |
import com.google.gwt.json.client.JSONArray; |
import com.google.gwt.json.client.JSONObject; |
import com.google.gwt.json.client.JSONValue; |
public class ProjetAsyncDao { |
private static final String SERVICE_NOM = "CoelProjet"; |
String utilisateurId = null; |
private Rafraichissable vueARafraichir = null; |
public ProjetAsyncDao(Rafraichissable vueARafraichirCourrante) { |
vueARafraichir = vueARafraichirCourrante; |
utilisateurId = ((Mediateur) Registry.get(RegistreId.MEDIATEUR)).getUtilisateurId(); |
} |
public void selectionner(final String projetId) { |
String[] param = {projetId}; |
final JsonRestRequestBuilder rb = UtilDAO.construireRequete(SERVICE_NOM, param); |
rb.envoyerRequete(null, new JsonRestRequestCallback() { |
@Override |
public void surReponse(JSONValue responseValue) { |
if (responseValue != null) { |
// Si la requête est un succès, reception d'un objet ou d'un tableau |
if (responseValue.isObject() != null) { |
final JSONObject reponse = responseValue.isObject(); |
Projet projet = new Projet(reponse); |
Information info = new Information("selection_projet"); |
info.setDonnee(0, projet); |
vueARafraichir.rafraichir(info); |
} else if (responseValue.isArray() != null) { |
final JSONArray reponse = responseValue.isArray(); |
ProjetListe projets = new ProjetListe(reponse); |
vueARafraichir.rafraichir(projets); |
} else { |
GWT.log(rb.getUrl()+"\n\tLa réponse n'est pas un objet ou un talbeau JSON et vaut : "+responseValue.toString(), null); |
} |
} else { |
// Dans le cas, où nous demandons tous les projets et qu'il n'y en a pas, nous retournons un objet vide |
if (projetId == null) { |
ProjetListe projets = new ProjetListe(0); |
vueARafraichir.rafraichir(projets); |
} |
} |
} |
}); |
} |
public void ajouter(Projet projet) { |
String postDonneesEncodees = projet.obtenirChainePOST()+"&cmhl_ce_modifier_par="+utilisateurId; |
final JsonRestRequestBuilder rb = UtilDAO.construireRequetePost(SERVICE_NOM); |
rb.envoyerRequete(postDonneesEncodees, new JsonRestRequestCallback() { |
@Override |
public void surReponse(JSONValue reponseValeur) { |
traiterReponse(reponseValeur, "ajout_projet"); |
} |
}) ; |
} |
public void modifier(Projet projet) { |
String[] parametres = {projet.getId()}; |
final JsonRestRequestBuilder rb = UtilDAO.construireRequetePost(SERVICE_NOM, parametres); |
String postDonneesEncodees = projet.obtenirChainePOST()+"&cmhl_ce_modifier_par="+utilisateurId; |
rb.envoyerRequete(postDonneesEncodees, new JsonRestRequestCallback() { |
@Override |
public void surReponse(JSONValue reponseValeur) { |
traiterReponse(reponseValeur, "modif_projet"); |
} |
}); |
} |
public void supprimer(String projetsId) { |
String[] parametres = {utilisateurId, projetsId}; |
final JsonRestRequestBuilder rb = UtilDAO.construireRequetePost(SERVICE_NOM, parametres); |
rb.envoyerRequeteSuppression(new JsonRestRequestCallback() { |
@Override |
public void surReponse(JSONValue reponseValeur) { |
traiterReponse(reponseValeur, "suppression_projet"); |
} |
}); |
} |
private void traiterReponse(JSONValue reponseValeur, String type) { |
Information info = new Information(type); |
// Si la requête est un succès, réception d'une chaîne |
if (reponseValeur.isString() != null) { |
info.setDonnee(reponseValeur.isString().stringValue()); |
} else { |
info.setDeboguage("La réponse n'est pas une chaine JSON."); |
} |
vueARafraichir.rafraichir(info); |
} |
} |
/trunk/src/org/tela_botanica/client/modeles/publication/PublicationAPersonne.java |
---|
New file |
0,0 → 1,105 |
package org.tela_botanica.client.modeles.publication; |
import java.util.Iterator; |
import java.util.Set; |
import org.tela_botanica.client.modeles.aDonnee; |
import org.tela_botanica.client.modeles.personne.Personne; |
import com.google.gwt.json.client.JSONObject; |
public class PublicationAPersonne extends aDonnee { |
private static final long serialVersionUID = 7769105365939978129L; |
public static final String PREFIXE = "cpuap"; |
public static final String ROLE_AUTEUR = "2360"; |
private Personne personneLiee = null; |
public PublicationAPersonne() {} |
public PublicationAPersonne(JSONObject pubAPersListe) { |
personneLiee = new Personne(pubAPersListe); |
// l'objet JSON est une table de hachage |
Set<String> im = pubAPersListe.keySet(); |
// Parcourt pour chaque clé |
for (Iterator<String> it = im.iterator(); it.hasNext();) { |
// Si elle est associée à une valeur, nous l'ajoutons |
String cle = it.next(); |
// Suppression de l'abréviation du champ. Inutile dans le contexte d'un objet |
String cleObjet = cle.replaceFirst("^"+PREFIXE+"_", ""); |
// Valeur vide par défaut |
String valeur = ""; |
if (pubAPersListe.get(cle).isString() != null) { |
valeur = pubAPersListe.get(cle).isString().stringValue(); |
this.set(cleObjet, valeur); |
} else { |
this.set(cleObjet, valeur); |
} |
} |
} |
@Override |
protected String getPrefixe() { |
return PREFIXE; |
} |
public Personne getPersonne() { |
return personneLiee; |
} |
public void setPersonne(Personne personne) { |
personneLiee = personne; |
if (personne != null) { |
setIdPersonne(personne.getId()); |
} |
} |
// ID |
public String getId() { |
String idPublication = getIdPublication(); |
String idPersonne = getIdPersonne(); |
String idRole = getIdRole(); |
if (idPublication.equals("") && idPersonne.equals("") && idRole.equals("")) { |
return null; |
} else { |
return (idPublication+"-"+idPersonne+"-"+idRole); |
} |
} |
// ID PUBLICATION |
public String getIdPublication() { |
return renvoyerValeurCorrecte("id_publication"); |
} |
public void setIdPublication(String id) { |
set("id_publication", id); |
} |
// ID PERSONNE |
public String getIdPersonne() { |
return renvoyerValeurCorrecte("id_personne"); |
} |
public void setIdPersonne(String id) { |
set("id_personne", id); |
} |
// ID RôLE |
public String getIdRole() { |
return renvoyerValeurCorrecte("id_role"); |
} |
public void setIdRole(String id) { |
set("id_role", id); |
} |
// TYPE |
public String getType() { |
return renvoyerValeurCorrecte("ce_truk_type"); |
} |
public void setType(String type) { |
set("ce_truk_type", type); |
} |
public void setFonction(String type, String valeur) { |
setChaineDenormaliseUnique("ce_truk_type", type, valeur); |
} |
} |
/trunk/src/org/tela_botanica/client/modeles/publication/PublicationAPersonneListe.java |
---|
New file |
0,0 → 1,33 |
package org.tela_botanica.client.modeles.publication; |
import org.tela_botanica.client.modeles.aDonneeListe; |
import com.google.gwt.json.client.JSONArray; |
import com.google.gwt.json.client.JSONObject; |
public class PublicationAPersonneListe extends aDonneeListe<PublicationAPersonne> { |
private static final long serialVersionUID = -5950583940829919577L; |
public PublicationAPersonneListe() { |
super(); |
} |
public PublicationAPersonneListe(int i) { |
super(i); |
} |
public PublicationAPersonneListe(JSONArray auteurs) { |
super(auteurs.size()) ; |
final int taillemax = auteurs.size(); |
for (int i = 0; i < taillemax; i++) { |
JSONObject publicationAPersonneCourante = auteurs.get(i).isObject() ; |
if (publicationAPersonneCourante != null) { |
PublicationAPersonne publicationAPersonne = new PublicationAPersonne(publicationAPersonneCourante); |
this.put(publicationAPersonne.getId(), publicationAPersonne); |
} |
} |
} |
} |
/trunk/src/org/tela_botanica/client/modeles/publication/PublicationAPersonneAsyncDao.java |
---|
New file |
0,0 → 1,121 |
package org.tela_botanica.client.modeles.publication; |
import org.tela_botanica.client.Mediateur; |
import org.tela_botanica.client.RegistreId; |
import org.tela_botanica.client.http.JsonRestRequestBuilder; |
import org.tela_botanica.client.http.JsonRestRequestCallback; |
import org.tela_botanica.client.interfaces.Rafraichissable; |
import org.tela_botanica.client.modeles.Information; |
import org.tela_botanica.client.util.UtilDAO; |
import com.extjs.gxt.ui.client.Registry; |
import com.google.gwt.core.client.GWT; |
import com.google.gwt.http.client.URL; |
import com.google.gwt.json.client.JSONArray; |
import com.google.gwt.json.client.JSONObject; |
import com.google.gwt.json.client.JSONValue; |
public class PublicationAPersonneAsyncDao { |
private static final String SERVICE_NOM = "CoelPublicationAPersonne"; |
private String utilisateurId = null; |
private Rafraichissable vueARafraichir = null; |
public PublicationAPersonneAsyncDao(Rafraichissable vueARafraichirCourrante) { |
vueARafraichir = vueARafraichirCourrante; |
utilisateurId = ((Mediateur) Registry.get(RegistreId.MEDIATEUR)).getUtilisateurId(); |
} |
public void selectionner(String publicationId, String personnesId, String roleId) { |
String[] parametres = {publicationId, personnesId, roleId}; |
final JsonRestRequestBuilder rb = UtilDAO.construireRequete(SERVICE_NOM, parametres); |
rb.envoyerRequete(null, new JsonRestRequestCallback() { |
@Override |
public void surReponse(JSONValue responseValue) { |
if (responseValue != null) { |
// Si la requête est un succès, réception d'un objet ou d'un tableau |
if (responseValue.isObject() != null) { |
final JSONObject reponse = responseValue.isObject(); |
// Transformation du tableau JSON réponse en ListeInstitution |
PublicationAPersonne publicationAPersonne = new PublicationAPersonne(reponse); |
// et on met à jour le demandeur des données |
vueARafraichir.rafraichir(publicationAPersonne); |
} else if (responseValue.isArray() != null) { |
final JSONArray reponse = responseValue.isArray(); |
PublicationAPersonneListe publicationsAPersonneListe = new PublicationAPersonneListe(reponse); |
vueARafraichir.rafraichir(publicationsAPersonneListe); |
} else { |
GWT.log("La réponse n'est pas un objet ou un tableau JSON et vaut : "+responseValue.toString(), null); |
} |
} else { |
// Dans le cas, où nous demandons toutes les publication et qu'il n'y en a pas, nous retournons un objet vide |
PublicationAPersonneListe publicationAPersonneListe = new PublicationAPersonneListe(0); |
vueARafraichir.rafraichir(publicationAPersonneListe); |
} |
} |
}); |
} |
public void ajouter(String publicationId, String personnesId, String roleId) { |
String postDonneesEncodees = "cpuap_id_publication="+URL.encodeComponent(publicationId) |
+"&cpuap_id_auteur="+URL.encodeComponent(personnesId) |
+"&cpuap_id_role="+URL.encodeComponent(roleId) |
+"&cmhl_ce_modifier_par="+utilisateurId; |
final JsonRestRequestBuilder rb = UtilDAO.construireRequetePost(SERVICE_NOM); |
rb.envoyerRequete(postDonneesEncodees, new JsonRestRequestCallback() { |
@Override |
public void surReponse(JSONValue reponseValeur) { |
traiterReponse(reponseValeur, "ajout_publication_a_personne"); |
} |
}) ; |
} |
public void modifier(String publicationId, String personnesId, String roleId) { |
String[] parametres = {publicationId, personnesId, roleId}; |
final JsonRestRequestBuilder rb = UtilDAO.construireRequetePost(SERVICE_NOM, parametres); |
String postDonneesEncodees = "cpuap_id_publication="+URL.encodeComponent(publicationId) |
+"&cmhl_ce_modifier_par="+utilisateurId; |
rb.envoyerRequete(postDonneesEncodees, new JsonRestRequestCallback() { |
@Override |
public void surReponse(JSONValue reponseValeur) { |
traiterReponse(reponseValeur, "modif_publication_a_personne"); |
} |
}) ; |
} |
public void supprimer(String idPublicationAPersonne) { |
String[] parametres = {utilisateurId, idPublicationAPersonne}; |
final JsonRestRequestBuilder rb = UtilDAO.construireRequetePost(SERVICE_NOM, parametres); |
rb.envoyerRequeteSuppression(new JsonRestRequestCallback() { |
@Override |
public void surReponse(JSONValue responseValue) { |
if (responseValue.isString() != null) { |
Information info = new Information("suppression_publication_a_personne"); |
info.setMessage(responseValue.isString().stringValue()); |
vueARafraichir.rafraichir(info); |
} else { |
GWT.log(rb.getUrl()+"\n\tLa réponse n'est pas une chaine JSON.", null); |
} |
} |
}); |
} |
private void traiterReponse(JSONValue reponseValeur, String type) { |
Information info = new Information(type); |
// Si la requête est un succès, réception d'une chaîne |
if (reponseValeur.isBoolean() != null) { |
info.setDonnee(reponseValeur.isBoolean().booleanValue()); |
} else if (reponseValeur.isString() != null) { |
info.setDonnee(reponseValeur.isString().stringValue()); |
} else { |
info.setDeboguage("La réponse n'est pas une chaine JSON."); |
} |
vueARafraichir.rafraichir(info); |
} |
} |
/trunk/src/org/tela_botanica/client/modeles/publication/Publication.java |
---|
New file |
0,0 → 1,126 |
package org.tela_botanica.client.modeles.publication; |
import org.tela_botanica.client.modeles.aDonnee; |
import org.tela_botanica.client.modeles.structure.Structure; |
import com.google.gwt.json.client.JSONObject; |
public class Publication extends aDonnee { |
private static final long serialVersionUID = 4142843068041690126L; |
private static final String PREFIXE = "cpu"; |
private Structure editeur = null; |
public Publication() { |
} |
public Publication(JSONObject publication) { |
initialiserModele(publication); |
editeur = new Structure(publication); |
} |
@Override |
protected String getPrefixe() { |
return PREFIXE; |
} |
public void setStructureEditeur(Structure structure) { |
editeur = structure; |
} |
public String getId() { |
return renvoyerValeurCorrecte("id_publication"); |
} |
public void setId(String idPublication) { |
this.set("id_publication", idPublication); |
} |
public String getIdProjet() { |
return renvoyerValeurCorrecte("ce_projet"); |
} |
public void setIdProjet(String idProjet) { |
this.set("ce_projet", idProjet); |
} |
public String getNomComplet() { |
return renvoyerValeurCorrecte("fmt_nom_complet"); |
} |
public void setNomComplet(String nomComplet) { |
this.set("fmt_nom_complet", nomComplet); |
} |
public String getURI() { |
return renvoyerValeurCorrecte("uri"); |
} |
public void setUri(String uri) { |
this.set("uri", uri); |
} |
public String getAuteur() { |
return renvoyerValeurCorrecte("fmt_auteur"); |
} |
public void setAuteur(String auteurFormate) { |
this.set("fmt_auteur", auteurFormate); |
} |
public String getCollection() { |
return renvoyerValeurCorrecte("collection"); |
} |
public void setCollection(String collection) { |
this.set("collection", collection); |
} |
public String getTitre() { |
return renvoyerValeurCorrecte("titre"); |
} |
public void setTitre(String titre) { |
this.set("titre", titre); |
} |
public String getNomEditeur() { |
String editeurNom = getEditeur(); |
if (editeurNom.matches("[0-9]+")) { |
editeurNom = editeur.getNom(); |
} |
return editeurNom; |
} |
public String getEditeur() { |
return getChaineDenormaliseUnique("ce_truk_editeur"); |
} |
public void setEditeur(String editeur) { |
setChaineDenormaliseUnique("ce_truk_editeur", "AUTRE", editeur); |
} |
public String getAnneeParution() { |
return renvoyerValeurCorrecte("date_parution").substring(0, 4); |
} |
public String getDateParution() { |
return renvoyerValeurCorrecte("date_parution"); |
} |
public void setDateParution(String date) { |
this.set("date_parution", date); |
} |
public String getIndicationNvt() { |
return renvoyerValeurCorrecte("indication_nvt"); |
} |
public void setIndicationNvt(String nvt) { |
this.set("indication_nvt", nvt); |
} |
public String getFascicule() { |
return renvoyerValeurCorrecte("fascicule"); |
} |
public void setFascicule(String fascicule) { |
this.set("fascicule", fascicule); |
} |
public String getPages() { |
return renvoyerValeurCorrecte("truk_pages"); |
} |
public void setPages(String pages) { |
this.set("truk_pages", pages); |
} |
} |
/trunk/src/org/tela_botanica/client/modeles/publication/PublicationListe.java |
---|
New file |
0,0 → 1,38 |
package org.tela_botanica.client.modeles.publication; |
import org.tela_botanica.client.modeles.aDonneeListe; |
import com.google.gwt.json.client.JSONArray; |
import com.google.gwt.json.client.JSONObject; |
public class PublicationListe extends aDonneeListe<Publication> { |
private static final long serialVersionUID = 2600314321196345072L; |
public PublicationListe() { |
super(); |
} |
public PublicationListe(int taille) { |
super(taille); |
} |
/** |
* Constructeur pour une liste d'institutions |
* @param dates |
*/ |
public PublicationListe(JSONArray publications) { |
super(publications.size()); |
int taille = publications.size(); |
for (int i = 0; i < taille; i++) { |
JSONObject publicationCourante = publications.get(i).isObject() ; |
if (publicationCourante != null) { |
Publication publication = new Publication(publicationCourante); |
this.put(publication.getId(), publication); |
} |
} |
} |
} |
/trunk/src/org/tela_botanica/client/modeles/publication/PublicationAsyncDao.java |
---|
New file |
0,0 → 1,109 |
package org.tela_botanica.client.modeles.publication; |
import org.tela_botanica.client.Mediateur; |
import org.tela_botanica.client.RegistreId; |
import org.tela_botanica.client.http.JsonRestRequestBuilder; |
import org.tela_botanica.client.http.JsonRestRequestCallback; |
import org.tela_botanica.client.interfaces.Rafraichissable; |
import org.tela_botanica.client.modeles.Information; |
import org.tela_botanica.client.util.UtilDAO; |
import com.extjs.gxt.ui.client.Registry; |
import com.google.gwt.core.client.GWT; |
import com.google.gwt.json.client.JSONArray; |
import com.google.gwt.json.client.JSONObject; |
import com.google.gwt.json.client.JSONValue; |
public class PublicationAsyncDao { |
private static final String SERVICE_NOM = "CoelPublication"; |
private String utilisateurId = null; |
private Rafraichissable vueARafraichir = null; |
public PublicationAsyncDao(Rafraichissable vueARafraichirCourrante) { |
vueARafraichir = vueARafraichirCourrante ; |
utilisateurId = ((Mediateur) Registry.get(RegistreId.MEDIATEUR)).getUtilisateurId(); |
} |
public void selectionner(final String publicationId, String projetId, String nomComplet) { |
String[] parametres = {projetId, publicationId, nomComplet}; |
final JsonRestRequestBuilder rb = UtilDAO.construireRequete(SERVICE_NOM, parametres); |
rb.envoyerRequete(null, new JsonRestRequestCallback() { |
@Override |
public void surReponse(JSONValue responseValue) { |
if (responseValue != null) { |
// Si la requête est un succès, réception d'un objet ou d'un tableau |
if (responseValue.isObject() != null) { |
final JSONObject reponse = responseValue.isObject(); |
// Transformation du tableau JSON réponse en ListeInstitution |
Publication publication = new Publication(reponse); |
// et on met à jour le demandeur des données |
vueARafraichir.rafraichir(publication); |
} else if (responseValue.isArray() != null) { |
final JSONArray reponse = responseValue.isArray(); |
PublicationListe publications = new PublicationListe(reponse); |
vueARafraichir.rafraichir(publications); |
} else { |
GWT.log("La réponse n'est pas un objet ou un talbeau JSON et vaut : "+responseValue.toString(), null); |
} |
} else { |
// Dans le cas, où nous demandons toutes les publication et qu'il n'y en a pas, nous retournons un objet vide |
if (publicationId == null) { |
PublicationListe publications = new PublicationListe(0); |
vueARafraichir.rafraichir(publications); |
} |
} |
} |
}); |
} |
public void ajouter(Publication publication) { |
String postDonneesEncodees = publication.obtenirChainePOST()+"&cmhl_ce_modifier_par="+utilisateurId; |
final JsonRestRequestBuilder rb = UtilDAO.construireRequetePost(SERVICE_NOM); |
rb.envoyerRequete(postDonneesEncodees, new JsonRestRequestCallback() { |
@Override |
public void surReponse(JSONValue reponseValeur) { |
traiterReponse(reponseValeur, "publication_valide"); |
} |
}) ; |
} |
public void modifier(Publication publication) { |
String[] parametres = {publication.getId()}; |
final JsonRestRequestBuilder rb = UtilDAO.construireRequetePost(SERVICE_NOM, parametres); |
String postDonneesEncodees = publication.obtenirChainePOST()+"&cmhl_ce_modifier_par="+utilisateurId; |
rb.envoyerRequete(postDonneesEncodees, new JsonRestRequestCallback() { |
@Override |
public void surReponse(JSONValue reponseValeur) { |
traiterReponse(reponseValeur, "publication_valide"); |
} |
}); |
} |
public void supprimer(String publicationsId) { |
String[] parametres = {utilisateurId, publicationsId}; |
final JsonRestRequestBuilder rb = UtilDAO.construireRequetePost(SERVICE_NOM, parametres); |
rb.envoyerRequeteSuppression(new JsonRestRequestCallback() { |
@Override |
public void surReponse(JSONValue reponseValeur) { |
traiterReponse(reponseValeur, "suppression_publication"); |
} |
}); |
} |
private void traiterReponse(JSONValue reponseValeur, String type) { |
Information info = new Information(type); |
// Si la requête est un succès, réception d'une chaîne |
if (reponseValeur.isString() != null) { |
info.setDonnee(reponseValeur.isString().stringValue()); |
} else { |
info.setDeboguage("La réponse n'est pas une chaine JSON."); |
} |
vueARafraichir.rafraichir(info); |
} |
} |
/trunk/src/org/tela_botanica/client/modeles/personne/Personne.java |
---|
New file |
0,0 → 1,283 |
package org.tela_botanica.client.modeles.personne; |
import java.util.Date; |
import java.util.Iterator; |
import java.util.Set; |
import org.tela_botanica.client.Mediateur; |
import org.tela_botanica.client.modeles.aDonnee; |
import org.tela_botanica.client.util.UtilString; |
import com.google.gwt.core.client.GWT; |
import com.google.gwt.i18n.client.DateTimeFormat; |
import com.google.gwt.json.client.JSONObject; |
public class Personne extends aDonnee { |
private static final long serialVersionUID = -6974716696155349332L; |
public static final String PREFIXE = "cp"; |
public static final String TELEPHONE_FIXE = "FIX"; |
public static final String TELEPHONE_GSM = "GSM"; |
public static final String TELEPHONE_FAX = "FAX"; |
public static final String ETRE_DECEDE = "30745"; |
public static final String ETRE_VIVANT = "30746"; |
public Personne() { |
} |
public Personne(JSONObject personne) { |
initialiserModele(personne); |
//Ajout du champ courriel principal |
this.set("courriel_princ", this.getInfoDenormaliseParPosition(this.renvoyerValeurCorrecte("truk_courriel"), 1)); |
} |
@Override |
protected String getPrefixe() { |
return PREFIXE; |
} |
public Object obtenirValeurChamp(String nomChamp) { |
return renvoyerValeurCorrecte(nomChamp); |
} |
public Date getDate(String nomChamp) { |
String strDate = renvoyerValeurCorrecte(nomChamp); |
Date dateRetour = null; |
try { |
if ((strDate != null) && (!strDate.equals("0000-00-00"))) { |
dateRetour = DateTimeFormat.getFormat("yyyy-MM-dd").parseStrict(strDate); |
} |
} catch (StringIndexOutOfBoundsException e) { |
GWT.log("Impossible de parser la date " + strDate, e); |
} |
return dateRetour; |
} |
public String getString(String nomChamp) { |
return String.valueOf(renvoyerValeurCorrecte(nomChamp)); |
} |
//Traitement des truks |
protected void remplacerTypeDansChaineDenormalise(String champ, String type, Object valeur) { |
if (valeur != null && !valeur.equals("")) { |
ajouterChaineDenormaliseAvecType(champ, type, valeur); |
} else { |
supprimerTypeDansChaineDenormalise(champ, type); |
} |
} |
/** |
* Ajoute un nouvel élément sans type à une chaine dénormalisée. |
* Champ de type "truk" contenant seulement des valeurs séparées par ";;". |
* Si l'élément existe déjà, il ne sera pas ajouté. |
* |
* @param champ le nom du champ dénormalisé |
* @param valeur la valeur à ajouter |
*/ |
protected void ajouterChaineDenormalise(String champ, Object valeur) { |
if (valeur instanceof String) { |
String chaineExistante = renvoyerValeurCorrecte(champ); |
if (chaineExistante.equals("")) { |
this.set(champ, valeur); |
} else { |
// Si la valeur à ajouter n'est pas déjà présente, nous l'ajoutons |
if (!chaineExistante.matches("(^|"+SEPARATEUR_VALEURS+")"+valeur+"("+SEPARATEUR_VALEURS+"|$)")) { |
this.set(champ, chaineExistante+SEPARATEUR_VALEURS+valeur); |
} |
} |
} |
} |
// ID PERSONNE |
public String getId() { |
return renvoyerValeurCorrecte("id_personne"); |
} |
public void setId(String personneId) { |
this.set("id_personne", personneId); |
} |
// ID PROJET |
public String getIdProjet() { |
return renvoyerValeurCorrecte("ce_projet"); |
} |
// NOM COMPLET |
public String getNomComplet() { |
return renvoyerValeurCorrecte("fmt_nom_complet"); |
} |
public void setNomComplet(String nomComplet) { |
this.set("fmt_nom_complet", nomComplet); |
} |
public void setFmtNomComplet(String prefixe, String suffixe) { |
String fmtNomComplet = ""; |
if ((prefixe != null)&&(!prefixe.trim().equals(""))) { |
fmtNomComplet += prefixe + " "; |
} |
if ((this.getPrenom()!=null)&&(!this.getPrenom().trim().equals(""))) { |
fmtNomComplet += this.getPrenom() + " "; |
} |
if ((this.getNom()!=null)&&(!this.getNom().trim().equals(""))) { |
fmtNomComplet += this.getNom() + " "; |
} |
if ((suffixe!=null)&&(!suffixe.trim().equals(""))) { |
fmtNomComplet += suffixe; |
} |
setNomComplet(UtilString.ucFirst(fmtNomComplet)); |
} |
// NOM |
public String getNom() { |
return renvoyerValeurCorrecte("nom"); |
} |
public void setNom(String nom) { |
set("nom", nom); |
} |
// PRÉNOM |
public String getPrenom() { |
return renvoyerValeurCorrecte("prenom"); |
} |
public void setPrenom(String prenom) { |
set("prenom", prenom); |
} |
// TÉLÉPHONE |
public String getTelephone() { |
return renvoyerValeurCorrecte("truk_telephone"); |
} |
public void setTelephone(String t) { |
this.set("truk_telephone", t); |
} |
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() { |
return renvoyerValeurCorrecte("truk_fax"); |
} |
public void setFax(String f) { |
this.set("truk_fax", f); |
} |
public void ajouterFax(Object valeur) { |
ajouterChaineDenormalise("truk_fax", valeur); |
} |
public String selectionnerFax(int position) { |
return getInfoDenormaliseParPosition(renvoyerValeurCorrecte("truk_fax"), position); |
} |
// COURRIEL |
public String getCourriel() { |
return renvoyerValeurCorrecte("truk_courriel"); |
} |
public void setCourriel(String c) { |
this.set("truk_courriel", 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() { |
return renvoyerValeurCorrecte("ce_truk_specialite"); |
} |
public void setSpecialite(String s) { |
// 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"); |
} |
// NAISSANCE DATE |
public String getNaissanceDate() { |
String dateNaiss = ""; |
dateNaiss = get("naissance_date"); |
if (UtilString.isEmpty(dateNaiss)||dateNaiss.equals("0000-00-00")) { |
dateNaiss = Mediateur.i18nC.inconnue(); |
} |
return dateNaiss; |
} |
public void setNaissanceDate(Date naissanceDate) { |
if (naissanceDate != null) { |
this.set("naissance_date", DateTimeFormat.getFormat("yyyy-MM-dd").format(naissanceDate)); |
} |
} |
// NAISSANCE LIEU |
public String getNaissanceLieu() { |
return renvoyerValeurCorrecte("naissance_lieu"); |
} |
public void setNaissanceLieu(String naissanceLieu) { |
this.set("naissance_lieu", naissanceLieu); |
} |
// DÉCÉS |
public boolean estDecedee() { |
String ceDeces = getDeces(); |
if (ceDeces.isEmpty() || ceDeces.equals(ETRE_DECEDE)) { |
return false; |
} else { |
return true; |
} |
} |
public String getDeces() { |
return renvoyerValeurCorrecte("ce_deces"); |
} |
public void setDeces(String deces) { |
set("ce_deces", deces); |
} |
public void setDeces(Date decesDate, String lieuDeces) { |
set("ce_deces", ETRE_DECEDE); |
setDecesDate(decesDate); |
setDecesLieu(lieuDeces); |
} |
public void setNonDecedee() { |
set("ce_deces", ETRE_VIVANT); |
setDecesDate(null); |
setDecesLieu(""); |
} |
// DÉCÉS DATE |
public String getDecesDate() { |
String dateDeces = renvoyerValeurCorrecte("deces_date"); |
if (UtilString.isEmpty(dateDeces) || dateDeces.equals("0000-00-00")) { |
dateDeces = Mediateur.i18nC.inconnue(); |
} |
return dateDeces; |
} |
public void setDecesDate(Date decesDate) { |
if (decesDate != null) { |
this.set("deces_date", DateTimeFormat.getFormat("yyyy-MM-dd").format(decesDate)); |
} else { |
this.set("deces_date", ""); |
} |
} |
// DÉCÉS LIEU |
public String getDecesLieu() { |
return renvoyerValeurCorrecte("deces_lieu"); |
} |
public void setDecesLieu(String decesLieu) { |
this.set("deces_lieu", decesLieu); |
} |
// PARAMÊTRE |
public String getParametre() { |
return renvoyerValeurCorrecte("parametre"); |
} |
public void setParametre(String parametre) { |
this.set("parametre", parametre); |
} |
} |
/trunk/src/org/tela_botanica/client/modeles/personne/PersonneListe.java |
---|
New file |
0,0 → 1,145 |
package org.tela_botanica.client.modeles.personne; |
import org.tela_botanica.client.Mediateur; |
import org.tela_botanica.client.RegistreId; |
import org.tela_botanica.client.interfaces.ListePaginable; |
import org.tela_botanica.client.interfaces.Rafraichissable; |
import org.tela_botanica.client.modeles.aDonneeListe; |
import com.extjs.gxt.ui.client.Registry; |
import com.google.gwt.i18n.client.Dictionary; |
import com.google.gwt.json.client.JSONArray; |
import com.google.gwt.json.client.JSONNumber; |
import com.google.gwt.json.client.JSONObject; |
/** |
* Table de hachage composée d'informations sur les Valeurs des listes, renvoyé par un objet de type DAO |
* La clé est le nom de l'entite + le nom de l'entite parente |
* |
* @author david delon |
* |
*/ |
public class PersonneListe extends aDonneeListe<Personne> implements ListePaginable{ |
private static final long serialVersionUID = 2930530504922300155L; |
private int currentPage = 0; |
private int nbElementsPage = Integer.valueOf(((Dictionary) Dictionary.getDictionary("configuration")).get("nbElementsPage")); |
private int nbElementsTotal; |
private Rafraichissable vueARafraichir; |
/** |
* Constructeur sans paramètres |
*/ |
public PersonneListe() { |
super(); |
} |
/** |
* Constructeur avec paramètre |
* @param taille la taille de la table de hachage |
*/ |
public PersonneListe(int taille) { |
super(taille); |
} |
/** |
* Constructeur pour une liste de personne |
* @param dates |
*/ |
public PersonneListe(JSONArray personneListe) { |
super(personneListe.size()); |
final int taillemax = personneListe.size(); |
for (int i = 0; i < taillemax; i++) { |
JSONObject personneCourante = personneListe.get(i).isObject() ; |
if (personneCourante != null) { |
Personne personne = new Personne(personneCourante); |
this.put(personne.getId(), personne); |
} |
} |
} |
public PersonneListe(JSONArray personneListe, JSONNumber nbElements, Rafraichissable vueARafraichir) { |
super(personneListe.size()); |
this.nbElementsTotal = Integer.valueOf(nbElements.toString()); |
final int taillemax = personneListe.size(); |
for (int i = 0; i < taillemax; i++) { |
JSONObject personneCourante = personneListe.get(i).isObject() ; |
if (personneCourante != null) { |
Personne personne = new Personne(personneCourante); |
this.put(personne.getId(), personne); |
} |
} |
this.vueARafraichir = vueARafraichir; |
} |
public int[] getPageTable() { |
int[] page = new int[4]; |
//nombre de pages au total |
page[0] = calculerNbPages(); |
//Page En Cours |
page[1] = currentPage; |
//nbElementsParPage |
page[2] = nbElementsPage; |
// et le dernier le nombre total d'éléments |
page[3] = nbElementsTotal; |
return page; |
} |
/** |
* Calcule le nombre de pages nécessaires pour afficher un nombre d'élements donnés en fonction de la taille de page |
* en cours |
* @return le nombre de pages |
*/ |
public int calculerNbPages() { |
// A cause de la betise de java pour les conversion implicite on fait quelques conversions manuellement |
// pour eviter qu'il arrondisse mal la division |
// nombre de pages = (nombre d'element / taille de la page) arrondie à l'entier superieur |
double nPage = (1.0*nbElementsTotal)/(1.0*nbElementsPage) ; |
double nPageRound = Math.ceil(nPage) ; |
Double nPageInt = new Double(nPageRound) ; |
// on convertit en entier |
return nPageInt.intValue() ; |
} |
@Override |
public void changerNumeroPage(int pageCourante) { |
currentPage = pageCourante; |
selectionnerPersonne(); |
} |
@Override |
public void changerTaillePage(int nouvelleTaillePage) { |
nbElementsPage = nouvelleTaillePage; |
selectionnerPersonne(); |
} |
@Override |
public void recharger() { |
selectionnerPersonne(); |
} |
public void setPageCourante(int pageCourante) { |
this.currentPage = pageCourante; |
} |
public void setTaillePage(int taillePage) { |
this.nbElementsPage = taillePage; |
} |
public void selectionnerPersonne() { |
Mediateur mediateur =(Mediateur) Registry.get(RegistreId.MEDIATEUR); |
mediateur.selectionnerPersonne(vueARafraichir, null, null, currentPage, nbElementsPage); |
} |
} |
/trunk/src/org/tela_botanica/client/modeles/personne/PersonneAsyncDao.java |
---|
New file |
0,0 → 1,128 |
package org.tela_botanica.client.modeles.personne; |
import java.util.HashMap; |
import org.tela_botanica.client.Mediateur; |
import org.tela_botanica.client.RegistreId; |
import org.tela_botanica.client.http.JsonRestRequestBuilder; |
import org.tela_botanica.client.http.JsonRestRequestCallback; |
import org.tela_botanica.client.interfaces.Rafraichissable; |
import org.tela_botanica.client.modeles.Information; |
import org.tela_botanica.client.util.UtilDAO; |
import com.extjs.gxt.ui.client.Registry; |
import com.google.gwt.core.client.GWT; |
import com.google.gwt.json.client.JSONArray; |
import com.google.gwt.json.client.JSONValue; |
public class PersonneAsyncDao { |
private static final String SERVICE_NOM = "CoelPersonne"; |
private String utilisateurId = null; |
private Rafraichissable vueARafraichir = null; |
public PersonneAsyncDao(Rafraichissable vue) { |
vueARafraichir = vue; |
utilisateurId = ((Mediateur) Registry.get(RegistreId.MEDIATEUR)).getUtilisateurId(); |
} |
public void selectionner(String personneId, String projetId, String nomComplet, final int pageCourante, final int nbElements) { |
String[] parametres = {personneId, projetId, nomComplet}; |
HashMap<String, String> restrictions = new HashMap<String, String>(); |
restrictions.put("start", String.valueOf(pageCourante)); |
if (nbElements != -1) { |
restrictions.put("limit", String.valueOf(nbElements)); |
} |
final JsonRestRequestBuilder rb = UtilDAO.construireRequete(SERVICE_NOM, parametres, restrictions); |
rb.envoyerRequete(null, new JsonRestRequestCallback() { |
@Override |
public void surReponse(JSONValue responseValue) { |
// Si la requête est un succès, réception d'un tableau |
if (responseValue.isArray() != null) { |
final JSONArray reponse = responseValue.isArray(); |
// Transformation du tableau JSON réponse en ListeInstitution |
Information info = new Information("liste_personne"); |
PersonneListe personnes; |
if (reponse.get(0).isArray() != null) { |
personnes = new PersonneListe(reponse); |
} else { |
personnes = new PersonneListe(reponse.get(1).isArray(), reponse.get(0).isNumber(), vueARafraichir); |
} |
personnes.setTaillePage(nbElements); |
personnes.setPageCourante(pageCourante); |
info.setDonnee(0, personnes); |
// et on met à jour le demandeur des données |
vueARafraichir.rafraichir(info); |
} else { |
GWT.log(rb.getUrl()+"\n\tLa réponse n'est pas un tableau JSON et vaut : "+responseValue.toString(), null); |
} |
} |
}); |
} |
public void ajouter(Personne personne) { |
String postDonneesEncodees = personne.obtenirChainePOST(); |
postDonneesEncodees += "&cmhl_ce_modifier_par=" + utilisateurId; |
final JsonRestRequestBuilder rb = UtilDAO.construireRequetePost(SERVICE_NOM); |
rb.envoyerRequete(postDonneesEncodees, new JsonRestRequestCallback() { |
@Override |
public void surReponse(JSONValue responseValue) { |
if (responseValue.isString() != null) { |
Information info = new Information("ajout_personne"); |
String structureIdOuMessage = responseValue.isString().stringValue(); |
if (structureIdOuMessage.matches("^[0-9]+$")) { |
info.setDonnee(structureIdOuMessage); |
} else { |
info.setMessage(structureIdOuMessage); |
} |
vueARafraichir.rafraichir(info); |
} else { |
GWT.log(rb.getUrl()+"\n\tLa réponse n'est pas une chaine JSON.", null); |
} |
} |
}); |
} |
public void modifier(Personne personne) { |
String postDonneesEncodees = personne.obtenirChainePOST(); |
postDonneesEncodees += "&cmhl_ce_modifier_par=" + utilisateurId; |
GWT.log(postDonneesEncodees, null); |
String[] parametres = {personne.getId()}; |
final JsonRestRequestBuilder rb = UtilDAO.construireRequetePost(SERVICE_NOM, parametres); |
rb.envoyerRequete(postDonneesEncodees, new JsonRestRequestCallback() { |
@Override |
public void surReponse(JSONValue responseValue) { |
// Si la requête est un succès, reception d'une chaine |
if (responseValue.isString() != null) { |
Information info = new Information("modification_personne"); |
info.setMessage(responseValue.isString().stringValue()); |
vueARafraichir.rafraichir(info); |
} else { |
GWT.log(rb.getUrl()+"\n\tLa réponse n'est pas une chaine JSON.", null); |
} |
} |
}); |
} |
public void supprimer(String personnesId) { |
String[] parametres = {utilisateurId, personnesId}; |
final JsonRestRequestBuilder rb = UtilDAO.construireRequetePost(SERVICE_NOM, parametres); |
rb.envoyerRequeteSuppression(new JsonRestRequestCallback() { |
@Override |
public void surReponse(JSONValue responseValue) { |
if (responseValue.isString() != null) { |
Information info = new Information("suppression_personne"); |
info.setMessage(responseValue.isString().stringValue()); |
vueARafraichir.rafraichir(info); |
} else { |
GWT.log(rb.getUrl()+"\n\tLa réponse n'est pas une chaine JSON.", null); |
} |
} |
}); |
} |
} |
/trunk/src/org/tela_botanica/client/modeles/collection/CollectionBotanique.java |
---|
New file |
0,0 → 1,389 |
package org.tela_botanica.client.modeles.collection; |
import java.util.Iterator; |
import java.util.Set; |
import org.tela_botanica.client.modeles.aDonnee; |
import com.google.gwt.json.client.JSONObject; |
public class CollectionBotanique extends aDonnee { |
private static final long serialVersionUID = -6659148189825855729L; |
public static final String PREFIXE = "ccb"; |
public CollectionBotanique() { |
} |
public CollectionBotanique(JSONObject botanique) { |
// l'objet JSON est une table de hachage |
Set<String> im = botanique.keySet(); |
// Parcourt pour chaque clé |
for (Iterator<String> it = im.iterator(); it.hasNext();) { |
// Si elle est associée à une valeur, nous l'ajoutons |
String cle = it.next(); |
if (cle.startsWith(PREFIXE+"_")) { |
// Suppression de l'abréviation du champ. Inutile dans le contexte d'un objet |
String cleObjet = cle.replaceFirst("^"+PREFIXE+"_", ""); |
// Sinon, nous ajoutons la clé avec une valeur vide |
String valeur = ""; |
if (botanique.get(cle).isString() != null) { |
valeur = botanique.get(cle).isString().stringValue(); |
} |
this.set(cleObjet, valeur); |
} |
} |
} |
@Override |
protected String getPrefixe() { |
return PREFIXE; |
} |
// ID |
public String getId() { |
return renvoyerValeurCorrecte("id_collection"); |
} |
public void setId(String idCollection) { |
this.set("id_collection", idCollection); |
} |
// NBRE ECHANTILLON |
public String getNbreEchantillon() { |
return renvoyerValeurCorrecte("nbre_echantillon"); |
} |
public void setNbreEchantillon(String type) { |
this.set("nbre_echantillon", type); |
} |
// TYPE |
public String getType() { |
return renvoyerValeurCorrecte("ce_truk_type"); |
} |
public void setType(String type) { |
this.set("ce_truk_type", type); |
} |
// UNITÉ RANGEMENT |
public String getUniteRangement() { |
return renvoyerValeurCorrecte("truk_unite_rangement"); |
} |
public void setUniteRangement(String uniteRangement) { |
this.set("truk_unite_rangement", uniteRangement); |
} |
// UNITÉ RANGEMENT ÉTAT |
public String getUniteRangementEtat() { |
return renvoyerValeurCorrecte("ce_unite_rangement_etat"); |
} |
public void setUniteRangementEtat(String uniteRangementEtat) { |
this.set("ce_unite_rangement_etat", uniteRangementEtat); |
} |
// UNITÉ BASE |
public String getUniteBase() { |
return renvoyerValeurCorrecte("truk_unite_base"); |
} |
public void setUniteBase(String uniteBase) { |
this.set("truk_unite_base", uniteBase); |
} |
// CONSERVATION PAPIER TYPE |
public String getConservationPapierType() { |
return renvoyerValeurCorrecte("truk_conservation_papier_type"); |
} |
public void setConservationPapierType(String typePapierConservation) { |
this.set("truk_conservation_papier_type", typePapierConservation); |
} |
// CONSERVATION MÉTHODE |
public String getConservationMethode() { |
return renvoyerValeurCorrecte("truk_conservation_papier_type"); |
} |
public void setConservationMethode(String methodeConservation) { |
this.set("truk_conservation_papier_type", methodeConservation); |
} |
// ÉTIQUETTE FIXATION POURCENT |
public String getEtiquetteFixationPourcent() { |
return renvoyerValeurCorrecte("etiquette_fixation_pourcent"); |
} |
public void setEtiquetteFixationPourcent(String etiquetteFixationPourcent) { |
this.set("etiquette_fixation_pourcent", etiquetteFixationPourcent); |
} |
// SPÉCIMEN FIXATION POURCENT |
public String getSpecimenFixationPourcent() { |
return renvoyerValeurCorrecte("specimen_fixation_pourcent"); |
} |
public void setSpecimenFixationPourcent(String specimenFixationPourcent) { |
this.set("specimen_fixation_pourcent", specimenFixationPourcent); |
} |
// SPÉCIMEN FIXATION MÉTHODE |
public String getSpecimenFixationMethode() { |
return renvoyerValeurCorrecte("truk_specimen_fixation_methode"); |
} |
public void setSpecimenFixationMethode(String specimenFixationMethode) { |
this.set("truk_specimen_fixation_methode", specimenFixationMethode); |
} |
// ÉTIQUETTE FIXATION SUPPORT |
public String getEtiquetteFixationSupport() { |
return renvoyerValeurCorrecte("truk_etiquette_fixation_support"); |
} |
public void setEtiquetteFixationSupport(String etiquetteFixationSupport) { |
this.set("truk_etiquette_fixation_support", etiquetteFixationSupport); |
} |
// ÉTIQUETTE FIXATION SPECIMEN |
public String getEtiquetteFixationSpecimen() { |
return renvoyerValeurCorrecte("truk_etiquette_fixation_specimen"); |
} |
public void setEtiquetteFixationSpecimen(String etiquetteFixationSpecimen) { |
this.set("truk_etiquette_fixation_specimen", etiquetteFixationSpecimen); |
} |
// ÉTIQUETTE ÉCRITURE |
public String getEtiquetteEcriture() { |
return renvoyerValeurCorrecte("truk_etiquette_ecriture"); |
} |
public void setEtiquetteEcriture(String etiquetteEcriture) { |
this.set("truk_etiquette_ecriture", etiquetteEcriture); |
} |
// TRAITEMENT |
public String getTraitement() { |
return renvoyerValeurCorrecte("ce_traitement"); |
} |
public void setTraitement(String traitement) { |
this.set("ce_traitement", traitement); |
} |
// TRAITEMENT POISON |
public String getTraitementPoison() { |
return renvoyerValeurCorrecte("ce_traitement_poison"); |
} |
public void setTraitementPoison(String traitementPoison) { |
this.set("ce_traitement_poison", traitementPoison); |
} |
// TRAITEMENT INSECTE |
public String getTraitementInsecte() { |
return renvoyerValeurCorrecte("ce_traitement_insecte"); |
} |
public void setTraitementInsecte(String traitementInsecte) { |
this.set("ce_traitement_insecte", traitementInsecte); |
} |
// ÉTAT GÉNÉRAL |
public String getEtatGeneral() { |
return renvoyerValeurCorrecte("ce_etat_general"); |
} |
public void setEtatGeneral(String etatGeneral) { |
this.set("ce_etat_general", etatGeneral); |
} |
// DÉGRADATION SPECIMEN |
public String getDegradationSpecimen() { |
return renvoyerValeurCorrecte("truk_degradation_specimen"); |
} |
public void setDegradationSpecimen(String degradationSpecimen) { |
this.set("truk_degradation_specimen", degradationSpecimen); |
} |
// DÉGRADATION PRÉSENTATION |
public String getDegradationPresentation() { |
return renvoyerValeurCorrecte("truk_degradation_presentation"); |
} |
public void setDegradationPresentation(String degradationPresentation) { |
this.set("truk_degradation_presentation", degradationPresentation); |
} |
// DÉTERMINATION |
public String getDetermination() { |
return renvoyerValeurCorrecte("ce_determination"); |
} |
public void setDetermination(String determination) { |
this.set("ce_determination", determination); |
} |
// NATURE |
public String getNature() { |
return renvoyerValeurCorrecte("truk_nature"); |
} |
public void setNature(String nature) { |
this.set("truk_nature", nature); |
} |
// SPÉCIALITÉ |
public String getSpecialite() { |
return renvoyerValeurCorrecte("specialite"); |
} |
public void setSpecialite(String specialite) { |
this.set("specialite", specialite); |
} |
// RÉCOLTE DATE DÉBUT |
public String getRecolteDateDebut() { |
return renvoyerValeurCorrecte("recolte_date_debut"); |
} |
public void setRecolteDateDebut(String dateDebut) { |
this.set("recolte_date_debut", dateDebut); |
} |
// RÉCOLTE DATE DÉBUT TYPE |
public String getRecolteDateDebutType() { |
return renvoyerValeurCorrecte("ce_recolte_date_debut_type"); |
} |
public void setRecolteDateDebutType(String dateDebutType) { |
this.set("ce_recolte_date_debut_type", dateDebutType); |
} |
// RÉCOLTE DATE FIN |
public String getRecolteDateFin() { |
return renvoyerValeurCorrecte("recolte_date_fin"); |
} |
public void setRecolteDateFin(String dateFin) { |
this.set("recolte_date_fin", dateFin); |
} |
// RÉCOLTE DATE DÉBUT TYPE |
public String getRecolteDateFinType() { |
return renvoyerValeurCorrecte("ce_recolte_date_fin_type"); |
} |
public void setRecolteDateFinType(String dateFinType) { |
this.set("ce_recolte_date_fin_type", dateFinType); |
} |
// CLASSEMENT ANNOTATION |
public String getClassementAnnotation() { |
return renvoyerValeurCorrecte("annotation_classement"); |
} |
public void setClassementAnnotation(String annotation) { |
this.set("annotation_classement", annotation); |
} |
// CLASSEMENT ÉTAT |
public String getClassementEtat() { |
return renvoyerValeurCorrecte("annotation_classement"); |
} |
public void setClassementEtat(String classementEtat) { |
this.set("ce_classement_etat", classementEtat); |
} |
// ÉTIQUETTE RENSEIGNEMENT |
public String getEtiquetteRenseignement() { |
return renvoyerValeurCorrecte("truk_etiquette_renseignement"); |
} |
public void setEtiquetteRenseignement(String etiquetteRenseignement) { |
this.set("truk_etiquette_renseignement", etiquetteRenseignement); |
} |
// PRÉCISION LOCALITÉ |
public String getPrecisionLocalite() { |
return renvoyerValeurCorrecte("ce_precision_localite"); |
} |
public void setPrecisionLocalite(String precisionLocalite) { |
this.set("ce_precision_localite", precisionLocalite); |
} |
// PRÉCISION DATE |
public String getPrecisionDate() { |
return renvoyerValeurCorrecte("ce_precision_date"); |
} |
public void setPrecisionDate(String precisionDate) { |
this.set("ce_precision_date", precisionDate); |
} |
// ANNOTATIONS DIVERSES |
public String getAnnotationsDiverses() { |
return renvoyerValeurCorrecte("annotation_diverse"); |
} |
public void setAnnotationsDiverses(String annotation) { |
this.set("annotation_diverse", annotation); |
} |
// COLLECTION INTÉGRÉ |
public String getCollectionIntegre() { |
return renvoyerValeurCorrecte("ce_collection_integre"); |
} |
public void setCollectionIntegre(String collectionIntegre) { |
this.set("ce_collection_integre", collectionIntegre); |
} |
// COLLECTION INTÉGRÉ INFO |
public String getCollectionIntegreInfo() { |
return renvoyerValeurCorrecte("ce_collection_integre_info"); |
} |
public void setCollectionIntegreInfo(String collectionIntegreInfo) { |
this.set("ce_collection_integre_info", collectionIntegreInfo); |
} |
// INVENTAIRE |
public String getInventaire() { |
return renvoyerValeurCorrecte("ce_inventaire"); |
} |
public void setInventaire(String inventaire) { |
this.set("ce_inventaire", inventaire); |
} |
// INVENTAIRE AUTEUR |
public String getInventaireAuteur() { |
return renvoyerValeurCorrecte("ce_inventaire_auteur"); |
} |
public void setInventaireAuteur(String inventaireAuteur) { |
this.set("ce_inventaire_auteur", inventaireAuteur); |
} |
// INVENTAIRE FORME |
public String getInventaireForme() { |
return renvoyerValeurCorrecte("ce_inventaire_forme"); |
} |
public void setInventaireForme(String inventaireForme) { |
this.set("ce_inventaire_forme", inventaireForme); |
} |
// INVENTAIRE INFO |
public String getInventaireInfo() { |
return renvoyerValeurCorrecte("inventaire_info"); |
} |
public void setInventaireInfo(String inventaireInfo) { |
this.set("inventaire_info", inventaireInfo); |
} |
// INVENTAIRE DIGITAL |
public String getInventaireDigital() { |
return renvoyerValeurCorrecte("ce_truk_inventaire_digital"); |
} |
public void setInventaireDigital(String inventaireDigital) { |
this.set("ce_truk_inventaire_digital", inventaireDigital); |
} |
// INVENTAIRE DIGITAL POURCENT |
public String getInventaireDigitalPourcent() { |
return renvoyerValeurCorrecte("inventaire_digital_pourcent"); |
} |
public void setInventaireDigitalPourcent(String inventaireDigitalPourcent) { |
this.set("inventaire_digital_pourcent", inventaireDigitalPourcent); |
} |
// INVENTAIRE ETAT |
public String getInventaireEtat() { |
return renvoyerValeurCorrecte("ce_inventaire_etat"); |
} |
public void setInventaireEtat(String inventaireEtat) { |
this.set("ce_inventaire_etat", inventaireEtat); |
} |
// INVENTAIRE DONNÉES TYPES |
public String getInventaireDonneesTypes() { |
return renvoyerValeurCorrecte("ce_inventaire_donnee_type"); |
} |
public void setInventaireDonneesTypes(String inventaireDonneesTypes) { |
this.set("ce_inventaire_donnee_type", inventaireDonneesTypes); |
} |
} |
/trunk/src/org/tela_botanica/client/modeles/collection/CollectionAPersonne.java |
---|
New file |
0,0 → 1,104 |
package org.tela_botanica.client.modeles.collection; |
import org.tela_botanica.client.modeles.aDonnee; |
import org.tela_botanica.client.modeles.personne.Personne; |
import com.google.gwt.json.client.JSONObject; |
public class CollectionAPersonne extends aDonnee { |
private static final long serialVersionUID = 1L; |
public static final String PREFIXE = "ccap"; |
private Personne personneLiee = null; |
public CollectionAPersonne() { |
initialiser(new JSONObject()); |
} |
public CollectionAPersonne(JSONObject collectionAPersonneListe) { |
initialiser(collectionAPersonneListe); |
} |
@Override |
protected String getPrefixe() { |
return PREFIXE; |
} |
private void initialiser(JSONObject collectionAPersonneListe) { |
setPersonne(new Personne(collectionAPersonneListe)); |
initialiserModele(collectionAPersonneListe); |
initialiserChampsPourGrille(); |
} |
// PERSONNE |
public Personne getPersonne() { |
return personneLiee; |
} |
public void setPersonne(Personne personne) { |
personneLiee = personne; |
initialiserChampsPourGrille(); |
if (personne != null) { |
setIdPersonne(personne.getId()); |
} |
} |
private void initialiserChampsPourGrille() { |
set("_role_", getIdRole()); |
set("fmt_nom_complet", getPersonne().getNomComplet()); |
set("nom", getPersonne().getNom()); |
set("prenom", getPersonne().getPrenom()); |
set("naissance_date", getPersonne().getNaissanceDate()); |
set("naissance_lieu", getPersonne().getNaissanceLieu()); |
set("_deces_", getPersonne().getDeces()); |
set("deces_date", getPersonne().getDecesDate()); |
set("deces_lieu", getPersonne().getDecesLieu()); |
set("_etat_", ""); |
} |
// ID |
/** Génère un identifiant de CollectionAPersonne. |
* |
* C'est une concaténation des clés primaires de la table coel_collection_a_personne séparées par un tiret "-". |
* |
* @return identifiant unique d'une relation "collection à personne". |
*/ |
public String getId() { |
String idCollection = getIdCollection(); |
String idPersonne = getIdPersonne(); |
String idRole = getIdRole(); |
if (idCollection.equals("") && idPersonne.equals("") && idRole.equals("")) { |
return null; |
} else { |
return (idCollection+"-"+idPersonne+"-"+idRole); |
} |
} |
//+---------------------------------------------------------------------------------------------------------------+ |
// CHAMPS PROVENANT de la TABLE COEL_COLLECTION_A_PERSONNE |
// ID COLLECTION |
public String getIdCollection() { |
return renvoyerValeurCorrecte("id_collection"); |
} |
public void setIdCollection(String idCollection) { |
set("id_collection", idCollection); |
} |
// ID PERSONNE |
public String getIdPersonne() { |
return renvoyerValeurCorrecte("id_personne"); |
} |
public void setIdPersonne(String ip) { |
set("id_personne", ip); |
} |
// ID RôLE |
public String getIdRole() { |
return renvoyerValeurCorrecte("id_role"); |
} |
public void setIdRole(String ir) { |
set("id_role", ir); |
} |
} |
/trunk/src/org/tela_botanica/client/modeles/collection/CollectionAPublication.java |
---|
New file |
0,0 → 1,94 |
package org.tela_botanica.client.modeles.collection; |
import org.tela_botanica.client.modeles.aDonnee; |
import org.tela_botanica.client.modeles.publication.Publication; |
import com.google.gwt.json.client.JSONObject; |
public class CollectionAPublication extends aDonnee { |
private static final long serialVersionUID = 1L; |
public static final String PREFIXE = "ccapu"; |
private Publication publicationLiee = null; |
public CollectionAPublication() { |
initialiser(new JSONObject()); |
} |
public CollectionAPublication(JSONObject collectionAPublicationListe) { |
initialiser(collectionAPublicationListe); |
} |
@Override |
protected String getPrefixe() { |
return PREFIXE; |
} |
private void initialiser(JSONObject collectionAPublicationListe) { |
setPublication(new Publication(collectionAPublicationListe)); |
initialiserChampsPourGrille(); |
initialiserModele(collectionAPublicationListe); |
} |
// PUBLICATION |
public Publication getPublication() { |
return publicationLiee; |
} |
public void setPublication(Publication publication) { |
publicationLiee = publication; |
initialiserChampsPourGrille(); |
if (publication != null) { |
setIdPublication(publication.getId()); |
} |
} |
private void initialiserChampsPourGrille() { |
set("fmt_auteur", getPublication().getAuteur()); |
set("titre", getPublication().getTitre()); |
set("collection", getPublication().getCollection()); |
set("_editeur_", ""); |
set("_annee_", ""); |
set("indication_nvt", getPublication().getIndicationNvt()); |
set("fascicule", getPublication().getFascicule()); |
set("truk_pages", getPublication().getPages()); |
set("_etat_", ""); |
} |
// ID |
/** Génère un identifiant de CollectionAPersonne. |
* |
* C'est une concaténation des clés primaires de la table coel_collection_a_personne séparées par un tiret "-". |
* |
* @return identifiant unique d'une relation "collection à personne". |
*/ |
public String getId() { |
String idCollection = getIdCollection(); |
String idPublication = getIdPublication(); |
if (idCollection.equals("") && idPublication.equals("")) { |
return null; |
} else { |
return (idCollection+"-"+idPublication); |
} |
} |
//+---------------------------------------------------------------------------------------------------------------+ |
// CHAMPS PROVENANT de la TABLE COEL_COLLECTION_A_PERSONNE |
// ID COLLECTION |
public String getIdCollection() { |
return renvoyerValeurCorrecte("id_collection"); |
} |
public void setIdCollection(String idCollection) { |
set("id_collection", idCollection); |
} |
// ID PUBLICATION |
public String getIdPublication() { |
return renvoyerValeurCorrecte("id_publication"); |
} |
public void setIdPublication(String ip) { |
set("id_publication", ip); |
} |
} |
/trunk/src/org/tela_botanica/client/modeles/collection/CollectionAPersonneListe.java |
---|
New file |
0,0 → 1,41 |
package org.tela_botanica.client.modeles.collection; |
import org.tela_botanica.client.modeles.aDonneeListe; |
import com.google.gwt.json.client.JSONArray; |
import com.google.gwt.json.client.JSONObject; |
/** |
* Table de hachage composée d'informations sur les Structures et les Personnes, renvoyé par un objet de type DAO |
* La clé est une concaténation des clés primaires de la table coel_structure_a_personne séparées par un tiret "-". |
* |
* @author david delon |
* |
*/ |
public class CollectionAPersonneListe extends aDonneeListe<CollectionAPersonne> { |
private static final long serialVersionUID = 1L; |
public CollectionAPersonneListe() { |
super(); |
} |
public CollectionAPersonneListe(int taille) { |
super(taille); |
} |
public CollectionAPersonneListe(JSONArray structures) { |
super(structures.size()) ; |
final int taillemax = structures.size(); |
for (int i = 0; i < taillemax; i++) { |
JSONObject collectionAPersonneCourante = structures.get(i).isObject() ; |
if (collectionAPersonneCourante != null) { |
CollectionAPersonne collectionAPersonne = new CollectionAPersonne(collectionAPersonneCourante); |
this.put(collectionAPersonne.getId(), collectionAPersonne); |
} |
} |
} |
} |
/trunk/src/org/tela_botanica/client/modeles/collection/CollectionAPublicationListe.java |
---|
New file |
0,0 → 1,41 |
package org.tela_botanica.client.modeles.collection; |
import org.tela_botanica.client.modeles.aDonneeListe; |
import com.google.gwt.json.client.JSONArray; |
import com.google.gwt.json.client.JSONObject; |
/** |
* Table de hachage composée d'informations sur les Structures et les Personnes, renvoyé par un objet de type DAO |
* La clé est une concaténation des clés primaires de la table coel_structure_a_personne séparées par un tiret "-". |
* |
* @author david delon |
* |
*/ |
public class CollectionAPublicationListe extends aDonneeListe<CollectionAPublication> { |
private static final long serialVersionUID = 1L; |
public CollectionAPublicationListe() { |
super(); |
} |
public CollectionAPublicationListe(int taille) { |
super(taille); |
} |
public CollectionAPublicationListe(JSONArray publications) { |
super(publications.size()) ; |
final int taillemax = publications.size(); |
for (int i = 0; i < taillemax; i++) { |
JSONObject collectionAPublicationCourante = publications.get(i).isObject() ; |
if (collectionAPublicationCourante != null) { |
CollectionAPublication collectionAPublication = new CollectionAPublication(collectionAPublicationCourante); |
this.put(collectionAPublication.getId(), collectionAPublication); |
} |
} |
} |
} |
/trunk/src/org/tela_botanica/client/modeles/collection/CollectionAPersonneAsyncDao.java |
---|
New file |
0,0 → 1,124 |
package org.tela_botanica.client.modeles.collection; |
import org.tela_botanica.client.Mediateur; |
import org.tela_botanica.client.RegistreId; |
import org.tela_botanica.client.http.JsonRestRequestBuilder; |
import org.tela_botanica.client.http.JsonRestRequestCallback; |
import org.tela_botanica.client.interfaces.Rafraichissable; |
import org.tela_botanica.client.modeles.Information; |
import org.tela_botanica.client.util.Debug; |
import org.tela_botanica.client.util.UtilDAO; |
import com.extjs.gxt.ui.client.Registry; |
import com.google.gwt.core.client.GWT; |
import com.google.gwt.http.client.URL; |
import com.google.gwt.json.client.JSONArray; |
import com.google.gwt.json.client.JSONValue; |
public class CollectionAPersonneAsyncDao { |
private static final String SERVICE_NOM = "CoelCollectionAPersonne"; |
private String utilisateurId = null; |
private Rafraichissable vueARafraichir = null; |
public CollectionAPersonneAsyncDao(Rafraichissable vueARafraichirCourrante) { |
vueARafraichir = vueARafraichirCourrante; |
utilisateurId = ((Mediateur) Registry.get(RegistreId.MEDIATEUR)).getUtilisateurId(); |
} |
public void selectionner(final String collectionId, final String roleId) { |
String[] parametres = {collectionId, roleId}; |
final JsonRestRequestBuilder rb = UtilDAO.construireRequete(SERVICE_NOM, parametres); |
Debug.log(rb.getUrl()); |
rb.envoyerRequete(null, new JsonRestRequestCallback() { |
@Override |
public void surReponse(JSONValue responseValue) { |
Information info = new Information("liste_collection_a_personne"); |
if (responseValue != null) { |
// Si la requête est un succès, reception d'un tableau |
if (responseValue.isArray() != null) { |
final JSONArray reponse = responseValue.isArray(); |
// Transformation du tableau JSON réponse en ListeInstitution |
CollectionAPersonneListe personnes = new CollectionAPersonneListe(reponse); |
info.setDonnee(0, personnes); |
// et on met à jour le demandeur des données |
vueARafraichir.rafraichir(info); |
} else { |
GWT.log(rb.getUrl()+"\n\tLa réponse n'est pas un talbeau JSON et vaut : "+responseValue.toString(), null); |
} |
} else { |
if (collectionId == null) { |
// Dans le cas, où nous demandons toutes les relations Collection à Personne et qu'il n'y en a pas, nous retournons un message d'information |
info.setMessage("Aucune relations entre la collection et les personnes"); |
vueARafraichir.rafraichir(info); |
} |
} |
} |
}); |
} |
public void ajouter(String collectionId, CollectionAPersonne personnes) { |
String postDonneesEncodees = construirePost(collectionId, personnes); |
final JsonRestRequestBuilder rb = UtilDAO.construireRequetePost(SERVICE_NOM); |
rb.envoyerRequete(postDonneesEncodees, new JsonRestRequestCallback() { |
@Override |
public void surReponse(JSONValue responseValue) { |
// Si la requête est un succès, reception d'une chaine |
if (responseValue.isString() != null) { |
Information info = new Information("ajout_collection_a_personne"); |
info.setMessage(responseValue.isString().stringValue()); |
vueARafraichir.rafraichir(info); |
} else { |
GWT.log(rb.getUrl()+"\n\tLa réponse n'est pas une chaine JSON.", null); |
} |
} |
}); |
} |
public void modifier(CollectionAPersonne personnes) { |
String[] parametres = {personnes.getIdCollection(), personnes.getIdPersonne(), personnes.getIdRole()}; |
final JsonRestRequestBuilder rb = UtilDAO.construireRequetePost(SERVICE_NOM, parametres); |
String postDonneesEncodees = construirePost(personnes.getIdCollection(), personnes); |
Debug.log(rb.getUrl()); |
rb.envoyerRequete(postDonneesEncodees, new JsonRestRequestCallback() { |
@Override |
public void surReponse(JSONValue responseValue) { |
Information info = new Information("modif_collection_a_personne"); |
// Si la requête est un succès, reception d'une chaine |
if (responseValue.isString() != null) { |
info.setMessage(responseValue.isString().stringValue()); |
vueARafraichir.rafraichir(info); |
} else { |
GWT.log(rb.getUrl()+"\n\tLa réponse n'est pas une chaine JSON.", null); |
} |
} |
}); |
} |
public void supprimer(String idCollectionAPersonne) { |
String[] parametres = {utilisateurId, idCollectionAPersonne}; |
final JsonRestRequestBuilder rb = UtilDAO.construireRequetePost(SERVICE_NOM, parametres); |
rb.envoyerRequeteSuppression(new JsonRestRequestCallback() { |
@Override |
public void surReponse(JSONValue responseValue) { |
if (responseValue.isString() != null) { |
Information info = new Information("suppression_collection_a_personne"); |
info.setMessage(responseValue.isString().stringValue()); |
vueARafraichir.rafraichir(info); |
} else { |
GWT.log(rb.getUrl()+"\n\tLa réponse n'est pas une chaine JSON.", null); |
} |
} |
}); |
} |
private String construirePost(String collectionId, CollectionAPersonne personne) { |
String postDonnees = "cmhl_ce_modifier_par=" + URL.encodeComponent(utilisateurId) + |
"&ccap_id_collection=" + URL.encodeComponent(collectionId) + |
"&ccap_id_personne=" + URL.encodeComponent(personne.getIdPersonne()) + |
"&ccap_id_role=" + URL.encodeComponent(personne.getIdRole()); |
return postDonnees; |
} |
} |
/trunk/src/org/tela_botanica/client/modeles/collection/CollectionAPublicationAsyncDao.java |
---|
New file |
0,0 → 1,123 |
package org.tela_botanica.client.modeles.collection; |
import org.tela_botanica.client.Mediateur; |
import org.tela_botanica.client.RegistreId; |
import org.tela_botanica.client.http.JsonRestRequestBuilder; |
import org.tela_botanica.client.http.JsonRestRequestCallback; |
import org.tela_botanica.client.interfaces.Rafraichissable; |
import org.tela_botanica.client.modeles.Information; |
import org.tela_botanica.client.util.Debug; |
import org.tela_botanica.client.util.UtilDAO; |
import com.extjs.gxt.ui.client.Registry; |
import com.google.gwt.core.client.GWT; |
import com.google.gwt.http.client.URL; |
import com.google.gwt.json.client.JSONArray; |
import com.google.gwt.json.client.JSONValue; |
public class CollectionAPublicationAsyncDao { |
private static final String SERVICE_NOM = "CoelCollectionAPublication"; |
private String utilisateurId = null; |
private Rafraichissable vueARafraichir = null; |
public CollectionAPublicationAsyncDao(Rafraichissable vueARafraichirCourrante) { |
vueARafraichir = vueARafraichirCourrante; |
utilisateurId = ((Mediateur) Registry.get(RegistreId.MEDIATEUR)).getUtilisateurId(); |
} |
public void selectionner(final String collectionId) { |
String[] parametres = {collectionId}; |
final JsonRestRequestBuilder rb = UtilDAO.construireRequete(SERVICE_NOM, parametres); |
Debug.log(rb.getUrl()); |
rb.envoyerRequete(null, new JsonRestRequestCallback() { |
@Override |
public void surReponse(JSONValue responseValue) { |
Information info = new Information("liste_collection_a_publication"); |
if (responseValue != null) { |
// Si la requête est un succès, reception d'un tableau |
if (responseValue.isArray() != null) { |
final JSONArray reponse = responseValue.isArray(); |
// Transformation du tableau JSON réponse en ListeInstitution |
CollectionAPublicationListe publications = new CollectionAPublicationListe(reponse); |
info.setDonnee(0, publications); |
// et on met à jour le demandeur des données |
vueARafraichir.rafraichir(info); |
} else { |
GWT.log(rb.getUrl()+"\n\tLa réponse n'est pas un talbeau JSON et vaut : "+responseValue.toString(), null); |
} |
} else { |
if (collectionId == null) { |
// Dans le cas, où nous demandons toutes les relations Collection à Publication et qu'il n'y en a pas, nous retournons un message d'information |
info.setMessage("Aucune relations entre la collection et les publications"); |
vueARafraichir.rafraichir(info); |
} |
} |
} |
}); |
} |
public void ajouter(String collectionId, CollectionAPublication publications) { |
String postDonneesEncodees = construirePost(collectionId, publications); |
final JsonRestRequestBuilder rb = UtilDAO.construireRequetePost(SERVICE_NOM); |
rb.envoyerRequete(postDonneesEncodees, new JsonRestRequestCallback() { |
@Override |
public void surReponse(JSONValue responseValue) { |
// Si la requête est un succès, reception d'une chaine |
if (responseValue.isString() != null) { |
Information info = new Information("ajout_collection_a_publication"); |
info.setMessage(responseValue.isString().stringValue()); |
vueARafraichir.rafraichir(info); |
} else { |
GWT.log(rb.getUrl()+"\n\tLa réponse n'est pas une chaine JSON.", null); |
} |
} |
}); |
} |
public void modifier(CollectionAPublication publications) { |
String[] parametres = {publications.getIdCollection(), publications.getIdPublication()}; |
final JsonRestRequestBuilder rb = UtilDAO.construireRequetePost(SERVICE_NOM, parametres); |
String postDonneesEncodees = construirePost(publications.getIdCollection(), publications); |
rb.envoyerRequete(postDonneesEncodees, new JsonRestRequestCallback() { |
@Override |
public void surReponse(JSONValue responseValue) { |
Information info = new Information("modif_collection_a_publication"); |
// Si la requête est un succès, reception d'une chaine |
if (responseValue.isString() != null) { |
info.setMessage(responseValue.isString().stringValue()); |
vueARafraichir.rafraichir(info); |
} else { |
GWT.log(rb.getUrl()+"\n\tLa réponse n'est pas une chaine JSON.", null); |
} |
} |
}); |
} |
public void supprimer(String idCollectionAPublication) { |
String[] parametres = {utilisateurId, idCollectionAPublication}; |
final JsonRestRequestBuilder rb = UtilDAO.construireRequetePost(SERVICE_NOM, parametres); |
rb.envoyerRequeteSuppression(new JsonRestRequestCallback() { |
@Override |
public void surReponse(JSONValue responseValue) { |
if (responseValue.isString() != null) { |
Information info = new Information("suppression_collection_a_publication"); |
info.setMessage(responseValue.isString().stringValue()); |
vueARafraichir.rafraichir(info); |
} else { |
GWT.log(rb.getUrl()+"\n\tLa réponse n'est pas une chaine JSON.", null); |
} |
} |
}); |
} |
private String construirePost(String collectionId, CollectionAPublication publication) { |
String postDonnees = "cmhl_ce_modifier_par=" + URL.encodeComponent(utilisateurId) + |
"&ccapu_id_collection=" + URL.encodeComponent(collectionId) + |
"&ccapu_id_publication=" + URL.encodeComponent(publication.getIdPublication()); |
return postDonnees; |
} |
} |
/trunk/src/org/tela_botanica/client/modeles/collection/Collection.java |
---|
New file |
0,0 → 1,398 |
package org.tela_botanica.client.modeles.collection; |
import org.tela_botanica.client.modeles.aDonnee; |
import com.google.gwt.json.client.JSONObject; |
public class Collection extends aDonnee { |
private static final long serialVersionUID = 3295310312337145716L; |
public static final String PREFIXE = "cc"; |
private CollectionBotanique botanique = null; |
private CollectionAPersonneListe personnesLiees = null; |
private CollectionAPublicationListe publicationsLiees = null; |
public Collection() { |
} |
public Collection(JSONObject collection) { |
initialiserModele(collection); |
} |
@Override |
protected String getPrefixe() { |
return PREFIXE; |
} |
// BOTANIQUE |
public CollectionBotanique getBotanique() { |
return botanique; |
} |
public void setBotanique(CollectionBotanique botaniqueAStocker) { |
botanique = botaniqueAStocker; |
} |
// PERSONNES LIÉES |
public CollectionAPersonneListe getPersonnesLiees() { |
return personnesLiees; |
} |
public void setPersonnesLiees(CollectionAPersonneListe relationsCollectionAPersonne) { |
personnesLiees = relationsCollectionAPersonne; |
} |
// PUBLICATIONS LIÉES |
public CollectionAPublicationListe getPublicationsLiees() { |
return publicationsLiees; |
} |
public void setPublicationsLiees(CollectionAPublicationListe relationsCollectionAPublication) { |
publicationsLiees = relationsCollectionAPublication; |
} |
// ID |
public String getId() { |
return renvoyerValeurCorrecte("id_collection"); |
} |
public void setId(String idCollection) { |
this.set("id_collection", idCollection); |
} |
// CE PROJET |
public String getIdProjet() { |
return renvoyerValeurCorrecte("ce_projet"); |
} |
public void setIdProjet(String idProjet) { |
this.set("ce_projet", idProjet); |
} |
// COLLECTION MERE ID |
public String getCollectionMereId() { |
return renvoyerValeurCorrecte("ce_mere"); |
} |
public void setCollectionMereId(String collectionMereId) { |
this.set("ce_mere", collectionMereId); |
} |
// COLLECTION MERE NOM |
public String getCollectionMereNom() { |
return renvoyerValeurCorrecte("collection_mere_nom"); |
} |
public void setCollectionMereNom(String collectionMereNom) { |
this.set("collection_mere_nom", collectionMereNom); |
} |
// CE STRUCTURE |
public String getIdStructure() { |
return renvoyerValeurCorrecte("ce_structure"); |
} |
public void setIdStructure(String idStructure) { |
this.set("ce_structure", idStructure); |
} |
// GUID |
public String getGuid() { |
return renvoyerValeurCorrecte("guid"); |
} |
public void setGuid(String guid) { |
this.set("guid", guid); |
} |
// IDENTIFIANT ALTERNATIF |
public String getIdAlternatif() { |
return renvoyerValeurCorrecte("truk_identifiant_alternatif"); |
} |
public void setIdAlternatif(String idAlter) { |
this.set("truk_identifiant_alternatif", idAlter); |
} |
// CODE |
public String getCode() { |
return renvoyerValeurCorrecte("truk_code"); |
} |
public void setCode(String code) { |
this.set("truk_code", code); |
} |
// NOM |
public String getNom() { |
return renvoyerValeurCorrecte("nom"); |
} |
public void setNom(String nom) { |
this.set("nom", nom); |
} |
// NOM ALTERNATIF |
public String getNomAlternatif() { |
return renvoyerValeurCorrecte("truk_nom_alternatif"); |
} |
public void setNomAlternatif(String nomAlter) { |
this.set("truk_nom_alternatif", nomAlter); |
} |
// DESCRIPTION |
public String getDescription() { |
return renvoyerValeurCorrecte("description"); |
} |
public void setDescription(String description) { |
this.set("description", description); |
} |
// DESCRIPTION SPECIALISTE |
public String getDescriptionSpecialiste() { |
return renvoyerValeurCorrecte("description_specialiste"); |
} |
public void setDescriptionSpecialiste(String descriptionSepcialiste) { |
this.set("description_specialiste", descriptionSepcialiste); |
} |
// HISTORIQUE |
public String getHistorique() { |
return renvoyerValeurCorrecte("historique"); |
} |
public void setHistorique(String historique) { |
this.set("historique", historique); |
} |
// URL |
public String getUrls() { |
return renvoyerValeurCorrecte("truk_url"); |
} |
public void setUrls(String urls) { |
this.set("truk_url", urls); |
} |
// GROUPEMENT PRINCIPE |
public String getGroupementPrincipe() { |
return renvoyerValeurCorrecte("truk_groupement_principe"); |
} |
public void setGroupementPrincipe(String groupementPrincipe) { |
this.set("truk_groupement_principe", groupementPrincipe); |
} |
// GROUPEMENT BUT |
public String getGroupementBut() { |
return renvoyerValeurCorrecte("truk_groupement_but"); |
} |
public void setGroupementBut(String groupementBut) { |
this.set("truk_groupement_but", groupementBut); |
} |
// TYPE NCD |
public String getTypeNcd() { |
return renvoyerValeurCorrecte("ce_type"); |
} |
public void setTypeNcd(String typeNcd) { |
this.set("ce_type", typeNcd); |
} |
// TYPE DEPOT |
public String getTypeDepot() { |
return renvoyerValeurCorrecte("ce_type_depot"); |
} |
public void setTypeDepot(String typeDepot) { |
this.set("ce_type_depot", typeDepot); |
} |
// COTE |
public String getCote() { |
return renvoyerValeurCorrecte("cote"); |
} |
public void setCote(String cote) { |
this.set("cote", cote); |
} |
// DIMENSSION |
public String getDimenssion() { |
return renvoyerValeurCorrecte("dimenssion"); |
} |
public void setDimenssion(String dimenssion) { |
this.set("dimenssion", dimenssion); |
} |
// CONDITION ACCÉS |
public String getConditionAcces() { |
return renvoyerValeurCorrecte("condition_acces"); |
} |
public void setConditionAcces(String conditionAcces) { |
this.set("condition_acces", conditionAcces); |
} |
// CONDITION USAGE |
public String getConditionUsage() { |
return renvoyerValeurCorrecte("condition_usage"); |
} |
public void setConditionUsage(String conditionUsage) { |
this.set("condition_usage", conditionUsage); |
} |
// COUVERTURE VERNACULAIRE |
public String getCouvertureVernaculaire() { |
return renvoyerValeurCorrecte("truk_couverture_vernaculaire"); |
} |
public void setCouvertureVernaculaire(String couvertureVernaculaire) { |
this.set("truk_couverture_vernaculaire", couvertureVernaculaire); |
} |
// COUVERTURE TAXONOMIQUE |
public String getCouvertureTaxonomique() { |
return renvoyerValeurCorrecte("truk_couverture_taxonomique"); |
} |
public void setCouvertureTaxonomique(String couvertureTaxonomique) { |
this.set("truk_couverture_taxonomique", couvertureTaxonomique); |
} |
// COUVERTURE REGNE |
public String getCouvertureRegne() { |
return renvoyerValeurCorrecte("truk_couverture_regne"); |
} |
public void setCouvertureRegne(String couvertureRegne) { |
this.set("truk_couverture_regne", couvertureRegne); |
} |
// COUVERTURE TEMPORELLE |
public String getCouvertureTemporelle() { |
return renvoyerValeurCorrecte("truk_couverture_temporelle"); |
} |
public void setCouvertureTemporelle(String couvertureTemporelle) { |
this.set("truk_couverture_temporelle", couvertureTemporelle); |
} |
// COUVERTURE VIE |
public String getCouvertureVie() { |
return renvoyerValeurCorrecte("truk_couverture_vie"); |
} |
public void setCouvertureVie(String couvertureVie) { |
this.set("truk_couverture_Vie", couvertureVie); |
} |
// CONSERVATION STATUT |
public String getConservationStatut() { |
return renvoyerValeurCorrecte("truk_conservation_statut"); |
} |
public void setConservationStatut(String conservationStatut) { |
this.set("truk_conservation_statut", conservationStatut); |
} |
// PRESERVATION |
public String getPreservation() { |
return renvoyerValeurCorrecte("truk_preservation"); |
} |
public void setPreservation(String preservation) { |
this.set("truk_preservation", preservation); |
} |
// DEVELOPPEMENT |
public String getDeveloppement() { |
return renvoyerValeurCorrecte("ce_developpement"); |
} |
public void setDeveloppement(String developpement) { |
this.set("ce_developpement", developpement); |
} |
// PERIODE CONSTITUTION |
public String getPeriodeConstitution() { |
return renvoyerValeurCorrecte("truk_periode_constitution"); |
} |
public void setPeriodeConstitution(String periodeConstitution) { |
this.set("truk_periode_constitution", periodeConstitution); |
} |
// COUVERTURE LIEU |
public String getCouvertureLieu() { |
return renvoyerValeurCorrecte("truk_couverture_lieu"); |
} |
public void setCouvertureLieu(String couvertureLieu) { |
this.set("truk_couverture_lieu", couvertureLieu); |
} |
// COORDONNÉE |
public String getCoordonnee() { |
return renvoyerValeurCorrecte("truk_coordonnee"); |
} |
public void setCoordonnee(String coordonnee) { |
this.set("truk_coordonnee", coordonnee); |
} |
// SPECIMEN TYPE |
public String getSpecimenType() { |
return renvoyerValeurCorrecte("ce_specimen_type"); |
} |
public void setSpecimenType(String specimenType) { |
this.set("ce_specimen_type", specimenType); |
} |
// SPECIMEN TYPE NOMBRE |
public String getSpecimenTypeNbre() { |
return renvoyerValeurCorrecte("specimen_type_nbre"); |
} |
public void setSpecimenTypeNbre(String specimenTypeNbre) { |
this.set("specimen_type_nbre", specimenTypeNbre); |
} |
// SPECIMEN TYPE NOMBRE PRECISION |
public String getSpecimenTypeNbrePrecision() { |
return renvoyerValeurCorrecte("ce_specimen_type_nbre_precision"); |
} |
public void setSpecimenTypeNbrePrecision(String specimenTypeNbrePrecision) { |
this.set("ce_specimen_type_nbre_precision", specimenTypeNbrePrecision); |
} |
// SPECIMEN TYPE CLASSEMENT |
public String getSpecimenTypeClassement() { |
return renvoyerValeurCorrecte("ce_specimen_type_classement"); |
} |
public void setSpecimenTypeClassement(String specimenTypeClassement) { |
this.set("ce_specimen_type_classement", specimenTypeClassement); |
} |
// EXPEDITION NOM |
public String getExpeditionNom() { |
return renvoyerValeurCorrecte("expedition_nom"); |
} |
public void setExpeditionNom(String expeditionNom) { |
this.set("expedition_nom", expeditionNom); |
} |
// DIGITAL MEDIUM |
public String getDigitalMedium() { |
return renvoyerValeurCorrecte("truk_digital_medium"); |
} |
public void setDigitalMedium(String digitalMedium) { |
this.set("truk_digital_medium", digitalMedium); |
} |
// DIGITAL FORMAT |
public String getDigitalFormat() { |
return renvoyerValeurCorrecte("truk_digital_format"); |
} |
public void setDigitalFormat(String digitalFormat) { |
this.set("truk_digital_format", digitalFormat); |
} |
// PUBLIC |
public boolean etrePublic() { |
String publicMark = getPublic(); |
boolean estPublic = true; |
if (publicMark.equals("0")) { |
estPublic = false; |
} |
return estPublic; |
} |
public String getPublic() { |
return renvoyerValeurCorrecte("mark_public"); |
} |
public void setBoolPublic(String publicBool) { |
this.set("mark_public", publicBool); |
} |
// +--------------------------------------------------------------------------------------------------------------+ |
// STRUCTURE NOM |
public String getStructureNom() { |
return renvoyerValeurCorrecte("structure_nom"); |
} |
// STRUCTURE VILLE |
public String getStructureVille() { |
return renvoyerValeurCorrecte("structure_ville"); |
} |
} |
/trunk/src/org/tela_botanica/client/modeles/collection/CollectionListe.java |
---|
New file |
0,0 → 1,48 |
package org.tela_botanica.client.modeles.collection; |
import org.tela_botanica.client.modeles.aDonneeListe; |
import com.google.gwt.json.client.JSONArray; |
import com.google.gwt.json.client.JSONObject; |
/** |
* Table de hachage composée d'informations sur les Structures, renvoyé par un objet de type DAO |
* La clé est le nom de l'entite + le nom de l'entite parente |
* |
* @author david delon |
* |
*/ |
public class CollectionListe extends aDonneeListe<Collection> { |
private static final long serialVersionUID = 8024454926649039456L; |
public CollectionListe() { |
super(); |
} |
public CollectionListe(int taille) { |
super(taille); |
} |
/** |
* Constructeur pour une liste d'institutions |
* @param dates |
*/ |
public CollectionListe(JSONArray structures) { |
super(structures.size()) ; |
final int taillemax = structures.size(); |
for (int i = 0; i < taillemax; i++) { |
JSONObject collectionCourante = structures.get(i).isObject() ; |
if (collectionCourante != null) { |
Collection collection = new Collection(collectionCourante); |
CollectionBotanique botanique = new CollectionBotanique(collectionCourante); |
collection.setBotanique(botanique); |
this.put(collection.getId(), collection); |
} |
} |
} |
} |
/trunk/src/org/tela_botanica/client/modeles/collection/CollectionAsyncDao.java |
---|
New file |
0,0 → 1,205 |
package org.tela_botanica.client.modeles.collection; |
import org.tela_botanica.client.Mediateur; |
import org.tela_botanica.client.RegistreId; |
import org.tela_botanica.client.http.JsonRestRequestBuilder; |
import org.tela_botanica.client.http.JsonRestRequestCallback; |
import org.tela_botanica.client.interfaces.Rafraichissable; |
import org.tela_botanica.client.modeles.Information; |
import org.tela_botanica.client.modeles.projet.ProjetListe; |
import org.tela_botanica.client.util.UtilDAO; |
import com.extjs.gxt.ui.client.Registry; |
import com.google.gwt.core.client.GWT; |
import com.google.gwt.http.client.URL; |
import com.google.gwt.json.client.JSONArray; |
import com.google.gwt.json.client.JSONObject; |
import com.google.gwt.json.client.JSONValue; |
public class CollectionAsyncDao { |
public static final String SERVICE_NOM = "CoelCollection"; |
private String utilisateurId = null; |
private Rafraichissable vueARafraichir = null; |
public CollectionAsyncDao(Rafraichissable vueARafraichirCourrante) { |
vueARafraichir = vueARafraichirCourrante; |
utilisateurId = ((Mediateur) Registry.get(RegistreId.MEDIATEUR)).getUtilisateurId(); |
} |
public void selectionner(final String projetId, final String collectionId) { |
// Ajout des paramètres et données à selectionner dans l'URL |
String[] parametres = {projetId, collectionId}; |
final JsonRestRequestBuilder rb = UtilDAO.construireRequete(SERVICE_NOM, parametres); |
rb.envoyerRequete(null, new JsonRestRequestCallback() { |
@Override |
public void surReponse(JSONValue responseValue) { |
if (responseValue != null) { |
// Si la requête est un succès, reception d'un objet ou d'un tableau |
if (responseValue.isObject() != null) { |
final JSONObject reponse = responseValue.isObject(); |
Collection collection = new Collection(reponse); |
CollectionBotanique collectionBotanique = new CollectionBotanique(reponse); |
Information info = new Information("selection_collection"); |
info.setDonnee(0, collection); |
info.setDonnee(1, collectionBotanique); |
vueARafraichir.rafraichir(info); |
} else if (responseValue.isArray() != null) { |
final JSONArray reponse = responseValue.isArray(); |
CollectionListe collections = new CollectionListe(reponse); |
vueARafraichir.rafraichir(collections); |
} else { |
GWT.log(rb.getUrl()+"\n\tLa réponse n'est pas un objet ou un talbeau JSON et vaut : "+responseValue.toString(), null); |
} |
} else { |
// Dans le cas, où nous demandons toutes les institutions et qu'il n'y en a pas, nous retournons un objet vide |
if (collectionId == null) { |
CollectionListe collections = new CollectionListe(0); |
vueARafraichir.rafraichir(collections); |
} |
} |
} |
}); |
} |
public void ajouter(Collection collection) { |
String postDonneesEncodees = construirePost(null, collection); |
final JsonRestRequestBuilder rb = UtilDAO.construireRequetePost(SERVICE_NOM); |
rb.envoyerRequete(postDonneesEncodees, new JsonRestRequestCallback() { |
@Override |
public void surReponse(JSONValue responseValue) { |
if (responseValue.isString() != null) { |
Information info = new Information("ajout_collection"); |
String structureIdOuMessage = responseValue.isString().stringValue(); |
if (structureIdOuMessage.matches("^[0-9]+$")) { |
info.setDonnee(structureIdOuMessage); |
} else { |
info.setMessage(structureIdOuMessage); |
} |
vueARafraichir.rafraichir(info); |
} else { |
GWT.log(rb.getUrl()+"\n\tLa réponse n'est pas une chaine JSON.", null); |
} |
} |
}); |
} |
public void modifier(Collection collection) { |
String postDonneesEncodees = construirePost(collection.getId(), collection); |
String[] parametres = {collection.getId()}; |
final JsonRestRequestBuilder rb = UtilDAO.construireRequetePost(SERVICE_NOM, parametres); |
rb.envoyerRequete(postDonneesEncodees, new JsonRestRequestCallback() { |
@Override |
public void surReponse(JSONValue responseValue) { |
// Si la requête est un succès, reception d'une chaine |
if (responseValue.isString() != null) { |
Information info = new Information("modif_collection"); |
info.setMessage(responseValue.isString().stringValue()); |
vueARafraichir.rafraichir(info); |
} else { |
GWT.log(rb.getUrl()+"\n\tLa réponse n'est pas une chaine JSON.", null); |
} |
} |
}); |
} |
public void supprimer(String collectionsId) { |
String[] parametres = {utilisateurId, collectionsId}; |
final JsonRestRequestBuilder rb = UtilDAO.construireRequetePost(SERVICE_NOM, parametres); |
rb.envoyerRequeteSuppression(new JsonRestRequestCallback() { |
@Override |
public void surReponse(JSONValue responseValue) { |
if (responseValue.isString() != null) { |
Information info = new Information("suppression_collection"); |
info.setMessage(responseValue.isString().stringValue()); |
vueARafraichir.rafraichir(info); |
} else { |
GWT.log(rb.getUrl()+"\n\tLa réponse n'est pas une chaine JSON.", null); |
} |
} |
}); |
} |
private String construirePost(String collectionId, Collection collection) { |
String postDonnees = "cmhl_ce_modifier_par=" + URL.encodeComponent(utilisateurId); |
if (collection != null) { |
if (collectionId != null) { |
postDonnees += "&cc_id_collection=" + URL.encodeComponent(collectionId); |
} |
postDonnees += "&cpr_abreviation=" + URL.encodeComponent(((ProjetListe) Registry.get(RegistreId.PROJETS)).get(collection.getIdProjet()).getAbreviation()); |
postDonnees += "&cc_ce_projet=" + URL.encodeComponent(collection.getIdProjet()) + |
"&cc_ce_mere=" + URL.encodeComponent(collection.getCollectionMereId()) + |
"&cc_ce_structure=" + URL.encodeComponent(collection.getIdStructure()) + |
"&cc_truk_identifiant_alternatif=" + URL.encodeComponent(collection.getIdAlternatif()) + |
"&cc_truk_code=" + URL.encodeComponent(collection.getCode()) + |
"&cc_nom=" + URL.encodeComponent(collection.getNom()) + |
"&cc_truk_nom_alternatif=" + URL.encodeComponent(collection.getNomAlternatif()) + |
"&cc_description=" + URL.encodeComponent(collection.getDescription()) + |
"&cc_description_specialiste=" + URL.encodeComponent(collection.getDescriptionSpecialiste()) + |
"&cc_historique=" + URL.encodeComponent(collection.getHistorique()) + |
"&cc_truk_url=" + URL.encodeComponent(collection.getUrls()) + |
"&cc_truk_groupement_principe=" + URL.encodeComponent(collection.getGroupementPrincipe()) + |
"&cc_truk_groupement_but=" + URL.encodeComponent(collection.getGroupementBut()) + |
"&cc_ce_type=" + URL.encodeComponent(collection.getTypeNcd()) + |
"&cc_ce_type_depot=" + URL.encodeComponent(collection.getTypeDepot()) + |
"&cc_cote=" + URL.encodeComponent(collection.getCote()) + |
"&cc_truk_couverture_lieu=" + URL.encodeComponent(collection.getCouvertureLieu()) + |
"&cc_ce_specimen_type=" + URL.encodeComponent(collection.getSpecimenType()) + |
"&cc_specimen_type_nbre=" + URL.encodeComponent(collection.getSpecimenTypeNbre()) + |
"&cc_ce_specimen_type_nbre_precision=" + URL.encodeComponent(collection.getSpecimenTypeNbrePrecision()) + |
"&cc_ce_specimen_type_classement=" + URL.encodeComponent(collection.getSpecimenTypeClassement()); |
} |
if (collection.getBotanique() != null) { |
CollectionBotanique collectionBotanique = collection.getBotanique(); |
postDonnees += "&ccb_nbre_echantillon=" + URL.encodeComponent(collectionBotanique.getNbreEchantillon()) + |
"&ccb_ce_truk_type=" + URL.encodeComponent(collectionBotanique.getType()) + |
"&ccb_truk_unite_rangement=" + URL.encodeComponent(collectionBotanique.getUniteRangement()) + |
"&ccb_ce_unite_rangement_etat=" + URL.encodeComponent(collectionBotanique.getUniteRangementEtat()) + |
"&ccb_truk_unite_base=" + URL.encodeComponent(collectionBotanique.getUniteBase()) + |
"&ccb_truk_conservation_papier_type=" + URL.encodeComponent(collectionBotanique.getConservationPapierType()) + |
"&ccb_truk_conservation_methode=" + URL.encodeComponent(collectionBotanique.getConservationMethode()) + |
"&ccb_specimen_fixation_pourcent=" + URL.encodeComponent(collectionBotanique.getSpecimenFixationPourcent()) + |
"&ccb_etiquette_fixation_pourcent=" + URL.encodeComponent(collectionBotanique.getEtiquetteFixationPourcent()) + |
"&ccb_truk_specimen_fixation_methode=" + URL.encodeComponent(collectionBotanique.getSpecimenFixationMethode()) + |
"&ccb_truk_etiquette_fixation_support=" + URL.encodeComponent(collectionBotanique.getEtiquetteFixationSupport()) + |
"&ccb_truk_etiquette_fixation_specimen=" + URL.encodeComponent(collectionBotanique.getEtiquetteFixationSpecimen()) + |
"&ccb_truk_etiquette_ecriture=" + URL.encodeComponent(collectionBotanique.getEtiquetteEcriture()) + |
"&ccb_ce_traitement=" + URL.encodeComponent(collectionBotanique.getTraitement()) + |
"&ccb_truk_traitement_poison=" + URL.encodeComponent(collectionBotanique.getTraitementPoison()) + |
"&ccb_truk_traitement_insecte=" + URL.encodeComponent(collectionBotanique.getTraitementInsecte()) + |
"&ccb_ce_etat_general=" + URL.encodeComponent(collectionBotanique.getEtatGeneral()) + |
"&ccb_truk_degradation_specimen=" + URL.encodeComponent(collectionBotanique.getDegradationSpecimen()) + |
"&ccb_truk_degradation_presentation=" + URL.encodeComponent(collectionBotanique.getDegradationPresentation()) + |
"&ccb_ce_determination=" + URL.encodeComponent(collectionBotanique.getDetermination()) + |
"&ccb_truk_nature=" + URL.encodeComponent(collectionBotanique.getNature()) + |
"&ccb_specialite=" + URL.encodeComponent(collectionBotanique.getSpecialite()) + |
"&ccb_recolte_date_debut=" + URL.encodeComponent(collectionBotanique.getRecolteDateDebut()) + |
"&ccb_ce_recolte_date_debut_type=" + URL.encodeComponent(collectionBotanique.getRecolteDateDebutType()) + |
"&ccb_recolte_date_fin=" + URL.encodeComponent(collectionBotanique.getRecolteDateFin()) + |
"&ccb_ce_recolte_date_fin_type=" + URL.encodeComponent(collectionBotanique.getRecolteDateFinType()) + |
"&ccb_annotation_classement=" + URL.encodeComponent(collectionBotanique.getClassementAnnotation()) + |
"&ccb_ce_classement_etat=" + URL.encodeComponent(collectionBotanique.getClassementEtat()) + |
"&ccb_truk_etiquette_renseignement=" + URL.encodeComponent(collectionBotanique.getEtiquetteRenseignement()) + |
"&ccb_ce_precision_localite=" + URL.encodeComponent(collectionBotanique.getPrecisionLocalite()) + |
"&ccb_ce_precision_date=" + URL.encodeComponent(collectionBotanique.getPrecisionDate()) + |
"&ccb_annotation_diverse=" + URL.encodeComponent(collectionBotanique.getAnnotationsDiverses()) + |
"&ccb_ce_collection_integre=" + URL.encodeComponent(collectionBotanique.getCollectionIntegre()) + |
"&ccb_ce_collection_integre_info=" + URL.encodeComponent(collectionBotanique.getCollectionIntegreInfo()) + |
"&ccb_ce_inventaire=" + URL.encodeComponent(collectionBotanique.getInventaire()) + |
"&ccb_ce_inventaire_auteur=" + URL.encodeComponent(collectionBotanique.getInventaireAuteur()) + |
"&ccb_ce_inventaire_forme=" + URL.encodeComponent(collectionBotanique.getInventaireForme()) + |
"&ccb_inventaire_info=" + URL.encodeComponent(collectionBotanique.getInventaireInfo()) + |
"&ccb_ce_truk_inventaire_digital=" + URL.encodeComponent(collectionBotanique.getInventaireDigital()) + |
"&ccb_inventaire_digital_pourcent=" + URL.encodeComponent(collectionBotanique.getInventaireDigitalPourcent()) + |
"&ccb_ce_inventaire_etat=" + URL.encodeComponent(collectionBotanique.getInventaireEtat()) + |
"&ccb_inventaire_donnee_type=" + URL.encodeComponent(collectionBotanique.getInventaireDonneesTypes()); |
} |
return postDonnees; |
} |
} |