Line 9... |
Line 9... |
9 |
import org.tela_botanica.client.modeles.Information;
|
9 |
import org.tela_botanica.client.modeles.Information;
|
10 |
import org.tela_botanica.client.modeles.Publication;
|
10 |
import org.tela_botanica.client.modeles.Publication;
|
11 |
import org.tela_botanica.client.modeles.PublicationListe;
|
11 |
import org.tela_botanica.client.modeles.PublicationListe;
|
12 |
import org.tela_botanica.client.modeles.ValeurListe;
|
12 |
import org.tela_botanica.client.modeles.ValeurListe;
|
Line -... |
Line 13... |
- |
|
13 |
|
- |
|
14 |
import com.extjs.gxt.ui.client.Style.HorizontalAlignment;
|
13 |
|
15 |
import com.extjs.gxt.ui.client.core.XTemplate;
|
14 |
import com.extjs.gxt.ui.client.event.BaseEvent;
|
16 |
import com.extjs.gxt.ui.client.event.BaseEvent;
|
15 |
import com.extjs.gxt.ui.client.event.ButtonEvent;
|
17 |
import com.extjs.gxt.ui.client.event.ButtonEvent;
|
16 |
import com.extjs.gxt.ui.client.event.ComponentEvent;
|
18 |
import com.extjs.gxt.ui.client.event.ComponentEvent;
|
17 |
import com.extjs.gxt.ui.client.event.Events;
|
19 |
import com.extjs.gxt.ui.client.event.Events;
|
Line 32... |
Line 34... |
32 |
import com.extjs.gxt.ui.client.widget.grid.ColumnData;
|
34 |
import com.extjs.gxt.ui.client.widget.grid.ColumnData;
|
33 |
import com.extjs.gxt.ui.client.widget.grid.ColumnModel;
|
35 |
import com.extjs.gxt.ui.client.widget.grid.ColumnModel;
|
34 |
import com.extjs.gxt.ui.client.widget.grid.Grid;
|
36 |
import com.extjs.gxt.ui.client.widget.grid.Grid;
|
35 |
import com.extjs.gxt.ui.client.widget.grid.GridCellRenderer;
|
37 |
import com.extjs.gxt.ui.client.widget.grid.GridCellRenderer;
|
36 |
import com.extjs.gxt.ui.client.widget.grid.GridSelectionModel;
|
38 |
import com.extjs.gxt.ui.client.widget.grid.GridSelectionModel;
|
- |
|
39 |
import com.extjs.gxt.ui.client.widget.grid.HeaderGroupConfig;
|
- |
|
40 |
import com.extjs.gxt.ui.client.widget.grid.RowExpander;
|
37 |
import com.extjs.gxt.ui.client.widget.grid.RowNumberer;
|
41 |
import com.extjs.gxt.ui.client.widget.grid.RowNumberer;
|
38 |
import com.extjs.gxt.ui.client.widget.layout.FitLayout;
|
42 |
import com.extjs.gxt.ui.client.widget.layout.FitLayout;
|
39 |
import com.extjs.gxt.ui.client.widget.toolbar.SeparatorToolItem;
|
43 |
import com.extjs.gxt.ui.client.widget.toolbar.SeparatorToolItem;
|
40 |
import com.extjs.gxt.ui.client.widget.toolbar.ToolBar;
|
44 |
import com.extjs.gxt.ui.client.widget.toolbar.ToolBar;
|
41 |
import com.google.gwt.core.client.GWT;
|
45 |
import com.google.gwt.core.client.GWT;
|
- |
|
46 |
import com.google.gwt.event.shared.GwtEvent;
|
- |
|
47 |
import com.google.gwt.user.client.Event;
|
- |
|
48 |
import com.google.gwt.user.client.ui.Image;
|
Line 42... |
Line 49... |
42 |
|
49 |
|
43 |
public class CollectionFormPublication extends FormulaireOnglet implements Rafraichissable {
|
50 |
public class CollectionFormPublication extends FormulaireOnglet implements Rafraichissable {
|
44 |
private ContentPanel panneauPrincipal = null;
|
51 |
private ContentPanel panneauPrincipal = null;
|
45 |
private ToolBar barreOutils = null;
|
52 |
private ToolBar barreOutils = null;
|
Line 291... |
Line 298... |
291 |
|
298 |
|
292 |
// Définition de l'état
|
299 |
// Définition de l'état
|
Line 293... |
Line 300... |
293 |
publication.set("etat", ETAT_AJOUTE);
|
300 |
publication.set("etat", ETAT_AJOUTE);
|
294 |
|
301 |
|
- |
|
302 |
// Ajout à la grille
|
295 |
// Ajout à la grille
|
303 |
grille.getStore().insert(publication, 0);
|
296 |
grille.getStore().insert(publication, 0);
|
304 |
grille.getSelectionModel().select(0, false);
|
Line 297... |
Line 305... |
297 |
}
|
305 |
}
|
298 |
}
|
306 |
}
|
Line 320... |
Line 328... |
320 |
public void handleEvent(StoreEvent<Publication> ce) {
|
328 |
public void handleEvent(StoreEvent<Publication> ce) {
|
321 |
actualiserEtatBoutonsBarreOutils();
|
329 |
actualiserEtatBoutonsBarreOutils();
|
322 |
}
|
330 |
}
|
323 |
});
|
331 |
});
|
Line 324... |
Line 332... |
324 |
|
332 |
|
- |
|
333 |
RowNumberer numeroPlugin = new RowNumberer();
|
Line 325... |
Line 334... |
325 |
RowNumberer pluginLigneNumero = new RowNumberer();
|
334 |
numeroPlugin.setHeader("#");
|
326 |
|
- |
|
327 |
GridCellRenderer<Publication> infoBulle = new GridCellRenderer<Publication>() {
|
335 |
|
328 |
@Override
|
336 |
XTemplate infoTpl = XTemplate.create("<p>"+
|
- |
|
337 |
"<span style='font-weight:bold;'>"+i18nC.publicationAuteurs()+" :</span> {fmt_auteur}<br />"+
|
329 |
public String render(Publication model, String property, ColumnData config, int rowIndex, int colIndex, ListStore<Publication> store, Grid<Publication> grid) {
|
338 |
"<span style='font-weight:bold;'>"+i18nC.publicationTitre()+" :</span> {titre}<br />"+
|
330 |
String valeur = (String) model.get(property);
|
339 |
"<span style='font-weight:bold;'>"+i18nC.publicationRevueCollection()+" :</span> {collection}<br />"+
|
- |
|
340 |
"<span style='font-weight:bold;'>"+i18nC.publicationEditeur()+" :</span> {_editeur_}"+
|
331 |
return "<span title='"+valeur+"'>" + valeur + "</span>";
|
341 |
"</p>");
|
Line 332... |
Line 342... |
332 |
}
|
342 |
RowExpander expansionPlugin = new RowExpander();
|
333 |
};
|
343 |
expansionPlugin.setTemplate(infoTpl);
|
334 |
|
- |
|
335 |
List<ColumnConfig> colonnes = new ArrayList<ColumnConfig>();
|
- |
|
336 |
colonnes.add(pluginLigneNumero);
|
344 |
|
337 |
ColumnConfig fmtAuteurColonne = new ColumnConfig("fmt_auteur", i18nC.publicationAuteurs(), 150);
|
345 |
List<ColumnConfig> colonnes = new ArrayList<ColumnConfig>();
|
338 |
fmtAuteurColonne.setRenderer(infoBulle);
|
- |
|
339 |
colonnes.add(fmtAuteurColonne);
|
346 |
colonnes.add(expansionPlugin);
|
340 |
ColumnConfig titreColonne = new ColumnConfig("titre", i18nC.publicationTitre(), 150);
|
347 |
colonnes.add(numeroPlugin);
|
341 |
titreColonne.setRenderer(infoBulle);
|
348 |
colonnes.add(new ColumnConfig("fmt_auteur", i18nC.publicationAuteurs(), 150));
|
342 |
colonnes.add(titreColonne);
|
349 |
colonnes.add(new ColumnConfig("titre", i18nC.publicationTitre(), 150));
|
343 |
colonnes.add(new ColumnConfig("collection", i18nC.publicationRevueCollection(), 75));
|
350 |
colonnes.add(new ColumnConfig("collection", i18nC.publicationRevueCollection(), 75));
|
344 |
colonnes.add(new ColumnConfig("editeur", i18nC.publicationEditeur(), 75));
|
351 |
colonnes.add(creerColonneEditeur());
|
345 |
colonnes.add(new ColumnConfig("date_parution", i18nC.publicationDateParution(), 75));
|
352 |
colonnes.add(creerColonneAnneePublication());
|
Line 346... |
Line 353... |
346 |
colonnes.add(new ColumnConfig("indication_nvt", i18nC.publicationNvt(), 75));
|
353 |
colonnes.add(new ColumnConfig("indication_nvt", i18nC.publicationNvt(), 75));
|
Line 347... |
Line 354... |
347 |
colonnes.add(new ColumnConfig("fascicule", i18nC.publicationFascicule(), 75));
|
354 |
colonnes.add(new ColumnConfig("fascicule", i18nC.publicationFascicule(), 75));
|
- |
|
355 |
colonnes.add(new ColumnConfig("truk_pages", i18nC.publicationPage(), 50));
|
- |
|
356 |
|
Line 348... |
Line 357... |
348 |
colonnes.add(new ColumnConfig("truk_pages", i18nC.publicationPage(), 50));
|
357 |
GridSelectionModel<Publication> modeleDeSelection = new GridSelectionModel<Publication>();
|
349 |
|
358 |
|
350 |
GridSelectionModel<Publication> modeleDeSelection = new GridSelectionModel<Publication>();
|
359 |
ColumnModel modeleDeColonnes = new ColumnModel(colonnes);
|
351 |
|
360 |
modeleDeColonnes.getColumn(0).setWidget(Images.ICONES.aide().createImage(), "Info");
|
352 |
ColumnModel modeleDeColonnes = new ColumnModel(colonnes);
|
361 |
//modeleDeColonnes.addHeaderGroup(0, 0, new HeaderGroupConfig(Images.ICONES.aide().createImage(), 1, 1));
|
- |
|
362 |
|
353 |
|
363 |
Grid<Publication> grillePublications = new Grid<Publication>(storeGrille, modeleDeColonnes);
|
- |
|
364 |
grillePublications.setHeight("100%");
|
354 |
Grid<Publication> grillePublications = new Grid<Publication>(storeGrille, modeleDeColonnes);
|
365 |
grillePublications.setBorders(true);
|
355 |
grillePublications.setHeight("100%");
|
366 |
grillePublications.setSelectionModel(modeleDeSelection);
|
356 |
grillePublications.setBorders(true);
|
367 |
grillePublications.addPlugin(expansionPlugin);
|
Line 357... |
Line 368... |
357 |
grillePublications.setSelectionModel(modeleDeSelection);
|
368 |
grillePublications.addPlugin(numeroPlugin);
|
358 |
grillePublications.addPlugin(pluginLigneNumero);
|
369 |
grillePublications.getView().setForceFit(true);
|
Line -... |
Line 370... |
- |
|
370 |
grillePublications.getView().setAutoFill(true);
|
- |
|
371 |
grillePublications.setAutoExpandColumn("titre");
|
- |
|
372 |
grillePublications.setStripeRows(true);
|
- |
|
373 |
grillePublications.setTrackMouseOver(true);
|
- |
|
374 |
|
- |
|
375 |
return grillePublications;
|
- |
|
376 |
}
|
- |
|
377 |
|
- |
|
378 |
private ColumnConfig creerColonneEditeur() {
|
- |
|
379 |
GridCellRenderer<Publication> editeurRendu = new GridCellRenderer<Publication>() {
|
- |
|
380 |
@Override
|
- |
|
381 |
public String render(Publication model, String property, ColumnData config, int rowIndex, int colIndex, ListStore<Publication> store, Grid<Publication> grid) {
|
- |
|
382 |
String editeur = model.getNomEditeur();
|
- |
|
383 |
model.set("_editeur_", editeur);
|
- |
|
384 |
return editeur;
|
- |
|
385 |
}
|
- |
|
386 |
};
|
- |
|
387 |
ColumnConfig editeurColonne = new ColumnConfig("_editeur_", i18nC.publicationEditeur(), 75);
|
- |
|
388 |
editeurColonne.setRenderer(editeurRendu);
|
- |
|
389 |
return editeurColonne;
|
- |
|
390 |
}
|
- |
|
391 |
|
- |
|
392 |
private ColumnConfig creerColonneAnneePublication() {
|
- |
|
393 |
GridCellRenderer<Publication> datePublicationRendu = new GridCellRenderer<Publication>() {
|
- |
|
394 |
@Override
|
- |
|
395 |
public String render(Publication model, String property, ColumnData config, int rowIndex, int colIndex, ListStore<Publication> store, Grid<Publication> grid) {
|
- |
|
396 |
String annee = model.getAnneeParution();
|
- |
|
397 |
model.set("_annee_", annee);
|
359 |
grillePublications.getView().setForceFit(true);
|
398 |
return annee;
|
360 |
grillePublications.setAutoExpandColumn("titre");
|
399 |
}
|
361 |
grillePublications.setStripeRows(true);
|
400 |
};
|
362 |
grillePublications.setTrackMouseOver(true);
|
401 |
ColumnConfig datePublicationColonne = new ColumnConfig("_annee_", i18nC.publicationDateParution(), 75);
|
363 |
|
402 |
datePublicationColonne.setRenderer(datePublicationRendu);
|
Line 422... |
Line 461... |
422 |
}
|
461 |
}
|
423 |
} else if (type.equals("publication_modifiee")) {
|
462 |
} else if (type.equals("publication_modifiee")) {
|
424 |
if (info.getDonnee(0) != null) {
|
463 |
if (info.getDonnee(0) != null) {
|
425 |
Publication publication = (Publication) info.getDonnee(0);
|
464 |
Publication publication = (Publication) info.getDonnee(0);
|
426 |
Publication publicationDansGrille = grille.getStore().findModel("id_publication", publication.getId());
|
465 |
Publication publicationDansGrille = grille.getStore().findModel("id_publication", publication.getId());
|
427 |
publicationDansGrille.mettreAJour(publication);
|
466 |
int index = grille.getStore().indexOf(publicationDansGrille);
|
428 |
grille.getStore().update(publicationDansGrille);
|
467 |
grille.getStore().remove(publicationDansGrille);
|
- |
|
468 |
grille.getStore().insert(publication, index);
|
- |
|
469 |
grille.getStore().commitChanges();
|
- |
|
470 |
}
|
- |
|
471 |
} else if (type.equals("publication_ajoutee")) {
|
- |
|
472 |
if (info.getDonnee(0) != null) {
|
- |
|
473 |
Publication publication = (Publication) info.getDonnee(0);
|
- |
|
474 |
grille.getStore().add(publication);
|
429 |
grille.getStore().commitChanges();
|
475 |
grille.getStore().commitChanges();
|
430 |
}
|
476 |
}
|
431 |
} else {
|
477 |
} else {
|
432 |
GWT.log(Mediateur.i18nM.erreurRafraichir(info.getClass(), this.getClass()), null);
|
478 |
GWT.log(Mediateur.i18nM.erreurRafraichir(info.getClass(), this.getClass()), null);
|
433 |
}
|
479 |
}
|