16,6 → 16,7 |
import org.tela_botanica.client.composants.ChampMultiValeursMultiTypes; |
import org.tela_botanica.client.composants.HashMapComposants; |
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; |
26,6 → 27,10 |
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.util.Pattern; |
import org.tela_botanica.client.util.UtilString; |
import org.tela_botanica.client.vues.Formulaire; |
48,6 → 53,7 |
import com.extjs.gxt.ui.client.widget.LayoutContainer; |
import com.extjs.gxt.ui.client.widget.MessageBox; |
|
import com.extjs.gxt.ui.client.widget.ContentPanel; |
import com.extjs.gxt.ui.client.widget.Info; |
import com.extjs.gxt.ui.client.widget.TabItem; |
import com.extjs.gxt.ui.client.widget.TabPanel; |
67,13 → 73,17 |
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.FitLayout; |
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.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.user.client.Window; |
import com.google.gwt.user.client.ui.Widget; |
|
public class PersonneForm extends Formulaire implements Rafraichissable { |
80,8 → 90,9 |
|
// VARIABLES |
private TabItem tiIdentite, tiAdresses, tiInfosNat; |
PersonneFormPublication tiPubli; |
private Configuration config = (Configuration) Registry.get(RegistreId.CONFIG); |
private Personne personneSelectionnee, personneSauvegarde = null; |
protected Personne personneSelectionnee, personneSauvegarde = null; |
|
//hmIdentite[...] référence par une chaine de caractère tous les composants de l'onglet Identite |
private HashMapComposants hmIdentite = new HashMapComposants(); |
96,7 → 107,11 |
private String personneId = null; |
private FormBinding binding = null; |
|
// CONSTRUCTEUR |
//Publi |
private ComboBox<Publication> cbPubli; |
private ListStore<Publication> storePubli; |
|
// CONSTRUCTEUR |
public PersonneForm(Mediateur mediateurCourrant, String personneId) { |
initialiserPersonneForm(mediateurCourrant, personneId); |
} |
119,6 → 134,7 |
|
if (modeDeCreation.equals(Formulaire.MODE_MODIFIER)) { |
mediateur.selectionnerPersonne(this, personne, null); |
mediateurCourrant.selectionnerPublicationAPersonne(this, null, personne.getId(), PublicationAPersonne.ROLE_SUJET); |
} |
} |
|
139,6 → 155,7 |
creerComposantsIdentite(); |
creerComposantsAdresse(); |
creerComposantsInfosNat(); |
//creerComposantsPubli(); |
|
binderPersonne(personneSelectionnee); |
} |
152,25 → 169,21 |
TabPanel formulaireOnglets = new TabPanel(); |
|
//Tab 1 : identite |
tiIdentite = new TabItem(i18nC.personneIdentite()); |
tiIdentite.setLayout(new FormLayout()); |
tiIdentite.setScrollMode(Scroll.AUTO); |
|
tiIdentite = creerOnglet(i18nC.personneIdentite(), "tiIdentite"); |
tiIdentite.setStyleAttribute("padding", "0"); |
formulaireOnglets.add(tiIdentite); |
hmIdentite.put("tiIdentite", tiIdentite); |
|
//Tab 2 : Adresse |
tiAdresses = new TabItem(i18nC.adresse()); |
tiAdresses.setLayout(new FormLayout()); |
tiAdresses.setScrollMode(Scroll.AUTO); |
tiAdresses = creerOnglet(i18nC.adresse(), "tiAdresses"); |
formulaireOnglets.add(tiAdresses); |
|
//Tab 3 : Infos Naturalistes |
tiInfosNat = new TabItem(i18nC.personneInfoNat()); |
tiInfosNat.setLayout(new FormLayout()); |
tiInfosNat.setScrollMode(Scroll.AUTO); |
tiInfosNat = creerOnglet(i18nC.personneInfoNat(), "tiInfosNat"); |
formulaireOnglets.add(tiInfosNat); |
|
formulaireOnglets.add(tiInfosNat); |
tiPubli = new PersonneFormPublication(this); |
formulaireOnglets.add(tiPubli); |
|
getFormulaire().add(formulaireOnglets); |
} |
|
626,6 → 639,104 |
tiInfosNat.add(fsInfosNat); |
} |
|
public void creerComposantsPubli(){ |
//Création des composants de l'onglet publication |
|
ContentPanel cp = new ContentPanel(); |
cp.setHeading("Publications dont la personne est le sujet"); |
cp.setIcon(Images.ICONES.table()); |
cp.setLayout(new FitLayout()); |
cp.setFrame(true); |
|
ToolBar toolBar = new ToolBar(); |
|
Button ajouterPubli = new Button("Ajouter"); |
ajouterPubli.setIcon(Images.ICONES.vcardAjouter()); |
ajouterPubli.addSelectionListener(new SelectionListener<ButtonEvent>() { |
@Override |
public void componentSelected(ButtonEvent ce) { |
Window.alert("ajout publi"); |
/*StructureAPersonne membreDuPersonnel = new StructureAPersonne("", StructureAPersonne.ROLE_EQUIPE, StructureAPersonne.ETAT_AJOUTE); |
ajouterMembreAGrillePersonnel(membreDuPersonnel);*/ |
} |
}); |
toolBar.add(ajouterPubli); |
|
toolBar.add(new SeparatorToolItem()); |
|
Button supprimerPubli = new Button("Supprimer"); |
supprimerPubli.setIcon(Images.ICONES.vcardSupprimer()); |
supprimerPubli.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(); |
} |
}*/ |
Window.alert("supprimer"); |
} |
}); |
toolBar.add(supprimerPubli); |
|
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(); |
Window.alert("rafraichir"); |
} |
}); |
toolBar.add(rafraichirPersonnelBtn); |
|
//Ajout d'une ComboBox |
storePubli = new ListStore<Publication>(); |
storePubli.add(new ArrayList<Publication>()); |
|
cbPubli = new ComboBox<Publication>(); |
cbPubli.setWidth(200); |
cbPubli.setEmptyText("Chercher une publication existante..."); |
cbPubli.setTriggerAction(TriggerAction.ALL); |
cbPubli.setEditable(true); |
cbPubli.setDisplayField("fmt_nom_complet"); |
cbPubli.setStore(storePubli); |
cbPubli.addKeyListener(new KeyListener() { |
|
public void componentKeyUp(ComponentEvent ce) { |
if (!ce.isNavKeyPress() && cbPubli.getRawValue() != null && cbPubli.getRawValue().length() > 0) { |
rafraichirPublicationsExistante(cbPubli.getRawValue()); |
} |
} |
|
}); |
|
toolBar.add(cbPubli); |
toolBar.add(new SeparatorToolItem()); |
cp.setTopComponent(toolBar); |
|
|
tiPubli.add(cp); |
} |
|
public void rafraichirPublicationsExistante(String nomPubli) { |
nomPubli +="%"; |
mediateur.selectionnerPublicationParNomComplet(this, null, nomPubli); |
} |
|
/** |
* Ajouter le bouton annuler à la barre d'outils donnée |
* |
651,7 → 762,12 |
// RAFRAICHISSEMENT DU PANNEAU |
|
public void rafraichir(Object nouvellesDonnees) { |
if (nouvellesDonnees instanceof ValeurListe) { |
if (nouvellesDonnees instanceof PublicationAPersonneListe) { |
Information info = new Information(); |
info.setType("publication_liees"); |
info.setDonnee(0, (PublicationAPersonneListe) nouvellesDonnees); |
tiPubli.rafraichir(info); |
} else if (nouvellesDonnees instanceof ValeurListe) { |
ValeurListe listeValeurs = (ValeurListe) nouvellesDonnees; |
|
// Créer une liste de valeurs |
688,6 → 804,14 |
storeProjets.removeAll(); |
storeProjets.add(liste); |
cbProjets.setStore(storeProjets); |
} else if (nouvellesDonnees instanceof PublicationListe) { |
|
PublicationListe publicationListe = (PublicationListe) nouvellesDonnees; |
List<Publication> liste = publicationListe.toList(); |
storePubli.removeAll(); |
storePubli.add(liste); |
cbPubli.setStore(storePubli); |
|
} else if (nouvellesDonnees instanceof Information) { |
Information info = (Information) nouvellesDonnees; |
if (info.getType().equals("ajout_personne")) { |
716,6 → 840,7 |
Iterator itPersonneListe = colPersonneListe.iterator(); |
Personne personne = (Personne) itPersonneListe.next(); |
|
//TODO : Je vois pas l'intérêt des lignes ci dessous.. |
personneSauvegarde = new Personne(); |
personneSauvegarde = (Personne) personne.cloner(personneSauvegarde); |
|
914,7 → 1039,9 |
hmInfosNat.getChampMultiValeurs("specialite").peupler(personne.getString("ce_truk_specialite")); |
String tr = personne.getString("truk_recolte"); |
hmInfosNat.getChampMultiValeursMultiTypes("recolte").peupler(tr); |
|
|
//Onglet publi |
tiPubli.mettreAJourPersonne(); |
gererEtatActivationBouton(); |
} |
|
979,6 → 1106,8 |
|
public boolean soumettreFormulaire() { |
if (verifierFormulaire()) { |
tiPubli.collecter(); |
tiPubli.soumettre(); |
mediateur.enregistrerPersonne(this, personneSelectionnee); |
} |
return true; |