Pregunta

¿Existen patrones de diseño bien estudiados relacionados con arrastrar y soltar y los gestos del mouse?Considere un lienzo que contiene objetos en una jerarquía padre-hijo con un diseño determinado.Algunos objetos se pueden arrastrar y soltar sobre otros objetos usando el mouse.Además, los objetos se pueden cambiar de tamaño y mover con el mouse.

Diferentes puntos calientes en los objetos se comportan de manera diferente dependiendo del estado del usuario (arrastrar, seleccionar). Para una operación de arrastre de arrastre, algunos elementos son:1) Comentarios visuales al usuario para el objeto de origen 2) Comentarios visuales al usuario durante la resistencia 3) Detección de área de caída 4) PRUEBAS DE COMPATIBILIDAD

Las API estándar tienden a combinarlos en un código bastante monolítico.

Además, gestos como el movimiento y el cambio de tamaño tienen ciertos elementos en común:1) Comentarios visuales al usuario Cuando el mouse está en una región de cambio de tamaño/movimiento 2) Comentarios visuales durante una operación de movimiento/cambio de tamaño 3) finalización/cancelación de la operación.

La pregunta es, ¿hay alguna manera de hacer esto que simplifique el código, separe las responsabilidades a nivel visual y de documento, y posiblemente gran parte de esto declarativo?

Para determinar si el punto debajo del mouse es un objetivo de caída, por ejemplo, se podría utilizar algún tipo de prueba de impacto combinada con el patrón Cadena de responsabilidad.

Siento que debe haber buenos patrones de diseño que aporten disciplina y organización a este problema que de otro modo sería complicado.

Salud,

¿Fue útil?

Solución

Para responder a mi propia pregunta, Capítulo Dos de este libro tiene una discusión muy relevante: http://www.amazon.com/gp/product/0596516258 .

Sin embargo, esto todavía no es tan declarativa o bien factorizado como uno quisiera.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top