/trunk/src/org/tela_botanica/client/vues/FenetreForm.java |
---|
Property changes: |
Modified: svn:mergeinfo |
Merged /trunk/src/org/tela_botanica/client/vues/FenetreForm.java:r11-702 |
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/FenetreForm.java:r1417-1511 |
/trunk/src/org/tela_botanica/client/vues/FormulaireOnglet.java |
---|
Property changes: |
Modified: svn:mergeinfo |
Merged /trunk/src/org/tela_botanica/client/vues/FormulaireOnglet.java:r11-686 |
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/FormulaireOnglet.java:r1417-1511 |
/trunk/src/org/tela_botanica/client/vues/NavigationVue.java |
---|
Property changes: |
Modified: svn:mergeinfo |
Merged /trunk/src/org/tela_botanica/client/vues/NavigationVue.java:r11-981 |
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/NavigationVue.java:r1417-1511 |
/trunk/src/org/tela_botanica/client/vues/structure/StructureVue.java |
---|
Property changes: |
Modified: svn:mergeinfo |
Merged /trunk/src/org/tela_botanica/client/vues/structure/StructureVue.java:r11-934 |
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/structure/StructureVue.java:r1417-1511 |
/trunk/src/org/tela_botanica/client/vues/structure/StructureListeVue.java |
---|
Property changes: |
Modified: svn:mergeinfo |
Merged /trunk/src/org/tela_botanica/client/vues/structure/StructureListeVue.java:r11-934 |
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/structure/StructureListeVue.java:r1417-1511 |
/trunk/src/org/tela_botanica/client/vues/structure/StructureDetailVue.java |
---|
Property changes: |
Modified: svn:mergeinfo |
Merged /trunk/src/org/tela_botanica/client/vues/structure/StructureDetailVue.java:r11-934 |
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/structure/StructureDetailVue.java:r1417-1511 |
/trunk/src/org/tela_botanica/client/vues/structure/StructureForm.java |
---|
3,6 → 3,7 |
import java.util.ArrayList; |
import java.util.Date; |
import java.util.Iterator; |
import java.util.LinkedList; |
import java.util.List; |
import org.tela_botanica.client.ComposantClass; |
792,14 → 793,7 |
} |
String dateFondation = identification.getAnneeOuDateFondation(); |
if (!dateFondation.equals("")) { |
if (dateFondation.endsWith("00-00")) { |
dateFondationChp.setValue(dateFondation.substring(0, 4)); |
} else { |
Date date = DateTimeFormat.getFormat("yyyy-MM-dd").parse(dateFondation); |
dateFondationChp.setValue(DateTimeFormat.getFormat("dd/MM/yyyy").format(date)); |
} |
} |
dateFondationChp.setValue(dateFondation); |
descriptionChp.setValue(identification.getDescription()); |
conditionAccesChp.setValue(identification.getConditionAcces()); |
2033,8 → 2027,6 |
} |
public void rafraichir(Object nouvellesDonnees) { |
try { |
if (nouvellesDonnees instanceof Information) { |
Information info = (Information) nouvellesDonnees; |
2052,11 → 2044,10 |
controlerFermeture(); |
} |
public void rafraichirInformation(Information info) { |
public void rafraichirInformation(Information info) { |
if (info.getMessages() != null && !info.getMessages().toString().equals("[]")) { |
GWT.log("MESSAGES:\n"+info.getMessages().toString(), null); |
} |
if (info.getType().equals("modif_structure")) { |
InfoLogger.display("Modification d'une institution", info.toString()); |
2083,10 → 2074,15 |
InfoLogger.display("Modification d'une institution", info.toString()); |
String titre = i18nC.titreModifFormStructurePanneau(); |
if (info.getDonnee(0) != null) { |
identification = (Structure) info.getDonnee(0); |
if (onglets.getSelectedItem().equals(identificationOnglet)) { |
peuplerStructureIdentification(); |
try { |
identification = (Structure) info.getDonnee(0); |
if (onglets.getSelectedItem().equals(identificationOnglet)) { |
peuplerStructureIdentification(); |
} |
} catch(Exception e) { |
GWT.log("Problème de cast. "+info.getDonnee(0)+" ne peut être casté en Structure", e); |
} |
// Composition du titre |
titre += " - ID : "+identification.getId(); |
} |
2270,4 → 2266,5 |
private void initialiserGrillePersonnelEnModification() { |
mediateur.selectionnerStructureAPersonne(this, identification.getId(), StructureAPersonne.ROLE_EQUIPE, null); |
} |
} |
Property changes: |
Modified: svn:mergeinfo |
Merged /trunk/src/org/tela_botanica/client/vues/structure/StructureForm.java:r11-934 |
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/structure/StructureForm.java:r1417-1511 |
/trunk/src/org/tela_botanica/client/vues/structure |
---|
Property changes: |
Modified: svn:mergeinfo |
Merged /trunk/src/org/tela_botanica/client/vues/structure:r11-934 |
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/structure:r1417-1511 |
/trunk/src/org/tela_botanica/client/vues/DetailVue.java |
---|
Property changes: |
Modified: svn:mergeinfo |
Merged /trunk/src/org/tela_botanica/client/vues/DetailVue.java:r11-452,929-935 |
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/DetailVue.java:r1417-1511 |
/trunk/src/org/tela_botanica/client/vues/projet/ProjetDetailVue.java |
---|
45,6 → 45,7 |
private boolean listeIndexationFrequenceChargee = false; |
private ValeurListe valeurListeLangue = null; |
private boolean listeLangueChargee = false; |
private boolean displayUrl = true; |
private Sequenceur sequenceur; |
52,8 → 53,6 |
super(mediateurCourant); |
this.sequenceur = sequenceur; |
initialiserTousLesTpl(); |
panneauPrincipal = new ContentPanel(); |
panneauPrincipal.setLayout(new FitLayout()); |
panneauPrincipal.setHeaderVisible(false); |
96,8 → 95,12 |
" <span class='{css_label}'>{i18n_nom} :</span> {nom}<br />"+ |
" <span class='{css_label}'>{i18n_abreviation} :</span> {abreviation}<br />"+ |
" <span class='{css_label}'>{i18n_resume} :</span> {resume}<br />"+ |
" <span class='{css_label}'>{i18n_description} :</span> {description}<br />"+ |
" <span class='{css_label}'>{i18n_url} :</span> <a class='{css_lien_ext}' href='{url}' onclick='window.open(this.href); return false;'>{url}</a><br />"+ |
" <span class='{css_label}'>{i18n_description} :</span> {description}<br />"; |
if (projet.getUrl() != null && !UtilString.isEmpty(projet.getUrl())) |
contenuTpl += " <span class='{css_label}'>{i18n_url} :</span> <a class='{css_lien_ext}' href='{url}' onclick='window.open(this.href); return false;'>{url}</a><br />"; |
contenuTpl += |
" </div>"+ |
" <div class='{css_fieldset}'>"+ |
" <h2>{i18n_titre_complement}</h2>"+ |
230,6 → 233,9 |
if (Mediateur.DEBUG) System.out.println("|| ProjetDetailVue > Réception d'un Projet"); |
projet = (Projet) nouvellesDonnees; |
projetChargementOk = true; |
initialiserTousLesTpl(); |
} else if (nouvellesDonnees instanceof ProjetListe) { |
if (Mediateur.DEBUG) System.out.println("|| ProjetDetailVue > Réception d'une ProjetListe"); |
projets = (ProjetListe) nouvellesDonnees; |
Property changes: |
Modified: svn:mergeinfo |
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/projet/ProjetDetailVue.java:r1417-1511 |
Merged /trunk/src/org/tela_botanica/client/vues/projet/ProjetDetailVue.java:r11-934 |
/trunk/src/org/tela_botanica/client/vues/projet/ProjetForm.java |
---|
Property changes: |
Modified: svn:mergeinfo |
Merged /trunk/src/org/tela_botanica/client/vues/projet/ProjetForm.java:r11-934 |
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/projet/ProjetForm.java:r1417-1511 |
/trunk/src/org/tela_botanica/client/vues/projet/ProjetVue.java |
---|
Property changes: |
Modified: svn:mergeinfo |
Merged /trunk/src/org/tela_botanica/client/vues/projet/ProjetVue.java:r11-934 |
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/projet/ProjetVue.java:r1417-1511 |
/trunk/src/org/tela_botanica/client/vues/projet/ProjetListeVue.java |
---|
Property changes: |
Modified: svn:mergeinfo |
Merged /trunk/src/org/tela_botanica/client/vues/projet/ProjetListeVue.java:r11-934 |
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/projet/ProjetListeVue.java:r1417-1511 |
/trunk/src/org/tela_botanica/client/vues/projet |
---|
Property changes: |
Modified: svn:mergeinfo |
Merged /trunk/src/org/tela_botanica/client/vues/projet:r11-934 |
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/projet:r1417-1511 |
/trunk/src/org/tela_botanica/client/vues/commentaire/CommentaireVue.java |
---|
Property changes: |
Modified: svn:mergeinfo |
Merged /trunk/src/org/tela_botanica/client/vues/commentaire/CommentaireVue.java:r11-984 |
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/commentaire/CommentaireVue.java:r1417-1511 |
/trunk/src/org/tela_botanica/client/vues/commentaire/CommentaireListeVue.java |
---|
Property changes: |
Modified: svn:mergeinfo |
Merged /trunk/src/org/tela_botanica/client/vues/commentaire/CommentaireListeVue.java:r11-984 |
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/commentaire/CommentaireListeVue.java:r1417-1511 |
/trunk/src/org/tela_botanica/client/vues/commentaire/CommentaireDetailVue.java |
---|
Property changes: |
Modified: svn:mergeinfo |
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/commentaire/CommentaireDetailVue.java:r1417-1511 |
Merged /trunk/src/org/tela_botanica/client/vues/commentaire/CommentaireDetailVue.java:r11-984 |
/trunk/src/org/tela_botanica/client/vues/commentaire/CommentaireForm.java |
---|
Property changes: |
Modified: svn:mergeinfo |
Merged /trunk/src/org/tela_botanica/client/vues/commentaire/CommentaireForm.java:r11-984 |
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/commentaire/CommentaireForm.java:r1417-1511 |
/trunk/src/org/tela_botanica/client/vues/commentaire |
---|
Property changes: |
Modified: svn:mergeinfo |
Merged /trunk/src/org/tela_botanica/client/vues/commentaire:r11-984 |
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/commentaire:r1417-1511 |
/trunk/src/org/tela_botanica/client/vues/FenetreJournal.java |
---|
Property changes: |
Modified: svn:mergeinfo |
Merged /trunk/src/org/tela_botanica/client/vues/FenetreJournal.java:r11-1208 |
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/FenetreJournal.java:r1417-1511 |
/trunk/src/org/tela_botanica/client/vues/MenuVue.java |
---|
Property changes: |
Modified: svn:mergeinfo |
Merged /trunk/src/org/tela_botanica/client/vues/MenuVue.java:r11-443 |
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/MenuVue.java:r1417-1511 |
/trunk/src/org/tela_botanica/client/vues/BarrePaginationVue.java |
---|
Property changes: |
Modified: svn:mergeinfo |
Merged /trunk/src/org/tela_botanica/client/vues/BarrePaginationVue.java:r11-593 |
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/BarrePaginationVue.java:r1417-1511 |
/trunk/src/org/tela_botanica/client/vues/accueil |
---|
Property changes: |
Modified: svn:mergeinfo |
Merged /trunk/src/org/tela_botanica/client/vues/accueil:r11-911 |
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/accueil:r1417-1511 |
/trunk/src/org/tela_botanica/client/vues/publication/PublicationForm.java |
---|
1,6 → 1,7 |
package org.tela_botanica.client.vues.publication; |
import java.util.ArrayList; |
import java.util.HashMap; |
import java.util.Iterator; |
import java.util.List; |
7,9 → 8,12 |
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.GrillePaginable; |
import org.tela_botanica.client.composants.InfoLogger; |
import org.tela_botanica.client.composants.pagination.ProxyPersonnes; |
import org.tela_botanica.client.composants.pagination.ProxyPersonnesAPublication; |
import org.tela_botanica.client.composants.pagination.ProxyProjets; |
import org.tela_botanica.client.composants.pagination.ProxyPublicationsAPersonne; |
import org.tela_botanica.client.composants.pagination.ProxyStructures; |
import org.tela_botanica.client.images.Images; |
import org.tela_botanica.client.interfaces.Rafraichissable; |
35,6 → 39,7 |
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; |
66,6 → 71,7 |
import com.extjs.gxt.ui.client.widget.grid.ColumnModel; |
import com.extjs.gxt.ui.client.widget.grid.EditorGrid; |
import com.extjs.gxt.ui.client.widget.grid.GridSelectionModel; |
import com.extjs.gxt.ui.client.widget.grid.RowExpander; |
import com.extjs.gxt.ui.client.widget.grid.RowNumberer; |
import com.extjs.gxt.ui.client.widget.layout.FitLayout; |
import com.extjs.gxt.ui.client.widget.layout.FlowLayout; |
114,7 → 120,7 |
private LayoutContainer zoneHaut, zoneBas; |
private ToolBar barreOutils = null; |
private EditorGrid<PublicationAPersonne> grilleAuteurs; |
private GrillePaginable<ModelData> grilleAuteurs; |
private ChampComboBoxRechercheTempsReelPaginable personnesSaisiesComboBox = null; |
private Button personnesBoutonSupprimer = null; |
private Button personnesBoutonModifier = null; |
176,7 → 182,6 |
if (modeDeCreation.equals(Formulaire.MODE_MODIFIER)) { |
mediateurCourrant.selectionnerPublication(this, publicationId, sequenceur); |
mediateurCourrant.selectionnerPublicationAPersonne(this, publicationId, null, PublicationAPersonne.ROLE_AUTEUR, sequenceur); |
sequenceur.enfilerRafraichissement(this, new Information("chargement_modifier_ok")); |
} |
} |
244,26 → 249,30 |
Button bouton = new Button(); |
bouton.setIcon(Images.ICONES.arrowUp()); |
bouton.setEnabled(false); |
bouton.addSelectionListener(new SelectionListener<ButtonEvent>() { |
bouton.addSelectionListener(new SelectionListener<ButtonEvent>() { |
public void componentSelected(ButtonEvent ce) { |
if (grilleAuteurs.getSelectionModel().getSelectedItem() != null) { |
if (grilleAuteurs.getGrille().getSelectionModel().getSelectedItem() != null) { |
PublicationAPersonne pap = grilleAuteurs.getSelectionModel().getSelectedItem(); |
ModelData publiAPersonneSelectionnee = grilleAuteurs.getSelectionModel().getSelectedItem(); |
int index = grilleAuteurs.getStore().indexOf(pap); |
int newIndex = index; |
newIndex--; |
int index = grilleAuteurs.getStore().indexOf(publiAPersonneSelectionnee); |
int newIndex = index - 1; // l'auteur monte dans dans la liste donc son ordre diminue |
int newOrdre = newIndex + 1; // parce que index commence à zéro |
// le marqueur suivant est obligatoire sinon les évènements liés au magasin se |
// déclenchent et posent problème |
changeOrderMarker = true; |
pap.setOrdreAuteurs(String.valueOf(newIndex+1)); |
PublicationAPersonne papSwitch = grilleAuteurs.getStore().getAt(index-1); |
int newIndexPapSwitch = index + 1; |
papSwitch.setOrdreAuteurs(String.valueOf(newIndexPapSwitch)); |
grilleAuteurs.getStore().update(papSwitch); |
grilleAuteurs.getStore().remove(pap); |
grilleAuteurs.getStore().insert(pap, newIndex); |
publiAPersonneSelectionnee.set("_ordre_", String.valueOf(newOrdre)); |
ModelData publiAPersonneSwitch = grilleAuteurs.getStore().getAt(index-1); |
int newOrdrePapSwitch = newOrdre + 1; |
publiAPersonneSwitch.set("_ordre_", String.valueOf(newOrdrePapSwitch)); |
grilleAuteurs.getStore().update(publiAPersonneSwitch); |
grilleAuteurs.getStore().remove(publiAPersonneSelectionnee); |
grilleAuteurs.getStore().insert(publiAPersonneSelectionnee, newIndex); |
changeOrderMarker = false; |
grilleAuteurs.getSelectionModel().select(newIndex, true); |
281,22 → 290,26 |
public void componentSelected(ButtonEvent ce) { |
if (grilleAuteurs.getSelectionModel().getSelectedItem() != null) { |
PublicationAPersonne pap = grilleAuteurs.getSelectionModel().getSelectedItem(); |
ModelData publiAPersonneSelectionnee = grilleAuteurs.getSelectionModel().getSelectedItem(); |
int index = grilleAuteurs.getStore().indexOf(pap); |
int newIndex = index; |
newIndex++; |
int index = grilleAuteurs.getStore().indexOf(publiAPersonneSelectionnee); |
int newIndex = index + 1; // l'auteur monte dans dans la liste donc son ordre diminue |
int newOrdre = newIndex + 1; // parce que index commence à zéro |
// le marqueur suivant est obligatoire sinon les évènements liés au magasin se |
// déclenchent et posent problème |
changeOrderMarker = true; |
pap.setOrdreAuteurs(String.valueOf(newIndex+1)); |
PublicationAPersonne papSwitch = grilleAuteurs.getStore().getAt(index+1); |
int newIndexPapSwitch = index + 1; |
papSwitch.setOrdreAuteurs(String.valueOf(newIndexPapSwitch)); |
grilleAuteurs.getStore().update(papSwitch); |
grilleAuteurs.getStore().remove(pap); |
grilleAuteurs.getStore().insert(pap, newIndex); |
publiAPersonneSelectionnee.set("_ordre_", String.valueOf(newOrdre)); |
ModelData publiAPersonneSwitch = grilleAuteurs.getStore().getAt(index+1); |
int newOrdrePapSwitch = index + 1; |
publiAPersonneSwitch.set("_ordre_", String.valueOf(newOrdrePapSwitch)); |
grilleAuteurs.getStore().update(publiAPersonneSwitch); |
grilleAuteurs.getStore().remove(publiAPersonneSelectionnee); |
grilleAuteurs.getStore().insert(publiAPersonneSelectionnee, newIndex); |
changeOrderMarker = false; |
grilleAuteurs.getSelectionModel().select(newIndex, true); |
323,7 → 336,7 |
bouton.setIcon(Images.ICONES.vcardModifier()); |
bouton.addSelectionListener(new SelectionListener<ButtonEvent>() { |
public void componentSelected(ButtonEvent ce) { |
Personne personneSaisieSelectionnee = grilleAuteurs.getSelectionModel().getSelectedItem().getPersonne(); |
Personne personneSaisieSelectionnee = new PublicationAPersonne(grilleAuteurs.getSelectionModel().getSelectedItem(), false).getPersonne(); |
if (personneSaisieSelectionnee == null) { |
InfoLogger.display(i18nC.informationTitreGenerique(), i18nC.selectionnerPublication()); |
339,7 → 352,7 |
private FenetreForm creerFenetreModaleAvecFormulairePersonne(String mode) { |
String personneId = null; |
if (mode.equals(Formulaire.MODE_MODIFIER)) { |
Personne personneSaisieSelectionnee = grilleAuteurs.getSelectionModel().getSelectedItem().getPersonne(); |
Personne personneSaisieSelectionnee = new PublicationAPersonne(grilleAuteurs.getSelectionModel().getSelectedItem(), false).getPersonne(); |
personneId = personneSaisieSelectionnee.getId(); |
} |
393,7 → 406,7 |
bouton.setIcon(Images.ICONES.vcardSupprimer()); |
bouton.addSelectionListener(new SelectionListener<ButtonEvent>() { |
public void componentSelected(ButtonEvent ce) { |
PublicationAPersonne personneSelectionnee = grilleAuteurs.getSelectionModel().getSelectedItem(); |
PublicationAPersonne personneSelectionnee = new PublicationAPersonne(grilleAuteurs.getSelectionModel().getSelectedItem(), false); |
if (personneSelectionnee == null) { |
InfoLogger.display(i18nC.informationTitreGenerique(), i18nC.selectionnerPublication()); |
} else { |
447,8 → 460,8 |
if (personnesSaisiesComboBox.getValeur() instanceof ModelData) { |
// N'ajouter l'auteur que s'il n'est pas déjà présent dans la grille et dans les valeurs initiales |
Personne personneSaisieSelectionnee = new Personne(personnesSaisiesComboBox.getValeur()); |
PublicationAPersonne pap = new PublicationAPersonne(); |
pap.setPersonne(personneSaisieSelectionnee); |
PublicationAPersonne pap = new PublicationAPersonne(false); |
pap.setPersonne(personneSaisieSelectionnee, true); |
pap.setOrdreAuteurs(String.valueOf(grilleAuteurs.getStore().getCount()+1)); |
if (modeDeCreation != Formulaire.MODE_AJOUTER) { |
pap.setPublicationLiee(publication); |
521,108 → 534,103 |
} |
} |
private EditorGrid<PublicationAPersonne> creerGrilleAuteurs() { |
private GrillePaginable<ModelData> creerGrilleAuteurs() { |
ListStore<PublicationAPersonne> storeGrilleAuteurs = new ListStore<PublicationAPersonne>(); |
// ModelType |
ModelType modelTypePersonnesAPublication = new ModelType(); |
modelTypePersonnesAPublication.setRoot("publicationsAPersonne"); |
modelTypePersonnesAPublication.setTotalName("nbElements"); |
modelTypePersonnesAPublication.addField("cpuap_id_personne"); |
modelTypePersonnesAPublication.addField("cpuap_id_publication"); |
modelTypePersonnesAPublication.addField("cpuap_id_role"); |
modelTypePersonnesAPublication.addField("cpuap_ordre"); |
modelTypePersonnesAPublication.addField("cp_id_personne"); |
modelTypePersonnesAPublication.addField("cp_fmt_nom_complet"); |
modelTypePersonnesAPublication.addField("cp_nom"); |
modelTypePersonnesAPublication.addField("cp_prenom"); |
modelTypePersonnesAPublication.addField("cp_id_personne"); |
modelTypePersonnesAPublication.addField("cp_code_postal"); |
modelTypePersonnesAPublication.addField("cp_ville"); |
modelTypePersonnesAPublication.addField("cp_truk_courriel"); |
// ADD Listener ------------------------------------------------------------------------------------ |
storeGrilleAuteurs.addListener(Store.Add, new Listener<StoreEvent<PublicationAPersonne>>() { |
public void handleEvent(StoreEvent<PublicationAPersonne> ce) { |
if (!changeOrderMarker) { |
// Bug de GXT : Pour récupérer l'élément modifié, j'ai dû faire comme suit |
ListStore<PublicationAPersonne> auteursStore = (ListStore<PublicationAPersonne>)ce.getSource(); |
PublicationAPersonne pap = auteursStore.getAt(ce.getIndex()); |
// Lorsque l'on reçoit une liste d'auteurs, on leur affecte l'état "modifié", puis |
// on les ajoute au magasin mais puisque chaque élément ajouté au magasin déclenche |
// l'évènement Store.Add, on est obligé de vérifier si l'objet n'a pas déjà un état |
// sinon l'évènement écrase l'état précédent |
if (pap.get("_etat_") == null) pap.set("_etat_", aDonnee.ETAT_AJOUTE); |
// Proxy |
ProxyPersonnesAPublication<ModelData> proxyPersonnesAPublication = new ProxyPersonnesAPublication<ModelData>(null, publicationId); |
// Colonnes |
List<ColumnConfig> colonnes = new ArrayList<ColumnConfig>(); |
ColumnConfig columnOrdre = new ColumnConfig("_ordre_", i18nC.ordre(), 15); |
colonnes.add(columnOrdre); |
colonnes.add(new ColumnConfig("cp_fmt_nom_complet", i18nC.personneNomComplet(), 150)); |
colonnes.add(new ColumnConfig("cp_code_postal", i18nC.personneCodePostal(), 150)); |
colonnes.add(new ColumnConfig("cp_ville", i18nC.personneVille(), 75)); |
colonnes.add(new ColumnConfig("cp_truk_courriel", i18nC.personneCourriel(), 75)); |
// Champs de traitement |
HashMap<String, String> virtualFields = new HashMap<String, String>(); |
virtualFields.put("_ordre_", "cpuap_ordre"); |
// Modele de selection |
GridSelectionModel<ModelData> modeleDeSelection = new GridSelectionModel<ModelData>(); |
modeleDeSelection.addListener(Events.SelectionChange, new SelectionChangedListener<ModelData>() { |
public void selectionChanged(SelectionChangedEvent<ModelData> se) { |
ModelData papSelectionnee = grilleAuteurs.getGrille().getSelectionModel().getSelectedItem(); |
int index = grilleAuteurs.getStore().indexOf(papSelectionnee); |
if (index >= 1) boutonAuteurUp.setEnabled(true); |
else boutonAuteurUp.setEnabled(false); |
if ((index+1) < grilleAuteurs.getStore().getCount()) boutonAuteurDown.setEnabled(true); |
else boutonAuteurDown.setEnabled(false); |
} |
}); |
ColumnModel modeleDeColonnes = new ColumnModel(colonnes); |
// Grille |
// ATTENTION : le constructure de cette grille est à vérifier! |
final GrillePaginable<ModelData> grilleAuteurs = new GrillePaginable<ModelData>(modelTypePersonnesAPublication, virtualFields, proxyPersonnesAPublication, colonnes, modeleDeColonnes); |
grilleAuteurs.getGrille().setHeight("100%"); |
grilleAuteurs.getGrille().setBorders(true); |
grilleAuteurs.getGrille().setSelectionModel(modeleDeSelection); |
grilleAuteurs.getGrille().getView().setForceFit(true); |
grilleAuteurs.getGrille().setAutoExpandColumn("fmt_nom_complet"); |
grilleAuteurs.getGrille().setStripeRows(true); |
grilleAuteurs.getGrille().setTrackMouseOver(true); |
// Rajouter des écouteurs |
grilleAuteurs.getStore().addListener(Store.Add, new Listener<StoreEvent<ModelData>>() { |
public void handleEvent(StoreEvent<ModelData> ce) { |
if (!changeOrderMarker) { |
actualiserEtatBoutonsBarreOutils(); |
} |
} |
}); |
// REMOVE Listener ------------------------------------------------------------------------------------ |
storeGrilleAuteurs.addListener(Store.Remove, new Listener<StoreEvent<PublicationAPersonne>>() { |
public void handleEvent(StoreEvent<PublicationAPersonne> ce) { |
grilleAuteurs.getStore().addListener(Store.Remove, new Listener<StoreEvent<ModelData>>() { |
public void handleEvent(StoreEvent<ModelData> ce) { |
if (!changeOrderMarker) { |
actualiserEtatBoutonsBarreOutils(); |
} |
} |
}); |
// UPDATE Listener ------------------------------------------------------------------------------------ |
storeGrilleAuteurs.addListener(Store.Update, new Listener<StoreEvent<PublicationAPersonne>>() { |
public void handleEvent(StoreEvent<PublicationAPersonne> ce) { |
grilleAuteurs.getStore().addListener(Store.Update, new Listener<StoreEvent<ModelData>>() { |
public void handleEvent(StoreEvent<ModelData> ce) { |
if (!changeOrderMarker) { |
if (ce.getRecord().isModified("ordre")) { |
/** s'il s'agit d'un auteur que l'on vient d'ajouter à la liste, alors on a pas besoin |
de faire quoique ce soit car l'auteur est déjà dans la liste des auteurs ajoutés **/ |
if (ce.getRecord().isModified("_ordre_")) { |
// s'il s'agit d'un auteur que l'on vient d'ajouter à la liste, alors on a pas besoin |
// de faire quoique ce soit car l'auteur est déjà dans la liste des auteurs ajoutés |
if (ce.getModel().get("_etat_").equals(aDonnee.ETAT_AJOUTE)) { |
// ... do nothing |
/** s'il s'agit d'un auteur qui était déjà présent dans la liste initiale, il faut |
ajouter cet auteur à la liste des auteurs modifiés **/ |
// s'il s'agit d'un auteur qui était déjà présent dans la liste initiale, il faut |
// ajouter cet auteur à la liste des auteurs modifiés |
} else { |
if (ce.getModel() instanceof PublicationAPersonne) { |
PublicationAPersonne pap = ce.getModel(); |
auteursModifies.put(pap.getId(), pap); |
} |
PublicationAPersonne pap = new PublicationAPersonne(ce.getModel(), false); |
auteursModifies.put(pap.getId(), pap); |
} |
} |
} |
} |
}); |
}); |
List<ColumnConfig> colonnes = new ArrayList<ColumnConfig>(); |
ColumnConfig columnOrdre = new ColumnConfig("ordre", i18nC.ordre(), 15); |
/* |
final TextField<String> ordre = new TextField<String>(); |
ordre.setValidator(new Validator(){ |
public String validate(Field<?> field, String value) { |
if (value.matches("[0-9]*")) return null; |
else return "[Erreur] Le champ 'ordre' doit être un nombre entier."; |
} |
}); |
*/ |
colonnes.add(columnOrdre); |
colonnes.add(new ColumnConfig("fmt_nom_complet", i18nC.personneNomComplet(), 150)); |
colonnes.add(new ColumnConfig("code_postal", i18nC.personneCodePostal(), 150)); |
colonnes.add(new ColumnConfig("ville", i18nC.personneVille(), 75)); |
colonnes.add(new ColumnConfig("truk_courriel", i18nC.personneCourriel(), 75)); |
GridSelectionModel<PublicationAPersonne> modeleDeSelection = new GridSelectionModel<PublicationAPersonne>(); |
ColumnModel modeleDeColonnes = new ColumnModel(colonnes); |
EditorGrid<PublicationAPersonne> grilleDesAuteurs = new EditorGrid<PublicationAPersonne>(storeGrilleAuteurs, modeleDeColonnes); |
modeleDeSelection.addListener(Events.SelectionChange, new SelectionChangedListener<PublicationAPersonne>() { |
public void selectionChanged(SelectionChangedEvent<PublicationAPersonne> se) { |
PublicationAPersonne papSelectionnee = grilleAuteurs.getSelectionModel().getSelectedItem(); |
int index = grilleAuteurs.getStore().indexOf(papSelectionnee); |
if (index >= 1) boutonAuteurUp.setEnabled(true); |
else boutonAuteurUp.setEnabled(false); |
if ((index+1) < grilleAuteurs.getStore().getCount()) boutonAuteurDown.setEnabled(true); |
else boutonAuteurDown.setEnabled(false); |
} |
}); |
grilleDesAuteurs.setHeight("100%"); |
grilleDesAuteurs.setBorders(true); |
grilleDesAuteurs.setSelectionModel(modeleDeSelection); |
grilleDesAuteurs.getView().setForceFit(true); |
grilleDesAuteurs.setAutoExpandColumn("fmt_nom_complet"); |
grilleDesAuteurs.setStripeRows(true); |
grilleDesAuteurs.setTrackMouseOver(true); |
return grilleDesAuteurs; |
return grilleAuteurs; |
} |
private void genererTitreFormulaire() { |
754,23 → 762,23 |
datePublicationChp.addListener(Events.Valid, creerEcouteurChampObligatoire()); |
editionFieldset.add(datePublicationChp, new FormData(40, 0)); |
/*****************************/ |
/** Champ '' **/ |
/*****************************/ |
/*********************************/ |
/** Champ 'Tome' **/ |
/*********************************/ |
tomeChp = new TextField<String>(); |
tomeChp.setFieldLabel("Série de la revue ou tome"); |
editionFieldset.add(tomeChp, new FormData(75, 0)); |
/*****************************/ |
/** Champ '' **/ |
/*****************************/ |
/*************************************/ |
/** Champ 'Fascicule' **/ |
/*************************************/ |
fasciculeChp = new TextField<String>(); |
fasciculeChp.setFieldLabel("Fascicule de la revue"); |
editionFieldset.add(fasciculeChp, new FormData(75, 0)); |
/*****************************/ |
/** Champ '' **/ |
/*****************************/ |
/*********************************/ |
/** Champ 'Pages' **/ |
/*********************************/ |
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)"); |
878,15 → 886,18 |
} |
private void formaterOrdreAuteurs() { |
ListStore<PublicationAPersonne> store = grilleAuteurs.getStore(); |
List<PublicationAPersonne> auteurs = grilleAuteurs.getStore().getModels(); |
ListStore<ModelData> store = grilleAuteurs.getStore(); |
List<ModelData> auteurs = grilleAuteurs.getStore().getModels(); |
Iterator<PublicationAPersonne> itAuteurs = auteurs.iterator(); |
Iterator<ModelData> itAuteurs = auteurs.iterator(); |
while (itAuteurs.hasNext()) { |
PublicationAPersonne pap = itAuteurs.next(); |
int ordre = store.indexOf(pap) + 1; |
ModelData selection = itAuteurs.next(); |
PublicationAPersonne pap = new PublicationAPersonne(selection, false); |
int ordre = store.indexOf(selection) + 1; |
if (pap.getOrdreAuteurs() != String.valueOf(ordre)) { |
pap.setOrdreAuteurs(String.valueOf(ordre)); |
pap.setOrdreAuteurs(String.valueOf(ordre)); |
auteursModifies.put(pap.getId(), pap); |
} |
} |
971,13 → 982,13 |
private String construireIntituleAuteur() { |
String intituleAuteur = ""; |
// ranger par ordre désigné par le champ 'cpuap_ordre' de la table PublicationAPersonne |
grilleAuteurs.getStore().sort("ordre", SortDir.ASC); |
List<PublicationAPersonne> auteurs = grilleAuteurs.getStore().getModels(); |
Iterator<PublicationAPersonne> itAuteurs = auteurs.iterator(); |
// rangé par ordre désigné par le champ 'cpuap_ordre' de la table PublicationAPersonne |
grilleAuteurs.getStore().sort("_ordre_", SortDir.ASC); |
List<ModelData> auteurs = grilleAuteurs.getStore().getModels(); |
Iterator<ModelData> itAuteurs = auteurs.iterator(); |
while (itAuteurs.hasNext()) { |
Personne personneCourante = itAuteurs.next().getPersonne(); |
Personne personneCourante = new PublicationAPersonne(itAuteurs.next(), false).getPersonne(); |
intituleAuteur += personneCourante.getNom().toUpperCase() + " " + personneCourante.getPrenom(); |
if (itAuteurs.hasNext()) { |
intituleAuteur+=", "; |
1110,12 → 1121,17 |
return valeur; |
} |
private void setValeurComboProjets() { |
if (projetsCombo.getStore() != null ) { |
if (mode.equals(Formulaire.MODE_MODIFIER) && publication != null) { |
projetsCombo.getCombo().setValue(projetsCombo.getStore().findModel("cpr_id_projet", publication.getIdProjet())); |
} else if (mode.equals(Formulaire.MODE_AJOUTER)) { |
projetsCombo.getCombo().setValue(projetsCombo.getStore().findModel("cpr_id_projet", mediateur.getProjetId())); |
if (mode.equals(Formulaire.MODE_MODIFIER) && publication != null) { |
if (projetsCombo.getCombo().getStore() != null |
&& publication != null |
&& publication.getIdProjet() != null |
&& !UtilString.isEmpty(publication.getIdProjet())) { |
projetsCombo.chargerValeurInitiale(publication.getIdProjet(), "cpr_id_projet"); |
} |
} else if (mode.equals(Formulaire.MODE_AJOUTER)) { |
projetsCombo.getCombo().setValue(projetsCombo.getStore().findModel("cpr_id_projet", mediateur.getProjetId())); |
} else { |
projetsCombo.getCombo().setValue(null); |
} |
} |
1125,8 → 1141,6 |
public void rafraichir(Object nouvellesDonnees) { |
if (nouvellesDonnees instanceof Publication) { |
publication = (Publication) nouvellesDonnees; |
} else if (nouvellesDonnees instanceof PublicationAPersonneListe) { |
rafraichirListeAuteurs((PublicationAPersonneListe) nouvellesDonnees); |
} else if (nouvellesDonnees instanceof Information) { |
rafraichirInformation((Information) nouvellesDonnees); |
} else { |
1134,23 → 1148,9 |
} |
} |
private void rafraichirListeAuteurs(PublicationAPersonneListe auteurs) { |
Iterator<String> it = auteurs.keySet().iterator(); |
while (it.hasNext()) { |
PublicationAPersonne auteur = auteurs.get(it.next()); |
auteur.set("_etat_", aDonnee.ETAT_MODIFIE); |
auteursInitialListe.put(auteur.getId(), auteur); |
} |
private void rafraichirInformation(Information info) { |
grilleAuteurs.getStore().removeAll(); |
grilleAuteurs.getStore().add(auteursInitialListe.toList()); |
grilleAuteurs.getStore().sort("ordre", SortDir.ASC); |
layout(); |
} |
private void rafraichirInformation(Information info) { |
String type = info.getType(); |
if (type.equals("auteurs_enregistres")) { |
miseAJourAuteursInitialListe(); |
initialiserAuteurs(); |
1179,7 → 1179,7 |
if (modeDeCreation != Formulaire.MODE_AJOUTER) pap.setPublicationLiee(publication); |
// supprimer l'entrée précédente |
PublicationAPersonne personneDansGrille = grilleAuteurs.getStore().findModel("id_personne", personne.getId()); |
PublicationAPersonne personneDansGrille = new PublicationAPersonne(grilleAuteurs.getStore().findModel("cp_id_personne", personne.getId()), false); |
int index = grilleAuteurs.getStore().indexOf(personneDansGrille); |
grilleAuteurs.getStore().remove(personneDansGrille); |
1199,7 → 1199,7 |
} else { |
InfoLogger.display("Ajout d'une publication", info.toString()); |
} |
} |
} |
} |
private void repandreRafraichissement() { |
Property changes: |
Modified: svn:mergeinfo |
Merged /trunk/src/org/tela_botanica/client/vues/publication/PublicationForm.java:r11-934 |
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/publication/PublicationForm.java:r1417-1511 |
/trunk/src/org/tela_botanica/client/vues/publication/PublicationVue.java |
---|
Property changes: |
Modified: svn:mergeinfo |
Merged /trunk/src/org/tela_botanica/client/vues/publication/PublicationVue.java:r11-934 |
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/publication/PublicationVue.java:r1417-1511 |
/trunk/src/org/tela_botanica/client/vues/publication/PublicationListeVue.java |
---|
Property changes: |
Modified: svn:mergeinfo |
Merged /trunk/src/org/tela_botanica/client/vues/publication/PublicationListeVue.java:r11-934 |
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/publication/PublicationListeVue.java:r1417-1511 |
/trunk/src/org/tela_botanica/client/vues/publication/PublicationDetailVue.java |
---|
Property changes: |
Modified: svn:mergeinfo |
Merged /trunk/src/org/tela_botanica/client/vues/publication/PublicationDetailVue.java:r11-934 |
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/publication/PublicationDetailVue.java:r1417-1511 |
/trunk/src/org/tela_botanica/client/vues/publication |
---|
Property changes: |
Modified: svn:mergeinfo |
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/publication:r1417-1511 |
Merged /trunk/src/org/tela_botanica/client/vues/publication:r11-934 |
/trunk/src/org/tela_botanica/client/vues/ContenuVue.java |
---|
Property changes: |
Modified: svn:mergeinfo |
Merged /trunk/src/org/tela_botanica/client/vues/ContenuVue.java:r11-443,923-935 |
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/ContenuVue.java:r1417-1511 |
/trunk/src/org/tela_botanica/client/vues/FormulaireBarreValidation.java |
---|
Property changes: |
Modified: svn:mergeinfo |
Merged /trunk/src/org/tela_botanica/client/vues/FormulaireBarreValidation.java:r11-774 |
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/FormulaireBarreValidation.java:r1417-1511 |
/trunk/src/org/tela_botanica/client/vues/PopupChargement.java |
---|
Property changes: |
Modified: svn:mergeinfo |
Merged /trunk/src/org/tela_botanica/client/vues/PopupChargement.java:r11-334 |
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/PopupChargement.java:r1417-1511 |
/trunk/src/org/tela_botanica/client/vues/EnteteVue.java |
---|
Property changes: |
Modified: svn:mergeinfo |
Merged /trunk/src/org/tela_botanica/client/vues/EnteteVue.java:r11-443 |
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/EnteteVue.java:r1417-1511 |
/trunk/src/org/tela_botanica/client/vues/StatutVue.java |
---|
Property changes: |
Modified: svn:mergeinfo |
Merged /trunk/src/org/tela_botanica/client/vues/StatutVue.java:r11-442 |
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/StatutVue.java:r1417-1511 |
/trunk/src/org/tela_botanica/client/vues/Formulaire.java |
---|
Property changes: |
Modified: svn:mergeinfo |
Merged /trunk/src/org/tela_botanica/client/vues/Formulaire.java:r11-636,649-686 |
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/Formulaire.java:r1417-1511 |
/trunk/src/org/tela_botanica/client/vues/FiltreVue.java |
---|
Property changes: |
Modified: svn:mergeinfo |
Merged /trunk/src/org/tela_botanica/client/vues/FiltreVue.java:r11-981 |
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/FiltreVue.java:r1417-1511 |
/trunk/src/org/tela_botanica/client/vues/personne/PersonneFormPublication.java |
---|
1,6 → 1,7 |
package org.tela_botanica.client.vues.personne; |
import java.util.ArrayList; |
import java.util.HashMap; |
import java.util.Iterator; |
import java.util.LinkedList; |
import java.util.List; |
7,7 → 8,12 |
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.GrillePaginable; |
import org.tela_botanica.client.composants.InfoLogger; |
import org.tela_botanica.client.composants.pagination.ProxyCollectionAPublication; |
import org.tela_botanica.client.composants.pagination.ProxyPublications; |
import org.tela_botanica.client.composants.pagination.ProxyPublicationsAPersonne; |
import org.tela_botanica.client.images.Images; |
import org.tela_botanica.client.interfaces.Rafraichissable; |
import org.tela_botanica.client.modeles.Information; |
29,6 → 35,8 |
import org.tela_botanica.client.vues.publication.PublicationForm; |
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; |
45,7 → 53,9 |
import com.extjs.gxt.ui.client.widget.button.Button; |
import com.extjs.gxt.ui.client.widget.button.ButtonBar; |
import com.extjs.gxt.ui.client.widget.form.ComboBox; |
import com.extjs.gxt.ui.client.widget.form.Field; |
import com.extjs.gxt.ui.client.widget.form.FormPanel; |
import com.extjs.gxt.ui.client.widget.form.Validator; |
import com.extjs.gxt.ui.client.widget.form.ComboBox.TriggerAction; |
import com.extjs.gxt.ui.client.widget.grid.CellEditor; |
import com.extjs.gxt.ui.client.widget.grid.ColumnConfig; |
70,16 → 80,18 |
private ContentPanel panneauPrincipal = null; |
private ToolBar barreOutils = null; |
private EditorGrid<PublicationAPersonne> grille; |
private GrillePaginable<ModelData> grille; |
private PublicationAPersonneListe publicationsAjoutees = null; |
private PublicationAPersonneListe publicationsSupprimees = null; |
private ComboBox<Publication> publicationsSaisiesComboBox = null; |
private ChampComboBoxRechercheTempsReelPaginable publicationsSaisiesComboBox = null; |
private Button publicationsBoutonSupprimer = null; |
private Button publicationsBoutonModifier = null; |
private ComboBox<Valeur> typeRelationCombo = null; |
private List<Valeur> roles = null; |
private PublicationAPersonneListe listePublicationsLiees = new PublicationAPersonneListe(); |
boolean personneRecue = false; |
boolean rolesRecus = false; |
private FenetreForm fenetreFormulaire = null; |
86,56 → 98,36 |
public PersonneFormPublication(Formulaire formulaireCourrant) { |
initialiserOnglet(formulaireCourrant); |
setId("publication"); |
setText(Mediateur.i18nC.collectionPublication()); |
setText(Mediateur.i18nC.personneOngletPublication()); |
setStyleAttribute("padding", "0"); |
initialiser(); |
panneauPrincipal = creerPanneauContenantGrille(); |
setLayout(new FitLayout()); |
barreOutils = creerBarreOutilsGrille(); |
panneauPrincipal.setTopComponent(barreOutils); |
panneauPrincipal.setLayout(new FitLayout()); |
grille = creerGrille(); |
panneauPrincipal.add(grille); |
add(panneauPrincipal); |
initialiser(); |
} |
private void initialiser() { |
// Remise à zéro des modification dans la liste des auteurs |
idGenere = 1; |
publicationsAjoutees = new PublicationAPersonneListe(); |
publicationsSupprimees = new PublicationAPersonneListe(); |
// Actualisation de l'état des boutons de la barre d'outils |
actualiserEtatBoutonsBarreOutils(); |
} |
public void mettreAJourPersonne() { |
public void mettreAJourPersonne() { |
personneSelectionnee = ((PersonneForm) formulaire).personneSelectionnee; |
//Boucle sur les role pour trouver les publication à personne |
// FIXME ! |
//------------------- |
// Author : Cyprien |
//------------------- |
// J'ai rajouté le test (toString()!="") parce que bien que l'objet personneSelectionne soit vide, (personneSelectionnee!=null) retournait |
// tout de meme VRAI |
// Mais le vrai problème, c'est que personneSelectionne puisse être nul ! personneSelectionne devrait toujours etre affecté à quelqu'un. |
// De plus, il y a un étrange comportement lorsque l'on clique sur "modifier" une personne : je ne sais pas pourquoi mais les opérations |
// s'effectuent deux fois au lieu d'une, c-a-d que le formulaire lance deux fois l'operation rafraichir au lieu d'une ... et l'opération |
// rafraichir lance à son tour de nombreuses opérations qui en conséquence sont effectuées deux fois au lieu d'une |
if ((roles != null) && (personneSelectionnee!=null) && (!personneSelectionnee.toString().equals(""))) { |
mediateur.selectionnerPublicationAPersonne(this, null, personneSelectionnee.getId(), roles, null); |
} |
} |
private ContentPanel creerPanneauContenantGrille() { |
ContentPanel panneau = new ContentPanel(); |
panneau.setHeading(i18nC.collectionPublication()+" " + i18nC.personnePublication()); |
panneau.setHeading(i18nC.personneOngletPublication()+" " + i18nC.personnePublication()); |
panneau.setIcon(Images.ICONES.table()); |
panneau.setLayout(new FitLayout()); |
panneau.setFrame(true); |
189,7 → 181,7 |
bouton.setIcon(Images.ICONES.vcardModifier()); |
bouton.addSelectionListener(new SelectionListener<ButtonEvent>() { |
public void componentSelected(ButtonEvent ce) { |
PublicationAPersonne publicationSaisieSelectionnee = grille.getSelectionModel().getSelectedItem(); |
ModelData publicationSaisieSelectionnee = grille.getGrille().getSelectionModel().getSelectedItem(); |
if (publicationSaisieSelectionnee == null) { |
InfoLogger.display(i18nC.informationTitreGenerique(), i18nC.selectionnerPublication()); |
205,7 → 197,7 |
private FenetreForm creerFenetreModaleAvecFormulairePersonne(String mode) { |
String publicationId = null; |
if (mode.equals(Formulaire.MODE_MODIFIER)) { |
PublicationAPersonne publicationSaisiSelectionne = grille.getSelectionModel().getSelectedItem(); |
PublicationAPersonne publicationSaisiSelectionne = new PublicationAPersonne(grille.getGrille().getSelectionModel().getSelectedItem(), false); |
publicationId = publicationSaisiSelectionne.getIdPublication(); |
} |
259,7 → 251,7 |
bouton.setIcon(Images.ICONES.vcardSupprimer()); |
bouton.addSelectionListener(new SelectionListener<ButtonEvent>() { |
public void componentSelected(ButtonEvent ce) { |
PublicationAPersonne publicationSaisieSelectionnee = grille.getSelectionModel().getSelectedItem(); |
PublicationAPersonne publicationSaisieSelectionnee = new PublicationAPersonne(grille.getGrille().getSelectionModel().getSelectedItem(), false); |
if (publicationSaisieSelectionnee == null) { |
InfoLogger.display(i18nC.informationTitreGenerique(), i18nC.selectionnerPublication()); |
} else { |
290,35 → 282,62 |
} |
} |
private ComboBox<Publication> creerComboBoxPublicationsSaisis() { |
ListStore<Publication> publicationsSaisiesStore = new ListStore<Publication>(); |
private ChampComboBoxRechercheTempsReelPaginable creerComboBoxPublicationsSaisis() { |
ComboBox<Publication> comboBox = new ComboBox<Publication>(); |
comboBox.setWidth(400); |
comboBox.setEmptyText(i18nC.chercherPublicationSaisi()); |
comboBox.setTriggerAction(TriggerAction.ALL); |
comboBox.setEditable(true); |
comboBox.setDisplayField("fmt_nom_complet"); |
comboBox.setStore(publicationsSaisiesStore); |
comboBox.addKeyListener(new KeyListener() { |
public void componentKeyUp(ComponentEvent ce) { |
if (publicationsSaisiesComboBox.getRawValue() != null && publicationsSaisiesComboBox.getRawValue().length() > 0) { |
if (!ce.isNavKeyPress()) { |
obtenirPublicationsSaisies(publicationsSaisiesComboBox.getRawValue()); |
} |
ModelType modelTypePublications = new ModelType(); |
modelTypePublications.setRoot("publications"); |
modelTypePublications.setTotalName("nbElements"); |
modelTypePublications.addField("ccapu_id_personne"); |
modelTypePublications.addField("ccapu_id_publication"); |
modelTypePublications.addField("cpu_id_publication"); |
modelTypePublications.addField("cpu_fmt_nom_complet"); |
modelTypePublications.addField("cpu_titre"); |
modelTypePublications.addField("cpu_nom"); |
modelTypePublications.addField("cpu_fmt_auteur"); |
modelTypePublications.addField("cpu_indication_nvt"); |
modelTypePublications.addField("cpu_truk_pages"); |
modelTypePublications.addField("cpu_fascicule"); |
modelTypePublications.addField("cpu_date_parution"); |
modelTypePublications.addField("cpu_ce_truk_editeur"); |
modelTypePublications.addField("cpu_ce_projet"); |
modelTypePublications.addField("cpu_collection"); |
String displayNamePublications = "cpu_fmt_nom_complet"; |
ProxyPublications<ModelData> proxyPublications= new ProxyPublications<ModelData>(null); |
final ChampComboBoxRechercheTempsReelPaginable publicationsCombo = new ChampComboBoxRechercheTempsReelPaginable(proxyPublications, modelTypePublications, displayNamePublications); |
publicationsCombo.getCombo().setTabIndex(tabIndex++); |
publicationsCombo.getCombo().setForceSelection(true); |
publicationsCombo.getCombo().setValidator(new Validator() { |
public String validate(Field<?> field, String value) { |
String retour = null; |
if (field.getRawValue().equals("")) { |
field.setValue(null); |
} else if (publicationsCombo.getStore().findModel("cpu_fmt_nom_complet", field.getRawValue()) == null) { |
String contenuBrut = field.getRawValue(); |
field.setValue(null); |
field.setRawValue(contenuBrut); |
retour = "Veuillez sélectionner une valeur ou laisser le champ vide"; |
} |
return retour; |
} |
}); |
comboBox.addListener(Events.Select, new Listener<BaseEvent>() { |
publicationsCombo.getCombo().addListener(Events.Select, new Listener<BaseEvent>() { |
public void handleEvent(BaseEvent be) { |
if (publicationsSaisiesComboBox.getValue() instanceof Publication) { |
Publication publicationSaisieSelectionne = publicationsSaisiesComboBox.getValue(); |
if (publicationsSaisiesComboBox.getValeur() instanceof ModelData) { |
Publication publicationSaisieSelectionne = new Publication(publicationsSaisiesComboBox.getValeur(), false); |
ajouterDansGrille(publicationSaisieSelectionne); |
publicationsSaisiesComboBox.setValue(null); |
publicationsSaisiesComboBox.getCombo().setValue(null); |
} |
} |
}); |
return comboBox; |
return publicationsCombo; |
} |
private void ajouterDansGrille(Publication publication) { |
328,7 → 347,7 |
private void ajouterDansGrille(Publication publication, int index) { |
if (publication != null) { |
if (!listePublicationsLiees.containsKey(publication.getId())) { |
PublicationAPersonne publicationLiee = new PublicationAPersonne(); |
PublicationAPersonne publicationLiee = new PublicationAPersonne(false); |
publicationLiee.setPersonne(personneSelectionnee); |
publicationLiee.setPublicationLiee(publication); |
publicationLiee.setIdPublication(publication.getId()); |
335,12 → 354,12 |
publicationLiee.set("_etat_", aDonnee.ETAT_AJOUTE); |
listePublicationsLiees.put(publication.getId(), publicationLiee); |
// Ajout à la grille |
grille.stopEditing(); |
grille.getStore().insert(publicationLiee, 0); |
grille.startEditing(index, 0); |
grille.getSelectionModel().select(index, false); |
grille.getGrille().stopEditing(); |
grille.getGrille().getStore().insert(publicationLiee, 0); |
grille.getGrille().startEditing(index, 0); |
grille.getGrille().getSelectionModel().select(index, false); |
} else { |
InfoLogger.display("Information", "La publication choisie existe déjà dans la liste."); |
} |
370,44 → 389,127 |
} |
} |
private EditorGrid<PublicationAPersonne> creerGrille() { |
private GrillePaginable<ModelData> creerGrille() { |
ListStore<PublicationAPersonne> storeGrille = new ListStore<PublicationAPersonne>(); |
storeGrille.addListener(Store.Add, new Listener<StoreEvent<PublicationAPersonne>>() { |
public void handleEvent(StoreEvent<PublicationAPersonne> ce) { |
actualiserEtatBoutonsBarreOutils(); |
} |
}); |
storeGrille.addListener(Store.Remove, new Listener<StoreEvent<PublicationAPersonne>>() { |
public void handleEvent(StoreEvent<PublicationAPersonne> ce) { |
actualiserEtatBoutonsBarreOutils(); |
} |
}); |
storeGrille.addListener(Store.Update, new Listener<StoreEvent<PublicationAPersonne>>() { |
public void handleEvent(StoreEvent<PublicationAPersonne> ce) { |
if (ce.getRecord().isModified("_role_") && !ce.getModel().get("_etat_").equals(aDonnee.ETAT_AJOUTE)) { |
ce.getModel().set("_etat_", aDonnee.ETAT_MODIFIE); |
} |
} |
}); |
GrillePaginable<ModelData> grillePublications = null; |
// ModelType |
ModelType modelTypePublicationAPersonne = new ModelType(); |
modelTypePublicationAPersonne.setRoot("publicationsAPersonne"); |
modelTypePublicationAPersonne.setTotalName("nbElements"); |
modelTypePublicationAPersonne.addField("cpuap_id_personne"); |
modelTypePublicationAPersonne.addField("cpuap_id_publication"); |
modelTypePublicationAPersonne.addField("cpuap_id_role"); |
modelTypePublicationAPersonne.addField("cpu_id_publication"); |
modelTypePublicationAPersonne.addField("cpu_fmt_auteur"); |
modelTypePublicationAPersonne.addField("cpu_titre"); |
modelTypePublicationAPersonne.addField("cpu_collection"); |
modelTypePublicationAPersonne.addField("cpu_ce_truk_editeur"); |
modelTypePublicationAPersonne.addField("cpu_date_parution"); |
modelTypePublicationAPersonne.addField("cpu_fascicule"); |
modelTypePublicationAPersonne.addField("cpu_truk_pages"); |
modelTypePublicationAPersonne.addField("cpu_indication_nvt"); |
// Proxy |
ProxyPublicationsAPersonne<ModelData> proxyPublicationsAPersonne = new ProxyPublicationsAPersonne<ModelData>(null, null, null); |
// Colonnes |
List<ColumnConfig> colonnes = new ArrayList<ColumnConfig>(); |
RowNumberer numeroPlugin = new RowNumberer(); |
numeroPlugin.setHeader("#"); |
XTemplate infoTpl = XTemplate.create("<p>"+ |
"<span style='font-weight:bold;'>"+i18nC.publicationAuteurs()+" :</span> {fmt_auteur}<br />"+ |
"<span style='font-weight:bold;'>"+i18nC.publicationTitre()+" :</span> {titre}<br />"+ |
"<span style='font-weight:bold;'>"+i18nC.publicationRevueCollection()+" :</span> {collection}<br />"+ |
"<span style='font-weight:bold;'>"+i18nC.publicationAuteurs()+" :</span> {cpu_fmt_auteur}<br />"+ |
"<span style='font-weight:bold;'>"+i18nC.publicationTitre()+" :</span> {cpu_titre}<br />"+ |
"<span style='font-weight:bold;'>"+i18nC.publicationRevueCollection()+" :</span> {cpu_collection}<br />"+ |
"<span style='font-weight:bold;'>"+i18nC.publicationEditeur()+" :</span> {_editeur_}"+ |
"</p>"); |
RowExpander expansionPlugin = new RowExpander(); |
expansionPlugin.setTemplate(infoTpl); |
List<ColumnConfig> colonnes = new ArrayList<ColumnConfig>(); |
colonnes.add(expansionPlugin); |
colonnes.add(numeroPlugin); |
colonnes.add(creerColonneTypeRelation()); |
colonnes.add(new ColumnConfig("cpu_fmt_auteur", i18nC.publicationAuteurs(), 150)); |
colonnes.add(new ColumnConfig("cpu_titre", i18nC.publicationTitre(), 150)); |
colonnes.add(new ColumnConfig("cpu_collection", i18nC.publicationRevueCollection(), 75)); |
colonnes.add(creerColonneEditeur()); |
colonnes.add(creerColonneAnneePublication()); |
colonnes.add(new ColumnConfig("cpu_indication_nvt", i18nC.publicationNvt(), 75)); |
colonnes.add(new ColumnConfig("cpu_fascicule", i18nC.publicationFascicule(), 75)); |
colonnes.add(new ColumnConfig("cpu_truk_pages", i18nC.publicationPage(), 50)); |
HashMap<String, String> virtualFields = new HashMap<String, String>(); |
virtualFields.put("_editeur_", "cpu_ce_truk_editeur"); |
virtualFields.put("_annee_", "cpu_date_parution"); |
virtualFields.put("_role_", "cpuap_id_role"); |
virtualFields.put("_etat_", ""); |
// Modele de selection |
GridSelectionModel<ModelData> modeleDeSelection = new GridSelectionModel<ModelData>(); |
ColumnModel modeleDeColonnes = new ColumnModel(colonnes); |
modeleDeColonnes.getColumn(0).setWidget(Images.ICONES.information().createImage(), "Info"); |
// Grille |
grillePublications = new GrillePaginable<ModelData>(modelTypePublicationAPersonne, virtualFields, proxyPublicationsAPersonne, colonnes, modeleDeColonnes); |
grillePublications.getGrille().setBorders(true); |
grillePublications.getGrille().setSelectionModel(modeleDeSelection); |
grillePublications.getGrille().addPlugin(expansionPlugin); |
grillePublications.getGrille().addPlugin(numeroPlugin); |
grillePublications.getGrille().getView().setForceFit(true); |
grillePublications.getGrille().setAutoExpandColumn("titre"); |
grillePublications.getGrille().setStripeRows(true); |
grillePublications.getGrille().setTrackMouseOver(true); |
// Rajouter des écouteurs |
grillePublications.getStore().addListener(Store.Add, new Listener<StoreEvent<ModelData>>() { |
public void handleEvent(StoreEvent<ModelData> ce) { |
actualiserEtatBoutonsBarreOutils(); |
} |
}); |
grillePublications.getStore().addListener(Store.Remove, new Listener<StoreEvent<ModelData>>() { |
public void handleEvent(StoreEvent<ModelData> ce) { |
actualiserEtatBoutonsBarreOutils(); |
} |
}); |
grillePublications.getStore().addListener(Store.Update, new Listener<StoreEvent<ModelData>>() { |
public void handleEvent(StoreEvent<ModelData> ce) { |
if (ce.getModel().get("_role_") != null && ce.getRecord().isModified("_role_") && ce.getModel().get("_etat_") != null && !ce.getModel().get("_etat_").equals(aDonnee.ETAT_AJOUTE)) { |
ce.getModel().set("_etat_", aDonnee.ETAT_MODIFIE); |
} |
} |
}); |
return grillePublications; |
} |
private ColumnConfig creerColonneEditeur() { |
GridCellRenderer<ModelData> editeurRendu = new GridCellRenderer<ModelData>() { |
public String render(ModelData model, String property, ColumnData config, int rowIndex, int colIndex, ListStore<ModelData> store, Grid<ModelData> grid) { |
PublicationAPersonne pap = new PublicationAPersonne(model, true); |
String editeur = pap.getPublicationLiee().getNomEditeur(); |
model.set("_editeur_", editeur); |
return editeur; |
} |
}; |
ColumnConfig editeurColonne = new ColumnConfig("_editeur_", Mediateur.i18nC.publicationEditeur(), 135); |
editeurColonne.setRenderer(editeurRendu); |
return editeurColonne; |
} |
private ColumnConfig creerColonneAnneePublication() { |
GridCellRenderer<ModelData> datePublicationRendu = new GridCellRenderer<ModelData>() { |
public String render(ModelData model, String property, ColumnData config, int rowIndex, int colIndex, ListStore<ModelData> store, Grid<ModelData> grid) { |
PublicationAPersonne pap = new PublicationAPersonne(model, true); |
String annee = pap.getPublicationLiee().getAnneeParution(); |
model.set("_annee_", annee); |
return annee; |
} |
}; |
ColumnConfig datePublicationColonne = new ColumnConfig("_annee_", Mediateur.i18nC.publicationDateParution(), 75); |
datePublicationColonne.setRenderer(datePublicationRendu); |
return datePublicationColonne; |
} |
private ColumnConfig creerColonneTypeRelation() { |
typeRelationCombo = new ComboBox<Valeur>(); |
typeRelationCombo.setForceSelection(true); |
typeRelationCombo.setTriggerAction(TriggerAction.ALL); |
441,17 → 543,24 |
} |
} |
return retour; |
} |
} |
}; |
GridCellRenderer<PublicationAPersonne> relationRendu = new GridCellRenderer<PublicationAPersonne>() { |
public String render(PublicationAPersonne modele, String property, ColumnData config, int rowIndex, int colIndex, ListStore<PublicationAPersonne> store, Grid<PublicationAPersonne> grille) { |
GridCellRenderer<ModelData> relationRendu = new GridCellRenderer<ModelData>() { |
public String render(ModelData modele, String property, ColumnData config, int rowIndex, int colIndex, ListStore<ModelData> store, Grid<ModelData> grille) { |
// Gestion du texte afficher dans la cellule |
String role = modele.get("_role_"); |
String roleNom = ""; |
if (typeRelationCombo.getStore() != null && role!=null && role.matches("[0-9]+")) { |
roleNom = typeRelationCombo.getStore().findModel("id_valeur", role).getNom(); |
role = typeRelationCombo.getStore().findModel("id_valeur", role).getId(); |
if (typeRelationCombo.getStore().findModel("id_valeur", role) != null) { |
roleNom = typeRelationCombo.getStore().findModel("id_valeur", role).getNom(); |
role = typeRelationCombo.getStore().findModel("id_valeur", role).getId(); |
} else { Debug.log("role recherche="+role); |
Debug.log("typeRelationCombo.getStore().getCount()="+typeRelationCombo.getStore().getCount()); |
for(int i=0; i<typeRelationCombo.getStore().getCount(); i++) { |
Debug.log(""+typeRelationCombo.getStore().getAt(i)); |
} |
} |
} |
modele.set("_role_", role); |
return roleNom; |
458,65 → 567,12 |
} |
}; |
ColumnConfig typeRelationColonne = new ColumnConfig("_role_", i18nC.typeRelationPersonneCollection(), 75); |
ColumnConfig typeRelationColonne = new ColumnConfig("_role_", i18nC.typeRelationPersonne(), 75); |
typeRelationColonne.setEditor(editeurRelation); |
typeRelationColonne.setRenderer(relationRendu); |
colonnes.add(typeRelationColonne); |
colonnes.add(new ColumnConfig("fmt_auteur", i18nC.publicationAuteurs(), 150)); |
colonnes.add(new ColumnConfig("titre", i18nC.publicationTitre(), 150)); |
colonnes.add(new ColumnConfig("collection", i18nC.publicationRevueCollection(), 75)); |
colonnes.add(creerColonneEditeur()); |
colonnes.add(creerColonneAnneePublication()); |
colonnes.add(new ColumnConfig("indication_nvt", i18nC.publicationNvt(), 75)); |
colonnes.add(new ColumnConfig("fascicule", i18nC.publicationFascicule(), 75)); |
colonnes.add(new ColumnConfig("truk_pages", i18nC.publicationPage(), 50)); |
GridSelectionModel<PublicationAPersonne> modeleDeSelection = new GridSelectionModel<PublicationAPersonne>(); |
ColumnModel modeleDeColonnes = new ColumnModel(colonnes); |
modeleDeColonnes.getColumn(0).setWidget(Images.ICONES.information().createImage(), "Info"); |
EditorGrid<PublicationAPersonne> grillePublications = new EditorGrid<PublicationAPersonne>(storeGrille, modeleDeColonnes); |
grillePublications.setHeight("100%"); |
grillePublications.setBorders(true); |
grillePublications.setSelectionModel(modeleDeSelection); |
grillePublications.addPlugin(expansionPlugin); |
grillePublications.addPlugin(numeroPlugin); |
grillePublications.getView().setForceFit(true); |
grillePublications.setAutoExpandColumn("titre"); |
grillePublications.setStripeRows(true); |
grillePublications.setTrackMouseOver(true); |
return grillePublications; |
return typeRelationColonne; |
} |
private ColumnConfig creerColonneEditeur() { |
GridCellRenderer<PublicationAPersonne> editeurRendu = new GridCellRenderer<PublicationAPersonne>() { |
public String render(PublicationAPersonne model, String property, ColumnData config, int rowIndex, int colIndex, ListStore<PublicationAPersonne> store, Grid<PublicationAPersonne> grid) { |
String editeur = model.getPublicationLiee().getNomEditeur(); |
model.set("_editeur_", editeur); |
return editeur; |
} |
}; |
ColumnConfig editeurColonne = new ColumnConfig("_editeur_", Mediateur.i18nC.publicationEditeur(), 135); |
editeurColonne.setRenderer(editeurRendu); |
return editeurColonne; |
} |
private ColumnConfig creerColonneAnneePublication() { |
GridCellRenderer<PublicationAPersonne> datePublicationRendu = new GridCellRenderer<PublicationAPersonne>() { |
public String render(PublicationAPersonne model, String property, ColumnData config, int rowIndex, int colIndex, ListStore<PublicationAPersonne> store, Grid<PublicationAPersonne> grid) { |
String annee = model.getPublicationLiee().getAnneeParution(); |
model.set("_annee_", annee); |
return annee; |
} |
}; |
ColumnConfig datePublicationColonne = new ColumnConfig("_annee_", Mediateur.i18nC.publicationDateParution(), 75); |
datePublicationColonne.setRenderer(datePublicationRendu); |
return datePublicationColonne; |
} |
public void actualiserEtatBoutonsBarreOutils() { |
// Activation des boutons si la grille contient un élément |
544,14 → 600,11 |
if (listeValeurs.getId().equals(config.getListeId("relationPersonnePublication"))) { |
Formulaire.rafraichirComboBox(listeValeurs, typeRelationCombo); |
roles = listeValeurs.toList(); |
mettreAJourPersonne(); |
rolesRecus = true; |
((ProxyPublicationsAPersonne)grille.getProxy()).setRolesId(roles); |
if (rolesRecus && personneRecue) grille.reload(); |
} |
} |
else if (nouvellesDonnees instanceof PublicationListe) |
{ |
PublicationListe listePublications = (PublicationListe) nouvellesDonnees; |
rafraichirPublicationListe(listePublications); |
} |
else if (nouvellesDonnees instanceof PublicationAPersonneListe) |
{ |
PublicationAPersonneListe papl = (PublicationAPersonneListe) nouvellesDonnees; |
570,12 → 623,6 |
GWT.log(Mediateur.i18nM.erreurRafraichir(nouvellesDonnees.getClass(), this.getClass()), null); |
} |
} |
private void rafraichirPublicationListe(PublicationListe listePublications) { |
publicationsSaisiesComboBox.getStore().removeAll(); |
publicationsSaisiesComboBox.getStore().add(listePublications.toList()); |
publicationsSaisiesComboBox.expand(); |
} |
public void rafraichirInformation(Information info) { |
if (info.getMessages() != null && !info.getMessages().toString().equals("[]")) { |
582,7 → 629,12 |
GWT.log("MESSAGES:\n"+info.getMessages().toString(), null); |
} |
String type = info.getType(); |
if (type.equals("publication_liees")) { |
if (type.equals("personne")) { |
mettreAJourPersonne(); |
((ProxyPublicationsAPersonne)grille.getProxy()).setPersonneId(personneSelectionnee.getId()); |
personneRecue = true; |
if (rolesRecus && personneRecue) grille.reload(); |
} else if (type.equals("publication_liees")) { |
if (info.getDonnee(0) != null) { |
initialiser(); |
personneSelectionnee.setPublicationsLiees((PublicationAPersonneListe) info.getDonnee(0)); |
591,7 → 643,7 |
} else if (type.equals("publication_modifiee")) { |
if (info.getDonnee(0) != null) { |
Publication publication = (Publication) info.getDonnee(0); |
PublicationAPersonne publicationDansGrille = grille.getStore().findModel("id_publication", publication.getId()); |
ModelData publicationDansGrille = grille.getStore().findModel("cpu_id_publication", publication.getId()); |
int index = grille.getStore().indexOf(publicationDansGrille); |
grille.getStore().remove(publicationDansGrille); |
ajouterDansGrille(publication, index); |
622,17 → 674,18 |
if (etreAccede()) { |
int nbrePublication = grille.getStore().getCount(); |
for (int i = 0; i < nbrePublication; i++) { |
PublicationAPersonne publicationLiee = grille.getStore().getAt(i); |
ModelData publicationLiee = grille.getStore().getAt(i); |
PublicationAPersonne pap = new PublicationAPersonne(publicationLiee, false); |
if (publicationLiee.get("_etat_") != null) { |
if (publicationLiee.get("_etat_").equals(aDonnee.ETAT_MODIFIE)) { |
// Comme il est impossible de modifier les relations nous supprimons l'ancien enregistrement et ajoutons un nouveau avec le nouveau id_role |
publicationsSupprimees.put("id"+idGenere++, publicationLiee); |
PublicationAPersonne relationAAjouter = (PublicationAPersonne) publicationLiee.cloner(new PublicationAPersonne()); |
publicationsSupprimees.put("id"+idGenere++, pap); |
PublicationAPersonne relationAAjouter = pap; |
publicationsAjoutees.put("id"+idGenere++, relationAAjouter); |
} |
if (publicationLiee.get("_etat_").equals(aDonnee.ETAT_AJOUTE)) { |
publicationsAjoutees.put("id"+idGenere++, publicationLiee); |
publicationsAjoutees.put("id"+idGenere++, pap); |
} |
// Initialisation de la grille |
publicationLiee.set("_etat_", ""); |
646,14 → 699,14 |
public List verifier() { |
List lstMessageErreur = new LinkedList<String>(); |
//Vérifier les roles |
List<PublicationAPersonne> listePublis = grille.getStore().getModels(); |
Iterator<PublicationAPersonne> itPublis = listePublis.iterator(); |
List<ModelData> listePublis = grille.getStore().getModels(); |
Iterator<ModelData> itPublis = listePublis.iterator(); |
while (itPublis.hasNext()) { |
PublicationAPersonne publi = itPublis.next(); |
if (UtilString.isEmpty((String) publi.get("_role_"))) { |
lstMessageErreur.add("Vous devez choisir le rôle de la relation " + (grille.getStore().indexOf(publi) + 1)); |
} |
} |
ModelData publi = itPublis.next(); |
if (UtilString.isEmpty((String) publi.get("_role_"))) { |
lstMessageErreur.add("Vous devez choisir le rôle de la relation " + (grille.getStore().indexOf(publi) + 1)); |
} |
} |
return lstMessageErreur; |
} |
Property changes: |
Modified: svn:mergeinfo |
Merged /trunk/src/org/tela_botanica/client/vues/personne/PersonneFormPublication.java:r11-990 |
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/personne/PersonneFormPublication.java:r1417-1511 |
/trunk/src/org/tela_botanica/client/vues/personne/PersonneVue.java |
---|
Property changes: |
Modified: svn:mergeinfo |
Merged /trunk/src/org/tela_botanica/client/vues/personne/PersonneVue.java:r11-934 |
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/personne/PersonneVue.java:r1417-1511 |
/trunk/src/org/tela_botanica/client/vues/personne/PersonneListeVue.java |
---|
Property changes: |
Modified: svn:mergeinfo |
Merged /trunk/src/org/tela_botanica/client/vues/personne/PersonneListeVue.java:r11-934 |
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/personne/PersonneListeVue.java:r1417-1511 |
/trunk/src/org/tela_botanica/client/vues/personne/PersonneDetailVue.java |
---|
120,11 → 120,12 |
enteteParams.set("nom", (String) personne.get("fmt_nom_complet")); |
enteteParams.set("mail", (String) personne.getCourrielPrinc()); |
tabLogos.removeAll(); |
LinkedList lstLogos = (LinkedList) personne |
.getChaineDenormaliseAsMapOrList("truk_logo"); |
if (lstLogos != null && lstLogos.size() > 0) { |
tabLogos.removeAll(); |
String urlLogoPrinc = (String) lstLogos.get(0); |
if (!urlLogoPrinc.trim().equals("")) { |
tplEntete = "<div id='personne-logo-div'><img src='{image}' alt='logo' /></div>" |
Property changes: |
Modified: svn:mergeinfo |
Merged /trunk/src/org/tela_botanica/client/vues/personne/PersonneDetailVue.java:r11-934 |
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/personne/PersonneDetailVue.java:r1417-1511 |
/trunk/src/org/tela_botanica/client/vues/personne/PersonneForm.java |
---|
915,6 → 915,8 |
this.personne = personne; |
this.personneId = personne.getId(); |
tiPubli.rafraichirInformation(new Information("personne")); |
nouvellesDonnees = null; |
} else { |
InfoLogger.display("messages", info.getMessages().toString()); |
Property changes: |
Modified: svn:mergeinfo |
Merged /trunk/src/org/tela_botanica/client/vues/personne/PersonneForm.java:r11-934 |
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/personne/PersonneForm.java:r1417-1511 |
/trunk/src/org/tela_botanica/client/vues/collection/CollectionFormContenu.java |
---|
Property changes: |
Modified: svn:mergeinfo |
Merged /trunk/src/org/tela_botanica/client/vues/collection/CollectionFormContenu.java:r11-933 |
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/collection/CollectionFormContenu.java:r1417-1511 |
/trunk/src/org/tela_botanica/client/vues/collection/CollectionVue.java |
---|
31,7 → 31,7 |
listeCollectionPanneau = new CollectionListeVue(mediateur); |
add(listeCollectionPanneau, new BorderLayoutData(LayoutRegion.CENTER)); |
detailCollectionPanneau = new CollectionDetailVue(mediateur, sequenceur); |
BorderLayoutData dispositionSud = new BorderLayoutData(LayoutRegion.SOUTH, .5f, 200, 1000); |
dispositionSud.setSplit(true); |
Property changes: |
Modified: svn:mergeinfo |
Merged /trunk/src/org/tela_botanica/client/vues/collection/CollectionVue.java:r11-933 |
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/collection/CollectionVue.java:r1417-1511 |
/trunk/src/org/tela_botanica/client/vues/collection/CollectionListeVue.java |
---|
Property changes: |
Modified: svn:mergeinfo |
Merged /trunk/src/org/tela_botanica/client/vues/collection/CollectionListeVue.java:r11-933 |
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/collection/CollectionListeVue.java:r1417-1511 |
/trunk/src/org/tela_botanica/client/vues/collection/CollectionFormGeneral.java |
---|
438,7 → 438,7 |
return valeur; |
} |
private void setValeurComboStructures() { |
if (structuresCombo.getCombo().getStore() != null |
if (structuresCombo.getCombo().getStore() != null |
&& collection != null |
&& collection.getStructureNom() != null |
&& !UtilString.isEmpty(collection.getStructureNom())) { |
Property changes: |
Modified: svn:mergeinfo |
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/collection/CollectionFormGeneral.java:r1417-1511 |
Merged /trunk/src/org/tela_botanica/client/vues/collection/CollectionFormGeneral.java:r11-933 |
/trunk/src/org/tela_botanica/client/vues/collection/CollectionDetailVue.java |
---|
Property changes: |
Modified: svn:mergeinfo |
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/collection/CollectionDetailVue.java:r1417-1511 |
Merged /trunk/src/org/tela_botanica/client/vues/collection/CollectionDetailVue.java:r11-933 |
/trunk/src/org/tela_botanica/client/vues/collection/CollectionForm.java |
---|
70,7 → 70,7 |
mediateurCourrant.selectionnerCollection(this, collectionId, null, sequenceur); |
mediateurCourrant.selectionnerCollectionAPersonne(this, collectionId, null, sequenceur); |
mediateurCourrant.selectionnerCollectionAPublication(this, collectionId, sequenceur); |
mediateurCourrant.selectionnerCollectionACommentaire(this, collectionId, sequenceur); |
//mediateurCourrant.selectionnerCollectionACommentaire(this, collectionId, sequenceur); |
} |
} |
Property changes: |
Modified: svn:mergeinfo |
Merged /trunk/src/org/tela_botanica/client/vues/collection/CollectionForm.java:r11-933 |
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/collection/CollectionForm.java:r1417-1511 |
/trunk/src/org/tela_botanica/client/vues/collection/CollectionFormCommentaire.java |
---|
1,11 → 1,18 |
package org.tela_botanica.client.vues.collection; |
import java.util.ArrayList; |
import java.util.HashMap; |
import java.util.List; |
import org.tela_botanica.client.Mediateur; |
import org.tela_botanica.client.composants.ChampComboBoxMultiSelect; |
import org.tela_botanica.client.composants.ChampComboBoxRechercheTempsReelPaginable; |
import org.tela_botanica.client.composants.GrillePaginable; |
import org.tela_botanica.client.composants.InfoLogger; |
import org.tela_botanica.client.composants.pagination.ProxyCollectionACommentaire; |
import org.tela_botanica.client.composants.pagination.ProxyCollectionAPersonne; |
import org.tela_botanica.client.composants.pagination.ProxyCommentaires; |
import org.tela_botanica.client.composants.pagination.ProxyPublications; |
import org.tela_botanica.client.images.Images; |
import org.tela_botanica.client.interfaces.Rafraichissable; |
import org.tela_botanica.client.modeles.Information; |
17,6 → 24,7 |
import org.tela_botanica.client.modeles.collection.CollectionACommentaireListe; |
import org.tela_botanica.client.modeles.commentaire.Commentaire; |
import org.tela_botanica.client.modeles.commentaire.CommentaireListe; |
import org.tela_botanica.client.modeles.publication.Publication; |
import org.tela_botanica.client.synchronisation.Sequenceur; |
import org.tela_botanica.client.util.Debug; |
import org.tela_botanica.client.vues.FenetreForm; |
26,6 → 34,8 |
import org.tela_botanica.client.vues.commentaire.CommentaireForm; |
import com.extjs.gxt.ui.client.Style.SortDir; |
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; |
42,7 → 52,9 |
import com.extjs.gxt.ui.client.widget.button.Button; |
import com.extjs.gxt.ui.client.widget.button.ButtonBar; |
import com.extjs.gxt.ui.client.widget.form.ComboBox; |
import com.extjs.gxt.ui.client.widget.form.Field; |
import com.extjs.gxt.ui.client.widget.form.FormPanel; |
import com.extjs.gxt.ui.client.widget.form.Validator; |
import com.extjs.gxt.ui.client.widget.form.ComboBox.TriggerAction; |
import com.extjs.gxt.ui.client.widget.grid.CellEditor; |
import com.extjs.gxt.ui.client.widget.grid.ColumnConfig; |
52,6 → 64,7 |
import com.extjs.gxt.ui.client.widget.grid.Grid; |
import com.extjs.gxt.ui.client.widget.grid.GridCellRenderer; |
import com.extjs.gxt.ui.client.widget.grid.GridSelectionModel; |
import com.extjs.gxt.ui.client.widget.grid.HeaderGroupConfig; |
import com.extjs.gxt.ui.client.widget.grid.RowNumberer; |
import com.extjs.gxt.ui.client.widget.layout.FitLayout; |
import com.extjs.gxt.ui.client.widget.toolbar.SeparatorToolItem; |
66,13 → 79,13 |
private ContentPanel panneauPrincipal = null; |
private ToolBar barreOutils = null; |
private EditorGrid<CollectionACommentaire> grille; |
private GrillePaginable<ModelData> grille = null; |
private ChampComboBoxMultiSelect<Valeur> typeCombo = null; |
private CollectionACommentaireListe commentairesAjoutes = null; |
private CollectionACommentaireListe commentairesModifies = null; |
private CollectionACommentaireListe commentairesSupprimes = null; |
private ComboBox<Commentaire> commentairesSaisisComboBox = null; |
private ChampComboBoxRechercheTempsReelPaginable commentairesSaisisComboBox = null; |
private Button commentairesBoutonSupprimer = null; |
private Button commentairesBoutonModifier = null; |
83,11 → 96,15 |
private Sequenceur sequenceur; |
public CollectionFormCommentaire(Formulaire formulaireCourrant) { |
initialiserOnglet(formulaireCourrant); |
setLayout(new FitLayout()); |
setId(ID); |
setText(Mediateur.i18nC.collectionCommentaire()); |
setStyleAttribute("padding", "0"); |
initialiser(); |
panneauPrincipal = creerPanneauContenantGrille(); |
barreOutils = creerBarreOutilsGrille(); |
panneauPrincipal.setTopComponent(barreOutils); |
96,8 → 113,6 |
mediateur.obtenirListeValeurEtRafraichir(this, "typeCommentaireCollection", null); |
add(panneauPrincipal); |
initialiser(); |
} |
private void initialiser() { |
104,9 → 119,6 |
// Remise à zéro des modification dans la liste des commentaires |
initialiserGestionCommentaires(); |
// Actualisation de l'état des boutons de la barre d'outils |
actualiserEtatBoutonsBarreOutils(); |
collection = ((CollectionForm) formulaire).collection; |
} |
181,7 → 193,7 |
bouton.addSelectionListener(new SelectionListener<ButtonEvent>() { |
@Override |
public void componentSelected(ButtonEvent ce) { |
CollectionACommentaire commentaireSaisiSelectionne = grille.getSelectionModel().getSelectedItem(); |
ModelData commentaireSaisiSelectionne = grille.getGrille().getSelectionModel().getSelectedItem(); |
if (commentaireSaisiSelectionne == null) { |
InfoLogger.display(i18nC.informationTitreGenerique(), i18nC.selectionnerCommentaire()); |
} else { |
196,8 → 208,9 |
private FenetreForm creerFenetreModaleAvecFormulaireCommentaire(String mode) { |
String commentaireId = null; |
if (mode.equals(Formulaire.MODE_MODIFIER)) { |
CollectionACommentaire commentaierSaisieSelectionnee = grille.getSelectionModel().getSelectedItem(); |
commentaireId = commentaierSaisieSelectionnee.getIdCommentaire(); |
ModelData commentaierSaisieSelectionnee = grille.getGrille().getSelectionModel().getSelectedItem(); |
CollectionACommentaire cac = new CollectionACommentaire(commentaierSaisieSelectionnee, false); |
commentaireId = cac.getIdCommentaire(); |
} |
final FenetreForm fenetre = new FenetreForm(""); |
251,11 → 264,12 |
bouton.setIcon(Images.ICONES.vcardSupprimer()); |
bouton.addSelectionListener(new SelectionListener<ButtonEvent>() { |
public void componentSelected(ButtonEvent ce) { |
CollectionACommentaire commentaireSaisiSelectionnee = grille.getSelectionModel().getSelectedItem(); |
ModelData commentaireSaisiSelectionnee = grille.getGrille().getSelectionModel().getSelectedItem(); |
CollectionACommentaire cac = new CollectionACommentaire(commentaireSaisiSelectionnee, false); |
if (commentaireSaisiSelectionnee == null) { |
InfoLogger.display(i18nC.informationTitreGenerique(), i18nC.selectionnerCommentaire()); |
} else { |
supprimerDansGrille(commentaireSaisiSelectionnee); |
supprimerDansGrille(cac); |
} |
} |
}); |
273,36 → 287,52 |
return bouton; |
} |
private ComboBox<Commentaire> creerComboBoxCommentairesSaisies() { |
ListStore<Commentaire> commentairesSaisiesStore = new ListStore<Commentaire>(); |
commentairesSaisiesStore.add(new ArrayList<Commentaire>()); |
private ChampComboBoxRechercheTempsReelPaginable creerComboBoxCommentairesSaisies() { |
ComboBox<Commentaire> comboBox = new ComboBox<Commentaire>(); |
comboBox.setWidth(200); |
comboBox.setEmptyText(i18nC.chercherCommentaireSaisi()); |
comboBox.setTriggerAction(TriggerAction.ALL); |
comboBox.setEditable(true); |
comboBox.setDisplayField("titre"); |
comboBox.setStore(commentairesSaisiesStore); |
comboBox.addKeyListener(new KeyListener() { |
public void componentKeyUp(ComponentEvent ce) { |
if (commentairesSaisisComboBox.getRawValue() != null && commentairesSaisisComboBox.getRawValue().length() > 0) { |
if (!ce.isNavKeyPress()) { |
obtenirCommentairesSaisis(commentairesSaisisComboBox.getRawValue()); |
} |
ModelType modelTypeCommentaires = new ModelType(); |
modelTypeCommentaires.setRoot("commentaires"); |
modelTypeCommentaires.setTotalName("nbElements"); |
modelTypeCommentaires.addField("ccm_id_commentaire"); |
modelTypeCommentaires.addField("ccm_ce_pere"); |
modelTypeCommentaires.addField("ccm_ce_projet"); |
modelTypeCommentaires.addField("ccm_titre"); |
modelTypeCommentaires.addField("ccm_texte"); |
modelTypeCommentaires.addField("ccm_ponderation"); |
modelTypeCommentaires.addField("ccm_mark_public"); |
String displayNameCommentaires = "ccm_titre"; |
ProxyCommentaires<ModelData> proxyCommentaires = new ProxyCommentaires<ModelData>(null); |
final ChampComboBoxRechercheTempsReelPaginable commentairesCombo = new ChampComboBoxRechercheTempsReelPaginable(proxyCommentaires, modelTypeCommentaires, displayNameCommentaires); |
commentairesCombo.getCombo().setTabIndex(tabIndex++); |
commentairesCombo.getCombo().setForceSelection(true); |
commentairesCombo.getCombo().setValidator(new Validator() { |
public String validate(Field<?> field, String value) { |
String retour = null; |
if (field.getRawValue().equals("")) { |
field.setValue(null); |
} else if (commentairesCombo.getStore().findModel("ccm_titre", field.getRawValue()) == null) { |
String contenuBrut = field.getRawValue(); |
field.setValue(null); |
field.setRawValue(contenuBrut); |
retour = "Veuillez sélectionner une valeur ou laisser le champ vide"; |
} |
return retour; |
} |
}); |
comboBox.addListener(Events.Select, new Listener<BaseEvent>() { |
commentairesCombo.getCombo().addListener(Events.Select, new Listener<BaseEvent>() { |
public void handleEvent(BaseEvent be) { |
if (commentairesSaisisComboBox.getValue() instanceof Commentaire) { |
Commentaire commentaireSaisiSelectionnee = commentairesSaisisComboBox.getValue(); |
if (commentairesSaisisComboBox.getValeur() instanceof ModelData) { |
Commentaire commentaireSaisiSelectionnee = new Commentaire(commentairesSaisisComboBox.getValeur()); |
ajouterDansGrille(commentaireSaisiSelectionnee); |
commentairesSaisisComboBox.setValue(null); |
commentairesSaisisComboBox.getCombo().setValue(null); |
} |
} |
}); |
return comboBox; |
return commentairesCombo; |
} |
private void ajouterDansGrille(Commentaire commentaire) { |
325,10 → 355,10 |
corrigerChampsGrille(relationCollectionACommentaire); |
// Ajout à la grille |
grille.stopEditing(); |
grille.getStore().insert(relationCollectionACommentaire, index); |
grille.startEditing(index, 0); |
grille.getSelectionModel().select(index, false); |
grille.getGrille().stopEditing(); |
grille.getGrille().getStore().insert(relationCollectionACommentaire, index); |
grille.getGrille().startEditing(index, 0); |
grille.getGrille().getSelectionModel().select(index, false); |
} |
} |
346,31 → 376,34 |
} |
} |
private EditorGrid<CollectionACommentaire> creerGrille() { |
ListStore<CollectionACommentaire> storeGrille = new ListStore<CollectionACommentaire>(); |
storeGrille.addListener(Store.Add, new Listener<StoreEvent<CollectionACommentaire>>() { |
public void handleEvent(StoreEvent<CollectionACommentaire> ce) { |
actualiserEtatBoutonsBarreOutils(); |
} |
}); |
storeGrille.addListener(Store.Remove, new Listener<StoreEvent<CollectionACommentaire>>() { |
public void handleEvent(StoreEvent<CollectionACommentaire> ce) { |
actualiserEtatBoutonsBarreOutils(); |
} |
}); |
storeGrille.addListener(Store.Update, new Listener<StoreEvent<CollectionACommentaire>>() { |
public void handleEvent(StoreEvent<CollectionACommentaire> ce) { |
if (ce.getRecord().isModified("_type_") && !ce.getModel().get("_etat_").equals(aDonnee.ETAT_AJOUTE)) { |
ce.getModel().set("_etat_", aDonnee.ETAT_MODIFIE); |
} |
} |
}); |
private GrillePaginable<ModelData> creerGrille() { |
RowNumberer pluginLigneNumero = new RowNumberer(); |
GrillePaginable<ModelData> grillePaginable = null; |
// ModelType |
ModelType modelTypeCollectionACommentaire = new ModelType(); |
modelTypeCollectionACommentaire.setRoot("collectionsACommentaire"); |
modelTypeCollectionACommentaire.setTotalName("nbElements"); |
modelTypeCollectionACommentaire.addField("ccac_id_commentaire"); |
modelTypeCollectionACommentaire.addField("ccac_id_collection"); |
modelTypeCollectionACommentaire.addField("ccac_truk_type"); |
modelTypeCollectionACommentaire.addField("ccm_id_commentaire"); |
modelTypeCollectionACommentaire.addField("ccm_titre"); |
modelTypeCollectionACommentaire.addField("ccm_texte"); |
modelTypeCollectionACommentaire.addField("ccm_ponderation"); |
modelTypeCollectionACommentaire.addField("ccm_mark_public"); |
modelTypeCollectionACommentaire.addField("ccm_ce_pere"); |
modelTypeCollectionACommentaire.addField("ccm_ce_projet"); |
// Proxy |
ProxyCollectionACommentaire<ModelData> proxyCollectionACommentaire = new ProxyCollectionACommentaire<ModelData>(null, collection.getId()); |
// Colonnes |
List<ColumnConfig> colonnes = new ArrayList<ColumnConfig>(); |
colonnes.add(pluginLigneNumero); |
RowNumberer pluginLigneNumero = new RowNumberer(); |
colonnes.add(pluginLigneNumero); |
colonnes.add(creerColonneType()); |
colonnes.add(new ColumnConfig("_titre_", i18nC.commentaireTitre(), 150)); |
colonnes.add(new ColumnConfig("_texte_", i18nC.commentaireTexte(), 75)); |
377,20 → 410,38 |
colonnes.add(new ColumnConfig("_ponderation_", i18nC.commentairePonderation(), 35)); |
colonnes.add(creerColonneAcces()); |
GridSelectionModel<CollectionACommentaire> modeleDeSelection = new GridSelectionModel<CollectionACommentaire>(); |
// Modèle de colonnes |
ColumnModel modeleDeColonnes = new ColumnModel(colonnes); |
GridSelectionModel<ModelData> modeleDeSelection = new GridSelectionModel<ModelData>(); |
EditorGrid<CollectionACommentaire> grille = new EditorGrid<CollectionACommentaire>(storeGrille, modeleDeColonnes); |
grille.setHeight("100%"); |
grille.setBorders(true); |
grille.setSelectionModel(modeleDeSelection); |
grille.addPlugin(pluginLigneNumero); |
grille.getView().setForceFit(true); |
grille.setAutoExpandColumn("_titre_"); |
grille.setStripeRows(true); |
grille.setTrackMouseOver(true); |
HashMap<String, String> virtualFields = new HashMap<String, String>(); |
virtualFields.put("_titre_", "ccm_titre"); |
virtualFields.put("_texte_", "ccm_texte"); |
virtualFields.put("_ponderation_", "ccm_ponderation"); |
virtualFields.put("_type_", "ccac_truk_type"); |
virtualFields.put("_public_", "ccm_mark_public"); |
virtualFields.put("_etat_", ""); |
return grille; |
// Grille |
grillePaginable = new GrillePaginable<ModelData>(modelTypeCollectionACommentaire, virtualFields, proxyCollectionACommentaire, colonnes, modeleDeColonnes); |
grillePaginable.getGrille().setBorders(true); |
grillePaginable.getGrille().setSelectionModel(modeleDeSelection); |
grillePaginable.getGrille().addPlugin(pluginLigneNumero); |
grillePaginable.getGrille().getView().setForceFit(true); |
grillePaginable.getGrille().setAutoExpandColumn("_titre_"); |
grillePaginable.getGrille().setStripeRows(true); |
grillePaginable.getGrille().setTrackMouseOver(true); |
// Rajouter des écouteurs |
grillePaginable.getStore().addListener(Store.Update, new Listener<StoreEvent<ModelData>>() { |
public void handleEvent(StoreEvent<ModelData> ce) { |
if (ce.getRecord().isModified("_type_") && ce.getModel().get("_etat_") == null || !ce.getModel().get("_etat_").equals(aDonnee.ETAT_AJOUTE)) { |
ce.getModel().set("_etat_", aDonnee.ETAT_MODIFIE); |
} |
} |
}); |
return grillePaginable; |
} |
private ColumnConfig creerColonneType() { |
424,8 → 475,8 |
} |
}; |
GridCellRenderer<CollectionACommentaire> typeRendu = new GridCellRenderer<CollectionACommentaire>() { |
public String render(CollectionACommentaire model, String property, ColumnData config, int rowIndex, int colIndex, ListStore<CollectionACommentaire> store, Grid<CollectionACommentaire> grid) { |
GridCellRenderer<ModelData> typeRendu = new GridCellRenderer<ModelData>() { |
public String render(ModelData model, String property, ColumnData config, int rowIndex, int colIndex, ListStore<ModelData> store, Grid<ModelData> grid) { |
String type = model.get("_type_"); |
if (typeCombo.getStore() != null && type != null && (type.matches("[0-9]+") || type.contains(aDonnee.SEPARATEUR_VALEURS))) { |
type = typeCombo.formaterIdentifiantsEnTexte(type); |
441,9 → 492,10 |
} |
private ColumnConfig creerColonneAcces() { |
GridCellRenderer<CollectionACommentaire> accesRendu = new GridCellRenderer<CollectionACommentaire>() { |
public String render(CollectionACommentaire model, String property, ColumnData config, int rowIndex, int colIndex, ListStore<CollectionACommentaire> store, Grid<CollectionACommentaire> grid) { |
String acces = (model.getCommentaire().etrePublic() ? i18nC.donneePublic() : i18nC.donneePrivee()); |
GridCellRenderer<ModelData> accesRendu = new GridCellRenderer<ModelData>() { |
public String render(ModelData model, String property, ColumnData config, int rowIndex, int colIndex, ListStore<ModelData> store, Grid<ModelData> grid) { |
CollectionACommentaire cac = new CollectionACommentaire(model, true); |
String acces = (cac.getCommentaire().etrePublic() ? i18nC.donneePublic() : i18nC.donneePrivee()); |
model.set("_public_", acces); |
return acces; |
} |
473,9 → 525,6 |
} else if (nouvellesDonnees instanceof Information) { |
Information info = (Information) nouvellesDonnees; |
rafraichirInformation(info); |
} else if (nouvellesDonnees instanceof CommentaireListe) { |
CommentaireListe listeCommentaires = (CommentaireListe) nouvellesDonnees; |
rafraichirCommentairesListe(listeCommentaires); |
} else { |
GWT.log(Mediateur.i18nM.erreurRafraichir(nouvellesDonnees.getClass(), this.getClass()), null); |
} |
524,7 → 573,7 |
} else if (type.equals("commentaire_modifiee")) { |
if (info.getDonnee(0) != null) { |
Commentaire commentaire = (Commentaire) info.getDonnee(0); |
CollectionACommentaire commentaireDansGrille = grille.getStore().findModel("id_commentaire", commentaire.getId()); |
ModelData commentaireDansGrille = grille.getStore().findModel("ccm_id_commentaire", commentaire.getId()); |
int index = grille.getStore().indexOf(commentaireDansGrille); |
grille.getStore().remove(commentaireDansGrille); |
String typeCommentaire = (String) commentaireDansGrille.get("_type_"); |
547,12 → 596,6 |
} |
} |
private void rafraichirCommentairesListe(CommentaireListe listeCommentaires) { |
commentairesSaisisComboBox.getStore().removeAll(); |
commentairesSaisisComboBox.getStore().add(listeCommentaires.toList()); |
commentairesSaisisComboBox.expand(); |
} |
public void peupler() { |
grille.getStore().removeAll(); |
grille.getStore().add(collection.getCommentairesLiees().toList()); |
565,15 → 608,16 |
if (etreAccede()) { |
int nbreCommentaire = grille.getStore().getCount(); |
for (int i = 0; i < nbreCommentaire; i++) { |
CollectionACommentaire relationCollectionACommentaire = grille.getStore().getAt(i); |
ModelData relationCollectionACommentaire = grille.getStore().getAt(i); |
CollectionACommentaire cac = new CollectionACommentaire(relationCollectionACommentaire, false); |
if (relationCollectionACommentaire.get("_etat_") != null) { |
if (relationCollectionACommentaire.get("_etat_").equals(aDonnee.ETAT_MODIFIE)) { |
corrigerChampsGrille(relationCollectionACommentaire);// Nous modifions l'id_type |
commentairesModifies.put("id"+idGenere++, relationCollectionACommentaire); |
corrigerChampsGrille(cac);// Nous modifions l'id_type |
commentairesModifies.put("id"+idGenere++, cac); |
} |
if (relationCollectionACommentaire.get("_etat_").equals(aDonnee.ETAT_AJOUTE)) { |
corrigerChampsGrille(relationCollectionACommentaire);// Nous modifions l'id_type |
commentairesAjoutes.put("id"+idGenere++, relationCollectionACommentaire); |
corrigerChampsGrille(cac);// Nous modifions l'id_type |
commentairesAjoutes.put("id"+idGenere++, cac); |
} |
// Initialisation de la grille |
relationCollectionACommentaire.set("_etat_", ""); |
586,6 → 630,7 |
private void corrigerChampsGrille(CollectionACommentaire relationCollectionACommentaire) { |
String type = relationCollectionACommentaire.get("_type_"); |
relationCollectionACommentaire.setType(typeCombo.formaterTexteEnIdentifiants(type)); |
relationCollectionACommentaire.setIdCollection(collection.getId()); |
} |
public void soumettre() { |
594,16 → 639,12 |
InfoLogger.display("Modification des notes liées", "Rien n'a été enregistré car le formulaire n'a pas été modifié."); |
} else { |
mediateur.ajouterCollectionACommentaire(this, collection.getId(), commentairesAjoutes); |
mediateur.modifierCollectionACommentaire(this, commentairesModifies); |
mediateur.modifierCollectionACommentaire(this, commentairesModifies); |
mediateur.supprimerCollectionACommentaire(this, commentairesSupprimes); |
} |
} |
} |
private void obtenirCommentairesSaisis(String titre) { |
mediateur.selectionnerCommentaireParTitre(this, titre+"%", null); |
} |
private void actualiserGrille() { |
if (mode.equals(Formulaire.MODE_MODIFIER)) { |
mediateur.selectionnerCollectionACommentaire(this, collection.getId(), null); |
Property changes: |
Modified: svn:mergeinfo |
Merged /trunk/src/org/tela_botanica/client/vues/collection/CollectionFormCommentaire.java:r11-996 |
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/collection/CollectionFormCommentaire.java:r1417-1511 |
/trunk/src/org/tela_botanica/client/vues/collection/CollectionFormDescription.java |
---|
Property changes: |
Modified: svn:mergeinfo |
Merged /trunk/src/org/tela_botanica/client/vues/collection/CollectionFormDescription.java:r11-933 |
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/collection/CollectionFormDescription.java:r1417-1511 |
/trunk/src/org/tela_botanica/client/vues/collection/CollectionFormInventaire.java |
---|
Property changes: |
Modified: svn:mergeinfo |
Merged /trunk/src/org/tela_botanica/client/vues/collection/CollectionFormInventaire.java:r11-933 |
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/collection/CollectionFormInventaire.java:r1417-1511 |
/trunk/src/org/tela_botanica/client/vues/collection/CollectionFormPersonne.java |
---|
1,7 → 1,9 |
package org.tela_botanica.client.vues.collection; |
import java.util.ArrayList; |
import java.util.HashMap; |
import java.util.List; |
import java.util.Map; |
import org.tela_botanica.client.ComposantClass; |
import org.tela_botanica.client.Mediateur; |
409,8 → 411,12 |
modeleDeColonnes.addHeaderGroup(0, 5, new HeaderGroupConfig(i18nC.personneNaissance(), 1, 2)); |
modeleDeColonnes.addHeaderGroup(0, 7, new HeaderGroupConfig(i18nC.personneDeces(), 1, 3)); |
HashMap<String, String> virtualFields = new HashMap<String, String>(); |
virtualFields.put("_role_", "ccap_id_role"); |
virtualFields.put("_etat_", ""); |
// Grille |
GrillePaginable<ModelData> grillePaginable = new GrillePaginable<ModelData>(modelTypeCollectionAPersonne, proxyCollectionAPersonne, colonnes, modeleDeColonnes); |
GrillePaginable<ModelData> grillePaginable = new GrillePaginable<ModelData>(modelTypeCollectionAPersonne, virtualFields, proxyCollectionAPersonne, colonnes, modeleDeColonnes); |
// Rajouter des écouteurs |
grillePaginable.getStore().addListener(Store.Update, new Listener<StoreEvent<ModelData>>() { |
437,7 → 443,7 |
CellEditor editeurRelation = new CellEditor(typeRelationCombo) { |
// Sert à retourner un ModelData à partir d'une String (la string est passée par le Renderer) |
public Object preProcessValue(Object valeur) { |
public Object preProcessValue(Object valeur) { |
Valeur retour = null; |
if (valeur != null ) { |
if (typeRelationCombo.getStore().findModel("nom", valeur.toString()) != null) { |
453,7 → 459,7 |
// Sert à retourner un String à Partir d'une Valeur |
// en postProcess on remplace la valeur du champ par l'Id de la valeur au lieu de son Nom |
public Object postProcessValue(Object valeur) { |
public Object postProcessValue(Object valeur) { |
String retour = null; |
if (valeur != null ) { |
if (valeur instanceof Valeur) { |
470,15 → 476,10 |
GridCellRenderer<ModelData> relationRendu = new GridCellRenderer<ModelData>() { |
public String render(ModelData modele, String property, ColumnData config, int rowIndex, int colIndex, ListStore<ModelData> store, Grid<ModelData> grille) { |
// Gestion du texte afficher dans la cellule |
CollectionAPersonne cap = new CollectionAPersonne(modele); |
String role = cap.getIdRole(); |
modele.set("_role_", role); |
String role = modele.get("_role_"); |
if (typeRelationCombo.getStore() != null && typeRelationCombo.getStore().getCount() > 0 && role.matches("[0-9]+")) { |
role = typeRelationCombo.getStore().findModel("id_valeur", role).getNom(); |
} |
return role; |
} |
}; |
562,8 → 563,8 |
} |
} else if (type.equals("personne_modifiee")) { |
if (info.getDonnee(0) != null) { |
Personne personne = (Personne) info.getDonnee(0); |
ModelData personneDansGrille = grille.getStore().findModel("id_personne", personne.getId()); |
Personne personne = (Personne) info.getDonnee(0); |
ModelData personneDansGrille = grille.getStore().findModel("ccap_id_personne", personne.getId()); |
int index = grille.getStore().indexOf(personneDansGrille); |
grille.getStore().remove(personneDansGrille); |
String role = (String) personneDansGrille.get("_role_"); |
591,8 → 592,7 |
if (nbrePersonne > 0) { |
for (int i = 0; i < nbrePersonne; i++) { |
CollectionAPersonne personne = new CollectionAPersonne(grille.getStore().getAt(i)); |
if (personne.get("_role_").equals("")) { |
if (grille.getStore().getAt(i).get("_role_").equals("")) { |
personneNumero += (i != 0 ? ", " : "")+(i+1); |
} |
} |
609,10 → 609,11 |
int nbrePersonne = grille.getStore().getCount(); |
for (int i = 0; i < nbrePersonne; i++) { |
CollectionAPersonne relationCollectionPersonne = new CollectionAPersonne(grille.getStore().getAt(i)); |
relationCollectionPersonne.set("_role_", grille.getStore().getAt(i).get("_role_")); |
if (relationCollectionPersonne.get("_etat_") != null) { |
if (grille.getStore().getAt(i).get("_etat_") != null) { |
if (relationCollectionPersonne.get("_etat_").equals(aDonnee.ETAT_MODIFIE)) { |
if (grille.getStore().getAt(i).get("_etat_").equals(aDonnee.ETAT_MODIFIE)) { |
// Comme il est impossible de modifier les relations nous supprimons l'ancien enregistrement et ajoutons un nouveau avec le nouveau id_role |
personnesSupprimees.put("id"+idGenere++, relationCollectionPersonne); |
620,12 → 621,12 |
corrigerChampsGrille(relationAAjouter);// Nous modifions l'id_role |
personnesAjoutees.put("id"+idGenere++, relationAAjouter); |
} |
if (relationCollectionPersonne.get("_etat_").equals(aDonnee.ETAT_AJOUTE)) { |
if (grille.getStore().getAt(i).get("_etat_").equals(aDonnee.ETAT_AJOUTE)) { |
corrigerChampsGrille(relationCollectionPersonne);// Nous modifions l'id_role |
personnesAjoutees.put("id"+idGenere++, relationCollectionPersonne); |
} |
// Initialisation de la grille |
relationCollectionPersonne.set("_etat_", ""); |
grille.getStore().getAt(i).set("_etat_", ""); |
} |
} |
grille.getStore().commitChanges(); |
Property changes: |
Modified: svn:mergeinfo |
Merged /trunk/src/org/tela_botanica/client/vues/collection/CollectionFormPersonne.java:r11-933 |
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/collection/CollectionFormPersonne.java:r1417-1511 |
/trunk/src/org/tela_botanica/client/vues/collection/CollectionFormPublication.java |
---|
1,10 → 1,18 |
package org.tela_botanica.client.vues.collection; |
import java.util.ArrayList; |
import java.util.HashMap; |
import java.util.List; |
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.GrillePaginable; |
import org.tela_botanica.client.composants.InfoLogger; |
import org.tela_botanica.client.composants.pagination.ProxyCollectionAPersonne; |
import org.tela_botanica.client.composants.pagination.ProxyCollectionAPublication; |
import org.tela_botanica.client.composants.pagination.ProxyProjets; |
import org.tela_botanica.client.composants.pagination.ProxyPublications; |
import org.tela_botanica.client.images.Images; |
import org.tela_botanica.client.interfaces.Rafraichissable; |
import org.tela_botanica.client.modeles.Information; |
23,6 → 31,8 |
import com.extjs.gxt.ui.client.Style.Scroll; |
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; |
39,7 → 49,9 |
import com.extjs.gxt.ui.client.widget.button.Button; |
import com.extjs.gxt.ui.client.widget.button.ButtonBar; |
import com.extjs.gxt.ui.client.widget.form.ComboBox; |
import com.extjs.gxt.ui.client.widget.form.Field; |
import com.extjs.gxt.ui.client.widget.form.FormPanel; |
import com.extjs.gxt.ui.client.widget.form.Validator; |
import com.extjs.gxt.ui.client.widget.form.ComboBox.TriggerAction; |
import com.extjs.gxt.ui.client.widget.grid.ColumnConfig; |
import com.extjs.gxt.ui.client.widget.grid.ColumnData; |
48,6 → 60,7 |
import com.extjs.gxt.ui.client.widget.grid.Grid; |
import com.extjs.gxt.ui.client.widget.grid.GridCellRenderer; |
import com.extjs.gxt.ui.client.widget.grid.GridSelectionModel; |
import com.extjs.gxt.ui.client.widget.grid.HeaderGroupConfig; |
import com.extjs.gxt.ui.client.widget.grid.RowExpander; |
import com.extjs.gxt.ui.client.widget.grid.RowNumberer; |
import com.extjs.gxt.ui.client.widget.layout.FitLayout; |
64,11 → 77,11 |
private ContentPanel panneauPrincipal = null; |
private ToolBar barreOutils = null; |
private EditorGrid<CollectionAPublication> grille; |
private GrillePaginable<ModelData> grille; |
private CollectionAPublicationListe publicationsAjoutees = null; |
private CollectionAPublicationListe publicationsSupprimees = null; |
private ComboBox<Publication> publicationsSaisiesComboBox = null; |
private ChampComboBoxRechercheTempsReelPaginable publicationsSaisiesComboBox = null; |
private Button publicationsBoutonSupprimer = null; |
private Button publicationsBoutonModifier = null; |
80,6 → 93,9 |
setId(ID); |
setText(Mediateur.i18nC.collectionPublication()); |
setStyleAttribute("padding", "0"); |
initialiser(); |
panneauPrincipal = creerPanneauContenantGrille(); |
setLayout(new FitLayout()); |
barreOutils = creerBarreOutilsGrille(); |
88,9 → 104,7 |
panneauPrincipal.setLayout(new FitLayout()); |
panneauPrincipal.add(grille); |
add(panneauPrincipal); |
initialiser(); |
add(panneauPrincipal); |
} |
private void initialiser() { |
99,9 → 113,6 |
publicationsAjoutees = new CollectionAPublicationListe(); |
publicationsSupprimees = new CollectionAPublicationListe(); |
// Actualisation de l'état des boutons de la barre d'outils |
actualiserEtatBoutonsBarreOutils(); |
collection = ((CollectionForm) formulaire).collection; |
} |
162,8 → 173,7 |
bouton.setIcon(Images.ICONES.vcardModifier()); |
bouton.addSelectionListener(new SelectionListener<ButtonEvent>() { |
public void componentSelected(ButtonEvent ce) { |
CollectionAPublication publicationSaisieSelectionnee = grille.getSelectionModel().getSelectedItem(); |
ModelData publicationSaisieSelectionnee = grille.getGrille().getSelectionModel().getSelectedItem(); |
if (publicationSaisieSelectionnee == null) { |
InfoLogger.display(i18nC.informationTitreGenerique(), i18nC.selectionnerPublication()); |
} else { |
178,7 → 188,7 |
private FenetreForm creerFenetreModaleAvecFormulairePublication(String mode) { |
String publicationId = null; |
if (mode.equals(Formulaire.MODE_MODIFIER)) { |
CollectionAPublication publicationSaisiSelectionne = grille.getSelectionModel().getSelectedItem(); |
CollectionAPublication publicationSaisiSelectionne = new CollectionAPublication(grille.getGrille().getSelectionModel().getSelectedItem(), false); |
publicationId = publicationSaisiSelectionne.getIdPublication(); |
} |
232,7 → 242,7 |
bouton.setIcon(Images.ICONES.vcardSupprimer()); |
bouton.addSelectionListener(new SelectionListener<ButtonEvent>() { |
public void componentSelected(ButtonEvent ce) { |
CollectionAPublication publicationSaisieSelectionnee = grille.getSelectionModel().getSelectedItem(); |
CollectionAPublication publicationSaisieSelectionnee = new CollectionAPublication(grille.getGrille().getSelectionModel().getSelectedItem(), false); |
if (publicationSaisieSelectionnee == null) { |
InfoLogger.display(i18nC.informationTitreGenerique(), i18nC.selectionnerPublication()); |
} else { |
249,7 → 259,7 |
bouton.addSelectionListener(new SelectionListener<ButtonEvent>() { |
public void componentSelected(ButtonEvent ce) { |
actualiserGrille(); |
} |
} |
}); |
return bouton; |
} |
263,35 → 273,60 |
} |
} |
private ComboBox<Publication> creerComboBoxPublicationsSaisis() { |
ListStore<Publication> publicationsSaisiesStore = new ListStore<Publication>(); |
private ChampComboBoxRechercheTempsReelPaginable creerComboBoxPublicationsSaisis() { |
ComboBox<Publication> comboBox = new ComboBox<Publication>(); |
comboBox.setWidth(400); |
comboBox.setEmptyText(i18nC.chercherPublicationSaisi()); |
comboBox.setTriggerAction(TriggerAction.ALL); |
comboBox.setEditable(true); |
comboBox.setDisplayField("fmt_nom_complet"); |
comboBox.setStore(publicationsSaisiesStore); |
comboBox.addKeyListener(new KeyListener() { |
public void componentKeyUp(ComponentEvent ce) { |
if (publicationsSaisiesComboBox.getRawValue() != null && publicationsSaisiesComboBox.getRawValue().length() > 0) { |
if (!ce.isNavKeyPress()) { |
obtenirPublicationsSaisies(publicationsSaisiesComboBox.getRawValue()); |
} |
ModelType modelTypePublications = new ModelType(); |
modelTypePublications.setRoot("publications"); |
modelTypePublications.setTotalName("nbElements"); |
modelTypePublications.addField("ccapu_id_collection"); |
modelTypePublications.addField("ccapu_id_publication"); |
modelTypePublications.addField("cc_nom"); |
modelTypePublications.addField("cc_id_collection"); |
modelTypePublications.addField("cpu_id_publication"); |
modelTypePublications.addField("cpu_fmt_nom_complet"); |
modelTypePublications.addField("cpu_titre"); |
modelTypePublications.addField("cpu_nom"); |
modelTypePublications.addField("cpu_fmt_auteur"); |
modelTypePublications.addField("cpu_indication_nvt"); |
modelTypePublications.addField("cpu_truk_pages"); |
modelTypePublications.addField("cpu_fascicule"); |
modelTypePublications.addField("cpu_date_parution"); |
modelTypePublications.addField("cpu_ce_truk_editeur"); |
modelTypePublications.addField("cpu_ce_projet"); |
String displayNamePublications = "cpu_fmt_nom_complet"; |
ProxyPublications<ModelData> proxyPublications= new ProxyPublications<ModelData>(null); |
final ChampComboBoxRechercheTempsReelPaginable publicationsCombo = new ChampComboBoxRechercheTempsReelPaginable(proxyPublications, modelTypePublications, displayNamePublications); |
publicationsCombo.getCombo().setTabIndex(tabIndex++); |
publicationsCombo.getCombo().setForceSelection(true); |
publicationsCombo.getCombo().setValidator(new Validator() { |
public String validate(Field<?> field, String value) { |
String retour = null; |
if (field.getRawValue().equals("")) { |
field.setValue(null); |
} else if (publicationsCombo.getStore().findModel("cpu_fmt_nom_complet", field.getRawValue()) == null) { |
String contenuBrut = field.getRawValue(); |
field.setValue(null); |
field.setRawValue(contenuBrut); |
retour = "Veuillez sélectionner une valeur ou laisser le champ vide"; |
} |
return retour; |
} |
}); |
comboBox.addListener(Events.Select, new Listener<BaseEvent>() { |
publicationsCombo.getCombo().addListener(Events.Select, new Listener<BaseEvent>() { |
public void handleEvent(BaseEvent be) { |
if (publicationsSaisiesComboBox.getValue() instanceof Publication) { |
Publication publicationSaisieSelectionne = publicationsSaisiesComboBox.getValue(); |
if (publicationsSaisiesComboBox.getValeur() instanceof ModelData) { |
Publication publicationSaisieSelectionne = new Publication(publicationsSaisiesComboBox.getValeur(), false); |
ajouterDansGrille(publicationSaisieSelectionne); |
publicationsSaisiesComboBox.setValue(null); |
publicationsSaisiesComboBox.getCombo().setValue(null); |
} |
} |
}); |
return comboBox; |
return publicationsCombo; |
} |
private void ajouterDansGrille(Publication publication) { |
299,10 → 334,11 |
} |
private void ajouterDansGrille(Publication publication, int index) { |
if (publication != null) { |
CollectionAPublication publicationLiee = new CollectionAPublication(); |
if (publication != null) { |
CollectionAPublication publicationLiee = new CollectionAPublication(false); |
publicationLiee.setPublication(publication); |
publicationLiee.setIdPublication(publication.getId()); |
// Gestion de l'id de la collection |
if (mode.equals(Formulaire.MODE_MODIFIER)) { |
publicationLiee.setIdCollection(collection.getId()); |
309,11 → 345,10 |
} |
publicationLiee.set("_etat_", aDonnee.ETAT_AJOUTE); |
// Ajout à la grille |
grille.stopEditing(); |
grille.getStore().insert(publicationLiee, 0); |
grille.startEditing(index, 0); |
grille.getSelectionModel().select(index, false); |
grille.getGrille().stopEditing(); |
grille.getGrille().getStore().insert(publicationLiee, 0); |
grille.getGrille().startEditing(index, 0); |
grille.getGrille().getSelectionModel().select(index, false); |
} |
} |
330,67 → 365,94 |
grille.getStore().remove(publicationLiee); |
} |
} |
private GrillePaginable<ModelData> creerGrille() { |
GrillePaginable<ModelData> grillePublications = null; |
// ModelType |
ModelType modelTypeCollectionAPublication = new ModelType(); |
modelTypeCollectionAPublication.setRoot("collectionsAPublication"); |
modelTypeCollectionAPublication.setTotalName("nbElements"); |
modelTypeCollectionAPublication.addField("ccapu_id_collection"); |
modelTypeCollectionAPublication.addField("ccapu_id_publication"); |
modelTypeCollectionAPublication.addField("ccapu_mark_licence"); |
modelTypeCollectionAPublication.addField("cpu_id_publication"); |
modelTypeCollectionAPublication.addField("cpu_fmt_auteur"); |
modelTypeCollectionAPublication.addField("cpu_titre"); |
modelTypeCollectionAPublication.addField("cpu_collection"); |
modelTypeCollectionAPublication.addField("cpu_ce_truk_editeur"); |
modelTypeCollectionAPublication.addField("cpu_date_parution"); |
modelTypeCollectionAPublication.addField("cpu_fascicule"); |
modelTypeCollectionAPublication.addField("cpu_truk_pages"); |
modelTypeCollectionAPublication.addField("cpu_indication_nvt"); |
// Proxy |
ProxyCollectionAPublication<ModelData> proxyCollectionAPublication = new ProxyCollectionAPublication<ModelData>(null, collection.getId()); |
private EditorGrid<CollectionAPublication> creerGrille() { |
ListStore<CollectionAPublication> storeGrille = new ListStore<CollectionAPublication>(); |
storeGrille.addListener(Store.Add, new Listener<StoreEvent<CollectionAPublication>>() { |
public void handleEvent(StoreEvent<CollectionAPublication> ce) { |
actualiserEtatBoutonsBarreOutils(); |
} |
}); |
storeGrille.addListener(Store.Remove, new Listener<StoreEvent<CollectionAPublication>>() { |
public void handleEvent(StoreEvent<CollectionAPublication> ce) { |
actualiserEtatBoutonsBarreOutils(); |
} |
}); |
// Colonnes |
List<ColumnConfig> colonnes = new ArrayList<ColumnConfig>(); |
RowNumberer numeroPlugin = new RowNumberer(); |
numeroPlugin.setHeader("#"); |
XTemplate infoTpl = XTemplate.create("<p>"+ |
"<span style='font-weight:bold;'>"+i18nC.publicationAuteurs()+" :</span> {fmt_auteur}<br />"+ |
"<span style='font-weight:bold;'>"+i18nC.publicationTitre()+" :</span> {titre}<br />"+ |
"<span style='font-weight:bold;'>"+i18nC.publicationRevueCollection()+" :</span> {collection}<br />"+ |
"<span style='font-weight:bold;'>"+i18nC.publicationAuteurs()+" :</span> {cpu_fmt_auteur}<br />"+ |
"<span style='font-weight:bold;'>"+i18nC.publicationTitre()+" :</span> {cpu_titre}<br />"+ |
"<span style='font-weight:bold;'>"+i18nC.publicationRevueCollection()+" :</span> {cpu_collection}<br />"+ |
"<span style='font-weight:bold;'>"+i18nC.publicationEditeur()+" :</span> {_editeur_}"+ |
"</p>"); |
RowExpander expansionPlugin = new RowExpander(); |
expansionPlugin.setTemplate(infoTpl); |
List<ColumnConfig> colonnes = new ArrayList<ColumnConfig>(); |
colonnes.add(expansionPlugin); |
colonnes.add(numeroPlugin); |
colonnes.add(new ColumnConfig("fmt_auteur", i18nC.publicationAuteurs(), 150)); |
colonnes.add(new ColumnConfig("titre", i18nC.publicationTitre(), 150)); |
colonnes.add(new ColumnConfig("collection", i18nC.publicationRevueCollection(), 75)); |
colonnes.add(new ColumnConfig("cpu_fmt_auteur", i18nC.publicationAuteurs(), 150)); |
colonnes.add(new ColumnConfig("cpu_titre", i18nC.publicationTitre(), 150)); |
colonnes.add(new ColumnConfig("cpu_collection", i18nC.publicationRevueCollection(), 75)); |
colonnes.add(creerColonneEditeur()); |
colonnes.add(creerColonneAnneePublication()); |
colonnes.add(new ColumnConfig("indication_nvt", i18nC.publicationNvt(), 75)); |
colonnes.add(new ColumnConfig("fascicule", i18nC.publicationFascicule(), 75)); |
colonnes.add(new ColumnConfig("truk_pages", i18nC.publicationPage(), 50)); |
colonnes.add(new ColumnConfig("cpu_indication_nvt", i18nC.publicationNvt(), 75)); |
colonnes.add(new ColumnConfig("cpu_fascicule", i18nC.publicationFascicule(), 75)); |
colonnes.add(new ColumnConfig("cpu_truk_pages", i18nC.publicationPage(), 50)); |
GridSelectionModel<CollectionAPublication> modeleDeSelection = new GridSelectionModel<CollectionAPublication>(); |
HashMap<String, String> virtualFields = new HashMap<String, String>(); |
virtualFields.put("_editeur_", "cpu_ce_truk_editeur"); |
virtualFields.put("_annee_", "cpu_date_parution"); |
virtualFields.put("_etat_", ""); |
// Modele de selection |
GridSelectionModel<ModelData> modeleDeSelection = new GridSelectionModel<ModelData>(); |
ColumnModel modeleDeColonnes = new ColumnModel(colonnes); |
modeleDeColonnes.getColumn(0).setWidget(Images.ICONES.information().createImage(), "Info"); |
EditorGrid<CollectionAPublication> grillePublications = new EditorGrid<CollectionAPublication>(storeGrille, modeleDeColonnes); |
//grillePublications.setHeight("100%"); |
grillePublications.setBorders(true); |
grillePublications.setSelectionModel(modeleDeSelection); |
grillePublications.addPlugin(expansionPlugin); |
grillePublications.addPlugin(numeroPlugin); |
grillePublications.getView().setForceFit(true); |
grillePublications.setAutoExpandColumn("titre"); |
grillePublications.setStripeRows(true); |
grillePublications.setTrackMouseOver(true); |
// Grille |
grillePublications = new GrillePaginable<ModelData>(modelTypeCollectionAPublication, virtualFields, proxyCollectionAPublication, colonnes, modeleDeColonnes); |
grillePublications.getGrille().setBorders(true); |
grillePublications.getGrille().setSelectionModel(modeleDeSelection); |
grillePublications.getGrille().addPlugin(expansionPlugin); |
grillePublications.getGrille().addPlugin(numeroPlugin); |
grillePublications.getGrille().getView().setForceFit(true); |
grillePublications.getGrille().setAutoExpandColumn("titre"); |
grillePublications.getGrille().setStripeRows(true); |
grillePublications.getGrille().setTrackMouseOver(true); |
// Rajouter des écouteurs |
grillePublications.getStore().addListener(Store.Add, new Listener<StoreEvent<ModelData>>() { |
public void handleEvent(StoreEvent<ModelData> ce) { |
actualiserEtatBoutonsBarreOutils(); |
} |
}); |
grillePublications.getStore().addListener(Store.Remove, new Listener<StoreEvent<ModelData>>() { |
public void handleEvent(StoreEvent<ModelData> ce) { |
actualiserEtatBoutonsBarreOutils(); |
} |
}); |
return grillePublications; |
} |
private ColumnConfig creerColonneEditeur() { |
GridCellRenderer<CollectionAPublication> editeurRendu = new GridCellRenderer<CollectionAPublication>() { |
public String render(CollectionAPublication model, String property, ColumnData config, int rowIndex, int colIndex, ListStore<CollectionAPublication> store, Grid<CollectionAPublication> grid) { |
String editeur = model.getPublication().getNomEditeur(); |
GridCellRenderer<ModelData> editeurRendu = new GridCellRenderer<ModelData>() { |
public String render(ModelData model, String property, ColumnData config, int rowIndex, int colIndex, ListStore<ModelData> store, Grid<ModelData> grid) { |
String editeur = (new CollectionAPublication(model, false)).getPublication().getNomEditeur(); |
model.set("_editeur_", editeur); |
return editeur; |
} |
401,9 → 463,9 |
} |
private ColumnConfig creerColonneAnneePublication() { |
GridCellRenderer<CollectionAPublication> datePublicationRendu = new GridCellRenderer<CollectionAPublication>() { |
public String render(CollectionAPublication model, String property, ColumnData config, int rowIndex, int colIndex, ListStore<CollectionAPublication> store, Grid<CollectionAPublication> grid) { |
String annee = model.getPublication().getAnneeParution(); |
GridCellRenderer<ModelData> datePublicationRendu = new GridCellRenderer<ModelData>() { |
public String render(ModelData model, String property, ColumnData config, int rowIndex, int colIndex, ListStore<ModelData> store, Grid<ModelData> grid) { |
String annee = (new CollectionAPublication(model, false)).getPublication().getAnneeParution(); |
model.set("_annee_", annee); |
return annee; |
} |
430,19 → 492,10 |
if (nouvellesDonnees instanceof Information) { |
Information info = (Information) nouvellesDonnees; |
rafraichirInformation(info); |
} else if (nouvellesDonnees instanceof PublicationListe) { |
PublicationListe listePublications = (PublicationListe) nouvellesDonnees; |
rafraichirPublicationListe(listePublications); |
} else { |
GWT.log(Mediateur.i18nM.erreurRafraichir(nouvellesDonnees.getClass(), this.getClass()), null); |
} |
} |
private void rafraichirPublicationListe(PublicationListe listePublications) { |
publicationsSaisiesComboBox.getStore().removeAll(); |
publicationsSaisiesComboBox.getStore().add(listePublications.toList()); |
publicationsSaisiesComboBox.expand(); |
} |
public void rafraichirInformation(Information info) { |
if (info.getMessages() != null && !info.getMessages().toString().equals("[]")) { |
464,14 → 517,15 |
mediateur.ajouterCollectionAPublication(this, collectionId, publicationsAjoutees); |
} |
} else if (type.equals("publication_modifiee")) { |
if (info.getDonnee(0) != null) { |
Publication publication = (Publication) info.getDonnee(0); |
CollectionAPublication publicationDansGrille = grille.getStore().findModel("id_publication", publication.getId()); |
int index = grille.getStore().indexOf(publicationDansGrille); |
if (info.getDonnee(0) != null) { |
Publication publication = (Publication) info.getDonnee(0); |
ModelData publicationDansGrille = null; |
publicationDansGrille = grille.getStore().findModel("cpu_id_publication", publication.getId()); |
int index = grille.getStore().indexOf(publicationDansGrille); |
grille.getStore().remove(publicationDansGrille); |
ajouterDansGrille(publication, index); |
} |
} else if (type.equals("publication_ajoutee")) { |
} else if (type.equals("publication_ajoutee")) { |
if (info.getDonnee(0) != null) { |
Publication publication = (Publication) info.getDonnee(0); |
ajouterDansGrille(publication); |
496,17 → 550,18 |
if (etreAccede()) { |
int nbrePublication = grille.getStore().getCount(); |
for (int i = 0; i < nbrePublication; i++) { |
CollectionAPublication publicationLiee = grille.getStore().getAt(i); |
ModelData publicationLiee = grille.getStore().getAt(i); |
CollectionAPublication cap = new CollectionAPublication(grille.getStore().getAt(i), false); |
if (publicationLiee.get("_etat_") != null) { |
if (publicationLiee.get("_etat_").equals(aDonnee.ETAT_MODIFIE)) { |
// Comme il est impossible de modifier les relations nous supprimons l'ancien enregistrement et ajoutons un nouveau avec le nouveau id_role |
publicationsSupprimees.put("id"+idGenere++, publicationLiee); |
publicationsSupprimees.put("id"+idGenere++, cap); |
CollectionAPublication relationAAjouter = (CollectionAPublication) publicationLiee.cloner(new CollectionAPublication()); |
CollectionAPublication relationAAjouter = (CollectionAPublication) cap.cloner(new CollectionAPublication()); |
publicationsAjoutees.put("id"+idGenere++, relationAAjouter); |
} |
if (publicationLiee.get("_etat_").equals(aDonnee.ETAT_AJOUTE)) { |
publicationsAjoutees.put("id"+idGenere++, publicationLiee); |
publicationsAjoutees.put("id"+idGenere++, cap); |
} |
// Initialisation de la grille |
publicationLiee.set("_etat_", ""); |
532,8 → 587,4 |
} |
} |
} |
private void obtenirPublicationsSaisies(String nom) { |
mediateur.selectionnerPublicationParNomComplet(this, null, "%"+nom+"%"); |
} |
} |
Property changes: |
Modified: svn:mergeinfo |
Merged /trunk/src/org/tela_botanica/client/vues/collection/CollectionFormPublication.java:r11-933 |
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/collection/CollectionFormPublication.java:r1417-1511 |
/trunk/src/org/tela_botanica/client/vues/collection |
---|
Property changes: |
Modified: svn:mergeinfo |
Merged /trunk/src/org/tela_botanica/client/vues/collection:r11-933 |
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/collection:r1417-1511 |