Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЧМВ Учебное пособие.doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
2.54 Mб
Скачать

3.7 Метод прямого манипулирования

Командный метод эффективен в тех случаях, когда операция пересылки требует от пользователя соответствующего управления источником и приемником. Тем не менее, при выполнении многих операций пересылки прямое манипулирование ока­зывается более естественным и быстрым методом. При использовании прямого ма­нипулирования пользователь выбирает и перетаскивает объект в желаемую пози­цию, но поскольку этот метод требует определенных моторных навыков, следует избегать его использования в качестве единственного метода пересылки. В наибо­лее развитых интерфейсах поддерживаются оба метода: командный – для выпол­нения основных операций пересылки, и прямое манипулирование – как ускоренная техника работы пользователя.

Прямое манипулирование может применяться для любого визуального объек­та. При этом как пересылаемый объект, так и приемник (например, окно или пиктограмма) не обязательно должны быть к настоящему времени активны. Например, пользователь может поместить объект в неактивное окно и в резуль­тате выполнения этой операции оно автоматически будет активизировано. Если неактивный объект не допускает пересылку с помощью прямого манипулирова­ния, пользователь должен быть извещен об этом посредством соответствующей обратной связи.

Каким образом переданный объект интегрируется и отображается в приемнике, определяется контекстом приемника. Ранее уже отмечалось, что результатом пере­сылки может быть как точная копия оригинала, так и отдельные его компоненты или свойства, либо преобразованный объект. Например, приложение может содер­жать средства для копирования свойств объектов конкретного типа.

Стандартная реализация техники drag-and-drop

Стандартная реализация техники drag-and-drop основана на использовании ле­вой кнопки мыши. Как именно будет проинтерпретировано приложением перетас­кивание объекта, зависит от свойств приемника и от того, какая операция пересыл­ки используется в качестве предопределенной. Как и в случае командного метода, результат операции определяется также свойствами перемещаемого объекта (в ча­стности, перечнем разрешенных форматов объекта). Не рекомендуется использовать в качестве предопределенной операции такую, которая может привести к уда­лению или необратимому изменению объекта. Если же необходимость примене­ния одной из таких операций обусловлена текущей ситуацией, следует вывести на экран сообщение пользователю с просьбой подтвердить намерения.

Используя технику drag-and-drop, пользователь может непосредственно пере­сылать объекты, как между окнами приложения, так и между окнами системных ресурсов, такими, например, как папки и принтеры.

Чаще всего в качестве предопределенной операции для drag-and-drop ис­пользуется операция «Переместить (Move)», но вместо нее может быть опреде­лена любая другая операция пересылки, например «Копировать» или «Связать», или даже специализированная операция пересылки, такая, например, как «Ко­пировать Свойства».

Нестандартная реализация техники drag-and-drop

В основе нестандартной реализации техники drag-and-drop лежит использова­ние правой кнопки мыши. Особенность данного подхода заключается в следующем. Когда пользователь щелкает ПКМ на объекте-приемнике (или на позиции, куда пересылается объект), вместо выполнения предопределенной операции открывает­ся всплывающее меню для объекта-приемника. Это меню содержит набор команд пересылки, разрешенных для данной позиции, но с учетом особенностей объекта, подлежащего пересылке. Тот факт, что команды всплывающего меню относятся к приемнику, а не к пере­сылаемому объекту, должен учитываться и в названиях этих команд. В частности, если пересылается содержимое объекта (данные), такими командами могут быть: «Переместить сюда (Move Here)», «Копировать сюда (Сору Неrе)». Если же приемник поддерживает пересылку только отдельных компонентов объекта, или требует его преобразования, названия команд должны отражать эту особенность приемника (например, «Копировать свойства сюда»).

Общий формат нестандартных команд пересылки выглядит следующим образом: [имя команды] [имя типа | имя объекта] Неrе как [имя типа].

Обратная связь при выполнении операций пересылки

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

Если при пересылке объекта пользователь выбирает команду «Вырезать», следует визуально удалить выбранный объект. Если в силу каких-либо причин это нецеле­сообразно, можно отобразить выбранный объект специальным образом, чтобы со­общить пользователю, что команда «Вырезать» выполнена, но пересылка объекта еще не закончена.

Необходимо также восстанавливать визуальное состояние объекта, если пользо­ватель выбирает команду «Вырезать» или «Копировать» для другого объекта прежде, чем выполнить команду «Вставить» для первоначально выбранного объекта.

Команда «Копировать» не требует специальной обратной связи. Выполнение коман­ды «Вставить» также не требует никакой дополнительной обратной связи, кроме как отображение переданного объекта в новой позиции. Тем не менее, если при выполне­нии команды «Вырезать» образ объекта в исходной позиции был не удален, а заменен альтернативным представлением, необходимо его теперь «окончательно» удалить.

Реализация обратной связи при прямом манипулировании

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

  • объект должен отображаться как выбранный все время, пока на нем установлен фокус ввода. Чтобы указать, что объект находится в состоянии пересылки, для его изображения могут быть использованы соответствующие визуальные признаки. На­ пример, для визуализации операции перемещения может быть использовано систем­ное контурное изображение объекта. Визуальный образ объекта в исходной позиции следует сохранять до тех пор, пока пользователь не завершит операцию пересылки;

  • изображение объекта, перемещаемое вместе с указателем, должно быть «про­зрачным» и не заслонять позицию вставки;

  • образ объекта в исходной позиции должен сохраняться неизменным до оконча­ния операции пересылки, вместе с тем, его перемещаемое изображение может изме­няться в зависимости от типа выполняемой операции. Например, если объект будет вставлен как пиктограмма, то при перемещении указателя на позицию вставки образ объекта должен быть заменен его пиктограммой. Если объект будет включен как часть содержимого приемника, то представление объекта должно это отразить. Например, если объект, вставляемый в документ, будет включен как таблица, он может быть представлен в виде прозрачного силуэта таблицы. И наоборот, если исходный объект – таблица, но при вставке преобразуется в текст, отобразите его как условное изображение текста, например, как прозрачный силуэт нескольких первых слов;

  • форма указателя также должна соответствовать типу объекта- (позиции) приемника. Например, если перетаскиваемый объект должен быть вставлен в текст (непосредственно между символами), отобразите указатель в виде стандартного текстового курсора, используемого при редактировании текста;

  • используйте визуальную обратную связь, чтобы указать доступность потен­циальных приемников. Она может быть реализована на основе стандартных средств выделения выбора, а также дополнительных средств, в том числе анимации.

Специальные команды пересылки

При выполнении некоторых заданий определенная комбинация операций пере­сылки может использоваться настолько часто, что ее удобнее заменить соответ­ствующей дополнительной специализированной командой. Примером такой ком­бинации является дублирование существующего объекта, выполняемое с помощью двух операций – «Копировать» и «Вставить». Вместо них может быть использована специальная команда «Дублировать». В таблице 3.11 приведены некоторые наиболее распрос­траненные специализированные команды пересылки.

Таблица 3.11 – Специализированные команды пересылки

Команда

Функция

Удалить

(Delete)

Удаляет объект из содержащего его контейнера. Если объект – файл, то он пересылается в Корзину

Очистить

(Clear)

Удаляет содержимое контейнера

Дублировать

(Duplicate)

Создает одну копию выбранного объекта

Печать

(Print)

Печатает выбранный объект на принтере, исполь­зуемом по умолчанию

Отправить

(Send To)

Отображает список возможных направлений пере­сылки выбранного объекта и пересылает его в соответ­ствии с выбором пользователя

В таблице 3.12 перечислены комбинации клавиш (акселераторы) обеспечивающие ускоренный доступ к операциям пересылки

Таблица 3.12 – Клавиши-акселераторы для операций пересылки

Комбинация клавиш

Функция

CTRL+X

Выполняет команду «Вырезать»

CTRL+C

Выполняет команду «Копировать»

CTRL+V

Выполняет команду «Вставить»

CTRL+<перемещение объекта>

Заменяет предопределенную операцию пересылки опе­рацией «Копировать» (если приемник ее поддерживает), мо­дификатор может использоваться с любой кнопкой мыши

ESC

Отменяет выполнение операции пересылки (если она еще не закончена)