Hola a todos,
Estoy intentando implementar un comportamiento de arrastrar y soltar para dos cuadros de lista en JSL. Básicamente, estoy tratando de replicar el comportamiento de arrastrar y soltar que ya existe para los objetos colListBox para cuadros de lista normales, es decir, que un usuario puede hacer clic en cualquier elemento en un cuadro de lista, hacer clic, arrastrarlo y soltarlo en otro cuadro de lista. He implementado con éxito el comportamiento deseado para el cuadro desplegable de recepción, sin embargo, tengo problemas con el cuadro desplegable de origen. Básicamente, no estoy seguro de cómo implementar el comportamiento que quiero. Lo más cerca que tengo es dejar la función establecer clic deshabilitada para el cuadro principal del mouse del cuadro de lista, habilitar el arrastre y colocar el siguiente código en las funciones << establecer inicio de arrastre y << establecer fin de arrastre:
<< Establecer inicio de arrastre (
Función ({this, clickpt},
If( N elementos( (este << hijo) << Obtener seleccionado ) == 0,
(este << niño) << Establecer seleccionado (1);
0;
,//Demás
prueba = ((este << niño) << Obtener seleccionado);
prueba[1];
);
);
);
y esto
<< Establecer fin de arrastre (
Función ({esto, clickpt, cómo},
Si(cómo == "mover",
(este << niño) << Eliminar seleccionado;
)
);
);
Pero hacer esto significa que los clics simples no funcionan para seleccionar un elemento en el cuadro de lista; el usuario tendría que hacer doble clic; de lo contrario, se seleccionará el primer elemento. Esto no es ideal, pero es todo lo que he podido hacer. Cualquier ayuda o sugerencia para obtener más información sobre esto será muy apreciada.
En una segunda nota, ocasionalmente, cuando arrastro algo desde el primer cuadro de lista, a veces el elemento que arrastré no se elimina. Esto sólo sucede de forma muy intermitente, pero no tengo idea de por qué sucede ni cómo solucionarlo. Gracias.
Disculpas por no volver antes. Me involucraron en otros proyectos y no tuve la oportunidad de volver a visitar JSL por un tiempo. Esto funciono muy bien para mi. Muy buenos comentarios también. Me pregunto si hay más documentación sobre MouseBox disponible en la web. No he tenido mucho éxito al localizarlo y me encantaría obtener más información sobre la mecánica de MouseBox, el drop commit, etc. ¡Salud!