Subversion Repositories eFlore/Applications.coel

Compare Revisions

Ignore whitespace Rev 1799 → Rev 1800

/trunk/src/org/tela_botanica/client/vues/collection/CollectionFormPublication.java
54,6 → 54,8
import com.extjs.gxt.ui.client.widget.toolbar.SeparatorToolItem;
import com.extjs.gxt.ui.client.widget.toolbar.ToolBar;
import com.google.gwt.core.client.GWT;
import com.google.gwt.user.client.Window;
import com.extjs.gxt.ui.client.widget.form.CheckBox;
 
public class CollectionFormPublication extends FormulaireOnglet implements Rafraichissable {
67,6 → 69,7
private CollectionAPublicationListe publicationsAjoutees = null;
private CollectionAPublicationListe publicationsSupprimees = null;
private CollectionAPublicationListe publicationsModifiees = null;
private ChampComboBoxRechercheTempsReelPaginable publicationsSaisiesComboBox = null;
private Button publicationsBoutonSupprimer = null;
private Button publicationsBoutonModifier = null;
73,6 → 76,8
private FenetreForm fenetreFormulaire = null;
public boolean publicationsSontModifiees = false;
public CollectionFormPublication(Formulaire formulaireCourrant) {
initialiserOnglet(formulaireCourrant);
98,6 → 103,7
idGenere = 1;
publicationsAjoutees = new CollectionAPublicationListe();
publicationsSupprimees = new CollectionAPublicationListe();
publicationsModifiees = new CollectionAPublicationListe();
collection = ((CollectionForm) formulaire).collection;
}
261,6 → 267,7
modelTypePublications.setTotalName("nbElements");
modelTypePublications.addField("ccapu_id_collection");
modelTypePublications.addField("ccapu_id_publication");
modelTypePublications.addField("ccapu_source");
modelTypePublications.addField("cc_nom");
modelTypePublications.addField("cc_id_collection");
modelTypePublications.addField("cpu_id_publication");
358,6 → 365,7
modelTypeCollectionAPublication.setTotalName("nbElements");
modelTypeCollectionAPublication.addField("ccapu_id_collection");
modelTypeCollectionAPublication.addField("ccapu_id_publication");
modelTypeCollectionAPublication.addField("ccapu_source");
modelTypeCollectionAPublication.addField("ccapu_mark_licence");
modelTypeCollectionAPublication.addField("cpu_id_publication");
modelTypeCollectionAPublication.addField("cpu_fmt_auteur");
385,9 → 393,40
RowExpander expansionPlugin = new RowExpander();
expansionPlugin.setTemplate(infoTpl);
colonnes.add(expansionPlugin);
ColumnConfig sourceColonne = new ColumnConfig("ccapu_source", i18nC.collectionPublicationSource(), 35);
sourceColonne.setRenderer(new GridCellRenderer<ModelData>() {
@Override
public Object render(ModelData model, String property,
ColumnData config, int rowIndex, int colIndex,
ListStore<ModelData> store, Grid<ModelData> grid) {
CheckBox cbSource = new CheckBox();
boolean source = model.get("ccapu_source") != null && model.get("ccapu_source").equals("1");
cbSource.setValue(source);
 
final Integer ligne = rowIndex;
final ModelData ceModele = model;
cbSource.addListener(Events.Change, new Listener<BaseEvent>() {
@Override
public void handleEvent(BaseEvent be) {
String estSource = ((CheckBox)be.getSource()).getValue() ? "1" : "0";
ceModele.set("ccapu_source", estSource);
if (!(ceModele.get("_etat_") != null && ceModele.get("_etat_").equals(aDonnee.ETAT_AJOUTE))) {
ceModele.set("_etat_", aDonnee.ETAT_MODIFIE);
}
grille.getStore().commitChanges();
}
});
return cbSource;
}
});
colonnes.add(sourceColonne);
colonnes.add(numeroPlugin);
colonnes.add(new ColumnConfig("cpu_fmt_auteur", i18nC.publicationAuteurs(), 150));
colonnes.add(new ColumnConfig("cpu_titre", i18nC.publicationTitre(), 150));
colonnes.add(new ColumnConfig("cpu_fmt_auteur", i18nC.publicationAuteurs(), 140));
colonnes.add(new ColumnConfig("cpu_titre", i18nC.publicationTitre(), 135));
colonnes.add(new ColumnConfig("cpu_collection", i18nC.publicationRevueCollection(), 75));
colonnes.add(creerColonneEditeur());
colonnes.add(creerColonneAnneePublication());
536,11 → 575,7
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++, cap);
CollectionAPublication relationAAjouter = (CollectionAPublication) cap.cloner(new CollectionAPublication());
publicationsAjoutees.put("id"+idGenere++, relationAAjouter);
publicationsModifiees.put(cap.getIdPublication(), cap);
}
if (publicationLiee.get("_etat_").equals(aDonnee.ETAT_AJOUTE)) {
publicationsAjoutees.put("id"+idGenere++, cap);
555,13 → 590,21
public void soumettre() {
if (mode.equals(Formulaire.MODE_MODIFIER)) {
if (publicationsAjoutees.size() == 0 && publicationsSupprimees.size() == 0) {
if (publicationsAjoutees.size() == 0 && publicationsSupprimees.size() == 0 && publicationsModifiees.size() == 0) {
//InfoLogger.display("Modification des publications liées", "Rien n'a été enregistré car le formulaire n'a pas été modifié.");
} else {
//Window.alert(publicationsAjoutees.size()+" | "+publicationsSupprimees.size()+" | "+publicationsModifiees.size());
publicationsSontModifiees = true;
// Ajout des relations CollectionAPublication
if (publicationsAjoutees.size() != 0) {
mediateur.ajouterCollectionAPublication(this, collection.getId(), publicationsAjoutees);
}
// Modification des relations CollectionAPublication
if (publicationsModifiees.size() != 0) {
mediateur.modifierCollectionAPublication(this, publicationsModifiees);
}
// Suppression des relations CollectionAPublication
if (publicationsSupprimees.size() != 0) {
mediateur.supprimerCollectionAPublication(this, publicationsSupprimees);