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); |