I’ve have been playing around with the trial of GoDiagram and was wondering if the following is possible:
I have overriden DraggingObject property to return a custom object which is completely different to the original object.
I wish for the user to be able to drag this around, and have added in restrictions using the ComputeMove method.
Unfortunately I can’t seem to find a way to allow ComputeMove to be restrictive during the drag, while using the dragging object.
GoView.DragsRealtime is turned on, and ComputeMove works but I don’t get my DraggingObject.
or is turned off, and ComputeMove does not work, but I do get my DraggingObject.
Is there a way in which to get both to occur?
DraggingObject isn’t intended to be a “when A is dragged, make it look like a B”.
When used in conjuntion with DragsNode=true, it is a way for having a part of a node (like a label) drag the "parent" (or higher) that is the actual node.
Are you working with a node, or a simple shape?
[QUOTE=Jake]DraggingObject isn’t intended to be a “when A is dragged, make it look like a B”.
When used in conjuntion with DragsNode=true, it is a way for having a part of a node (like a label) drag the “parent” (or higher) that is the actual node.
Are you working with a node, or a simple shape?[/quote]
I see. I am currently using it to basically display something that represents the object as this works better visually in this case…
I’m working with a node.
OK, does the node have links that you want updated in real time as the object drags? I’m thinking that it’s probably easiest to add a feature to the node that allows it to be called to change appearance, then do a custom GoToolDragging that calls the node to tell it when dragging starts and stops.
What node class are you using? Can you provide screenshots of what you'd like the node to look like in the 2 states?
Thanks for your help Jake.
I believe I have got what I need working by override the DoDragging method on a custom GoToolDragging. It then looks at the CurrentObject (or DragSelectionOriginalObject) and if it is of the type I’m interested in I call ComputeMove using the LastInput.DocPoint.
This appears to work quite nicely.