public void Apply(Undoable step)
 {
     redos.Clear();
     step.Apply();
     undos.Push(step);
     DiagManager.Instance.LogInfo(String.Format("Apply {0}", step));
 }
        public void Redo()
        {
            Undoable step = redos.Pop();

            step.Redo();
            undos.Push(step);
            DiagManager.Instance.LogInfo(String.Format("Redo {0}", step));
        }