Lock down a graph


#1

We’re implementing a debugger which debugs programs defined by GoDiagram graphs. Such programs are compiled and subsequently executed in another process which includes the server debugger component. When we step through a program, the current “statement”, a GoDiagram graph node, is selected with a unique selection halo. Likewise for breakpoints etc.
While debugging, we need to lock down the graph, while still permitting mouse activity on the graph in order to set additional breakpoints or view properties via context menu.
We’re setting these properties on each view false:
AllowSelect
AllowEdit
AllowMove
AllowLink
AllowDrop
AllowInsert
However after doing so, we can still select nodes with the mouse, and we can still create links with the mouse. AllowSelect and AllowLink don’t appear to do what we expect. How can we accomplish what we wish to do?


#2

Setting those GoView properties should work just fine.
If you try setting some or all of those properties in a sample application, do you get the behavior you want? You can set those properties interactively in the Demo1 sample by bringing up the Properties window and selecting the View in the drop-down list.


#3

The problem seems to be that view.AllowDrop failed and short circuited some other code.
When running under the debugger, view.AllowDrop = false; elicits InvalidOperationException “DragDrop registration failed”, both in our app, and when added to the Demo1 sample. Both apps’ Main methods are tagged with [STATThread]. Is there a workaround you know of for this behavior?


#4

I’m sorry, but I don’t have any problem setting GoView.AllowDrop to false. I modified MinimalApp.cs by adding the line:
myView.AllowDrop = false;
and I tried compiling and running with .NET 1.0 and .NET 1.1, and debugging with VS.NET 2003. This was with GoDiagram Win 2.2.
There were no exceptions and the resulting behavior was what you’d expect.