Bonjour à tous,

j'ai un graphique (classe qui dérive de org.eclipse.swt.widgets.Canvas) que je cherche à mettre à jour, après avoir refait tourner des calculs.

Je tente de résumer mon code ainsi :
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
protected ToChart chart;   // TOChart hérite de Canvas 
 
protected synchronized void display() {
	LoadSeriesJob myJob = new LoadSeriesJob("Load data");
        loadSeriesjob.setUser(true);
	loadSeriesjob.schedule();
 
}
        // Classe interne qui dérive de org.eclipse.core.runtime.jobs.Job 
	class LoadSeriesJob extends Job {  
		public LoadSeriesJob(String name) {
			super(name);
		}
 
		@Override
		protected IStatus run(IProgressMonitor monitor) {
			try {
                                // ici, traitement de calculs ... 
				Display.getDefault().syncExec(new Runnable() {
					@Override
					public void run() {
						chart.setFocus();
						chart.redraw();
						chart.update();
					}
				});
			} catch (Throwable e) {
				LOGGER.error(e.getMessage(), e);
			} finally {
				if (monitor != null) {
					monitor.done();
				}
			}
 
			return Status.OK_STATUS;
		}
	}
Au premier lancement, le graphique se met à jour correctement, mais quand on relance le process, je sais qu'il y a eu des calculs effectués, mais le graphique ne s'est pas mis à jour !
A quoi celà peut il être dû ? (j'y ai passé du temps sur ce problème et je pête un câble ! ).

Si vous avez des pistes de correction ou d'amélioration, je suis tout ouïe ...

Merci d'avance à tous,

Très cordialement,