6,7 → 6,10 |
|
import org.tela_botanica.client.ComposantClass; |
import org.tela_botanica.client.Mediateur; |
import org.tela_botanica.client.composants.ChampComboBoxRechercheTempsReelPaginable; |
import org.tela_botanica.client.composants.InfoLogger; |
import org.tela_botanica.client.composants.pagination.ProxyProjets; |
import org.tela_botanica.client.composants.pagination.ProxyStructures; |
import org.tela_botanica.client.images.Images; |
import org.tela_botanica.client.interfaces.Rafraichissable; |
import org.tela_botanica.client.modeles.Information; |
34,6 → 37,8 |
import com.extjs.gxt.ui.client.Style.Scroll; |
import com.extjs.gxt.ui.client.Style.SortDir; |
import com.extjs.gxt.ui.client.core.XTemplate; |
import com.extjs.gxt.ui.client.data.ModelData; |
import com.extjs.gxt.ui.client.data.ModelType; |
import com.extjs.gxt.ui.client.event.BaseEvent; |
import com.extjs.gxt.ui.client.event.ButtonEvent; |
import com.extjs.gxt.ui.client.event.ComponentEvent; |
90,7 → 95,7 |
private PersonneListe auteursSupprimes = null; |
|
private ContentPanel auteursFieldset = null; |
private ComboBox<Projet> projetsCombo = null; |
private ChampComboBoxRechercheTempsReelPaginable projetsCombo = null; |
private ArrayList<ComboBox<Personne>> auteurComboboxListe = null; |
private ListStore<Personne> auteursStorePartage = null; |
private static boolean auteurStorePartageChargementOk = false; |
101,7 → 106,7 |
private TextField<String> uriChp = null; |
|
private FieldSet editionFieldset = null; |
private ComboBox<Structure> editeurCombobox = null; |
private ChampComboBoxRechercheTempsReelPaginable editeurCombobox = null; |
private static boolean editeursOk = false; |
private TextField<String> datePublicationChp = null; |
private TextField<String> tomeChp = null; |
579,17 → 584,30 |
generalitesFieldset.setCollapsible(true); |
generalitesFieldset.setLayout(layout); |
|
projetsCombo = new ComboBox<Projet>(); |
projetsCombo.setTabIndex(tabIndex++); |
projetsCombo.setFieldLabel(i18nC.projetChamp()); |
projetsCombo.setDisplayField("nom"); |
projetsCombo.setForceSelection(true); |
projetsCombo.setValidator(new Validator() { |
|
ModelType modelTypeProjets = new ModelType(); |
modelTypeProjets.setRoot("projets"); |
modelTypeProjets.setTotalName("nbElements"); |
modelTypeProjets.addField("cpr_nom"); |
modelTypeProjets.addField("cpr_id_projet"); |
|
String displayNameProjets = "cpr_nom"; |
ProxyProjets<ModelData> proxyProjets = new ProxyProjets<ModelData>(); |
|
projetsCombo = new ChampComboBoxRechercheTempsReelPaginable(proxyProjets, modelTypeProjets, displayNameProjets); |
projetsCombo.setWidth(200, 600); |
projetsCombo.getCombo().setTabIndex(tabIndex++); |
projetsCombo.getCombo().setFieldLabel(i18nC.projetChamp()); |
projetsCombo.getCombo().setForceSelection(true); |
projetsCombo.getCombo().addStyleName(ComposantClass.OBLIGATOIRE); |
projetsCombo.getCombo().addListener(Events.Valid, Formulaire.creerEcouteurChampObligatoire()); |
|
projetsCombo.getCombo().setValidator(new Validator() { |
public String validate(Field<?> field, String value) { |
String retour = null; |
if (field.getRawValue().equals("")) { |
field.setValue(null); |
} else if (projetsCombo.getStore().findModel("nom", field.getRawValue()) == null) { |
} else if (projetsCombo.getStore().findModel("cpr_nom", field.getRawValue()) == null) { |
String contenuBrut = field.getRawValue(); |
field.setValue(null); |
field.setRawValue(contenuBrut); |
598,12 → 616,7 |
return retour; |
} |
}); |
projetsCombo.setTriggerAction(TriggerAction.ALL); |
projetsCombo.setStore(new ListStore<Projet>()); |
projetsCombo.addStyleName(ComposantClass.OBLIGATOIRE); |
projetsCombo.addListener(Events.Valid, Formulaire.creerEcouteurChampObligatoire()); |
generalitesFieldset.add(projetsCombo, new FormData(450, 0)); |
mediateur.selectionnerProjet(this, null); |
generalitesFieldset.add(projetsCombo, new FormData(600, 0)); |
|
titreChp = new TextField<String>(); |
titreChp.setName("cpu"); |
631,17 → 644,29 |
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); |
/*****************************************************/ |
/** Champ 'Editeur de la publication' **/ |
/*****************************************************/ |
ModelType modelTypeStructures = new ModelType(); |
modelTypeStructures.setRoot("structures"); |
modelTypeStructures.setTotalName("nbElements"); |
modelTypeStructures.addField("cs_nom"); |
modelTypeStructures.addField("cs_id_structure"); |
|
String displayNameStructures = "cs_nom"; |
ProxyStructures<ModelData> proxyStructures = new ProxyStructures<ModelData>(); |
|
editeurCombobox = new ChampComboBoxRechercheTempsReelPaginable(proxyStructures, modelTypeStructures, displayNameStructures); |
editeurCombobox.setWidth(200, 600); |
editeurCombobox.getCombo().setTabIndex(tabIndex++); |
editeurCombobox.getCombo().setEmptyText("Sélectionner un éditeur..."); |
editeurCombobox.getCombo().setFieldLabel("Éditeur de la publication"); |
editeurCombobox.getCombo().setEditable(true); |
editionFieldset.add(editeurCombobox, new FormData(600, 0)); |
|
/*********************************************/ |
/** Champ 'Date de publication' **/ |
/*********************************************/ |
datePublicationChp = new TextField<String>(); |
datePublicationChp.setMaxLength(4); |
datePublicationChp.setMinLength(4); |
650,14 → 675,23 |
datePublicationChp.addListener(Events.Valid, creerEcouteurChampObligatoire()); |
editionFieldset.add(datePublicationChp, new FormData(40, 0)); |
|
/*****************************/ |
/** Champ '' **/ |
/*****************************/ |
tomeChp = new TextField<String>(); |
tomeChp.setFieldLabel("Série de la revue ou tome"); |
editionFieldset.add(tomeChp, new FormData(75, 0)); |
|
/*****************************/ |
/** Champ '' **/ |
/*****************************/ |
fasciculeChp = new TextField<String>(); |
fasciculeChp.setFieldLabel("Fascicule de la revue"); |
editionFieldset.add(fasciculeChp, new FormData(75, 0)); |
|
/*****************************/ |
/** Champ '' **/ |
/*****************************/ |
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)"); |
668,17 → 702,10 |
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 if (nouvellesDonnees instanceof ProjetListe) { |
ProjetListe projets = (ProjetListe) nouvellesDonnees; |
Formulaire.rafraichirComboBox(projets, projetsCombo); |
setValeurComboProjets(); |
} else { |
GWT.log(Mediateur.i18nM.erreurRafraichir(nouvellesDonnees.getClass(), this.getClass()), null); |
} |
736,12 → 763,6 |
publication = publi; |
} |
|
private void rafraichirListeEditeurs(StructureListe editeurs) { |
editeursOk = true; |
editeurCombobox.getStore().removeAll(); |
editeurCombobox.getStore().add((List<Structure>) editeurs.toList()); |
} |
|
private void rafraichirListeAuteurs(PublicationAPersonneListe auteurs) { |
Iterator<String> it = auteurs.keySet().iterator(); |
while (it.hasNext()) { |
1066,9 → 1087,9 |
pagesChp.setValue(publication.getPages()); |
|
if (publication.getEditeur().matches("^[0-9]+$")) { |
editeurCombobox.setValue(editeurCombobox.getStore().findModel("id_structure", publication.getEditeur())); |
editeurCombobox.getCombo().setValue(editeurCombobox.getStore().findModel("cs_id_structure", publication.getEditeur())); |
} else { |
editeurCombobox.setRawValue(publication.getEditeur()); |
editeurCombobox.getCombo().setRawValue(publication.getEditeur()); |
} |
} |
|
1090,11 → 1111,12 |
publicationCollectee.setUri(uri); |
|
String editeur = ""; |
if (editeurCombobox.getValue() != null) { |
editeur = editeurCombobox.getValue().getId(); |
publicationCollectee.setStructureEditeur(editeurCombobox.getValue()); |
} else if (editeurCombobox.getRawValue() != "") { |
editeur = editeurCombobox.getRawValue(); |
if (editeurCombobox.getValeur() != null) { |
Structure structure = new Structure(editeurCombobox.getValeur()); |
editeur = structure.getId(); |
publicationCollectee.setStructureEditeur(structure); |
} else if (!UtilString.isEmpty(editeurCombobox.getCombo().getRawValue())) { |
editeur = editeurCombobox.getCombo().getRawValue(); |
} |
publicationCollectee.setEditeur(editeur); |
|
1120,10 → 1142,11 |
|
private String construireIntituleEditeur() { |
String editeur = ""; |
if (editeurCombobox.getValue() != null) { |
editeur = editeurCombobox.getValue().getNom(); |
} else if (editeurCombobox.getRawValue() != "") { |
editeur = editeurCombobox.getRawValue(); |
if (editeurCombobox.getValeur() != null) { |
Structure structure = new Structure(editeurCombobox.getValeur()); |
editeur = structure.getNom(); |
} else if (!UtilString.isEmpty(editeurCombobox.getCombo().getRawValue())) { |
editeur = editeurCombobox.getCombo().getRawValue(); |
} |
return editeur; |
} |
1225,17 → 1248,20 |
|
private String getValeurComboProjets() { |
String valeur = ""; |
if (projetsCombo.getValue() != null) { |
valeur = projetsCombo.getValue().getId(); |
if (projetsCombo.getValeur() != null) { |
Projet projet = new Projet(projetsCombo.getValeur()); |
valeur = projet.getId(); |
} |
return valeur; |
} |
private void setValeurComboProjets() { |
Debug.log("HELLO"); |
if (projetsCombo.getStore() != null ) { |
Debug.log(projetsCombo.getStore().getModels().toArray().toString()); |
if (mode.equals(Formulaire.MODE_MODIFIER) && publication != null) { |
projetsCombo.setValue(projetsCombo.getStore().findModel("id_projet", publication.getIdProjet())); |
projetsCombo.getCombo().setValue(projetsCombo.getStore().findModel("cpr_id_projet", publication.getIdProjet())); |
} else if (mode.equals(Formulaire.MODE_AJOUTER)) { |
projetsCombo.setValue(projetsCombo.getStore().findModel("id_projet", mediateur.getProjetId())); |
projetsCombo.getCombo().setValue(projetsCombo.getStore().findModel("cpr_id_projet", mediateur.getProjetId())); |
} |
} |
} |