Общие правила взаимодействия с объектами
3.5. ОБЩИЕ ПРАВИЛА ВЗАИМОДЕЙСТВИЯ С ОБЪЕКТАМИ
Существуют различные способы организации интерфейса пользователя для выполнения операций над объектами: прямое манипулирование объектами, выбор команд из меню, посредством диалоговых панелей и, наконец, описание требуемых операций на каком-либо языке программирования. Использование в приложении любого из перечисленных подходов не исключает возможности совмещения его с другой техникой. Например, пользователь может изменять размер окна, либо используя команду Размер, либо перемещая границу окна с помощью мыши.
Вместе с тем, целесообразно для каждого типа объектов определить собственное подмножество допустимых операций и способов их применения. При этом и подмножество допустимых операций, и способы их применения могут корректироваться в зависимости от текущей ситуации. В связи с этим операции, которые могут быть выполнены над данным объектом в данный момент времени, называют контекстными. От текущей ситуации зависит, как правило, и перечень свойств объекта которые может просматривать и редактировать пользователь. Например, меню для некоторого объекта может содержать и команды, определенные типом объекта, и команды, обусловленные типом контейнера, содержащего объект.
ОПЕРАЦИИ МНОЖЕСТВЕННОГО ВЫБОРА
В качестве операций, доступных для объектов множественного выбора, следует использовать пересечение наборов операций, относящихся к каждому из участников этого выбора. Таким образом, контекст множественного выбора может расширить либо сократить перечень операций или команд, доступных пользователю.
Кроме того, для множественного выбора может быть переопределен эффект выполнения некоторых операций над каким-либо объектом этого выбора. Например, когда пользователь выбирает несколько графических объектов и применяет к ним команду выравнивания, некоторые из них могут остаться на прежней позиции, «не реагируя» на данную команду.
Следует иметь в виду, что область действия операций, выполняемых над объектами множественного выбора, должна ограничиваться пределами активного окна. Например, если пользователь удаляет выбранное слово в одном окне, это не должно приводить к удалению выбранных фрагментов текста в других окнах (если в этих окнах выбраны не те же самые объекты).
Рекомендуемые материалы
ПРЕДОПРЕДЕЛЕННЫЕ ОПЕРАЦИИ
Объект может иметь предопределенные операции. Предопределенные операции — это операции, выполняемые над объектом по умолчанию, когда пользователь использует технику ускоренного взаимодействия с данным объектом (в частности, двойной щелчок ЛКМ). Например, двойной щелчок ЛКМ на пиктограмме каталога файлов приводит к открытию окна с содержимым этого каталога; при редактировании текста двойной щелчок ЛКМ обеспечивает выбор слова. Для различных объектов могут использоваться разные предопределенные операции; в приведенном выше примере в качестве предопределенной операции для каталога выполнялась команда Открыть, а для текста — Выбрать.
Аналогично, когда пользователь перемещает объект в новую позицию с помощью мыши, используя технику drag-and-drop («перетащи и оставь»), поведение объекта зависит от установленной для него предопределенной операции. Перетаскивание объекта в некоторую позицию может быть проинтерпретировано, в частности, и как перемещение, и как копирование, и как связывание с другим объектом. В данном случае выполняемая предопределенная операция зависит от позиции, куда был перемещен объект.
Применение предопределенных операций для техники ускоренного взаимодействия с объектами обеспечивает большую эффективность интерфейса с точки зрения повышения скорости работы, что является важным фактором для более опытных пользователей. Тем не менее, поскольку такая техника требует определенных навыков, и не все объекты могут иметь соответствующие предопределенные операции, то рассмотренный подход не должен использоваться в качестве единственного средства взаимодействия пользователя с объектами. Например, даже если для открытия окна каталога используется двойной щелчок ЛКМ на его пиктограмме, всплывающее меню этого объекта должно содержать команду Открыть.
ОПЕРАЦИИ ПРОСМОТРА
Ниже приведена краткая характеристика некоторых общих операций, связанных с просмотром объектов (табл. 3.4). Хотя эти операции могут быть доступны не всегда и не для всех объектов, но в случае их использования следует придерживаться указанных соглашений.
Таблица 3.4
Операции просмотра
Операция (команда) | Действие |
Открыть (Open) | Открывает первичное окно объекта. Для контейнерных объектов, таких как папки и документы, это окно отображает содержимое объекта |
Закрыть (Close) | Закрывает окно |
Свойства (Properties) | Отображает свойства объекта в соответствующем окне, как правило, в окне панели свойств |
Помощь (Help) | Отображает окно с контекстной справочной информацией об объекте |
Замечание.
В приведенной выше таблице использовано понятие первичного окна. Этот термин введен для обозначения окон, именуемых в англоязычной литературе primary window. Окна такого типа обычно используются для представления содержимого объектов или в качестве основной рабочей области приложения. В русскоязычных (в том числе переводных) изданиях они либо вообще не имеют специального обозначения (просто окна), либо именуются главными окнами. Предлагаемый нами вариант кажется нам более предпочтительным по следующим причинам. Во-первых, из-за указанного выше предназначения таких окон: если термин «Главное окно приложения» является во многих случаях достаточно корректным, то про «Главное окно объекта» этого сказать нельзя. Во-вторых, приложение может иметь несколько первичных окон; среди них можно назначить «главное», но как тогда называть остальные? В-третьих, предложенный термин лучше согласуется с весьма устоявшимся термином вторичное окно.
Когда пользователь открывает новое окно, оно должно отображаться поверх других окон того же уровня и устанавливаться в активное состояние (как правило, все первичные окна относятся к одному уровню). Дополнительные, или вторичные окна, относящиеся к данному приложению, также должны отображаться поверх других вторичных окон того же уровня.
Если пользователь, запустив приложение, успел вернуться к работе с другим окном прежде, чем открылось новое окно, то при открытии нового окна оно не должно «заслонить» активное окно. Например, если пользователь, открыв окно А, затем открывает окно В, то окно В появляется поверх окна А. Если же пользователь щелкнет мышью в окне А прежде, чем откроется окно В, то окно В появляется «за» окном А.
Повторное выполнение команды, с помощью которой было открыто окно, должно активизировать существующее окно вместо открытия другого экземпляра окна. Например, если пользователь выбирает команду Свойства для объекта, панель свойств которого уже открыта, активизируется существующая панель, а не открывается второе аналогичное окно.
Необходимо иметь в виду, что приведенное выше правило относится к локальному Рабочему столу пользователя. Если же два пользователя, работающие в сети, открывают окно для одного и того же сетевого объекта, то каждый из их может видеть окно этого объекта на своем Рабочем столе.
Закрытие окна не обязательно означает завершение процессов, связанных с объектом, представленном в окне. Например, закрытие окна принтера не отменяет печать документов, ожидающих своей очереди. Выход из приложения всегда приводит к закрытию всех его окон, но закрытие какого-либо окна не обязательно приводит к выходу из приложения.
Именно поэтому во вторичных окнах не рекомендуется использовать слово «Закрыть» для обозначения кнопок, связанных с закрытием окна (но не приложения!);
более подходящими в этом случае являются надписи «Применить», «ОК», «Отменить» и т.п. Не рекомендуется также использовать команду Закрыть в качестве эквивалента команды Отменить. Тем не менее, побочный эффект закрытия окна с помощью команды Закрыть зависит от текущей ситуации.
Если в окне имеются внесенные изменения, которые еще не переданы приложению, и пользователь выбирает команду Закрыть, то эти изменения будут потеряны;
чтобы предотвратить такую ситуацию, следует вывести на экран сообщение с просьбой уточнить, хочет ли пользователь применить или отвергнуть изменения, либо вообще отложить выполнение команды Закрыть.
Для быстрого выполнения команд просмотра могут быть определены клавиши-акселераторы; их рекомендуемое назначение приведено ниже (табл.3.5).
Таблица 3.5.
Назначение клавиш-акселераторов
Клавиша-акселератор (комбинация клавиш) | Действие |
CTRL + О | Открывает первичное окно для выбранного объекта |
ALT + F4 | Закрывает окно |
F1 | Отображает окно с контекстной справочной информацией |
SHIFT + F1 | Устанавливает режим контекстно-зависимой помощи |
Двойной щелчок ЛКМ | Выполняет предопределенную команду или команду Ввод |
ALT + двойной щелчок ЛКМ | Открывает панель свойств объекта |
ОПЕРАЦИИ РЕДАКТИРОВАНИЯ
Редактирование предполагает изменение (дополнение, удаление, замену) одного или нескольких свойств объекта либо его структуры. Другими словами, не всякое изменение может трактоваться как редактирование объекта. Например, изменение формы представления документа на экране (в частности, увеличение масштаба), не затрагивающее его содержания, не является редактированием. Следующие разделы раскрывают некоторую общую технику взаимодействия пользователя с приложением при редактировании объектов.
ТРАНЗАКЦИИ
Транзакция представляет собой единичное действие по изменению объекта. Степень детализации такого изменения может быть различной, а его результат может определяться выполнением как одной, так и нескольких совмещенных операций. Выполняемые пользователем транзакции (допустимые) должны немедленно приводить к изменению объекта, и пользователь должен видеть их результат; если же транзакция недопустима для данного объекта, необходимо сразу же сообщить об этом пользователю. Другими словами, в любом случае при выполнении транзакции должна осуществляться обратная связь между приложением и пользователем. Кроме того, пользователь должен иметь возможность отменить результат транзакции (внесенные изменения), восстановив предыдущее состояние объекта. Если пользователь закрывает окно, в котором имеются изменения, следует спросить у него, нужно ли их сохранить.
Для сохранения изменений на файловом уровне рекомендуется использовать следующие команды (табл. 3.6).
Таблица 3.6.
Команды сохранения изменений на уровне файла
Команда | Функция |
Сохранить (Save) | Сохраняет все временные изменения на диске и начинает новый сеанс редактирования |
Сохранить Как (Save as) | Сохраняет файл (со всеми временными изменениями) под другим именем и начинает новый сеанс редактирования |
Закрыть (Close) | Подсказывает пользователю, что следует сохранить внесенные изменения. Если пользователь их подтверждает, временные изменения сохраняются и окно закрывается |
Команду Сохранить следует использовать в тех случаях, когда внесенные изменения относятся к файлу в целом, например, ко всему документу, и могут быть реализованы одновременно.
Если же выполненная транзакция относится к отдельной записи в файле, то применение команды Сохранить не целесообразно. Для управления выполнением транзакций внутри файла рекомендуется использовать команды, перечисленные ниже (табл. 3.7).
Таблица 3.7.
Команды сохранения изменений на уровне транзакций
Команда | Функция |
Повторить (Repeat) | Дублирует последнюю транзакцию |
Отменить (Undo) | Отменяет результат последней (или какой-то определенной) транзакции |
Восстановить (Redo) | Восстанавливает результат последней (или какой-то конкретной) отмененной транзакции |
OK | Реализует внесенные изменения и закрывает окно |
Применить (Apply) | Реализует внесенные изменения, но не закрывает окно |
Отменить (Cancel) | Отменяет внесенные изменения и закрывает окно |
Рекомендуемыми командами для управления процессами являются следующие (табл. 3.8).
Хотя для остановки процесса может быть использована команда Отменить, необходимо учитывать, что она не только останавливает процесс, но и возвращает его в исходное состояние.
Таблица 3.8.
Команды управления процессами
Команда | Функция |
Пауза (Pause) | Приостанавливает процесс |
Продолжить (Resume) | Возобновляет приостановленный процесс |
Останов (Stop) | Останавливает процесс |
ПРОСМОТР И РЕДАКТИРОВАНИЕ СВОЙСТВ ОБЪЕКТОВ
Определение и согласование свойств компонентов приложения являются ключевыми вопросами при реализации DCD-технологии. Для изменения или переопределения свойств конкретного объекта (или объектов) используются такие команды, как Свойства, Сведения, Общие сведения и Формат. Команда Свойства является общей командой для доступа к свойствам объекта; когда пользователь выбирает эту команду, следует отобразить на экране вторичное окно, содержащее перечень и текущие значения свойств объекта (Панель свойств).
Пользователь должен располагать средствами прямого доступа к свойствам визуальных или легко идентифицируемых объектов, таких как фрагмент текста, ячейка таблицы или рисунок. Сложнее определить способ доступа к свойствам менее «осязаемых» объектов, например, параграфа. В некоторых случаях может быть реализован косвенный доступ к свойствам таких объектов. Например, по запросу свойств фрагмента текста может быть также предоставлен доступ к свойствам параграфа, содержащего данный фрагмент.
Другой вариант предоставления доступа к таким объектам основан на создании визуального (графического) представление объекта. Например, свойства страницы могут быть доступны через графический образ или другое представление страницы в специальной области (например, в строке состояния) окна.
Возможны и другие подходы к реализации косвенного доступа, например, включение соответствующей команды во всплывающее меню связанного объекта. В частности, всплывающее меню текстового выбора могло бы включать пункт Свойства параграфа. В качестве средства доступа к свойствам иерархически связанных объектов может быть создано каскадное меню, каждый уровень которого обеспечивал бы выполнение команды Свойства для объекта соответствующего уровня.
Команда Свойства не является единственным средством предоставления доступа к свойствам объекта. Например, в окне каталога отображаются некоторые свойства входящих в него файлов (размер, тип, дата последнего изменения и т.д.). Кроме того, для отображения свойств выбранных объектов может использоваться панель инструментов.
ЗОНЫ УПРАВЛЕНИЯ
Графические объекты (окна, рисунки, пиктограммы) могут иметь специальные зоны управления (handles), с помощью которых для этих объектов реализуется техника ускоренного взаимодействия. В частности, зоны управления могут использоваться для ускоренного выполнения таких операций, как перемещение, масштабирование, форматирование и автозаполнение. Тип зоны управления зависит от типа объекта. Например, полоса заголовка окна выступает в качестве зоны управления при перемещении окон; границы окна используются в качестве зоны управления при изменении его размеров. Для пиктограммы зоной управления является непосредственно ее изображение, т.е. вся пиктограмма. Для рисунков наиболее общей формой зоны управления является прямоугольный контур, отображаемый вокруг объекта, когда он выбран (рис. 3.6). При этом стороны прямоугольника обычно используются для ускоренного выполнения операций перемещения, а маркеры, расположенные по углам контура — для ускоренного масштабирования рисунка.
Рис. 3.6. Зоны управления графического объекта
РЕДАКТИРОВАНИЕ ТЕКСТА
Редактирование текста требует, чтобы фокус ввода был установлен в той позиции, которая подлежит изменению. Если редактирование выполняется с помощью мыши, фокус ввода всегда совпадает с положением указателя. При использовании клавиатуры положение фокуса ввода определяется действием клавиши навигации, которая была нажата последней. В любом случае визуальным признаком того, что фокус ввода установлен в текстовой области, является присутствие текстового курсора, или точки вставки.
Вставка текста
Вставка текста предполагает установку пользователем курсора в соответствующей позиции и ввод символов. После каждого набранного символа ваше приложение должно перемещать курсор на один символ вправо (или влево; в зависимости от языка).
Если текстовая область поддерживает ввод нескольких строк, должен быть реализован автоматический перенос текста на следующую строку, когда длина текущей строки превышает ширину текстовой области.
Режим замены
Замена является дополнительным режимом ввода текста, который отличается от вставки только тем, что вводимые символы заменяют существующие.
В качестве визуального признака режима замены рекомендуется использовать курсор специального типа — так называемый блочный курсор, который отображается в текущей символьной позиции; это облегчает пользователю идентификацию того символа, который будет заменен (рис. 3.7). Для перехода в режим замены используется клавиша <Insert>.
Лекция "Лекция 9" также может быть Вам полезна.
Внесение изменений
Рис. 3.7. Блочный курсор
Удаление текста
Удаление текста выполняется с помощью клавиш <Delete> и <Backspace>. Клавиша <Delete> удаляет символ справа от курсора, а клавиша <Backspace> удаляет символ слева. В обоих случаях текст сдвигается в направлении удаления, заполняя образовавшийся промежуток (это иногда называют автослиянием текста). Удаленный текст не остается в буфере обмена. В связи с этим целесообразно предусмотреть в приложении возможность, по крайней мере, одноуровневой отмены операции удаления.
Если выбран фрагмент текста, принцип действия клавиш <Delete> и <Backspace> остается таким же, как и при удалении одного символа. Если же имеется выбранный фрагмент текста, и пользователь вводит новый текст непосредственно с клавиатуры или с помощью команды Вставить, то выбранный фрагмент автоматически удаляется (точнее, заменяется новым текстом).