Очередь последовательных заданий пользовательского интерфейса и показ их в пользовательском интерфейсе - PullRequest
5 голосов
/ 12 августа 2011

Как отобразить несколько последовательных заданий в одном интерфейсе?

Мой вариант использования следующий:

  1. Действие пользователя
  2. Начало первой работы (неизвестная длина)
  3. Подождите, пока закончится первое задание, и начните второе задание (известная длина)
  4. Подождите, пока закончится второе задание, и начните третье задание (известная длина)

Я хочу показать это пользователю следующим образом:

  1. Иметь главное диалоговое окно «User Action» без глобального индикатора выполнения (из-за того, что 1-е задание неизвестно и действительно зависит от длины выполнения, я не могу получить точную общую длину)
  2. В этом диалоговом окне есть 3 части, по одной для каждой работы, с одним индикатором выполнения для каждого из этих заданий и со стороны курса в стиле IProgressMonitor.UNKNOWN для первого задания.
  3. В этом диалоговом окне индикаторы выполнения будут обновляться последовательно как базовые задания.

Это позволит конечному пользователю сразу увидеть, что его действие разбито на 3 подзадачи (подзадачи имеют смысл для конечных пользователей), и каждый раз, когда запускается новая подзадача, он может видеть длину этого подзадача (неизвестно, конечно, для первого).

После многих поисков я не смог реализовать это, и сегодня я сообщаю об этих 3 подзадачах как о 3 последовательных диалоговых окнах с недостатком, который конечный пользователь может первоначально подумать, что его действие будет завершено в конце первая неизвестная подзадача.

Ответы [ 2 ]

3 голосов
/ 08 сентября 2011

Разве вы не можете реализовать свои собственные правила планирования, чтобы контролировать порядок выполнения ваших заданий и эффективно блокировать второе задание во время выполнения первого и третье во время выполнения второго?

Посмотрите на http://www.eclipse.org/articles/Article-Concurrency/jobs-api.html для деталей и фрагментов кода.

Из статьи выше:

Каждый раз, когда получено правило планирования, выполнение этого потока можетбыть заблокирован, пока не будет получено правило.В подобных ситуациях пользователю было бы полезно увидеть диалоговое окно, в котором отображается ход выполнения выполняемой задачи и предоставляется обратная связь, если задача заблокирована какой-либо другой задачей.

Хотя я этого не реализовалЯ сам видел это в «Затмении».Например, когда рабочая среда сохраняет свое состояние, когда проект все еще находится в процессе сборки, Eclipse сообщает о ходе сборки, блокируя задание сохранения состояния до завершения сборки.Он отображает задания в виде отдельных записей в одном и том же диалоговом окне и дает понять, что второе задание заблокировано первым.

0 голосов
/ 06 сентября 2011

Почему бы просто не разделить одну панель процессов на три части. Первая треть для первой работы, затем вторая и третья.

В любом случае это просто! :)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...