2011-08-12 16 views
5

Jak wyświetlić kilka kolejnych zadań w jednym interfejsie użytkownika?Kolejkowy identyfikator UI zadań i pokazanie ich w interfejsie użytkownika

Moje przypadek użycia jest następujący:

  1. Akcja użytkownika
  2. start pierwszej pracy (brak długość)
  3. Poczekaj na pierwsze zadanie, aby zakończyć i rozpocząć drugą pracę (znana długość)
  4. czekać na drugą pracę, aby zakończyć i rozpocząć trzeci Praca (znana długość)

chcę pokazać to użytkownikowi w następujący sposób:

  1. Czy główny „Akcja użytkownika” okno bez globalnego paska postępu (ze względu na brak pracy 1 i naprawdę zmienna na długości egzekucje nie mogę uzyskać dokładną długość całkowita)
  2. W tym oknie dialogowym mają 3 sub część pierwsza dla każdej pracy z jednym paskiem postępu dla każdego z tych zadań i poza kursem ze stylem IProgressMonitor.UNKNOWN dla pierwszego zadania.
  3. W tym oknie dialogowym paski postępu będą aktualizowane sekwencyjnie jako zadania podstawowe.

Pozwoli to użytkownikowi końcowemu natychmiast zobaczyć, że jego akcja jest podzielona na 3 zadania (pod zadania są znaczące dla użytkowników końcowych) i za każdym razem, gdy rozpoczyna się nowe zadanie podrzędne, może zobaczyć długość tego pod-zadania (nieznane oczywiście dla pierwszego).

Po wielu poszukiwaniach nie byłem w stanie tego zrealizować, a dziś podaję te 3 podzadania jako 3 pojedyncze kolejne dialogi z tą wadą, że użytkownik końcowy może początkowo sądzić, że jego działanie zostanie zakończone na końcu pierwsze nieznane pod-zadanie.

Odpowiedz

2

Nie możesz wdrożyć własnych reguł planowania, aby kontrolować kolejność wykonywania zadań i skutecznie blokować drugie zadanie podczas wykonywania pierwszego, a trzecie, gdy drugi jest uruchomiony?

Aby uzyskać szczegółowe informacje i fragmenty kodu, patrz: http://www.eclipse.org/articles/Article-Concurrency/jobs-api.html.

Z artykułu powyżej:

każdym razem reguła planowania zostało nabyte, wykonanie tego wątku może być zablokowana do momentu reguła może być uzyskane. W takich sytuacjach użytkownik skorzystałby z okna dialogowego, które pokazuje postęp dla uruchomionego zadania i zapewnia informację zwrotną, jeśli zadanie zostało zablokowane przez inne zadanie.

Chociaż nie wdrożyłem tego samodzielnie, widziałem to w Eclipse. Kiedy środowisko robocze zapisuje swój stan, podczas gdy projekt wciąż się buduje, Eclipse raportuje postęp w kompilacji, blokując zadanie utrwalania stanu, dopóki kompilacja nie zostanie zakończona. Wyświetla zadania jako oddzielne wpisy w tym samym oknie dialogowym i wyjaśnia, że ​​drugie zadanie jest blokowane przez pierwsze.

+0

Dzięki za odpowiedź. Po prostu próbowałem dodać reguły szeregowania między nmy, ale niestety nie pojawia się w tym samym oknie dialogowym. Jeśli setuser (true) jest wywoływany we wszystkich zadaniach, mam kilka okien dialogowych i jeśli jest to wywoływane tylko w pierwszym zadaniu, mam jedno okno dialogowe z wszystkimi moimi zadaniami, ale jest ono zamykane zaraz po zakończeniu pierwszego zadania. –

+0

Nie można użyć widoku zadań zamiast poszczególnych okien dialogowych postępu? Możesz nawet zaimplementować własne okno dialogowe do hostowania widoku, jeśli to konieczne. Rzuć okiem na to - http://www.richclient2.de/2006_09_28/using-the-eclipse-jobs-api/ do planowania zadań, i to - http://wiki.eclipse.org/FAQ_How_do_I_prevent_two_jobs_from_running_at_the_same_time%3F for zasady planowania. –

+0

To może pomóc - http://wiki.eclipse.org/FAQ_How_do_I_switch_from_using_a_Progress_dialog_to_the_Progress_view%3F Niestety, zapomniałem dodać go do mojego komentarza powyżej. –

0

Po prostu podziel jeden pasek procesu na trzy części. Pierwsza tercja pierwszej pracy, druga i trzecia.

W każdym razie to proste! :)

Powiązane problemy