[I][I][I]Salut!
j'ai vraiment besoin de votre aide.
En fait je voudrais remplir une Basic Array Grid (GWTExt) à partir d'une HashMap.
j'ai le code suivant :
public void onModuleLoad() {
map = new HashMap();
map.put("A", "B");
map.put("C", "D");
map.put("E", "F");
Panel panel = new Panel();
panel.setBorder(false);
panel.setPaddings(15);
RecordDef recordDef = new RecordDef(
new FieldDef[]{
new StringFieldDef("col1"),
new StringFieldDef("col2")
}
);
final GridPanel grid = new GridPanel();
Object[][] data = getCompanyData();
MemoryProxy proxy = new MemoryProxy(data);
ArrayReader reader = new ArrayReader(recordDef);
Store store = new Store(proxy, reader);
store.load();
grid.setStore(store);
ColumnConfig[] columns = new ColumnConfig[]{
new ColumnConfig("COL1", "col1", 60, true, null, "col1"),
new ColumnConfig("COL2", "col2", 60, true)
};
ColumnModel columnModel = new ColumnModel(columns);
grid.setColumnModel(columnModel);
grid.setFrame(true);
grid.setStripeRows(true);
grid.setAutoExpandColumn("col1");
grid.setHeight(350);
grid.setWidth(600);
grid.setTitle("Array Grid");
panel.add(grid);
RootPanel.get().add(panel);
}
private Object[][] getCompanyData() {
Object[][] value = null ;
Set key = map.keySet();
Iterator it = key.iterator();
while (it.hasNext()){
String cle = (String) it.next();
String valeur = (String) map.get(cle);
value = new Object[][]{
new Object[] {cle, valeur}
};
}
return value;
}
En utilisant ce code j'affiche qu'un seul enregistrement c'est "A" "B".
je sais que ce problème réside au niveau de cette instruction :
value = new Object[][]{
new Object[] {cle, valeur}
};
mais je ne sais pas comment le résoudre.
l'idée c'est que, je parcours la HashMap et à chaque fois je trouve un enregistrement je fais new Object[] {cle, valeur}. mais il prend en considération que le dernier.
Merci d'avance pour votre aide.
Walas.
Partager