[SWT] Progressbar im Dialog updaten

dialog
swt
progressbar

#1

Hallo zusammen,

ich hab bisher nichts passendes gefunden, deswegen stell ich euch mal die Frage.

Ich habe eine Eclipse RCP Anwendung mit SWT GUI. Ich möchte dort nun Daten speichern. Dieser Vorgang kann unter Umständen recht lange dauern, da je nach vorheriger Einstellung viele Daten zusammen getragen und verknüpft werden müssen.
Um dem User zu zeigen, das noch was passiert wollte ich in einem Dialog eine Progressbar anzeigen lassen.

Nun die Frage, ist es möglich dem Dialog Daten zu übergeben während er angezeigt wird oder muss ich den Speichervorgang vom Dialog aus starten?

Wenn ich das richtig verstanden habe wird mit dialog.open() der Dialog geöffnet und gewartet bis er wieder geschlossen wurde (disposed). Also keinerlei Möglichkeit im Nachgang noch Daten zu übergeben, aber vielleicht hab ich ja etwas übersehen?


Meine Vorstellung wäre, dass ich in der Dialog-Klasse folgende Methode habe:

public void setState(int progress){ progressBar.setSelection(progress); }
Und dass ich diese nach Öffnen des Dialogs aufrufen kann.

Ich möchte halt so wenig Daten wie möglich dem Dialog übergeben und diesen eventuell auch an andere längere Prozesse dran hängen.


#2

Ohne mal explizit darauf einzugehen, gibt es in Eclipse RCP ja schon eine API um sowas zu machen. Also Jobs, ProgressMonitor usw.

Hilfreich ist da immer Vogella mit seinen Tutorials.

http://www.vogella.com/tutorials/EclipseJobs/article.html

Das würde ich mal als erstes ins Auge fassen, ob da nicht schon was passendes dabei ist, bevor man da kleinteilig selbst Dialoge zusammenbastelt und hin und her synchronisieren muss.


#3

Danke, der Link sieht gut aus. Hab vermutlich doch mit den falschen Begriffen gesucht :slight_smile:

Ich schau mir das nachher zu hause mal und werd dann übers WE mal bissl rumspielen.


Edit:
Ich habs bisher noch nicht geschafft mir genauer anzugucken, irgendwie kommen gerade dauernd andere Sachen dazwischen :expressionless: