- •Введение в интерфейс Глава 1. Что такое интерфейс
- •Компоненты интерфейса
- •Компьютер — пользователь
- •Пользователь — компьютер
- •Согласованность интерфейса
- •Три аспекта согласованности
- •Преимущества согласованного интерфейса
- •1.3. Стандартизация пользовательского интерфейса
- •2.2. Этапы проектирования пользовательского интерфейса
- •2.2.2. Разработка сценария диалога
- •Темп ведения диалога
- •2.2.3. Визуальные атрибуты отображаемой информации
- •3.1. Особенности графического интерфейса
- •3.3. Компоненты графического интерфейса
- •3.4. Взаимодействие пользователя с приложением
- •Операции пересылки объектов
- •Глава 4
- •Глава 5
- •Форматы модифицируемого списка
- •Глава 6
Операции пересылки объектов
Операция |
Описание |
Переместить (Move) |
Перемещает выбранный объект; поскольку перемещение не изменяет «подлинности» объекта, эту операцию не следует отождествлять с копированием или замещением оригинала |
Копировать (Сору) |
Создает копию объекта. Результирующий объект независим по отношению к своему оригиналу. Дублирование не всегда обеспечивает полную идентичность копии; некоторые ее свойства могут отличаться от свойств оригинала. Например, копирование объекта может привести к изменению имени или даты создания. Если имеются ограничения на копирование некоторых элементов объекта, то могут быть скопированы только те элементы, для которых ограничения отсутствуют. |
Связать (Link) |
Создает связь между двумя объектами. Результатом обычно является объект, которая обеспечивает доступ к оригиналу (ярлык) |
Существуют два метода пересылки объектов: на основе команд и метод прямого манипулирования.
ПЕРЕСЫЛКА НА ОСНОВЕ КОМАНД
Для пересылки объектов используются команды Вырезать (Cut), Копировать (Сору) и Вставить (Paste). Эти команды обычно включаются в выпадающее меню Правка (Edit) и во всплывающее меню выбранного объекта. Соответствующие им кнопки могут быть вынесены на панель инструментов первичного окна приложения.
Чтобы переслать объект, пользователю необходимо:
Выбрать объект, подлежащий пересылке.
Выбрать команду Вырезать или Копировать.
Указать позицию вставки.
Выбрать команду Вставить.
Команда Вырезать удаляет выбранный объект и помещает его (или ссылку на него) в буфер обмена. Команда Копировать создает копию выбранного объекта (или ссылку на него) и помещает ее в буфер обмена.
При использовании команды Вставить по умолчанию предполагается, что пересылаемый объект сохранит все свойства оригинала. Однако может быть использована и альтернативная форма этой команды для реализации других видов пересылки:
Вставить <имя типа> как <имя типа> в <имя объекта>. Например, возможен такой вариант команды:
Вставить {Ячейку} как {Слово} (предполагается, что Ячейка и Слово являются конвертируемыми типами).
Ниже приведены общие форматы команды Вставить (табл. 3.10).
Таблица .3.10. Форматы команды Вставить
Формат команды |
Функция |
Вставить (Paste) |
Вставляет объект, содержащийся в буфере обмена, сохраняя все свойства его оригинала |
Вставить[имя типа] (Paste [type name]) |
Вставляет объект, содержащийся в буфере обмена, как вложенный объект OLE; такой объект может быть активизирован непосредственно в позиции вставки. |
Вставить[имя типа] как пиктограмму (Paste [type name] as Icon) |
Вставляет объект, содержащийся в буфере обмена, как вложенный объект OLE; объект отображается как пиктограмма. |
Вставить Ссылку (Paste Link) |
Создает ссылку на объект, который был скопирован в буфер обмена; втачку вставки помещается копия содержимого объекта, обладающая всеми его свойствами, однако при этом сохранаяется связь с оригиналом, так что любое его изменение приводит к изменению копии |
Вставить Ссылку на [имя объекта] (Paste Link to [Object name]) |
Помещает в точку вставки изображение объекта, который был скопирован в буфер обмена, используя технологию OLE; любые изменения исходного объекта отражаются на его копии |
Вставить ярлык (Paste Shortcut) |
Помещает в точку вставки ярлык объекта, который был скопирован в буфер обмена, используя технологию OLE; любые изменения исходного объекта отражаются на его копии |
Специальная Вставка (Paste Special) |
Отображает на экране специальное диалоговое окно, позволяющее пользователю выбрать способ вставки объекта, содержащегося в буфере обмена |
При выборе формата команды Вставить необходимо в первую очередь учитывать свойства приемника; для повышения гибкости работы пользователя ему может быть предоставлена возможность корректировки параметров команды в зависимости от ососбенностей пересылаемого объекта и сущности приемника.
Практика показывает, что для большинства приложений оказывается достаточным совместное использование стандартной команды Вставить и Специальной вставки.
Поскольку выполнение операций пересылки может привести к различным побочным эффектам, ниже описаны некоторые общие сценарии поведения приложения при их реализации.
Если пользователь выполняет пересылку в приемник, для которого необходимо учитывать конкретную позицию вставки, следует заменить выбранный объект в приемнике переданными данными. Например, если выполняется вставка в текст (где положение выбранного фрагмента соответствует позиции вставки), пересылаемый объект заменяет текущий выбор. Если же в тексте-приемнике выбор не был сделан, точка вставки определяется текущим положением курсора.
Для приемников, где нет явной точки вставки, следует поместить вставляемый объект в точку, определяемую текущим контекстом, и отобразить его как выбранный. В качестве контекстной информации можно, например, учитывать позицию указателя мыши, либо признак, по которому упорядочены в приемнике имеющиеся объекты (скажем, по алфавиту).
• Если новый объект автоматически связывается с текущим выбором в приемнике (например, табличные данные и отображающий их график), целесообразно добавить новый объект к текущему выбору.
Выполнение команды Вставить не должно влиять на содержимое буфера обмена. Это позволяет неоднократно повторно использовать данные, находящиеся в буфере. Вместе с тем, необходимо помнить, что последующее выполнение команд Копировать или Вырезать приводит к замене содержимого буфера обмена.
МЕТОД ПРЯМОГО МАНИПУЛИРОВАНИЯ
Командный метод эффективен в тех случаях, когда операция пересылки требует от пользователя соответстсвующего управления источником и приемником. Тем не менее, при выполнении многих операций пересылки прямое манипулирование оказывается более естественным и быстрым методом. При использовании прямого манипулирования пользователь выбирает и перетаскивает объект в желаемую позицию, но поскольку этот метод требует определенных моторных навыков, следует избегать его использования в качестве единственного метода пересылки. В наиболее развитых интерфейсах поддерживаются оба метода: командный — для выполнения основных операций пересылки, а прямое манипулирование — как ускоренная техника работы пользователя.
Прямое манипулирование может применяться для любого визуального объекта. При этом как пересылаемый объект, так и приемник (например, окно или пиктограмма) не обязательно должены быть к настоящему времени активны. Например, пользователь может поместить объект в неактивное окно и в результате выполнения этой операции оно автоматически будет активизировано. Если неактивный объект не допускает пересылку с помощью прямого манипулирования, пользователь должен быть извещен об этом посредством соответствующей обратной связи.
Каким образом переданный объект интегрируется и отображается в приемнике, определяется контекстом приемника. Ранее уже отмечалось, что результатом пересылки может быть как точная копия оригинала, так и отдельные его компоненты или свойства, либо преобразованный объект. Например, приложение может содержать средства для копирования свойств объектов конкретного типа.
Стандартная реализация техники drag-and-drop
Стандартная реализация техники drag-and-drop основана на использовании левой кнопки мыши. Как именно будет проинтерпретировано приложением перетаскивание объекта, зависит от свойств приемника и от того, какая операция пересылки используется в качестве предопределенной. Как и в случае командного метода, результат операции определяется также свойствами перемещаемого объекта (в частности, перечнем разрешенных форматов объекта). Не рекомендуется использовать в качестве предопределенной операции такую, которая может привести к удалению или необратимому изменению объекта. Если же необходимость применения одной из таких операций обусловлена текущей ситуацией, следует вывести на экран сообщение пользователю с просьбой подтвердить намерения.
ОБРАТНАЯ СВЯЗЬ ПРИ ВЫПОЛНЕНИИ ОПЕРАЦИЙ ПЕРЕСЫЛКИ
Поскольку пересылка объектов является одним из наиболее распространенных действий пользователя, наличие соответствующей обратной связи является важным показателем качества интерфейса создаваемого приложения.
Реализация обратной связи при пересылке на основе команд
Если при пересылке объекта пользователь выбирает команду Вырезать, следует визуально удалить выбранный объект. Если в силу каких-либо причин это нецелесообразно, можно отобразить выбранный объект специальным образом, чтобы сообщить пользователю, что команда Вырезать выполнена, но пересылка объекта еще не закончена.
Необходимо также восстанавливать визуальное состояние объекта, если пользователь выбирает команду Вырезать или Копировать для другого объекта прежде, чем выполнить команду Вставить для первоначально выбранного объекта.
Команда Копировать не требует специальной обратной связи. Выполнение команды Вставить также не требует никакой дополнительной обратной связи, кроме как отображение переданного объекта в новой позиции. Тем не менее, если при выполнении команды Вырезать образ объекта в исходной позиции был не удален, а заменен альтернативным представлением, необходимо его теперь «окончательно» удалить.
Реализация обратной связи при прямом манипулировании
При перемещении объекта в новую позицию с помощью мыши следует обеспечить пользователя визуальным представлением выполняемой операции на всем ее протяжении. При этом следует обратить особое внимание на следующие моменты:
Объект должен отображаться как выбранный все время, пока на нем установлен фокус ввода. Чтобы указать, что объект находится в состоянии пересылки, для его изображения могут быть использованы соответствующие визуальные признаки. Например, для визуализации операции перемещения может быть использовано системное контурное изображение объекта. Визуальный образ объекта в исходной позиции следует сохранять до тех пор, пока пользователь не завершит операцию пересылки.
Изображение объекта, перемещаемое вместе с указателем, должно быть «прозрачным» и не заслонять позицию вставки.
Образ объекта в исходной позиции должен сохраняться неизменным до окончания операции пересылки; вместе с тем, его перемещаемое изображение может изменяться в зависимости от типа выполняемой операции. Например, если объект будет вставлен как пиктограмма, то приперемещении указателя на позицию вставки образ объекта должен быть заменен его пиктограммой. Если объект будет включен как часть содержимого приемника, то представление объекта должно отразить это. Например, если объект, вставляемый в документ, будет включен как таблица, он может быть представлен в виде прозрачного силуэта таблицы. И наоборот, если исходный объект — таблица, но при вставке преобразуется в текст, отобразите его как условное изображение текста, например, как прозрачный силуэт нескольких первых слов.
Форма указателя также должна соответствовать типу объекта- (позиции-) приемника. Например, если перетаскиваемый объект должен быть вставлен в текст (непосредственно между символами), отобразите указатель в виде стандартного текстового курсора, используемого при редактировании текста.
Кроме того, целесообразно дополнить изображение указателя специальным символом, поясняющим смысл выполняемой операции пересылки; этот символ отображается возле правого нижнего угла указателя
Используйте визуальную обратную связь, чтобы указать доступность потенциальных приемников. Она может быть реализована па основе стандартных средств выделения выбора, а также дополнительных средств, в том числе анимации. Если же приемник недоступен для пересылаемого объекта, на это можно указать с помощью специального указателя, напоминающего по форме запрещающий дорожный знак.
СПЕЦИАЛЬНЫЕ КОМАНДЫ ПЕРЕСЫЛКИ
При выполнении некоторых заданий определенная комбинация операций пересылки может использоваться настолько часто, что ее удобнее заменить соответствующей дополнительной специализированной командой. Примером такой комбинации является дублирование существующего объекта, выполняемое с помощью двух операций — Копировать и Вставить. Вместо них может быть использована специальная команда Дублировать. Ниже приведены некоторые наиболее распространенные специализированные команды пересылки (табл. 3.12).
Таблица 3.12. Специализированные команды пересылки
Команда |
Функция |
Удалить (Delete) |
Удаляет объект из содержащего его контейнера. Если объект— файл, то он пересылается в Корзину |
Очистить (Clear) |
Удаляет содержимое контейнера |
Дублировать (Duplicate) |
Создает одну копию выбранного объекта |
Печать (Print) |
Печатает выбранный объект на принтере, используемом по умолчанию |
Отправить (Send To) |
Отображает список возможных направлений пересылки выбранного объекта и пересылает его в соответствии с выбором пользователя |
3.6.2. ОПЕРАЦИИ СОЗДАНИЯ НОВЫХ ОБЪЕКТОВ
Возможность создания новых объектов пользователем предусмотрена в подавляющем большинстве приложений. Хотя каждое из них ориентировано на создание объектов определенного типа, разработчик приложения должен, как правило, воздерживаться от применения для этих целей каких-то специфических средств. Обычно создание нового объекта основано на использовании некоторого предопределенного объекта (шаблона) или спецификации и может быть реализовано несколькими способами, поддерживаемыми стандартными средствами пользовательского интерфейса.
Команда Копировать (Сору)
Получение копии существующего объекта является основным способом создания новых объектов. Объекты-копии могут модифицироваться и обычно используются в качестве прототипов для создания новых объектов, обладающих иными свойствами по сравнению с объектом-оригиналом. Технология создания новых объектов указанным способом определяется соглашениями по использованию операций пересылки, рассмотренными выше.
Команда Создать (New)
Команда Создать (New) облегчает создание новых объектов. Она обеспечивает автоматическое создание нового экземпляра объекта определенного типа и может рассматриваться как комбинация команд Копировать (Сору) и Вставить (Paste).
Команда Поместить (Insert)
Команда Поместить (Insert) работает аналогично команде Создать (New), за исключением того, что она применяется к контейнеру для создания нового объекта (обычно определенного типа) внутри этого контейнера. Используя различные форматы команды Поместить, можно предоставить пользователю возможность включать в контейнер объекты различных типов. Если создаваемое приложение поддерживает технологию OLE, с помощью команды Поместить может быть реализовано создание широкого класса объектов. Кроме того, объекты, поддерживаемые вашим приложением, могут включаться в файлы данных, созданные другими приложениями OLE.
Использование элементов управления
С целью автоматического создания новых объектов могут использоваться элементы управления. Например, в графических приложениях часто используются кнопки, соответствующие различным инструментальным средствам или способам создания новых объектов, таких как линия определений формы или геометрическая фигура. Кнопки могут также использоваться для внедрения объектов по технологии OLE.
Использование шаблонов
Шаблон является специальным объектом, который автоматизирует создание нового объекта. Чтобы пользователю было понятно его предназначение, пиктограмма шаблона должна содержать небольшой рисунок, отражающий тип создаваемых с его помощью объектов.
В качестве предопределенной операции для объекта Шаблон используется команда Создать; она инициирует процесс создания объекта, который может выполняться как полностью автоматически, так и в режиме диалога с пользователем. Вновь созданный объект должен находиться в той же позиции, где находился шаблон. Если текущий контекст не позволяет это сделать, объект следует установить в другой доступной пользователю позиции, например, на Рабочем столе. Размещение нового объекта может также быть указано пользователем в процессе диалога при создании объекта; в этом случае по завершении создания объекта следует вывести на экран сообщение, информирующее пользователя о местоположении созданного объекта.
3.6.3. ОПЕРАЦИИ СВЯЗЫВАНИЯ ОБЪЕКТОВ
В результате выполнения операции связывания объектов создается специальная форма отношения двух объектов — ссылка, которая отображает или предоставляет доступ от одного объекта к другому, расположенному либо в том же контейнере,' либо в другом, отдельном контейнере. Компонентами этого отношения являются источник связи (референт) и связанный объект. Перечень допустимых операций и свойств связанного объекта как правило не зависит от объекта-источника, и определяется типом контейнера, в котором он находится.
Связь между объектами может быть представлена различными средствами интерфейса. В частности, связь по данным реализуется посредством передачи соответствующих величин между двумя объектами, например, между двумя ячейками в таблице или между столбцом таблицы и диаграммой. Переходы (называемые также гиперссылками — hyperlinks) предоставляют навигационный доступ к другому объекту. Этот вид связи можно назвать также связью по управлению.
Объект, связанный с источником с помощью механизма OLE, предоставляет доступ ко всем операциям, разрешенным для источника, и, кроме того, обеспечивает визуальное представление связи с источником.
Когда пользователь пересылает связанный объект, следует сохранить как абсолютный, так и относительный маршрут доступа к его источнику связи. Абсолютный маршрут — это точное описание положения объекта в его иерархии. Относительный маршрут является описанием позиции объекта относительно текущего контейнера.
Какой из двух маршрутов будет использоваться, зависит от направления пересылки. Как правило, по умолчанию используется относительный маршрут. Тем не менее, если по одному из маршрутов обеспечить доступ к источнику не удалось, следует использовать альтернативный маршрут. Например, если пользователь копирует связанный объект и источник связи в другую позицию, создаются копии как связанного объекта, так и источника связи. В этом случае относительным маршрутом для копии связанного объекта является описание расположения копии источника связи, а абсолютным маршрутом — описание позиции исходного источника связи (оригинала). Другими словами, когда пользователь обращается к копии связанного объекта, следует активизировать связь с копией источника связи. Если же это сделать не удается (например, из-за того, что пользователь удалил копию источника), необходимо использовать абсолютный маршрут, обеспечивающий доступ к исходному источнику связи.
Если пользователь применяет операцию связывания к связанному объекту, должна создаваться ссылка на него, а не на источник. В случае, если связанный объект не может использоваться в качестве источника, то, когда пользователь выбирает такой связанный объект, следует сделать недоступными для него команды связывания.
Способ активизации связанного объекта зависит от типа связи. Например, активизация перехода может выполняться с помощью однократного щелчка ЛКМ. Тем не менее, такой механизм эффективен только для выбора связанных данных или связанного объекта OLE. Если же он используется, чтобы сделать что-то еще, кроме выбора объекта, следует использовать различные формы визуального представления для каждой из допустимых операций. Например, если переход выполняется с помощью кнопки-акселератора, то при выборе кнопки изменяется форма указателя (он отображается в виде руки), а когда пользователь щелкает на ней ЛКМ, то изменяется изображение кнопки и производится переход по ссылке.
При таком подходе обеспечивается обратная связь с пользователем, который может либо только выбрать ссылку на связанный объект, либо и воспользоваться ею.