Логика отключения источников задач
Одной из важных задач управления пользовательским интерфейсом является своевременное отключение источников команд, когда выполнение команды может противоречить логике работы приложения. Например, если в редакторе текста буфер обмена пуст, команду вставки следует сделать недоступной, или, если в загруженном файле не было изменений, то кнопку сохранения тоже нужно отключить.
Для нашего приложения проведем ревизию правил, по которым элементы интерфейса должны менять свое состояние в зависимости от возможности выполнения тех или иных задач на текущий момент.
Раздел File:
- Задача New: должна быть доступна всегда, поскольку пользователь может захотеть в любой момент создать новый документ. Если в текущем документе есть несохраненные изменения, то нужно вывести диалоговое окно с предложением их сохранить, проигнорировать или отменить задачу. При утвердительном ответе пользователя следует проверить, если новый документ сохраняется впервые, то нужно предоставить диалоговое окно записи. Реализована!
- Задача Open: аналогична задаче New, только после решения о сохранении текущих изменений следует предоставить диалог открытия файла. Реализована!
- Задача Save: при новом документе предоставить диалог записи. Если документ уже сохранялся и имеет имя, но текущих изменений нет, то задачу следует сделать недоступной, отключив соответствующие источники. При первом же изменении нужно немедленно освободить источники выполнения этой задачи. Нереализована!
- Задача Save As: должна быть доступна всегда. При запросе выполнения этой задачи сразу предоставить пользователю диалог сохранения файла. Реализована!
- Задачи Page Setup, Print Preview, Print: должны быть доступны всегда
- Задача Exit: должна быть доступна всегда. Если есть несохраненные изменения, частично выполнить задачу New и завершить приложение (возможно, с сохранением текущего состояния приложения в ресурсном файле). Реализована частично!
Раздел Edit:
- Задачи Undo, Redo: делать недоступными, когда восстанавливать нечего. Нереализована!
- Задачи Cut, Copy: делать недоступными, если нет выделения текста. Нереализована!
- Задача Paste: делать недоступной, если буфер обмена пуст или в нем сохранена нетекстовая информация. Нереализована!
- Задача Delete: делать недоступной, если нет выделения текста. Нереализована!
- Задачи Find, Find Next, Replace, Go To: доступны всегда
- Задача Select All: недоступна в случае, если текстовое поле пустое. Нереализована!
Раздел Format:
- Задачи Font, Word Wrap: доступны всегда
Раздел Help:
- Задача About: доступна всегда
Дата добавления: 2015-04-15; просмотров: 665;