Drag & drop lines between list fields
Keith Clarke
keith.clarke at clarkeandclarke.co.uk
Wed May 18 06:18:13 EDT 2011
Hi folks,
To help with some XML file analysis, I've created a pair of list fields that display the current node's children. The 'left' field is filled with all the child nodes and I filter this list down to just the nodes I will investigate further, by dragging into the 'right' list the nodes I will ignore.
I thought I'd use this opportunity to learn about drag & drop, so the script below sits in each field and allows me to move fields back and forth between 'monitor' and 'ignore' lists - well, nearly! It's working but in an overall 'copy' mode - not 'move'.
My problem is with the 'line -3' which should check that the drop was successful and then delete the line from the source field.
Any clues as to what I'm doing wrong?
/*
Drag and drop control for managing parameters between 'Monitor' and 'Ignore' lists
*/
on dragStart
---Start dragging a Parameter
put the hilitedLine of me into tLine --a line number reference and not the text
put the line tLine of me into tParameter --gets the text from the referenced line number
set the allowableDragActions to "move"
set the dragAction to "move"
set the dragData["text"] to tParameter --creates the 'payload' for the drag & drop action
pass dragStart
end dragStart
on dragEnter
--Enable as a receiving field
set the dragAction to "copy"
pass dragEnter
end dragEnter
on dragDrop
--Put some dragsource logic in here - exit if dragSource is not the expected field or the dragData payload is empty
--Deposit the drag 'payload'
put the dragData["text"] into tDraggedArray
if me is not empty then put return after me --adds a return after the last item when the destination list is not empty
put line 1 of tDraggedArray after me --adds the Parameter to the list
sort lines of me --sorts a-z
if the dragDestination contains tParameter then delete line tLine of me
pass dragDrop
end dragDrop
Oh, and a minor point - dragAction is set to 'move' but I get the OSX 'plus' icon attached to the drag action, which implies copy?!?
Best,
Keith..
More information about the use-livecode
mailing list