wiki:UndoManager

Version 3 (modified by Tom Goddard, 11 years ago) ( diff )

--

Undo Manager Requirements

What do we want to be able to undo? Here are some ideas:

1) Everything. For example, I add hydrogens, add charges, do an energy minimization, delete the hydrogens, delete chain B, then accidentally close the session. Now I want to undo restore the session, undelete chain B, re-add the hydrogens, restore coordinates to preminimized positions, unadd the hydrogens.

2) Limited operations, e.g. color changes, selection changes, display style changes, model motions, but perhaps not object deletion.

3) All operations of a given type or only some of that type. For instance we could require undo for all color changes (rainbow, color by element, color by conservation, every possible way of coloring). Or we could have undo for just some coloring operations, leaving up to each specific coloring tool to decide if undo will be supported.

4) Minimal undo, but with a common user interface such as one menu entry that says "Undo X" where X changes to whatever the last undoable action is, for example, "Undo selection", "Undo motion". Minimal undo may be only selection and movement and maybe a few core molecule color and display style change operations.

5) No undo. Let's face it, although undo is nice, it is hard to implement without impairing performance.

6) Should there be multi-step undo, or only allow undo of the last action?

7) Do we want redo, after an undo?

8) Is out of order undo allowed? Can you change molecule color, then change display style, then undo just the color change?

Cases where Undo is Frequently Desired

1) Selections. The most common situation I (Tom G) encounter is that I clear a selection and I want it back and it was perhaps multiple atoms clicked by hand. Many times I used different selections, and am too lazy to name them, then later want to use them again. It would be nice if all my recent selections were remembered automatically with some description for each such as "5 atoms in model #1". That is not really undo, but I think would be more useful than undo for selections.

2) Model motions. Sometimes I accidentally move one model relative to another and it is a small disaster if I cannot restore the old position. Rarely do I care about a change in camera view, only the motions of one model relative to another are relevant.

Selection and movement are the two cases where Chimera 1 has some undo capability and in my experience these are the most useful. But the useful cases no doubt depend on what you use Chimera for.

Note: See TracWiki for help on using the wiki.