122,9 → 122,11 |
fieldSetAuteurs.setCollapsible(true); |
fieldSetAuteurs.setLayout(layoutFieldset); |
|
listeAuteurs = new ArrayList<ComboBox<Personne>>(0); |
|
panel.add(fieldSetAuteurs); |
|
genererChampsAuteur("", false); |
genererChampsAuteur(false); |
|
// Création de la disposition : FIELDSET |
FormLayout layoutFieldset2 = new FormLayout(); |
224,7 → 226,9 |
// Si on a reçu les details d'une publication |
if (nouvellesDonnees instanceof Publication) { |
mode = "MODIF" ; |
|
|
|
genererChampsAuteur(true); |
publi = (Publication) nouvellesDonnees; |
mediateur.selectionnerAuteurAPublication(this,publi.getId()); |
mediateur.clicObtenirListeAuteurs(this); |
231,7 → 235,7 |
nomArticle.setValue(publi.getTitre()); |
intituleCollPub.setValue(publi.getCollection()); |
uriPub.setValue(publi.getURI()); |
datePub.setRawValue(publi.getDateParution()); |
datePub.setRawValue(reduireDateParAnnee(publi.getDateParution())); |
tomPub.setValue(publi.getIndicationNvt()); |
fasciculePub.setValue(publi.getFascicule()); |
pagesPub.setValue(publi.getPages()); |
257,7 → 261,6 |
|
if(nouvellesDonnees instanceof PublicationAPersonneListe) { |
pubAPersonneListeAuteur = (PublicationAPersonneListe)nouvellesDonnees; |
listeAuteurPublicationInitialisee = true; |
|
if(listeAuteurInitialisee) { |
Iterator<String> itap = pubAPersonneListeAuteur.keySet().iterator(); |
264,6 → 267,15 |
for(;itap.hasNext();){ |
creerTextFieldEtBouton(pubAPersonneListeAuteur.get(itap.next()).getIdAuteur()); |
} |
|
int nbAuteurs = 0; |
for(Iterator<ComboBox<Personne>> it = listeAuteurs.iterator(); it.hasNext();) { |
if(listeAuteurs.size() > 1) { |
it.next().setFieldLabel("Auteur "+nbAuteurs); |
nbAuteurs++; |
} |
} |
listeAuteurPublicationInitialisee = true; |
} |
} |
|
279,13 → 291,6 |
} |
|
listeAuteurInitialisee = true; |
|
if(listeAuteurPublicationInitialisee && mode.equals("MODIF")) { |
Iterator<String> itap = pubAPersonneListeAuteur.keySet().iterator(); |
for(;itap.hasNext();){ |
creerTextFieldEtBouton(pubAPersonneListeAuteur.get(itap.next()).getIdAuteur()); |
} |
} |
} |
|
if (nouvellesInfos.getType().equals("publication_valide")) { |
398,31 → 403,21 |
return "Format de date incorrect "; |
} |
} |
|
private void genererChampsAuteur(String auteursStr, boolean ajouter) { |
String[] auteurs = auteursStr.split("|"); |
|
Window.alert("les auteurs sont : "+auteursStr); |
conteneurChamps = new LayoutContainer(); |
|
if (auteurs.length != 0) { |
listeAuteurs = new ArrayList<ComboBox<Personne>>(auteurs.length); |
|
private String reduireDateParAnnee(String datePar) { |
if(datePar.matches("^[0-2][0-9]{3}(-[0-9]{2}){2}$")) { |
return datePar.split("-")[0]; |
} else { |
listeAuteurs = new ArrayList<ComboBox<Personne>>(1); |
ajouter = true ; |
return ""; |
} |
} |
|
private void genererChampsAuteur(boolean vider) { |
|
fieldSetAuteurs.removeAll(); |
int i = 0; |
|
for (i = 0; i < auteurs.length; i++) { |
conteneurChamps.add(creerTextFieldEtBouton(auteurs[i])); |
} |
|
if (ajouter) { |
conteneurChamps.add(creerTextFieldEtBouton(null)); |
} |
|
conteneurChamps = new LayoutContainer(); |
|
Button ajoutAuteurBtn = new Button("Ajouter un auteur"); |
ajoutAuteurBtn.addSelectionListener(new SelectionListener<ButtonEvent>() { |
|
429,7 → 424,7 |
@Override |
public void componentSelected(ButtonEvent be) { |
creerTextFieldEtBouton(""); |
int nbAuteurs = 1; |
int nbAuteurs = 0; |
for(Iterator<ComboBox<Personne>> it = listeAuteurs.iterator(); it.hasNext();) { |
if(listeAuteurs.size() > 1) { |
it.next().setFieldLabel("Auteur "+nbAuteurs); |
444,6 → 439,12 |
fieldSetAuteurs.add(conteneurChamps); |
fieldSetAuteurs.add(ajoutAuteurBtn); |
fieldSetAuteurs.layout(true); |
|
if(!vider) { |
creerTextFieldEtBouton(""); |
} |
|
|
} |
|
public HorizontalPanel creerTextFieldEtBouton(String valeurDefaut) { |
474,7 → 475,7 |
supp.addSelectionListener(new SelectionListener<ButtonEvent>() { |
@Override |
public void componentSelected(ButtonEvent be) { |
int nbAuteurs = 1; |
int nbAuteurs = 0; |
if(listeAuteurs.size() != 1) { |
for(Iterator<ComboBox<Personne>> it = listeAuteurs.iterator(); it.hasNext();) { |
it.next().setFieldLabel("Auteur "+nbAuteurs); |