Classe AddRule
Representa uma regra que é chamada quando um objeto é adicionado ao modelo.
Hierarquia de herança
System.Object
Microsoft.VisualStudio.Modeling.Rule
Microsoft.VisualStudio.Modeling.AddRule
Microsoft.VisualStudio.Modeling.Diagrams.CommentShapeAddRule
Microsoft.VisualStudio.Modeling.Diagrams.NodeShape.ExpandCollapseNodeShapeWhenAddedToDiagramRule
Microsoft.VisualStudio.Modeling.Diagrams.ParentShapeContainsNestedChildShapesAddRule
Microsoft.VisualStudio.Modeling.Diagrams.ParentShapeHasRelativeChildShapesAddRule
Microsoft.VisualStudio.Modeling.Diagrams.ShapeElementAddRule
Microsoft.VisualStudio.Modeling.ElementDeserializedRule
Namespace: Microsoft.VisualStudio.Modeling
Assembly: Microsoft.VisualStudio.Modeling.Sdk.11.0 (em Microsoft.VisualStudio.Modeling.Sdk.11.0.dll)
Sintaxe
'Declaração
Public MustInherit Class AddRule _
Inherits Rule
public abstract class AddRule : Rule
O tipo AddRule expõe os membros a seguir.
Construtores
Nome | Descrição | |
---|---|---|
AddRule | Inicializa uma instância da AddRule classe. |
Superior
Propriedades
Nome | Descrição | |
---|---|---|
FireBefore | true Se esta regra será executada antes da alteração ocorre. (Herdado de Rule.) | |
FireImmediately | true Se esta regra será executada imediatamente a alteração ocorrerá. (Herdado de Rule.) | |
FireOnLocalCommit | true Se esta regra será executada quando a transação atual for confirmada. (Herdado de Rule.) | |
FireOnTopLevelCommit | true Se esta regra será executada quando a transação de nível superior seja confirmada. (Herdado de Rule.) | |
FireTime | Obtém ou define quando a regra deve ser executado.Normalmente definido pelo atributo RuleOn. (Herdado de Rule.) | |
IsEnabled | Obtém ou define se a regra está habilitada.Normalmente true por padrão, mas você pode inicializá-lo para false no atributo RuleOn. (Herdado de Rule.) | |
Priority | Obtém a prioridade atribuída à regra.Ajuda a determinar a ordem em que as regras são executadas no final de uma transação. (Herdado de Rule.) |
Superior
Métodos
Nome | Descrição | |
---|---|---|
CompareTo(Object) | Compara a regra para um outro objeto. (Herdado de Rule.) | |
CompareTo(Rule) | Compara a regra para outra regra por suas identificações. (Herdado de Rule.) | |
ElementAdded | Alerta ouvintes que foi usada uma regra. | |
Equals(Object) | Verifica se a regra é igual a outro objeto. (Herdado de Rule.) | |
Equals(Rule) | Verifica se uma regra é igual a outra regra. (Herdado de Rule.) | |
Finalize | Permite que um objeto tentar liberar recursos e realizar outras operações de limpeza antes de ser recuperados pela coleta de lixo. (Herdado de Object.) | |
GetHashCode | Obtém o código hash para a regra. (Herdado de Rule.) | |
GetType | Obtém Type da instância atual. (Herdado de Object.) | |
MemberwiseClone | Cria uma cópia superficial de Objectatual. (Herdado de Object.) | |
ToString | Retorna uma cadeia de caracteres que representa o objeto atual. (Herdado de Object.) |
Superior
Comentários
As regras desse tipo são acionadas quando um elemento, relacionamento, forma, conector ou diagrama é adicionado ao modelo.
A RuleOnAttribute colocado na classe de atributo indica que tipo de objeto a regra funciona em e quando a regra deve ser acionado.
A regra é chamada quando o objeto do tipo especificado é adicionado ao modelo, se ele é adicionado na interface de usuário ou através de programação.
A regra também é acionada quando um elemento é carregado a partir do arquivo.Se você quiser evitar responder quando isso acontece, inclua esse código no seu ElementAdded:
// Ignore this call if we're currently loading a model:
if (e.ModelElement.Store.TransactionManager
.CurrentTransaction.IsSerializing)
return;
Para mais informações e exemplos, consulte Regras de propagam alterações dentro do modelo.
Exemplos
No exemplo a seguir, A regra é definida que deriva de AddRule.Essa regra define a posição de uma forma quando ela é adicionada ao diagrama.
O RuleOn atributo indica que a regra deve ser acionado quando a transação de nível superior seja confirmada.
[RuleOn(typeof(ParentShapeContainsNestedChildShapes), FireTime = TimeToFire.TopLevelCommit)]
public class ShapeAddedToDiagramRule : AddRule
{
private double offset = 0.25;
private PointD location = new PointD(0.25, 0.25);
public override void ElementAdded(ElementAddedEventArgs e)
{
Shape shape = null;
ParentShapeContainsNestedChildShapes nestedLink = e.ModelElement as ParentShapeContainsNestedChildShapes;
if (nestedLink != null)
{
shape = nestedLink.NestedChildShapes as Shape;
}
if (shape != null && shape.Diagram != null)
{
// Expand the shape and move it to its new position
shape.IsExpanded = true;
shape.Location = new PointD(location.X, location.Y + offset);
// Adjust the height offset for the size of the shape
// (I'm assuming that the DefaultContainerMargin
// provides for a decent spacing between the shapes)
offset += shape.Size.Height + shape.Diagram.DefaultContainerMargin.Height;
}
}
}
Acesso thread-safe
Quaisquer membros estático (Shared no Visual Basic) públicos deste tipo são thread-safe. Não há garantia de que qualquer membro de instância seja thread-safe.
Consulte também
Referência
Namespace Microsoft.VisualStudio.Modeling