/trunk/src/org/tela_botanica/client/composants/GrilleParametrable.java |
---|
New file |
0,0 → 1,7 |
package org.tela_botanica.client.composants; |
public interface GrilleParametrable<D> { |
} |
/trunk/src/org/tela_botanica/client/composants/ChampMultiValeurs.java |
---|
6,6 → 6,7 |
import org.tela_botanica.client.images.Images; |
import org.tela_botanica.client.modeles.Valeur; |
import org.tela_botanica.client.modeles.aDonnee; |
import org.tela_botanica.client.util.Debug; |
import com.extjs.gxt.ui.client.event.ButtonEvent; |
import com.extjs.gxt.ui.client.event.Events; |
185,7 → 186,7 |
String valeurChamp = ""; |
if (estComboBox) { |
if (champValeurCombo.getValue() != null) { |
valeurChamp = champValeurCombo.getValue().getNom(); |
valeurChamp = champValeurCombo.getValue().getId(); |
} |
} else { |
valeurChamp = champValeurTxt.getValue(); |
236,6 → 237,7 |
} |
public void ajouterValeur(final String texte) { |
LayoutContainer colonneLayout = new LayoutContainer(); |
colonneLayout.setLayout(new ColumnLayout()); |
valeurs.put(texte, colonneLayout); |
255,7 → 257,7 |
principalLayout.remove(valeurLayout); |
valeurs.remove(valeur); |
supprimerValeurDuRecapitulatif(valeur); |
actualiserLayoutGlobal(); |
298,9 → 300,21 |
} |
public void supprimerValeurDuRecapitulatif(String texte) { |
if (champRecapitulatif.getValue() != null) { |
// comme c'est le nom de la valeur qui est passée en paramètre, |
// on doit récupérer son id |
ListStore<Valeur> valeurs = champValeurCombo.getStore(); |
Valeur objetValeur = valeurs.findModel("nom", texte); |
String texteValeur = ""; |
if (objetValeur != null) { |
texteValeur = objetValeur.getId(); |
} else { |
texteValeur = texte; |
} |
String texteRecapitulatif = champRecapitulatif.getValue(); |
texteRecapitulatif = texteRecapitulatif.replace(texte + aDonnee.SEPARATEUR_VALEURS, ""); |
texteRecapitulatif = texteRecapitulatif.replace(texteValeur + aDonnee.SEPARATEUR_VALEURS, ""); |
champRecapitulatif.setValue(texteRecapitulatif); |
} |
} |
/trunk/src/org/tela_botanica/client/composants/ChampMultiValeursMultiTypes.java |
---|
9,6 → 9,7 |
import org.tela_botanica.client.modeles.ValeurListe; |
import org.tela_botanica.client.modeles.aDonnee; |
import org.tela_botanica.client.synchronisation.Sequenceur; |
import org.tela_botanica.client.util.Debug; |
import org.tela_botanica.client.vues.Formulaire; |
import com.extjs.gxt.ui.client.Registry; |
75,6 → 76,7 |
} |
public void ajouterValeur(final String texte, final String type, final String id) { |
LayoutContainer colonneConteneur = new LayoutContainer(); |
colonneConteneur.setLayout(new ColumnLayout()); |
valeurs.put(id + aDonnee.SEPARATEUR_TYPE_VALEUR + texte, colonneConteneur); |
84,8 → 86,19 |
champType.setWidth(largeurType); |
colonneConteneur.add(champType, new ColumnData(largeurType)); |
// on recupere le nom de la valeur à partir de son id |
String texteValeur = texte; |
if (estComboBox) { |
ListStore<Valeur> valeursStore = champValeurCombo.getStore(); |
Valeur objetValeur = valeursStore.findModel("id_valeur", texte); |
if (objetValeur != null) { |
texteValeur = objetValeur.getNom(); |
} |
} |
Text champValeur = new Text(); |
champValeur.setText(texte); |
champValeur.setText(texteValeur); |
champValeur.setWidth(largeurChamp); |
colonneConteneur.add(champValeur, new ColumnData(largeurChamp)); |
131,6 → 144,7 |
} |
public void peupler(String chaineExistante) { |
if (valeurs.size() > 0) { |
reinitialiser(); |
} |
150,18 → 164,8 |
} else { |
texteType = idType; |
} |
String texteValeur = ""; |
if (champValeurCombo!=null) { |
ListStore<Valeur> valeurStore = champValeurCombo.getStore(); |
Valeur objetValeur = valeurStore.findModel("id_valeur", idValeur); |
if (objetValeur != null) { |
texteValeur = objetValeur.getNom(); |
} |
} else { |
texteValeur = idValeur; |
} |
ajouterValeur(texteValeur, texteType, idType); |
ajouterValeur(idValeur, texteType, idType); |
} else { |
InfoLogger.display("ChampMultiValeursMultiTypes > méthode peupler", "Erreur dans le split d'une valeur, chaine="+chaineExistante, true); |
} |
/trunk/src/org/tela_botanica/client/composants/pagination/ProxyCollectionAPersonne.java |
---|
New file |
0,0 → 1,77 |
package org.tela_botanica.client.composants.pagination; |
import java.util.ArrayList; |
import java.util.HashMap; |
import java.util.List; |
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.ValeurListe; |
import org.tela_botanica.client.modeles.ValeurListeAsyncDao; |
import org.tela_botanica.client.synchronisation.Sequenceur; |
import org.tela_botanica.client.util.Debug; |
import com.extjs.gxt.ui.client.Registry; |
import com.extjs.gxt.ui.client.data.BasePagingLoadConfig; |
import com.extjs.gxt.ui.client.data.BasePagingLoadResult; |
import com.extjs.gxt.ui.client.data.DataReader; |
import com.extjs.gxt.ui.client.data.MemoryProxy; |
import com.extjs.gxt.ui.client.data.ModelData; |
import com.google.gwt.json.client.JSONObject; |
import com.google.gwt.json.client.JSONString; |
import com.google.gwt.user.client.rpc.AsyncCallback; |
public class ProxyCollectionAPersonne<D> extends Proxy { |
String collectionId = null; |
String roleId = null; |
public ProxyCollectionAPersonne(Sequenceur sequenceur, String collectionId, String roleId) { |
super(sequenceur); |
this.collectionId = collectionId; |
this.roleId = roleId; |
} |
@Override |
public void load(TransformateurJSONaModelData reader, Object loadConfig, AsyncCallback callback, String recherche) { |
this.reader = reader; |
this.callback = callback; |
this.loadConfig = loadConfig; |
BasePagingLoadConfig lc = (BasePagingLoadConfig)loadConfig; |
mediateur.selectionnerCollectionAPersonne(this, this.collectionId, this.roleId, recherche, lc.getOffset(), lc.getLimit(), sequenceur); |
} |
@Override |
@SuppressWarnings("unchecked") |
public void rafraichir(Object nouvellesDonnees) { |
try |
{ |
data = nouvellesDonnees; |
D d = null; |
if (reader != null) |
{ |
d = (D) reader.read(loadConfig, data); |
} |
else |
{ |
d = (D) data; |
if (d instanceof List) |
{ |
d = (D) new ArrayList((List) d); |
} |
} |
callback.onSuccess(d); |
} |
catch (Exception e) |
{ |
callback.onFailure(e); |
} |
} |
} |
/trunk/src/org/tela_botanica/client/composants/pagination/ProxyProjets.java |
---|
7,10 → 7,13 |
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.Information; |
import org.tela_botanica.client.modeles.ValeurListe; |
import org.tela_botanica.client.modeles.ValeurListeAsyncDao; |
import org.tela_botanica.client.modeles.projet.Projet; |
import org.tela_botanica.client.synchronisation.Sequenceur; |
import org.tela_botanica.client.util.Debug; |
import org.tela_botanica.client.util.UtilString; |
import com.extjs.gxt.ui.client.Registry; |
import com.extjs.gxt.ui.client.data.BasePagingLoadConfig; |
18,6 → 21,7 |
import com.extjs.gxt.ui.client.data.DataReader; |
import com.extjs.gxt.ui.client.data.MemoryProxy; |
import com.extjs.gxt.ui.client.data.ModelData; |
import com.google.gwt.json.client.JSONArray; |
import com.google.gwt.json.client.JSONObject; |
import com.google.gwt.json.client.JSONString; |
import com.google.gwt.user.client.rpc.AsyncCallback; |
34,14 → 38,15 |
this.callback = callback; |
this.loadConfig = loadConfig; |
BasePagingLoadConfig lc = (BasePagingLoadConfig)loadConfig; |
mediateur.selectionnerProjet(this, recherche, lc.getOffset(), lc.getLimit(), sequenceur); |
BasePagingLoadConfig lc = (BasePagingLoadConfig)loadConfig; |
if (UtilString.isNumber(recherche, false)) mediateur.selectionnerProjet(this, recherche, "array", true, sequenceur); |
else mediateur.selectionnerProjet(this, recherche, lc.getOffset(), lc.getLimit(), sequenceur); |
} |
@Override |
@SuppressWarnings("unchecked") |
public void rafraichir(Object nouvellesDonnees) { |
public void rafraichir(Object nouvellesDonnees) { |
try |
{ |
data = nouvellesDonnees; |
/trunk/src/org/tela_botanica/client/composants/pagination/ProxyStructureAPersonne.java |
---|
New file |
0,0 → 1,77 |
package org.tela_botanica.client.composants.pagination; |
import java.util.ArrayList; |
import java.util.HashMap; |
import java.util.List; |
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.ValeurListe; |
import org.tela_botanica.client.modeles.ValeurListeAsyncDao; |
import org.tela_botanica.client.synchronisation.Sequenceur; |
import org.tela_botanica.client.util.Debug; |
import com.extjs.gxt.ui.client.Registry; |
import com.extjs.gxt.ui.client.data.BasePagingLoadConfig; |
import com.extjs.gxt.ui.client.data.BasePagingLoadResult; |
import com.extjs.gxt.ui.client.data.DataReader; |
import com.extjs.gxt.ui.client.data.MemoryProxy; |
import com.extjs.gxt.ui.client.data.ModelData; |
import com.google.gwt.json.client.JSONObject; |
import com.google.gwt.json.client.JSONString; |
import com.google.gwt.user.client.rpc.AsyncCallback; |
public class ProxyStructureAPersonne<D> extends Proxy { |
String structureId = null; |
String roleId = null; |
public ProxyStructureAPersonne(Sequenceur sequenceur, String structureId, String roleId) { |
super(sequenceur); |
this.structureId = structureId; |
this.roleId = roleId; |
} |
@Override |
public void load(TransformateurJSONaModelData reader, Object loadConfig, AsyncCallback callback, String recherche) { |
this.reader = reader; |
this.callback = callback; |
this.loadConfig = loadConfig; |
BasePagingLoadConfig lc = (BasePagingLoadConfig)loadConfig; |
mediateur.selectionnerStructureAPersonne(this, this.structureId, this.roleId, recherche, lc.getOffset(), lc.getLimit(), sequenceur); |
} |
@Override |
@SuppressWarnings("unchecked") |
public void rafraichir(Object nouvellesDonnees) { |
try |
{ |
data = nouvellesDonnees; |
D d = null; |
if (reader != null) |
{ |
d = (D) reader.read(loadConfig, data); |
} |
else |
{ |
d = (D) data; |
if (d instanceof List) |
{ |
d = (D) new ArrayList((List) d); |
} |
} |
callback.onSuccess(d); |
} |
catch (Exception e) |
{ |
callback.onFailure(e); |
} |
} |
} |
/trunk/src/org/tela_botanica/client/composants/pagination/ChargeurListe.java |
---|
1,9 → 1,20 |
package org.tela_botanica.client.composants.pagination; |
import java.util.Iterator; |
import java.util.List; |
import java.util.Map; |
import java.util.Set; |
import org.tela_botanica.client.interfaces.Rafraichissable; |
import org.tela_botanica.client.modeles.Information; |
import org.tela_botanica.client.modeles.collection.CollectionAPersonne; |
import org.tela_botanica.client.modeles.personne.Personne; |
import org.tela_botanica.client.util.Debug; |
import org.tela_botanica.client.util.UtilString; |
import com.extjs.gxt.ui.client.data.BaseListLoadResult; |
import com.extjs.gxt.ui.client.data.BaseModelData; |
import com.extjs.gxt.ui.client.data.BasePagingLoadResult; |
import com.extjs.gxt.ui.client.data.BasePagingLoader; |
import com.extjs.gxt.ui.client.data.LoadEvent; |
import com.extjs.gxt.ui.client.data.PagingLoadResult; |
12,9 → 23,8 |
public class ChargeurListe<D extends PagingLoadResult<?>> extends BasePagingLoader<D> { |
private String recherche = ""; |
private Integer id = null; |
private Rafraichissable vueARafraichir = null; |
private boolean rafraichir = false; |
private boolean doRafraichir = false; |
@SuppressWarnings("unchecked") |
public ChargeurListe(Proxy proxy, TransformateurJSONaModelData reader, Rafraichissable vueARafraichir) { |
22,8 → 32,8 |
this.vueARafraichir = vueARafraichir; |
} |
public boolean load(Object loadConfig, String recherche, boolean rafraichir) { |
this.rafraichir = rafraichir; |
public boolean load(Object loadConfig, String recherche, boolean doRafraichir) { |
this.doRafraichir = doRafraichir; |
if (fireEvent(BeforeLoad, new LoadEvent(this, loadConfig))) { |
lastConfig = loadConfig; |
62,12 → 72,43 |
public void onFailure(Throwable caught) { |
onLoadFailure(config, caught); |
if (!UtilString.isEmpty(caught.getMessage())) Debug.log("[FAILURE] ChargeurListe : message="+caught.getMessage()); |
else Debug.log("[FAILURE] ChargeurListe : message=NULL. Peut-être le modelType est-il mal paramétré ?"); |
} |
public void onSuccess(D result) { |
onLoadSuccess(config, result); |
if (rafraichir) { |
/* |
// SUPPRIMER LES PREFIXES |
if (result instanceof BasePagingLoadResult) { |
BasePagingLoadResult retourPaging = (BasePagingLoadResult)result; |
List retourListe = retourPaging.getData(); |
for(int i=0; i< retourListe.size(); i++) { |
if (retourListe.get(i) instanceof BaseModelData) { |
BaseModelData model = (BaseModelData)retourListe.get(i); |
Map<String, Object> a = model.getProperties(); |
Set<String> cles = a.keySet(); |
Iterator<String> it = cles.iterator(); |
while (it.hasNext()) { |
String cle = it.next(); |
if (a.get(cle) != null) { |
String cleObjet = ""; |
cleObjet = cle.replaceFirst("^[A-Za-z]+_", ""); |
model.set(cleObjet, a.get(cle)); |
model.remove(cle); |
} |
} |
} |
} |
}*/ |
// Cas où il faut rafraichir le combo manuellement |
// (cela sert pour charger la valeur initiale du combo au chargement d'un formulaire) |
if (doRafraichir) { |
Information info = new Information("selectionnerValeurCombo"); |
info.setDonnee(result); |
info.setMessage(""); |
/trunk/src/org/tela_botanica/client/composants/pagination/Proxy.java |
---|
13,9 → 13,10 |
import com.extjs.gxt.ui.client.data.BasePagingLoadConfig; |
import com.extjs.gxt.ui.client.data.DataReader; |
import com.extjs.gxt.ui.client.data.MemoryProxy; |
import com.extjs.gxt.ui.client.data.ModelData; |
import com.google.gwt.user.client.rpc.AsyncCallback; |
public abstract class Proxy<D> extends MemoryProxy<D> implements Rafraichissable { |
public abstract class Proxy<D extends ModelData> extends MemoryProxy<D> implements Rafraichissable { |
protected Mediateur mediateur = (Mediateur) Registry.get(RegistreId.MEDIATEUR); |
/trunk/src/org/tela_botanica/client/composants/pagination/TransformateurJSONaModelData.java |
---|
60,7 → 60,7 |
} |
@SuppressWarnings("unchecked") |
public D read(Object loadConfig, Object data) { |
public D read(Object loadConfig, Object data) { |
JSONObject jsonRoot = null; |
if (data instanceof JSONObject) { |
jsonRoot = (JSONObject) data; |
68,6 → 68,7 |
JSONArray root = (JSONArray) jsonRoot.get(modelType.getRoot()); |
int size = root.size(); |
ArrayList<ModelData> models = new ArrayList<ModelData>(); |
for (int i = 0; i < size; i++) { |
JSONObject obj = (JSONObject) root.get(i); |
ModelData model = newModelInstance(); |
127,6 → 128,7 |
if (modelType.getTotalName() != null) { |
totalCount = getTotalCount(jsonRoot); |
} |
return (D) createReturnData(loadConfig, models, totalCount); |
} |
/trunk/src/org/tela_botanica/client/composants/ChampComboBoxRechercheTempsReelPaginable.java |
---|
51,7 → 51,6 |
private ComboBox<ModelData> combo = null; |
private Proxy<?> proxy = null; |
private AsyncCallback callback = null; |
private TransformateurJSONaModelData<PagingLoadResult<ModelData>> reader = null; |
private ChargeurListe<PagingLoadResult<ModelData>> loader = null; |
123,7 → 122,7 |
public void handleEvent(FieldEvent fe) { |
// on vérifie que les touches enfoncées ne sont pas les flèches du clavier |
if (fe.getKeyCode() <= 38 || fe.getKeyCode() >= 40) { |
if (!fe.isNavKeyPress()) { |
recherche = combo.getRawValue(); |
plc.setLimit(limit); plc.setOffset(start); |
loader.setLimit(limit); loader.setOffset(start); |
190,7 → 189,7 |
} |
public void chargerValeurInitiale(String valeurInitiale, String champ) |
{ |
{ |
this.valeurInitiale = valeurInitiale; |
this.champValeurInitiale = champ; |
201,11 → 200,17 |
Rafraichir |
-----------------------------*/ |
public void rafraichir(Object nouvellesDonnees) { |
if (nouvellesDonnees instanceof Information) { |
Information info = (Information) nouvellesDonnees; |
if (info.getType().equals("selectionnerValeurCombo")) { |
if (combo.getStore().findModel(champValeurInitiale, valeurInitiale) == null) Debug.log("ERREUR. Modele non trouvé"); |
if (combo.getStore().findModel(champValeurInitiale, valeurInitiale) == null) { |
Debug.log("ERREUR. Modele non trouvé."); |
Debug.log("Recherché : ["+champValeurInitiale+"]="+valeurInitiale); |
Debug.log("Le magasin contient "+combo.getStore().getCount()+" éléments. Les propriétés des modèles sont :"); |
for (int i=0; i<combo.getStore().getCount(); i++) { |
Debug.log(combo.getStore().getAt(i).getProperties().toString()); |
} |
} |
else combo.setValue(combo.getStore().findModel(champValeurInitiale, valeurInitiale)); |
} |
} |
/trunk/src/org/tela_botanica/client/composants/GrillePaginable.java |
---|
New file |
0,0 → 1,193 |
package org.tela_botanica.client.composants; |
import java.util.List; |
import java.util.Map; |
import org.tela_botanica.client.composants.pagination.ChargeurListe; |
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; |
import com.extjs.gxt.ui.client.data.BasePagingLoadConfig; |
import com.extjs.gxt.ui.client.data.LoadEvent; |
import com.extjs.gxt.ui.client.data.Loader; |
import com.extjs.gxt.ui.client.data.ModelData; |
import com.extjs.gxt.ui.client.data.ModelType; |
import com.extjs.gxt.ui.client.data.PagingLoadConfig; |
import com.extjs.gxt.ui.client.data.PagingLoadResult; |
import com.extjs.gxt.ui.client.event.Events; |
import com.extjs.gxt.ui.client.event.GridEvent; |
import com.extjs.gxt.ui.client.event.Listener; |
import com.extjs.gxt.ui.client.store.ListStore; |
import com.extjs.gxt.ui.client.store.Store; |
import com.extjs.gxt.ui.client.store.StoreEvent; |
import com.extjs.gxt.ui.client.widget.ContentPanel; |
import com.extjs.gxt.ui.client.widget.grid.ColumnConfig; |
import com.extjs.gxt.ui.client.widget.grid.ColumnModel; |
import com.extjs.gxt.ui.client.widget.grid.EditorGrid; |
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.toolbar.PagingToolBar; |
public class GrillePaginable<D extends ModelData> extends ContentPanel implements Rafraichissable, GrilleParametrable<D> { |
//-------------// |
// ATTRIBUTS // |
//-------------// |
// Pagination |
private int start = 0; |
private int limit = 50; |
// Récupération, stockage et pagination des données |
private ModelType modelType = null; |
private Proxy<D> proxy = null; |
private TransformateurJSONaModelData<PagingLoadResult<D>> reader = null; |
private ChargeurListe<PagingLoadResult<D>> loader = null; |
private ListStore<D> storeGrille = null; |
// Elements graphiques |
EditorGrid<D> grillePersonne = null; |
List<ColumnConfig> colonnes = null; |
ColumnModel modeleDeColonnes = null; |
//-------------// |
// METHODES // |
//-------------// |
/*-------------- |
Constructeur |
--------------*/ |
public GrillePaginable(ModelType modeltype, Proxy<D> proxy, List<ColumnConfig> colonnes, ColumnModel modeleDeColonnes) { |
// Récupération des paramètres |
this.modelType = modeltype; |
this.proxy = proxy; |
this.colonnes = colonnes; |
this.modeleDeColonnes = modeleDeColonnes; |
// Formatage du conteneur; |
this.setLayout(new FitLayout()); |
// Création des objets pour la récupération et la pagination des données |
BasePagingLoadConfig plc = new BasePagingLoadConfig(); |
plc.setLimit(limit); |
plc.setOffset(start); |
reader = new TransformateurJSONaModelData<PagingLoadResult<D>>(modelType); |
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) { |
} |
}); |
// Création de la grille |
creerGrille(); |
} |
/*------------ |
Accesseurs |
------------*/ |
public EditorGrid<D> getGrille() { |
return grillePersonne; |
} |
public ListStore<D> getStore() { |
return storeGrille; |
} |
public D getSelection() { |
return grillePersonne.getSelectionModel().getSelectedItem(); |
} |
/*----------------------------- |
Rafraichir |
-----------------------------*/ |
public void rafraichir(Object nouvellesDonnees) { |
} |
/*---------------- |
Méthode privées |
-----------------*/ |
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) { |
} |
}); |
storeGrille.addListener(Store.Remove, new Listener<StoreEvent<D>>() { |
public void handleEvent(StoreEvent<D> ce) { |
} |
}); |
storeGrille.addListener(Store.Update, new Listener<StoreEvent<D>>() { |
public void handleEvent(StoreEvent<D> ce) { |
} |
}); |
RowNumberer pluginLigneNumero = new RowNumberer(); |
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); |
grillePersonne.setStateful(true); |
grillePersonne.addListener(Events.Attach, new Listener<GridEvent<D>>() { |
public void handleEvent(GridEvent<D> be) { |
PagingLoadConfig config = new BasePagingLoadConfig(); |
config.setOffset(0); |
config.setLimit(50); |
Map<String, Object> state = grillePersonne.getState(); |
if (state.containsKey("offset")) { |
int offset = (Integer)state.get("offset"); |
int limit = (Integer)state.get("limit"); |
config.setOffset(offset); |
config.setLimit(limit); |
} |
if (state.containsKey("sortField")) { |
config.setSortField((String)state.get("sortField")); |
config.setSortDir(SortDir.valueOf((String)state.get("sortDir"))); |
} |
loader.load(config); |
} |
}); |
this.add(grillePersonne); |
} |
} |