Undo in NodeXL Graphs

May 3, 2010 at 2:24 PM

While editing NodeXL Graph (hiding branches, changing layout, etc...) if you refresh graph, the undo button gets disabled and you can't use it. But Undo feature is very very useful, specially if you make a change by mistake. Can the Undo feature be added to NodeXL?
You can undo the last changes in the excel cells but that's only until you refresh the graph... :-(

May 3, 2010 at 6:25 PM
Edited May 3, 2010 at 6:26 PM

We're aware that the lack of an Undo feature in NodeXL is a major problem.  Unfortunately, restrictions imposed by Excel on external programs like NodeXL make it just about impossible to do Undo properly.  For example, whenever an external program writes to the workbook, which NodeXL does when you refresh the graph (it fills in some hidden ID columns), Excel automatically clears its Undo history.  There is good reason for Excel to do that --it doesn't know what the external program did to the workbook and therefore can't guarantee that its Undo history is still valid-- but it causes a major usability headache for NodeXL users.

So the answer is that we would love to have Undo in NodeXL, but there is no practical way to add it.

-- Tony

May 4, 2010 at 9:57 AM

I understand.
What about having automatic "snapshots" of the whole file, so instead of doing real "undo" you re-load the previous state of the file? Is it possible?

Another option would be to register the changes in memory on the external program (NodeXL) and then you know how to roll back (like databases do), i.e., making the same changes backwards, until you get the previous state.


May 4, 2010 at 5:10 PM

The problem with creating our own undo feature, whether it's implemented via memory or snapshot files, is that it would not be integrated with Excel's native undo feature and would awkward to use.  People want undo to be seamless -- they want all their actions to be kept track of in a single place, regardless of whether the actions were performed in NodeXL or the main Excel program, and they want to be able to back through all of them with a single keystroke.  Because Excel's undo feature doesn't know anything about what happens inside NodeXL, and because it isn't practical for NodeXL to monitor every single action that you might take in the main Excel program, and because --especially because-- actions taken in NodeXL actually clear Excel's undo list, I don't see how a seamless, integrated undo feature is possible.

-- Tony