Rev 227 | Go to most recent revision | Blame | Compare with Previous | 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 : FIELDSETFormLayout layoutFieldset = new FormLayout();layoutFieldset.setLabelWidth(200);layoutFieldset.setPadding(4);//+-----------------------------------------------------------------------------------------------------------+// Création du panneau Formulairepanel = 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 AuteurFieldSet 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 : FIELDSETFormLayout layoutFieldset2 = new FormLayout();layoutFieldset.setLabelWidth(200);layoutFieldset.setPadding(4);// Fieldset Infos GénéralesFieldSet 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 : FIELDSETFormLayout layoutFieldset3 = new FormLayout();layoutFieldset.setPadding(4);// Fieldset EditionFieldSet 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 formulaireButton annulerBtn = new Button("Annuler");annulerBtn.addSelectionListener(new SelectionListener<ComponentEvent>() {@Overridepublic void componentSelected(ComponentEvent ce) {mediateur.clicMenu("Publications");}});panel.addButton(annulerBtn);Button validerBtn = new Button("Valider");validerBtn.addSelectionListener(new SelectionListener<ComponentEvent>() {@Overridepublic 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);}}}