Esempio n. 1
0
        internal SceneEditTransaction(IExternalChanges externalChanges, SceneDocument document, IUndoTransaction undo)
        {
            this.document             = document;
            this.delayExternalChanges = externalChanges != null?externalChanges.DelayNotification() : (IDisposable)null;

            this.undo = undo;
        }
Esempio n. 2
0
 public void Create(bool haveRealTransaction = true)
 {
     _factory = new MockRepository(MockBehavior.Strict);
     if (haveRealTransaction)
     {
         _realTransaction = _factory.Create<ITextUndoTransaction>();
         _transactionRaw = new UndoTransaction(FSharpOption.Create(_realTransaction.Object));
     }
     else
     {
         _transactionRaw = new UndoTransaction(FSharpOption<ITextUndoTransaction>.None);
     }
     _transaction = _transactionRaw;
 }
Esempio n. 3
0
 public void Create(bool haveRealTransaction = true)
 {
     _factory = new MockRepository(MockBehavior.Strict);
     if (haveRealTransaction)
     {
         _realTransaction = _factory.Create <ITextUndoTransaction>();
         _transactionRaw  = new UndoTransaction("Undo", FSharpOption.Create(_realTransaction.Object));
     }
     else
     {
         _transactionRaw = new UndoTransaction("Undo", FSharpOption <ITextUndoTransaction> .None);
     }
     _transaction = _transactionRaw;
 }
Esempio n. 4
0
        public void Create(bool haveRealTransaction = true)
        {
            _factory = new MockRepository(MockBehavior.Strict);

            var undoRedoOperations = new UndoRedoOperations(VimHost, new StatusUtil(), FSharpOption<ITextUndoHistory>.None, EditorOperationsFactoryService);
            if (haveRealTransaction)
            {
                _realTransaction = _factory.Create<ITextUndoTransaction>();
                _transactionRaw = new NormalUndoTransaction("Undo", FSharpOption.Create(_realTransaction.Object), undoRedoOperations);
            }
            else
            {
                _transactionRaw = new NormalUndoTransaction("Undo", FSharpOption<ITextUndoTransaction>.None, undoRedoOperations);
            }
            _transaction = _transactionRaw;
        }
Esempio n. 5
0
 internal void Cancel(bool notifyDocument)
 {
     if (this.undo == null)
     {
         return;
     }
     try
     {
         this.undo.Cancel();
         this.undo = (IUndoTransaction)null;
         this.document.OnCanceledEditTransaction(notifyDocument);
     }
     finally
     {
         this.EnableExternalChanges();
     }
 }
        public void Create(bool haveRealTransaction = true)
        {
            _factory = new MockRepository(MockBehavior.Strict);

            var undoRedoOperations = new UndoRedoOperations(VimHost, new StatusUtil(), FSharpOption <ITextUndoHistory> .None, EditorOperationsFactoryService);

            if (haveRealTransaction)
            {
                _realTransaction = _factory.Create <ITextUndoTransaction>();
                _transactionRaw  = new NormalUndoTransaction("Undo", FSharpOption.Create(_realTransaction.Object), undoRedoOperations);
            }
            else
            {
                _transactionRaw = new NormalUndoTransaction("Undo", FSharpOption <ITextUndoTransaction> .None, undoRedoOperations);
            }
            _transaction = _transactionRaw;
        }
Esempio n. 7
0
 protected override void PopTransaction(bool commit)
 {
     if (this.undoService != null)
     {
         IUndoTransaction undoTransaction = this.transactions.Pop();
         if (commit)
         {
             undoTransaction.Commit();
         }
         else
         {
             undoTransaction.Cancel();
         }
     }
     else
     {
         base.PopTransaction(commit);
     }
 }
Esempio n. 8
0
 public void Commit(bool notifyDocument)
 {
     if (this.undo == null)
     {
         return;
     }
     try
     {
         if (notifyDocument)
         {
             this.document.OnCompletingEditTransaction();
         }
         this.undo.Commit();
         this.undo = (IUndoTransaction)null;
         this.document.OnCompletedEditTransaction(notifyDocument);
     }
     finally
     {
         this.EnableExternalChanges();
     }
 }
Esempio n. 9
0
        public SceneEditTransaction CreateEditTransaction(string description, bool hidden, SceneEditTransactionType transactionType)
        {
            if (this.autoClosingTransactionStack.Count > 0 && transactionType != SceneEditTransactionType.NestedInAutoClosing)
            {
                bool flag = false;
                foreach (KeyValuePair <SceneEditTransaction, SceneEditTransactionType> keyValuePair in this.autoClosingTransactionStack)
                {
                    if (keyValuePair.Value == SceneEditTransactionType.NestedInAutoClosing)
                    {
                        flag = true;
                        break;
                    }
                }
                if (!flag)
                {
                    KeyValuePair <SceneEditTransaction, SceneEditTransactionType> keyValuePair = this.autoClosingTransactionStack.Pop();
                    if (keyValuePair.Value == SceneEditTransactionType.AutoCommitting)
                    {
                        keyValuePair.Key.Commit();
                    }
                    else
                    {
                        keyValuePair.Key.Cancel();
                    }
                }
            }
            IUndoTransaction undo = this.UndoService.CreateUndo(description, hidden);

            ++this.openEditTransactionCount;
            SceneEditTransaction key = new SceneEditTransaction(this.designerContext.ExternalChanges, this, undo);

            if (this.autoClosingTransactionStack.Count > 0 || transactionType == SceneEditTransactionType.AutoCommitting || transactionType == SceneEditTransactionType.AutoCancelling)
            {
                this.autoClosingTransactionStack.Push(new KeyValuePair <SceneEditTransaction, SceneEditTransactionType>(key, transactionType));
            }
            return(key);
        }