UndoManager
A classe UndoManager observa e registra mudanças de modelo e suporta operações de desfazer e refazer.
Implementa: IUndoManager
Construtores
public UndoManager()
undoManager = UndoManager()
Crie um UndoManager que está pronto para gravar modificações de modelo, mas que ainda não sabe sobre quaisquer modelos.
Propriedades
public bool ChecksTransactionLevel { get; set; }
value = undoManager.ChecksTransactionLevel
undoManager.ChecksTransactionLevel = value
Obtém ou define se este gestor de desfazer irá emitir avisos para os ouvintes Trace quando as alterações de modelo ocorrerem fora de uma transacção.
public IList<IUndoableEdit> CompoundEdits { get; private set; }
value = undoManager.CompoundEdits
undoManager.CompoundEdits = value
Obtém uma lista de todas as edições compostas.
public CompoundEdit CurrentEdit { get; set; }
value = undoManager.CurrentEdit
undoManager.CurrentEdit = value
Obtém a edição do composto atual para gravar eventos adicionais de mudança de modelo.
public string CurrentTransactionName { get; }
value = undoManager.CurrentTransactionName
Obtém o nome da transação atual dado pelo String).
public IUndoableEdit EditToRedo { get; }
value = undoManager.EditToRedo
Obtém o IUndoableEdit atual para ser refeito, ou nulo se não houver nenhum.
public IUndoableEdit EditToUndo { get; }
value = undoManager.EditToUndo
Obtém o IUndoableEdit atual para ser desfeito, ou nulo se não houver nenhum.
public bool IsUndoingRedoing { get; protected set; }
value = undoManager.IsUndoingRedoing
undoManager.IsUndoingRedoing = value
Esta propriedade é verdadeira durante uma chamada para Desfazer ou Refazer.
public int MaximumEditCount { get; set; }
value = undoManager.MaximumEditCount
undoManager.MaximumEditCount = value
Obtém ou define o número máximo de edições compostas que este gestor de desfazer irá recordar.
public IEnumerable<IDiagramModel> Models { get; }
value = undoManager.Models
Obtém uma lista de modelos para os quais este UndoManager está gravando informações de desfazer/refazer.
public IList<string> NestedTransactionNames { get; private set; }
value = undoManager.NestedTransactionNames
undoManager.NestedTransactionNames = value
Obtém uma pilha de nomes de transações em curso.
public int TransactionLevel { get; protected set; }
value = undoManager.TransactionLevel
undoManager.TransactionLevel = value
Obtém o nível de transação atual.
public int UndoEditIndex { get; protected set; }
value = undoManager.UndoEditIndex
undoManager.UndoEditIndex = value
Obtém o índice em CompoundEdits para a edição atual e inamovível.
Métodos
public virtual void AddModel(IDiagramModel model)
undoManager.AddModel(model)
Certifique-se que este gestor de desfazer saiba sobre IDiagramModel para o qual está a receber o modelo Alterações de notificações de eventos.
- model
public virtual bool CanRedo()
result = undoManager.CanRedo()
Este predicado é verdadeiro quando se pode chamar Redo.
public virtual bool CanUndo()
result = undoManager.CanUndo()
Este predicado é verdadeiro quando se pode chamar Desfazer.
public virtual void Clear()
undoManager.Clear()
Limpar todos os CompoundEdits e reiniciar todos os outros estados.
protected virtual CompoundEdit CommitCompoundEdit(CompoundEdit cedit)
result = undoManager.CommitCompoundEdit(cedit)
Este método é chamado por String) ao cometer uma edição composta.
- cedit
- o CurrentEdit; isto pode ser nulo se não tiver havido alterações no momento da commit
Retorna: Por padrão, o não modificado .
public bool CommitTransaction(string tname)
result = undoManager.CommitTransaction(tname)
Basta chamar String), comprometendo a transação atual, com o nome da apresentação para a transação.
- tname
- o nome da transação
Retorna: o valor da chamada para String)
protected virtual bool EndTransaction(bool commit, string tname)
result = undoManager.EndTransaction(commit, tname)
Pare a transação atual, ou rebocá-la ou comprometê-la.
- commit
- true para terminar a transação normalmente; false para abortar e voltar atrás as edições existentes
- tname
- o nome locale-neutro interno para a transação
Retorna: true para uma transação de topo comprometida
public virtual object FindPrimaryObject(IUndoableEdit edit)
result = undoManager.FindPrimaryObject(edit)
Dado um IUndoableEdit retornar um objeto editado que representa o que foi modificado.
- edit
- IUndoableEdit, geralmente um ModelChangedEventArgs@ ou um CompoundEdit
Retorna: tipicamente um nó ou um link, mas isso pode ser nulo se não houver tal objeto, talvez porque uma propriedade de modelo foi modificada, ou porque não houve edições reais no argumento .
public virtual void HandleModelChanged(object sender, ModelChangedEventArgs e)
undoManager.HandleModelChanged(sender, e)
Criar um IUndoableEdit para um evento alterado.
- sender
- e
public virtual void Redo()
undoManager.Redo()
Restaure o estado de alguns modelos para depois do atual IUndoableEdit.
public virtual void RemoveModel(IDiagramModel model)
undoManager.RemoveModel(model)
Chame este método para informar este gestor de desfazer que ele não será mais notificado de eventos do modelo Changed.
- model
public bool RollbackTransaction()
result = undoManager.RollbackTransaction()
Liga ao String, a voltar à transacção actual.
Retorna: o valor da chamada para String)
protected virtual bool SkipEvent(ModelChangedEventArgs evt)
result = undoManager.SkipEvent(evt)
Este predicado é responsável por decidir se um ModelChangedEventArgs não é interessante o suficiente para ser gravado.
- evt
Retorna: normalmente false, o que faz com que o evento seja lembrado; mas true para enumerações negativas valorizadas de ModelChange.
public virtual bool StartTransaction(string tname)
result = undoManager.StartTransaction(tname)
Iniciar uma transação, onde as alterações são mantidas por CompoundEdit.
Retorna: true se iniciar uma transação de alto nível
public virtual void Undo()
undoManager.Undo()
Restaurar o estado de alguns modelos para antes do atual IUndoableEdit.