Question on ComputeEffectiveSelection and copying

I have recently added a GoCollapsibleHandle to the GoIconicNodes in my application. I would like for subtrees to be moved/copied only when collapsed (not visible).

Following the example from TreeApp3, I have implemented my own GoDraggingTool with an override for ComputeEffectiveSelection() that does the logic of adding the subtree to the selection if collapsed.
This is working for move, but not for copy, and I'm not sure what the issue is. ComputeEffectiveSelection() is returning the correct group of nodes including the subtree, but only the parent is being copied.
I overrode GoDocument and set a break in CopyFromCollection() and the only object in the collection is the parent -- the subtree is not in the collection.
Thanks for the help.

Well, TreeApp does both behaviors, it’s just based on the checkbox at the top instead of the state of the node…

I understand that and I’ve seen this behavior in the TreeApp sample. I used the code in TreeApp as an example for some of the things I tried to implement in my application.

The problem I'm having is that in my application move works but copy does not and I don't know why.
I'm not sure where to proceed debugging from here and was hoping you could give me an idea where to look next to figure out the problem.
As I said, my ComputeEffectiveSelection() is returning the full collection of nodes (the parent and the subtree) for both move and copy. The problem is that move is working but copy is not.
In an attempt to debug this, I added an override class for GoDocument and set a breakpoint in CopyFromCollection(). The collection in this method does not include the whole subtree that ComputeEffectiveSelection() returned -- it just included the parent. What could cause this behavior?
Any other suggestions for how I can debug this?

Have you set GoToolDragging.CopiesEffectiveSelection to true?

Thanks Walter. That was my problem and setting it to true does fix the issue for drag-copy.
I have a similar issue for clipboard copying. Since this isn’t a dragging action it doesn’t involve the drag tool. If I want the subtree copied for a collapsed node, should I handle this in GoView.CopyFromClipboard()?

The same question for delete. When collapsed, I'd like for deleting the parent to delete all the children in the subtree. I assume I'd need to override GoView.DeleteSelection().
Thanks again for the help.

TreeApp shows you how to handle both of those choices too.