18,6 → 18,7 |
import org.tela_botanica.client.modeles.PublicationListe; |
import org.tela_botanica.client.modeles.Structure; |
import org.tela_botanica.client.modeles.StructureListe; |
import org.tela_botanica.client.util.Pattern; |
import org.tela_botanica.client.util.UtilArray; |
|
import com.extjs.gxt.ui.client.Registry; |
67,8 → 68,7 |
private TextField<String> uriChp = null; |
|
private FieldSet editionFieldset = null; |
private ComboBox<Structure> editeursCombobox = null; |
private ListStore<Structure> editeursStore = null; |
private ComboBox<Structure> editeurCombobox = null; |
private TextField<String> datePublicationChp = null; |
private TextField<String> tomeChp = null; |
private TextField<String> fasciculeChp = null; |
101,7 → 101,6 |
modeDeCreation = Formulaire.MODE_MODIFIER; |
} |
initialiserFormulaire(mediateurCourrant, modeDeCreation, MenuApplicationId.PUBLICATION); |
chargerOntologie(); |
|
panneauFormulaire.setLayout(new FlowLayout()); |
String titre = (modeDeCreation.equals(Formulaire.MODE_AJOUTER) ? "Ajout d'une publication" : "Modification d'une publication"); |
120,11 → 119,6 |
mediateurCourrant.selectionnerAuteurAPublication(this, publicationId); |
} |
|
private void chargerOntologie() { |
mediateur.clicObtenirListeEditeurs(this); |
mediateur.clicObtenirListeAuteurs(this); |
} |
|
private void creerZoneAuteurs() { |
FormLayout layout = new FormLayout(); |
layout.setLabelWidth(200); |
137,6 → 131,7 |
|
auteurComboboxListe = new ArrayList<ComboBox<Personne>>(0); |
auteursStorePartage = new ListStore<Personne>(); |
mediateur.clicObtenirListeAuteurs(this); |
|
genererChampsAuteur(false); |
} |
148,7 → 143,6 |
|
Button ajoutAuteurBtn = new Button("Ajouter un auteur"); |
ajoutAuteurBtn.addSelectionListener(new SelectionListener<ButtonEvent>() { |
|
@Override |
public void componentSelected(ButtonEvent be) { |
creerTextFieldEtBouton(null); |
163,7 → 157,6 |
|
auteursFieldset.layout(true); |
} |
|
}); |
|
auteursFieldset.add(conteneurChamps); |
188,7 → 181,7 |
|
LayoutContainer lc = new LayoutContainer(); |
lc.setLayout(new FormLayout()); |
lc.add(auteursSaisisComboBox); |
lc.add(auteursSaisisComboBox, new FormData(300, 0)); |
|
Button supp = new Button("-"); |
supp.addSelectionListener(new SelectionListener<ButtonEvent>() { |
215,7 → 208,6 |
|
private ComboBox<Personne> creerComboBoxAuteursSaisis() { |
ComboBox<Personne> comboBox = new ComboBox<Personne>(); |
comboBox.setSize(200, 20); |
comboBox.setEmptyText(i18nC.chercherAuteurSaisi()); |
comboBox.setEditable(true); |
comboBox.setForceSelection(true); |
239,16 → 231,15 |
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 collection ou de la revue"); |
collectionChp.setFieldLabel("Intitulé de la revue ou de la collection"); |
generalitesFieldset.add(collectionChp, new FormData(450, 0)); |
|
uriChp = new TextField<String>(); |
uriChp.setFieldLabel("URI de la publication"); |
|
generalitesFieldset.add(titreChp); |
generalitesFieldset.add(collectionChp); |
generalitesFieldset.add(uriChp); |
uriChp.setFieldLabel("URL de la publication"); |
generalitesFieldset.add(uriChp, new FormData(450, 0)); |
} |
|
private void creerZoneEdition() { |
257,38 → 248,39 |
|
// Fieldset Edition |
editionFieldset = new FieldSet(); |
editionFieldset.setHeading("Edition"); |
editionFieldset.setHeading("Édition"); |
editionFieldset.setCollapsible(true); |
editionFieldset.setLayout(layout); |
|
editeursStore = new ListStore<Structure>(); |
editeursCombobox = new ComboBox<Structure>(); |
editeursCombobox.setEmptyText("Sélectionner un editeur..."); |
editeursCombobox.setFieldLabel("Editeur de la publication"); |
editeursCombobox.setDisplayField("nom"); |
editeursCombobox.setStore(editeursStore); |
editeursCombobox.setEditable(true); |
editeursCombobox.setTypeAhead(true); |
editeursCombobox.setTriggerAction(TriggerAction.QUERY); |
editionFieldset.add(editeursCombobox, new FormData(500, 20)); |
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, 20)); |
editionFieldset.add(datePublicationChp, new FormData(40, 0)); |
|
tomeChp = new TextField<String>(); |
tomeChp.setFieldLabel("Tome"); |
editionFieldset.add(tomeChp, new FormData(75, 20)); |
tomeChp.setFieldLabel("Série de la revue ou tome"); |
editionFieldset.add(tomeChp, new FormData(75, 0)); |
|
fasciculeChp = new TextField<String>(); |
fasciculeChp.setFieldLabel("Fascicule"); |
editionFieldset.add(fasciculeChp, new FormData(75, 20)); |
fasciculeChp.setFieldLabel("Fascicule de la revue"); |
editionFieldset.add(fasciculeChp, new FormData(75, 0)); |
|
pagesChp = new TextField<String>(); |
pagesChp.setFieldLabel("Pages"); |
editionFieldset.add(pagesChp, new FormData(100, 20)); |
pagesChp.setToolTip("Fomat : NBRE ou NBRE-NBRE. ('NBRE' correspond à une suite de chiffres arabes ou romains ou à un point d'intérogation '?' dans le cas d'une donnée inconnue)"); |
editionFieldset.add(pagesChp, new FormData(100, 0)); |
} |
|
public void rafraichir(Object nouvellesDonnees) { |
324,17 → 316,23 |
tomeChp.setValue(publication.getIndicationNvt()); |
fasciculeChp.setValue(publication.getFascicule()); |
pagesChp.setValue(publication.getPages()); |
idStructureEdition = publication.getEditeur(); |
|
if (publication.getEditeur().matches("^[0-9]+$")) { |
editeurCombobox.setValue(editeurCombobox.getStore().findModel("id_structure", publication.getEditeur())); |
idStructureEdition = publication.getEditeur(); |
} else { |
editeurCombobox.setRawValue(publication.getEditeur()); |
} |
} |
|
private void rafraichirListeEditeurs(StructureListe editeurs) { |
editeursStore.removeAll(); |
editeursStore.add((List<Structure>) editeurs.toList()); |
editeurCombobox.getStore().removeAll(); |
editeurCombobox.getStore().add((List<Structure>) editeurs.toList()); |
|
if (mode.equals(Formulaire.MODE_MODIFIER)) { |
editeursCombobox.setValue((Structure) editeurs.get(idStructureEdition)); |
editeurCombobox.setValue((Structure) editeurs.get(idStructureEdition)); |
} |
editeursCombobox.expand(); |
editeurCombobox.expand(); |
} |
|
private void rafraichirListeAuteurs(PublicationAPersonneListe auteurs) { |
358,7 → 356,6 |
} |
|
private void rafraichirInformation(Information info) { |
GWT.log("la", null); |
if (info.getType().equals("liste_personne")) { |
listePersonneAuteurInitialisee = true; |
listePersonneAuteur = (PersonneListe) info.getDonnee(0); |
376,7 → 373,6 |
} |
} else if (info.getType().equals("auteur_valide")) { |
validationAuteurs = true; |
GWT.log("ici", null); |
} |
} |
|
441,15 → 437,26 |
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 datePar = datePublicationChp.getRawValue(); |
if (datePar == null || datePar.equals("")) { |
messages.add("Veuillez saisir une date !"); |
} else { |
if (!etreDateValide(datePar)) { |
messages.add("Format de l'année saisie est incorrect"); |
messages.add("Le format de l'année saisie est incorrect !"); |
} |
} |
|
String pages = pagesChp.getValue(); |
String valeurPage = "(?:[0-9]+|[IVXLCDM]+|\\?)"; |
if (! pages.matches("^(?:"+valeurPage+"|"+valeurPage+"-"+valeurPage+")$")) { |
messages.add("Le format des pages est incorrect !"); |
} |
|
if (messages.size() != 0) { |
String[] tableauDeMessages = {}; |
tableauDeMessages = messages.toArray(tableauDeMessages); |
489,16 → 496,16 |
publicationCollectee.setUri(uri); |
|
String editeur = ""; |
if (editeursCombobox.getValue() != null) { |
editeur = editeursCombobox.getValue().getId(); |
} else if (editeursCombobox.getRawValue() != "") { |
editeur = editeursCombobox.getRawValue(); |
if (editeurCombobox.getValue() != null) { |
editeur = editeurCombobox.getValue().getId(); |
} else if (editeurCombobox.getRawValue() != "") { |
editeur = editeurCombobox.getRawValue(); |
} |
publicationCollectee.setEditeur(editeur); |
|
String datePar = datePublicationChp.getRawValue(); |
datePar = datePar+"-00-00"; |
publicationCollectee.setDateParution(datePar); |
String anneePublication = datePublicationChp.getRawValue(); |
String datePublication = anneePublication+"-00-00"; |
publicationCollectee.setDateParution(datePublication); |
|
String tome = tomeChp.getValue(); |
publicationCollectee.setIndicationNvt(tome); |
524,9 → 531,9 |
} |
} |
|
private boolean etreDateValide(String datePar) { |
private boolean etreDateValide(String anneePublication) { |
boolean valide = true; |
if (!datePar.matches("^[0-2][0-9]{3}$")) { |
if (!anneePublication.matches("^[0-2][0-9]{3}$")) { |
valide = false; |
} |
return valide; |