Blame | Last modification | View Log | RSS feed
package org.tela_botanica.client.vues;
import org.tela_botanica.client.Mediateur;
import org.tela_botanica.client.Modele;
import org.tela_botanica.client.RegistreId;
import org.tela_botanica.client.interfaces.Rafraichissable;
import org.tela_botanica.client.modeles.InterneValeur;
import org.tela_botanica.client.modeles.Personne;
import org.tela_botanica.client.modeles.Publication;
import org.tela_botanica.client.modeles.Structure;
import org.tela_botanica.client.modeles.StructureConservation;
import org.tela_botanica.client.modeles.StructureValorisation;
import com.extjs.gxt.ui.client.Registry;
import com.extjs.gxt.ui.client.Style.HorizontalAlignment;
import com.extjs.gxt.ui.client.event.ComponentEvent;
import com.extjs.gxt.ui.client.event.SelectionListener;
import com.extjs.gxt.ui.client.store.ListStore;
import com.extjs.gxt.ui.client.store.Store;
import com.extjs.gxt.ui.client.widget.LayoutContainer;
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.DateField;
import com.extjs.gxt.ui.client.widget.form.FieldSet;
import com.extjs.gxt.ui.client.widget.form.FormPanel;
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.FitLayout;
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 FormPublicationVue extends LayoutContainer implements Rafraichissable {
private Mediateur mediateur = null;
FormPanel panel = null ;
private ComboBox<Personne> comboListeAuteurs = null;
private ListStore<Personne> storePersonne = null;
private TextField<String> nomArticle = null;
private TextField<String> nomPub = null;
private TextField<String> intituleCollPub = null;
private TextField<String> uriPub = null;
private ComboBox<Structure> comboListeEditeurs = null;
private ListStore<Structure> storeEditeurs = null;
private DateField datePub = null;
private TextField<String> tomPub = null;
private TextField<String> fasciculePub = null;
private TextField<String> pagesPub = null;
private String mode = "AJOUT";
public FormPublicationVue() {
setLayout(new FitLayout());
mediateur = Registry.get(RegistreId.MEDIATEUR);
storePersonne = new ListStore<Personne>();
// Création de la disposition : FIELDSET
FormLayout layoutFieldset = new FormLayout();
layoutFieldset.setLabelWidth(200);
layoutFieldset.setPadding(4);
//+-----------------------------------------------------------------------------------------------------------+
// Création du panneau Formulaire
panel = new FormPanel();
panel.setFrame(true);
panel.setIconStyle("icone-form-ajouter");
panel.setCollapsible(false);
panel.setHeading("Ajout d'une publication");
panel.setButtonAlign(HorizontalAlignment.CENTER);
panel.setLayout(new FlowLayout());
add(panel);
// Fieldset Auteur
FieldSet fieldSetAuteurs = new FieldSet();
fieldSetAuteurs.setHeading("Auteur(s)");
fieldSetAuteurs.setCollapsible(true);
fieldSetAuteurs.setLayout(layoutFieldset);
panel.add(fieldSetAuteurs);
this.comboListeAuteurs = new ComboBox<Personne>();
comboListeAuteurs.setEmptyText("Sélectionner un auteur...");
comboListeAuteurs.setFieldLabel("Auteur de la publication");
comboListeAuteurs.setDisplayField("nom");
comboListeAuteurs.setStore(storePersonne);
comboListeAuteurs.setEditable(true);
comboListeAuteurs.setTypeAhead(true);
comboListeAuteurs.setTriggerAction(TriggerAction.ALL);
fieldSetAuteurs.add(comboListeAuteurs);
// Création de la disposition : FIELDSET
FormLayout layoutFieldset2 = new FormLayout();
layoutFieldset.setLabelWidth(200);
layoutFieldset.setPadding(4);
// Fieldset Infos Générales
FieldSet fieldSetInfosGen = new FieldSet();
fieldSetInfosGen.setHeading("Informations générales");
fieldSetInfosGen.setCollapsible(true);
fieldSetInfosGen.setLayout(layoutFieldset2);
panel.add(fieldSetInfosGen);
nomArticle = new TextField<String>();
nomArticle.setName("cpu");
nomArticle.setFieldLabel("Titre de l'article ou de l'ouvrage");
nomPub = new TextField<String>();
nomPub.setFieldLabel("Intitulé complet de la publication");
intituleCollPub = new TextField<String>();
intituleCollPub.setFieldLabel("Intitulé de la collection ou de la revue");
uriPub = new TextField<String>();
uriPub.setFieldLabel("URI de la publication");
fieldSetInfosGen.add(nomArticle);
fieldSetInfosGen.add(nomPub);
fieldSetInfosGen.add(intituleCollPub);
fieldSetInfosGen.add(uriPub);
// Création de la disposition : FIELDSET
FormLayout layoutFieldset3 = new FormLayout();
layoutFieldset.setPadding(4);
// Fieldset Edition
FieldSet fieldSetEdition = new FieldSet();
fieldSetEdition.setHeading("Edition");
fieldSetEdition.setCollapsible(true);
fieldSetEdition.setLayout(layoutFieldset3);
panel.add(fieldSetEdition);
storeEditeurs = new ListStore<Structure>();
comboListeEditeurs = new ComboBox<Structure>();
comboListeEditeurs.setEmptyText("Sélectionner un editeur...");
comboListeEditeurs.setFieldLabel("Editeur de la publication");
comboListeEditeurs.setDisplayField("nom");
comboListeEditeurs.setStore(storeEditeurs);
comboListeEditeurs.setEditable(true);
comboListeEditeurs.setTypeAhead(true);
comboListeEditeurs.setTriggerAction(TriggerAction.ALL);
datePub = new DateField();
datePub.setFieldLabel("Date de publication");
tomPub = new TextField<String>();
tomPub.setFieldLabel("Tome");
fasciculePub = new TextField<String>();
fasciculePub.setFieldLabel("Fascicule");
pagesPub = new TextField<String>();
pagesPub.setFieldLabel("Pages");
fieldSetEdition.add(comboListeEditeurs);
fieldSetEdition.add(datePub, new FormData(75,20));
fieldSetEdition.add(tomPub);
fieldSetEdition.add(fasciculePub);
fieldSetEdition.add(pagesPub, new FormData(100,20));
// Ajout des boutons au panneau formulaire
Button annulerBtn = new Button("Annuler");
annulerBtn.addSelectionListener(new SelectionListener<ComponentEvent>() {
@Override
public void componentSelected(ComponentEvent ce) {
mediateur.clicMenu("Publications");
}
});
panel.addButton(annulerBtn);
Button validerBtn = new Button("Valider");
validerBtn.addSelectionListener(new SelectionListener<ComponentEvent>() {
@Override
public void componentSelected(ComponentEvent ce) {
soumettreFormulaire();
}
});
panel.addButton(validerBtn);
}
public void rafraichir(Object nouvelleDonnees) {
if(nouvelleDonnees instanceof Publication) {
Publication publi = (Publication)nouvelleDonnees;
comboListeAuteurs.setRawValue(publi.getAuteur());
nomArticle.setValue(publi.getTitre());
nomPub.setValue(publi.getNomComplet());
intituleCollPub.setValue(publi.getCollection());
uriPub.setValue(publi.getURI());
comboListeEditeurs.setRawValue(publi.getEditeur());
datePub.setRawValue(publi.getDateParution());
tomPub.setValue(publi.getIndicationNvt());
fasciculePub.setValue(publi.getFascicule());
pagesPub.setValue(publi.getPages());
panel.setHeading("Modification d'une publication");
mode = "MODIFICATION" ;
}
}
private void soumettreFormulaire() {
String auteur = comboListeAuteurs.getRawValue();
String nomArt = nomArticle.getValue();
String pub = nomPub.getValue();
String collPub = intituleCollPub.getValue();
String uri = uriPub.getValue();
String editeur = comboListeEditeurs.getRawValue();
String datePar = datePub.getRawValue();
String tome = tomPub.getValue();
String fascicule = fasciculePub.getValue();
String pages = pagesPub.getValue();
Publication publi = new Publication(pub,uri,auteur,collPub,nomArt,editeur,datePar,tome,fascicule,pages);
if (mode.equals("AJOUT")) {
mediateur.ajouterPublication(this, publi);
} else if (mode.equals("MODIF")) {
mediateur.modifierPublication(this, publi);
}
}
}