Subversion Repositories eFlore/Applications.coel

Compare Revisions

No changes between revisions

Ignore whitespace Rev 1512 → Rev 1513

/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/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/.
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