шаблоны проектирования перетаскиванием и мышью?
-
12-09-2019 - |
Вопрос
Существуют ли какие-либо хорошо изученные шаблоны проектирования, связанные с перетаскиванием и жестами мыши?Рассмотрим холст, содержащий объекты в иерархии родитель-потомок с определенным макетом.Некоторые объекты можно перетаскивать на другие объекты с помощью мыши.Кроме того, объекты можно изменять в размерах и перемещать с помощью мыши.
Различные горячие точки на объектах ведут себя по-разному в зависимости от состояния пользователя (перетаскивание, выбор). Для операции перетаскивания некоторые элементы:1) Визуальная обратная связь с пользователем для исходного объекта 2) Визуальная обратная связь с пользователем во время перетаскивания 3) Определение области перетаскивания 4) Тесты совместимости перетаскивания 5) Действие перетаскивания
Стандартные API, как правило, объединяют их в довольно монолитный код.
Кроме того, такие жесты, как перемещение и изменение размера, имеют определенные общие элементы:1) Визуальная обратная связь с пользователем, когда мышь находится в области изменения размера / перемещения 2) Визуальная обратная связь во время операции перемещения / изменения размера 3) Завершение / отмена операции.
Вопрос в том, есть ли способ сделать это, который упрощает код, разделяет обязанности на визуальном уровне и на уровне документа и, возможно, многое из этого декларативно?
Например, для определения того, является ли точка под мышкой целью сброса, может использоваться некоторая форма тестирования попадания в сочетании с шаблоном Цепочки ответственности.
Я чувствую, что должны быть хорошие шаблоны проектирования, которые привносят дисциплину и организованность в эту, в противном случае, запутанную проблему.
Ваше здоровье,
Решение
Чтобы ответить на мой собственный вопрос, во второй главе этой книги есть очень важное обсуждение: http://www.amazon.com/gp/product/0596516258.
Однако это все еще не так декларативно и хорошо учтено, как хотелось бы.