8,8 → 8,6 |
import org.tela_botanica.client.composants.pagination.Proxy; |
import org.tela_botanica.client.composants.pagination.TransformateurJSONaModelData; |
import org.tela_botanica.client.interfaces.Rafraichissable; |
import org.tela_botanica.client.modeles.aDonnee; |
import org.tela_botanica.client.util.Debug; |
import org.tela_botanica.client.composants.GrilleParametrable; |
|
import com.extjs.gxt.ui.client.Style.SortDir; |
33,14 → 31,12 |
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> { |
|
//-------------// |
// ATTRIBUTS // |
//-------------// |
//+---------------------------------------------------------------------------------------------------------------+ |
// Attributs |
|
// Pagination |
private int start = 0; |
50,6 → 46,7 |
private ModelType modelType = null; |
private Proxy<D> proxy = null; |
private TransformateurJSONaModelData<PagingLoadResult<D>> reader = null; |
private BasePagingLoadConfig plc = null; |
private ChargeurListe<PagingLoadResult<D>> loader = null; |
private ListStore<D> storeGrille = null; |
|
58,14 → 55,9 |
List<ColumnConfig> colonnes = null; |
ColumnModel modeleDeColonnes = null; |
|
//-------------// |
// METHODES // |
//-------------// |
//+---------------------------------------------------------------------------------------------------------------+ |
// Constructeur |
|
/*-------------- |
Constructeur |
--------------*/ |
|
public GrillePaginable(ModelType modeltype, HashMap<String, String> virtualFields, Proxy<D> proxy, List<ColumnConfig> colonnes, ColumnModel modeleDeColonnes) { |
|
// Récupération des paramètres |
78,37 → 70,19 |
this.setLayout(new FitLayout()); |
|
// Création des objets pour la récupération et la pagination des données |
BasePagingLoadConfig plc = new BasePagingLoadConfig(); |
plc = new BasePagingLoadConfig(); |
plc.setLimit(limit); |
plc.setOffset(start); |
|
reader = new TransformateurJSONaModelData<PagingLoadResult<D>>(modelType, virtualFields); |
|
loader = new ChargeurListe<PagingLoadResult<D>>(proxy, reader, this); |
loader.setLimit(plc.getLimit()); |
loader.setOffset(plc.getOffset()); |
creerChargeurDeListe(); |
creerGrille(); |
} |
|
loader.addListener(Loader.BeforeLoad, new Listener<LoadEvent>() { |
public void handleEvent(LoadEvent be) { |
|
} |
}); |
|
loader.addListener(Loader.Load, new Listener<LoadEvent>() { |
public void handleEvent(LoadEvent be) { |
|
} |
}); |
|
// Création de la grille |
creerGrille(); |
} |
//+---------------------------------------------------------------------------------------------------------------+ |
// Accesseurs |
|
|
/*------------ |
Accesseurs |
------------*/ |
|
public EditorGrid<D> getGrille() { |
return grille; |
} |
131,27 → 105,38 |
} |
|
|
/*----------------------------- |
Rafraichir |
-----------------------------*/ |
//+---------------------------------------------------------------------------------------------------------------+ |
// Méthodes publiques |
|
public void rafraichir(Object nouvellesDonnees) { |
|
} |
|
//+---------------------------------------------------------------------------------------------------------------+ |
// Méthodes privées |
|
/*---------------- |
Méthode privées |
-----------------*/ |
private void creerChargeurDeListe() { |
loader = new ChargeurListe<PagingLoadResult<D>>(proxy, reader, this); |
loader.setLimit(plc.getLimit()); |
loader.setOffset(plc.getOffset()); |
loader.addListener(Loader.BeforeLoad, new Listener<LoadEvent>() { |
public void handleEvent(LoadEvent be) { |
|
} |
}); |
loader.addListener(Loader.Load, new Listener<LoadEvent>() { |
public void handleEvent(LoadEvent be) { |
|
} |
}); |
} |
|
private void creerGrille() { |
|
final PagingToolBar toolBar = new PagingToolBar(this.limit); |
toolBar.bind(loader); |
this.setBottomComponent(toolBar); |
|
storeGrille = new ListStore<D>(loader); |
|
storeGrille.addListener(Store.Add, new Listener<StoreEvent<D>>() { |
public void handleEvent(StoreEvent<D> ce) { |
|
168,8 → 153,6 |
} |
}); |
|
RowNumberer pluginLigneNumero = new RowNumberer(); |
|
GridSelectionModel<D> modeleDeSelection = new GridSelectionModel<D>(); |
|
grille = new EditorGrid<D>(storeGrille, modeleDeColonnes); |
176,13 → 159,10 |
grille.setHeight("100%"); |
grille.setBorders(true); |
grille.setSelectionModel(modeleDeSelection); |
grille.addPlugin(pluginLigneNumero); |
grille.getView().setForceFit(true); |
grille.setStripeRows(true); |
grille.setBorders(true); |
|
grille.setStateful(true); |
|
grille.addListener(Events.Attach, new Listener<GridEvent<D>>() { |
public void handleEvent(GridEvent<D> be) { |
PagingLoadConfig config = new BasePagingLoadConfig(); |