示例#1
0
        public void TrackTwoUndoActions()
        {
            var parent = new Parent {
                Name = "original name"
            };

            var undoRedoManager = new UndoRedoManager(parent);

            var undoRedoHistoryControl = new UndoRedoHistoryControl {
                UndoRedoManager = undoRedoManager
            };

            parent.Name = "name1";

            parent.Name = "name2";

            undoRedoHistoryControl.TreeView.Nodes.Count
            .Should().Be.EqualTo(3);

            undoRedoHistoryControl.TreeView.Nodes[0].Text
            .Should("empty node").Be.EqualTo("");

            undoRedoHistoryControl.TreeView.Nodes[1].Text
            .Should().Contain("name1");

            undoRedoHistoryControl.TreeView.Nodes[2].Text
            .Should().Contain("name2");
        }
示例#2
0
        public void Show()
        {
            LogHelper.ConfigureLogging();

            var parent = new Parent {
                Name = "original name"
            };

            // setup undo/redo for parent
            var undoRedoManager = new UndoRedoManager(parent);

            // create undo/redo control
            var undoRedoHistoryControl = new UndoRedoHistoryControl {
                UndoRedoManager = undoRedoManager
            };

            // show parent using tree view
            var parentTreeView      = new TreeView();
            var parentNodePresenter = new ParentTreeViewNodePresenter();
            var childNodePresenter  = new ChildTreeViewNodePresenter();

            parentTreeView.NodePresenters.Add(parentNodePresenter);
            parentTreeView.NodePresenters.Add(childNodePresenter);
            parentTreeView.Data = parent;
            WindowsFormsTestHelper.Show(parentTreeView);

            // do some actions
            parent.Name = "name1";
            parent.Name = "name2";
            parent.Children.Add(new Child {
                Name = "child1"
            });

            var editable = (IEditableObject)parent;

            editable.BeginEdit("Add new child and change name");
            parent.Children.Add(new Child {
                Name = "child2"
            });
            parent.Name = "name3";
            editable.EndEdit();

            parent.Children.RemoveAt(0);

            WindowsFormsTestHelper.ShowModal(undoRedoHistoryControl);
        }
示例#3
0
        public void UndoShouldChangeSelectedNodeToThePreviousNode()
        {
            var parent = new Parent {
                Name = "original name"
            };

            var undoRedoManager = new UndoRedoManager(parent);

            var undoRedoHistoryControl = new UndoRedoHistoryControl {
                UndoRedoManager = undoRedoManager
            };

            parent.Name = "name1";

            parent.Name = "name2";

            undoRedoManager.Undo();

            undoRedoHistoryControl.TreeView.Nodes.IndexOf(undoRedoHistoryControl.TreeView.SelectedNode)
            .Should().Be.EqualTo(1);
        }