AddRule, classe
Représente une règle qui est appelée lorsqu'un objet est ajouté au modèle.
Hiérarchie d'héritage
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
Espace de noms : Microsoft.VisualStudio.Modeling
Assembly : Microsoft.VisualStudio.Modeling.Sdk.11.0 (dans Microsoft.VisualStudio.Modeling.Sdk.11.0.dll)
Syntaxe
'Déclaration
Public MustInherit Class AddRule _
Inherits Rule
public abstract class AddRule : Rule
Le type AddRule expose les membres suivants.
Constructeurs
Nom | Description | |
---|---|---|
AddRule | Initialise une instance de la classe AddRule. |
Début
Propriétés
Nom | Description | |
---|---|---|
FireBefore | true si cette règle sera exécutée avant que la modification se produise. (Hérité de Rule.) | |
FireImmediately | true si cette règle exécutera immédiatement la modification se produit. (Hérité de Rule.) | |
FireOnLocalCommit | true si cette règle exécutera lorsque les validations de transaction actuelle. (Hérité de Rule.) | |
FireOnTopLevelCommit | true si cette règle exécutera lorsque les validations de transaction de niveau supérieur. (Hérité de Rule.) | |
FireTime | Obtient ou définit lorsque la règle doit exécuter.Normalement défini par l'attribut de RuleOn. (Hérité de Rule.) | |
IsEnabled | Obtient ou définit si la règle est activée.Rectifiez normalement par défaut, mais vous pouvez l'initialiser false dans l'attribut de RuleOn. (Hérité de Rule.) | |
Priority | Obtient la priorité qui est assignée à la règle.Aide à déterminer la commande dans laquelle des règles sont exécutées à la fin d'une transaction. (Hérité de Rule.) |
Début
Méthodes
Nom | Description | |
---|---|---|
CompareTo(Object) | Compare la règle à un autre objet. (Hérité de Rule.) | |
CompareTo(Rule) | Compare la règle à une autre règle par leurs identificateurs. (Hérité de Rule.) | |
ElementAdded | Alerte des écouteurs qu'une règle a été utilisée. | |
Equals(Object) | Vérifie si la règle est égale à un autre objet. (Hérité de Rule.) | |
Equals(Rule) | Vérifie si une règle est égale à une autre règle. (Hérité de Rule.) | |
Finalize | Autorise un objet à tenter de libérer des ressources et d'exécuter d'autres opérations de nettoyage avant qu'il ne soit récupéré par l'opération garbage collection. (Hérité de Object.) | |
GetHashCode | Obtient le code de hachage pour la règle. (Hérité de Rule.) | |
GetType | Obtient le Type de l'instance actuelle. (Hérité de Object.) | |
MemberwiseClone | Crée une copie superficielle de l'objet Object actuel. (Hérité de Object.) | |
ToString | Retourne une chaîne qui représente l'objet actif. (Hérité de Object.) |
Début
Notes
Les règles de ce type sont déclenchées lorsqu'un élément, une relation, une forme, un connecteur ou un diagramme est ajouté au modèle.
Un attribut d'RuleOnAttribute placé sur la classe indique quel type d'objet la règle s'exécute sur et lorsque la règle doit la déclencher.
La règle est appelée lorsque l'objet du type spécifié est ajouté au modèle, s'il est ajouté dans l'interface utilisateur ou par programme.
La règle est également déclenchée lorsqu'un élément est chargé à partir du fichier.Si vous souhaitez éviter de répondre lorsque cela se produit, comprenez ce code dans votre ElementAdded :
// Ignore this call if we're currently loading a model:
if (e.ModelElement.Store.TransactionManager
.CurrentTransaction.IsSerializing)
return;
Pour plus d'informations et d'exemples, consultez Propagation de modifications dans le modèle par des règles.
Exemples
Dans l'exemple suivant, on définit une règle qui dérive d'AddRule.Ce ensembles de règles la position d'une forme lorsqu'elle est ajoutée au diagramme.
L'attribut d'RuleOn indique que la règle doit la déclencher lorsque les validations de transaction de niveau supérieur.
[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;
}
}
}
Sécurité des threads
Tous les membres static (Shared en Visual Basic) publics de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.
Voir aussi
Référence
Microsoft.VisualStudio.Modeling, espace de noms