Exemple #1
0
 public void Redo()
 {
     if (Current.Next != null)
     {
         ApplyOperation(Current.Next);
         Current = Current.Next;
     }
 }
Exemple #2
0
 public void Undo()
 {
     if (Current != null)
     {
         ReverseOperation(Current);
         Current = Current.Previous;
     }
 }
Exemple #3
0
 public void Undo()
 {
     if (Current == null)
     {
         return;
     }
     else
     {
         ReverseOperation(Current);
         Current = Current.Previous;
     }
 }
Exemple #4
0
        private void ReverseOperation(UndoLink link)
        {
            switch (link.Operation)
            {
            case Operation.Add:
                DoRemove(link.Naw);
                break;

            case Operation.Remove:
                base.Add(link.Naw);
                break;
            }
        }
Exemple #5
0
        private void AddOperation(Operation operation, NAW naw)
        {
            UndoLink temp = new UndoLink();

            temp.Operation = operation;
            temp.Naw       = naw;

            if (First == null)
            {
                First   = temp;
                Current = temp;
            }
            else
            {
                Current.Next  = temp;
                temp.Previous = Current;
                Current       = temp;
            }
        }
        private void AddOperation(Operation operation, NAW naw)
        {
            UndoLink newUndo = new UndoLink {
                Naw = naw, Operation = operation
            };

            if (Current != null)
            {
                Current.Next     = newUndo;
                newUndo.Previous = Current;
            }

            if (First == null)
            {
                First = newUndo;
            }

            Current = newUndo;
        }
Exemple #7
0
 public void Redo()
 {
     if (First != null)
     {
         if (Current == null)
         {
             Current = First;
             ApplyOperation(Current);
             Current = Current.Next;
         }
         else if (Current.Next != null)
         {
             Current = Current.Next;
             ApplyOperation(Current);
         }
     }
     else
     {
         return;
     }
 }
        public void Redo()
        {
            switch (Current)
            {
            case null when First == null:
                return;

            case null when First != null:
                Current = First;
                break;

            default:
            {
                if (Current.Next == null)
                {
                    return;
                }
                Current = Current.Next;
                break;
            }
            }
            ApplyOperation(Current);
        }
Exemple #9
0
 public UndoableNawArray(int size)
     : base(size)
 {
     First   = null;
     Current = null;
 }
Exemple #10
0
        public static void Main(string[] args)
        {
            /* NawDoublyLinkedList ll = new NawDoublyLinkedList();
             *
             * ll.InsertHead(new NAW("Persoon 1", "Adres 1", "Woonplaats 3"));
             * ll.InsertHead(new NAW("Persoon 2", "Adres 2", "Woonplaats 2"));
             * ll.InsertHead(new NAW("Persona non grata", "Adres 3", "Woonplaats 1"));
             * ll.InsertHead(new NAW("Persoon 4", "Adres 4", "Woonplaats 4"));
             * //ll.InsertHead(new NAW("Persoon 1", "Adres 5", "Woonplaats 1"));
             * //ll.InsertHead(new NAW("Persoon 2", "Adres 6", "Woonplaats 2"));
             * //ll.InsertHead(new NAW("Persona non grata", "Adres 7", "Woonplaats 3"));
             * //ll.InsertHead(new NAW("Persoon 2", "Adres 8", "Woonplaats 2"));
             * //ll.InsertHead(new NAW("Persoon 9", "Adres 9", "Woonplaats 1"));
             * //ll.InsertHead(new NAW("Persoon 10", "Adres 10", "Woonplaats 2"));
             *
             * for (var current = ll.First; current != null; current = current.Next)
             * {
             *  Console.WriteLine(current.Naw.Woonplaats);
             * }
             *
             * for (var current = ll.Last; current != null; current = current.Previous)
             * {
             *   Console.WriteLine(current.Naw.Woonplaats);
             * }
             * Console.ReadLine();
             *
             * ll.BubbleSort();
             *
             * Console.WriteLine("Na de sort:");
             *
             * for (var current = ll.First; current != null; current = current.Next)
             * {
             *   current.Naw.Show();
             * }
             *
             *
             * Console.ReadKey();*/

            UndoableNawArray unArray = new UndoableNawArray(10);

            unArray.Add(new NAW("kenneth", "straat 6", "4"));
            unArray.Undo();
            // unArray.Undo();

            printContent();

            unArray.Add(new NAW("kenneth", "straat 1", "9"));
            unArray.Add(new NAW("kenneth", "straat 2", "8"));
            unArray.Add(new NAW("kenneth", "straat 3", "7"));
            unArray.Add(new NAW("kenneth", "straat 4", "6"));

            printContent();

            unArray.Undo();
            unArray.Undo();

            printContent();

            unArray.Redo();
            unArray.Redo();

            printContent();

            unArray.Undo();

            printContent();

            unArray.Add(new NAW("nelus", "straat 5", "5"));

            printContent();

            unArray.Redo(); unArray.Redo();
            unArray.Redo();
            unArray.Redo();
            unArray.Redo();


            printContent();


            void printContent()
            {
                Console.WriteLine("====================Count = " + unArray.Count + " =======================");
                UndoLink temp = unArray.First;

                for (int i = 0; i < unArray.Count; i++)
                {
                    temp.Naw.Show();
                    temp = temp.Next;
                }
            }

            Console.ReadLine();
        }