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