Rev 444 | Blame | Compare with Previous | Last modification | View Log | RSS feed
package org.tela_botanica.client.vues;import java.util.ArrayList;import java.util.Iterator;import java.util.List;import org.tela_botanica.client.ComposantClass;import org.tela_botanica.client.Mediateur;import org.tela_botanica.client.RegistreId;import org.tela_botanica.client.interfaces.Rafraichissable;import org.tela_botanica.client.modeles.Publication;import org.tela_botanica.client.modeles.PublicationListe;import com.extjs.gxt.ui.client.Registry;import com.extjs.gxt.ui.client.Style.SelectionMode;import com.extjs.gxt.ui.client.binder.TableBinder;import com.extjs.gxt.ui.client.event.ComponentEvent;import com.extjs.gxt.ui.client.event.SelectionChangedEvent;import com.extjs.gxt.ui.client.event.SelectionChangedListener;import com.extjs.gxt.ui.client.event.SelectionListener;import com.extjs.gxt.ui.client.store.ListStore;import com.extjs.gxt.ui.client.widget.Component;import com.extjs.gxt.ui.client.widget.ContentPanel;import com.extjs.gxt.ui.client.widget.layout.FitLayout;import com.extjs.gxt.ui.client.widget.table.CellRenderer;import com.extjs.gxt.ui.client.widget.table.Table;import com.extjs.gxt.ui.client.widget.table.TableColumn;import com.extjs.gxt.ui.client.widget.table.TableColumnModel;import com.extjs.gxt.ui.client.widget.toolbar.TextToolItem;import com.extjs.gxt.ui.client.widget.toolbar.ToolBar;public class PublicationListeVue extends ContentPanel implements Rafraichissable {private Mediateur coelMediateur = null ;private Table table = null;private ListStore<Publication> store = null;private TableBinder<Publication> binder = null;public PublicationListeVue() {coelMediateur = Registry.get(RegistreId.MEDIATEUR);ToolBar toolBar = new ToolBar();TextToolItem ajouter = new TextToolItem("Ajouter");ajouter.setIconStyle(ComposantClass.ICONE_AJOUTER);ajouter.addSelectionListener(new SelectionListener<ComponentEvent>() {public void componentSelected(ComponentEvent ce) {coelMediateur.clicAjouterPublication();}});toolBar.add(ajouter);TextToolItem modifier = new TextToolItem("Modifier");modifier.setIconStyle(ComposantClass.ICONE_MODIFIER);toolBar.add(modifier);modifier.addSelectionListener(new SelectionListener<ComponentEvent>() {public void componentSelected(ComponentEvent ce) {coelMediateur.clicModifierPublication(binder.getSelection());}});TextToolItem supprimer = new TextToolItem("Supprimer");supprimer.setIconStyle(ComposantClass.ICONE_SUPPRIMER);toolBar.add(supprimer);supprimer.addSelectionListener(new SelectionListener<ComponentEvent>() {public void componentSelected(ComponentEvent ce) {coelMediateur.clicSupprimerPublication(binder.getSelection());}});setTopComponent(toolBar);List<TableColumn> columns = new ArrayList<TableColumn>();// ATTENTION : les noms des colonnes doivent correspondre aux noms variables de la classe utilisée dans la listeTableColumn auteurColonne = new TableColumn("fmt_auteur", "Auteur(s)", .2f);auteurColonne.setRenderer(new CellRenderer() {public String render(Component item, String property, Object value) {// TODO Auto-generated method stubreturn ((String)value).replaceAll("\\|", ", ");}});columns.add(auteurColonne);columns.add(new TableColumn("titre", "Titre", .15f));columns.add(new TableColumn("fmt_nom_complet", "Nom de la revue", .15f));columns.add(new TableColumn("ce_truk_editeur", "Editeur", .1f));columns.add(new TableColumn("date_parution", "Date de parution", .1f));columns.add(new TableColumn("indication_nvt", "Tome", .1f));columns.add(new TableColumn("fascicule", "Fascicule", .1f));columns.add(new TableColumn("truk_pages", "Pages", .1f));TableColumnModel cm = new TableColumnModel(columns);table = new Table(cm);table.setSelectionMode(SelectionMode.MULTI);table.setBorders(false);add(table);store = new ListStore<Publication>();binder = new TableBinder<Publication>(table, store);binder.setAutoSelect(true);binder.addSelectionChangedListener(new SelectionChangedListener<Publication>() {public void selectionChanged(SelectionChangedEvent<Publication> event) {Publication m = (Publication) event.getSelectedItem();clicListe(m);}});setLayout(new FitLayout());}public ListStore<Publication> getStore() {return store;}public TableBinder<Publication> getBinder() {return binder;}private void clicListe(Publication publication) {coelMediateur.clicListePublication(publication);}public void rafraichir(Object nouvelleDonnees) {if (nouvelleDonnees instanceof PublicationListe) {PublicationListe listePublications = (PublicationListe) nouvelleDonnees;setHeading("Publications");List<Publication> liste = new ArrayList<Publication>();for (Iterator<String> it = listePublications.keySet().iterator(); it.hasNext();) {liste.add(listePublications.get(it.next()));}store.removeAll();store.add((List<Publication>) liste);// Test pour savoir si la liste contient des élémentsif (listePublications.size() > 0) {binder.setSelection((Publication) listePublications.get(0));}}}}