11,6 → 11,8 |
import org.tela_botanica.client.modeles.PublicationListe; |
import org.tela_botanica.client.modeles.ValeurListe; |
|
import com.extjs.gxt.ui.client.Style.HorizontalAlignment; |
import com.extjs.gxt.ui.client.core.XTemplate; |
import com.extjs.gxt.ui.client.event.BaseEvent; |
import com.extjs.gxt.ui.client.event.ButtonEvent; |
import com.extjs.gxt.ui.client.event.ComponentEvent; |
34,11 → 36,16 |
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; |
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.event.shared.GwtEvent; |
import com.google.gwt.user.client.Event; |
import com.google.gwt.user.client.ui.Image; |
|
public class CollectionFormPublication extends FormulaireOnglet implements Rafraichissable { |
private ContentPanel panneauPrincipal = null; |
294,6 → 301,7 |
|
// Ajout à la grille |
grille.getStore().insert(publication, 0); |
grille.getSelectionModel().select(0, false); |
} |
} |
|
322,27 → 330,26 |
} |
}); |
|
RowNumberer pluginLigneNumero = new RowNumberer(); |
RowNumberer numeroPlugin = new RowNumberer(); |
numeroPlugin.setHeader("#"); |
|
GridCellRenderer<Publication> infoBulle = new GridCellRenderer<Publication>() { |
@Override |
public String render(Publication model, String property, ColumnData config, int rowIndex, int colIndex, ListStore<Publication> store, Grid<Publication> grid) { |
String valeur = (String) model.get(property); |
return "<span title='"+valeur+"'>" + valeur + "</span>"; |
} |
}; |
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.publicationEditeur()+" :</span> {_editeur_}"+ |
"</p>"); |
RowExpander expansionPlugin = new RowExpander(); |
expansionPlugin.setTemplate(infoTpl); |
|
List<ColumnConfig> colonnes = new ArrayList<ColumnConfig>(); |
colonnes.add(pluginLigneNumero); |
ColumnConfig fmtAuteurColonne = new ColumnConfig("fmt_auteur", i18nC.publicationAuteurs(), 150); |
fmtAuteurColonne.setRenderer(infoBulle); |
colonnes.add(fmtAuteurColonne); |
ColumnConfig titreColonne = new ColumnConfig("titre", i18nC.publicationTitre(), 150); |
titreColonne.setRenderer(infoBulle); |
colonnes.add(titreColonne); |
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("editeur", i18nC.publicationEditeur(), 75)); |
colonnes.add(new ColumnConfig("date_parution", i18nC.publicationDateParution(), 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)); |
350,13 → 357,17 |
GridSelectionModel<Publication> modeleDeSelection = new GridSelectionModel<Publication>(); |
|
ColumnModel modeleDeColonnes = new ColumnModel(colonnes); |
modeleDeColonnes.getColumn(0).setWidget(Images.ICONES.aide().createImage(), "Info"); |
//modeleDeColonnes.addHeaderGroup(0, 0, new HeaderGroupConfig(Images.ICONES.aide().createImage(), 1, 1)); |
|
Grid<Publication> grillePublications = new Grid<Publication>(storeGrille, modeleDeColonnes); |
grillePublications.setHeight("100%"); |
grillePublications.setBorders(true); |
grillePublications.setSelectionModel(modeleDeSelection); |
grillePublications.addPlugin(pluginLigneNumero); |
grillePublications.addPlugin(expansionPlugin); |
grillePublications.addPlugin(numeroPlugin); |
grillePublications.getView().setForceFit(true); |
grillePublications.getView().setAutoFill(true); |
grillePublications.setAutoExpandColumn("titre"); |
grillePublications.setStripeRows(true); |
grillePublications.setTrackMouseOver(true); |
364,6 → 375,34 |
return grillePublications; |
} |
|
private ColumnConfig creerColonneEditeur() { |
GridCellRenderer<Publication> editeurRendu = new GridCellRenderer<Publication>() { |
@Override |
public String render(Publication model, String property, ColumnData config, int rowIndex, int colIndex, ListStore<Publication> store, Grid<Publication> grid) { |
String editeur = model.getNomEditeur(); |
model.set("_editeur_", editeur); |
return editeur; |
} |
}; |
ColumnConfig editeurColonne = new ColumnConfig("_editeur_", i18nC.publicationEditeur(), 75); |
editeurColonne.setRenderer(editeurRendu); |
return editeurColonne; |
} |
|
private ColumnConfig creerColonneAnneePublication() { |
GridCellRenderer<Publication> datePublicationRendu = new GridCellRenderer<Publication>() { |
@Override |
public String render(Publication model, String property, ColumnData config, int rowIndex, int colIndex, ListStore<Publication> store, Grid<Publication> grid) { |
String annee = model.getAnneeParution(); |
model.set("_annee_", annee); |
return annee; |
} |
}; |
ColumnConfig datePublicationColonne = new ColumnConfig("_annee_", i18nC.publicationDateParution(), 75); |
datePublicationColonne.setRenderer(datePublicationRendu); |
return datePublicationColonne; |
} |
|
public void actualiserEtatBoutonsBarreOutils() { |
// Activation des boutons si la grille contient un élément |
if (grille.getStore().getCount() > 0) { |
424,10 → 463,17 |
if (info.getDonnee(0) != null) { |
Publication publication = (Publication) info.getDonnee(0); |
Publication publicationDansGrille = grille.getStore().findModel("id_publication", publication.getId()); |
publicationDansGrille.mettreAJour(publication); |
grille.getStore().update(publicationDansGrille); |
int index = grille.getStore().indexOf(publicationDansGrille); |
grille.getStore().remove(publicationDansGrille); |
grille.getStore().insert(publication, index); |
grille.getStore().commitChanges(); |
} |
} else if (type.equals("publication_ajoutee")) { |
if (info.getDonnee(0) != null) { |
Publication publication = (Publication) info.getDonnee(0); |
grille.getStore().add(publication); |
grille.getStore().commitChanges(); |
} |
} else { |
GWT.log(Mediateur.i18nM.erreurRafraichir(info.getClass(), this.getClass()), null); |
} |