1,5 → 1,6 |
package org.tela_botanica.client.composants; |
|
import java.util.HashMap; |
import java.util.List; |
import java.util.Map; |
|
32,6 → 33,7 |
import com.extjs.gxt.ui.client.widget.grid.GridSelectionModel; |
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.selection.SelectionModel; |
import com.extjs.gxt.ui.client.widget.toolbar.PagingToolBar; |
|
public class GrillePaginable<D extends ModelData> extends ContentPanel implements Rafraichissable, GrilleParametrable<D> { |
52,7 → 54,7 |
private ListStore<D> storeGrille = null; |
|
// Elements graphiques |
EditorGrid<D> grillePersonne = null; |
EditorGrid<D> grille = null; |
List<ColumnConfig> colonnes = null; |
ColumnModel modeleDeColonnes = null; |
|
64,7 → 66,7 |
Constructeur |
--------------*/ |
|
public GrillePaginable(ModelType modeltype, Proxy<D> proxy, List<ColumnConfig> colonnes, ColumnModel modeleDeColonnes) { |
public GrillePaginable(ModelType modeltype, HashMap<String, String> virtualFields, Proxy<D> proxy, List<ColumnConfig> colonnes, ColumnModel modeleDeColonnes) { |
|
// Récupération des paramètres |
this.modelType = modeltype; |
80,7 → 82,7 |
plc.setLimit(limit); |
plc.setOffset(start); |
|
reader = new TransformateurJSONaModelData<PagingLoadResult<D>>(modelType); |
reader = new TransformateurJSONaModelData<PagingLoadResult<D>>(modelType, virtualFields); |
|
loader = new ChargeurListe<PagingLoadResult<D>>(proxy, reader, this); |
loader.setLimit(plc.getLimit()); |
92,6 → 94,12 |
} |
}); |
|
loader.addListener(Loader.Load, new Listener<LoadEvent>() { |
public void handleEvent(LoadEvent be) { |
|
} |
}); |
|
// Création de la grille |
creerGrille(); |
} |
102,7 → 110,7 |
------------*/ |
|
public EditorGrid<D> getGrille() { |
return grillePersonne; |
return grille; |
} |
|
public ListStore<D> getStore() { |
109,11 → 117,20 |
return storeGrille; |
} |
|
public GridSelectionModel<D> getSelectionModel() { |
return grille.getSelectionModel(); |
} |
|
public D getSelection() { |
return grillePersonne.getSelectionModel().getSelectedItem(); |
return grille.getSelectionModel().getSelectedItem(); |
} |
|
@SuppressWarnings("unchecked") |
public Proxy getProxy() { |
return this.proxy; |
} |
|
|
/*----------------------------- |
Rafraichir |
-----------------------------*/ |
155,25 → 172,24 |
|
GridSelectionModel<D> modeleDeSelection = new GridSelectionModel<D>(); |
|
grillePersonne = new EditorGrid<D>(storeGrille, modeleDeColonnes); |
grillePersonne.setHeight("100%"); |
grillePersonne.setBorders(true); |
grillePersonne.setSelectionModel(modeleDeSelection); |
grillePersonne.addPlugin(pluginLigneNumero); |
grillePersonne.getView().setForceFit(true); |
grillePersonne.setAutoExpandColumn("fmt_nom_complet"); |
grillePersonne.setStripeRows(true); |
grillePersonne.setBorders(true); |
grille = new EditorGrid<D>(storeGrille, modeleDeColonnes); |
grille.setHeight("100%"); |
grille.setBorders(true); |
grille.setSelectionModel(modeleDeSelection); |
grille.addPlugin(pluginLigneNumero); |
grille.getView().setForceFit(true); |
grille.setStripeRows(true); |
grille.setBorders(true); |
|
grillePersonne.setStateful(true); |
grille.setStateful(true); |
|
grillePersonne.addListener(Events.Attach, new Listener<GridEvent<D>>() { |
grille.addListener(Events.Attach, new Listener<GridEvent<D>>() { |
public void handleEvent(GridEvent<D> be) { |
PagingLoadConfig config = new BasePagingLoadConfig(); |
config.setOffset(0); |
config.setLimit(50); |
config.setOffset(start); |
config.setLimit(limit); |
|
Map<String, Object> state = grillePersonne.getState(); |
Map<String, Object> state = grille.getState(); |
if (state.containsKey("offset")) { |
int offset = (Integer)state.get("offset"); |
int limit = (Integer)state.get("limit"); |
188,6 → 204,10 |
} |
}); |
|
this.add(grillePersonne); |
this.add(grille); |
} |
|
public void reload() { |
loader.load(); |
} |
} |