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 :
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 !
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; } }
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,
Partager