Реализовываю тут IUI и подумал, что неплохо было бы организовать свободное перемещение между
исполняющимися одновременно задачами.
Пример:
Имеется какой-то набор объектов, которыми оперирует приложение. Имеются следующие задачи для этих объектов:
Сохранить в файл
Отправить по e-mail
Залить на FTP
Каждая задача состоит из 3х страниц:
Задание параметров
Собственно, прогресс выполнения
Отчет о результате выполнения задачи
Пользователь выбирает некоторые объекты из имеющегося набора и запускает задачу 1. Ок, задача выполняется — идет процесс сохранения файлов. В это время пользователь отходит назад и выбирает другие задачу/объекты и выполняет эту новую задачу. И т.д... Таким образом имеем несколько одновременно испольняющихся задач.
Вроде-бы все хорошо и все счастливы. Но несколько проблем:
Получается, что единицей перемещения при выполняемой задаче должна быть одна задача, а не страница. И как-то нелогично получается — по страницам одной задачи можно перемещаться свободно, а по страницам другой — нет (раз задача уже выполняется, то, например, менять параметры для нее юзер не может. Конечно, можно просто дизейблить все это (параметры), но здесь еще острее встает проблема №2)
Как осуществлять перемещение между исполняющимися задачами? Ведь получается не совсем юзер-френдли заставлять пользователя пользоваться кнопками Назад/Вперед (немного облегчает наличие истории перемещений, но все-же).
Да и нужно как-то информировать юзера о, например, завершении какой-то задачи.
Или да ну все это?
Здравствуйте, Марсель абый, Вы писали:
МА>Вроде-бы все хорошо и все счастливы. Но несколько проблем:
Проблема ровно одна: ты выбираешь слишком крупномасштабные задачи.
Подробности:
Допустим, у пользователя есть
цель. Например, залить набор файлов на FTP. Цель включает в себя следующие задачи:
— подготовку параметров (выполняется пользователем)
— длительную автоматическую активность (выполняется софтом)
— анализ результатов задачи
Все сразу становится понятно. Мы снимаем с пользователя задачу "дождаться окончания активности". Делается UI, максимально удобный для решения таких задач:
— подготовить файлы к заливке на FTP. Заканчивается постановкой задания в очередь на исполнение
— просмотреть очередь заданий
-> просмотреть отчет о результатах отдельного задания.
Таким образом, у твоего пользователя не будет никаких одновременных задач.
1.2.0 alpha rev. 655