Bonjour à tous,

Je développe actuellemnt un petit GUI GWT avec smart GWT.
Je remplis un grid avec à peu près un millier de lignes récupérées dans une db mysql. Le remplissage et l'affichage du grid à l'écran prend pas mal de temps surtout que celui-ci ne ce fait pas au fur et à mesure mais se fait en un seul bloc. Existe t-il une méthode pour afficher les données au fil de l'eau?

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
 
public class ListGrid extends ListGrid {
 
	private AsyncCallback<List<DTO>> callback;
 
	private Record[] records;
 
	public ListGrid() {
		setWidth(500);  
		setHeight(300);  
		setShowAllRecords(true);  
		setCanDragSelect(true);  
 
		ListGridField IdField = new ListGridField("Id", "id");  
		ListGridField planField = new ListGridField("plan", "plan");  
		ListGridField IndField = new ListGridField("Ind", "Ind");
		ListGridField StartTimeField = new ListGridField("StartTime", "StartTime");  
		ListGridField planTypeIdField = new ListGridField("planTypeId", "planTypeId");
		ListGridField loadIdField = new ListGridField("loadId", "LoadId");  
 
		setFields(IdField, planField, IndField, StartTimeField, planTypeIdField, loadIdField);  
 
		initCallBack();
 
		loadData();
	}  
 
	private void initCallBack() {
		callback = new AsyncCallback<List<DTO>>() {
			public void onSuccess(List<DTO> result) {
				SC.say("Success!");
				records = new Record[result.size()];
 
				for(int i = 0 ; i < result.size() ; i++) {
					records[i] = new Record ( 
						((DTO)result.get(i)).getId(),
						((DTO)result.get(i)).getplan(),
						((DTO)result.get(i)).getInd(),
						((DTO)result.get(i)).getStartTime(),
						((DTO)result.get(i)).getplanTypeId(),
						((DTO)result.get(i)).getLoadId() );
				}
				setData(records);
			}
 
			public void onFailure(Throwable a_caught) {
				SC.say("Failed : " + a_caught.getMessage() + " " + e_caught.getStackTrace() + " " + a_caught.getCause() );
			}
		};
	}
 
	private void loadData() {
		ExectoolsUService.Util.getInstance().loadAll(callback);
	}
}