2011-01-19 39 views
8

Chciałbym pokazać postęp wielu jednocześnie Jobs działających równolegle, ale tylko w jednym oknie dialogowym postępu.Eclipse RCP: Zadania równoległe wyświetlane w jednym oknie dialogowym postępu?

Jednak każde wywołanie Job.setUser() wydaje się powodować nowe okno dialogowe postępu.

Próbowałem:

  • Ustawianie wspólną grupę postępu na wszystkich miejsc pracy (uzyskany poprzez IJobManager.createProgressGroup()).
  • Posiadanie jednego nadrzędnego zadania wywołania setUser() i dołączenie do rodziny zadań, do której należą wszystkie zadania równoległe. (Pojawi się komunikat, że postęp jest blokowany w zadaniu nadrzędnym, przez zadania w tle).

Jakiego wzoru mogę użyć, aby uzyskać wszystkie równoległe zadania pojawiające się w jednym oknie dialogowym postępu?

+0

Czy próbowałeś użyć 'org.eclipse.ui.progress.UIJob'? – Favonius

+0

@Favonius, dzięki za sugestię. Próbowałem UIJob, ale uruchamia on zadania w wątku UI, co zapobiega ich równoległemu działaniu i blokuje wątek UI. –

+0

@Andy Thomas-Cramer: Zrealizuj ten link http://www.jdg2e.com/ch29.jobs/doc/index.html. Samouczek wykonuje dwa zadania jednocześnie. Daj mi znać, jeśli to pomoże, czy nie. – Favonius

Odpowiedz

3

Czy próbowałeś używać org.eclipse.ui.progress.UIJob. Do kasy tego linku http://www.jdg2e.com/ch29.jobs/doc/index.html. https://web.archive.org/web/20090406175007/http://www.jdg2e.com:80/ Zobacz link do pobrania na dole strony, choć nie jestem pewien, jak istotne jest rozwiązanie po 6 latach.

Samouczek wykonuje dwa zadania jednocześnie.

UIJobs

Dobrą rzeczą jest to, że zaćmienie kod źródłowy jest łatwo dostępne :). Po prostu zhakuj przez źródło widoku postępu. Zasadniczo pomysł jest taki sam, co trzeba przetłumaczyć: Progress View -> Composite do Your Dialog -> Composite.

Mam nadzieję, że to pomoże.

+0

Jest to pomocne, ale nadal nie znalazłem sposobu wyświetlania jednego okna dialogowego użytkownika dla wielu równoczesnych zadań. –

+0

Link do tutoriala jest uszkodzony – Stefan

+0

Dzięki @Stefan. Zaktualizowałem link. – Favonius

0

ProgressMonitorFocusJobDialog może wyświetlać postęp tylko jednego zadania. Jeśli chcesz pokazać postęp w wielu zadaniach, to Widok postępu jest twoją odpowiedzią. Okno dialogowe zniknie, jeśli użytkownik kliknie pole wyboru "Uruchom w tle".