コード例 #1
0
        public void redo()
        {
            LilyMemento memento = caretaker.redoMemento();

            if (memento != null)
            {
                originator.setMemento(memento);
            }
        }
コード例 #2
0
        public void stateChanged()
        {
            _lastChange = DateTime.Now;

            Task.Delay(MILLISECONDS_BEFORE_CHANGE_HANDLED).ContinueWith((task) =>
            {
                if ((DateTime.Now - _lastChange).TotalMilliseconds >= MILLISECONDS_BEFORE_CHANGE_HANDLED)
                {
                    LilyMemento currentMemento = originator.getMemento();
                    LilyMemento lastMemento    = caretaker.getLast();
                    if (lastMemento == null || lastMemento.getState() != currentMemento.getState())
                    {
                        caretaker.insertMemento(currentMemento);
                    }

                    Staff staff = lilypondToStaff.load(currentMemento.getState());

                    controller.ViewCOR.handle(staff, ContentType.WPF);
                    controller.ViewCOR.handle(staff, ContentType.MIDI);
                }
            }, TaskScheduler.FromCurrentSynchronizationContext());
        }
コード例 #3
0
 public void setMemento(LilyMemento memento)
 {
     _textbox.Text = memento.getState();
 }
コード例 #4
0
 public void insertMemento(LilyMemento memento)
 {
     UndoStack.Push(memento);
     RedoStack.Clear();
 }