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.12.0 (dans Microsoft.VisualStudio.Modeling.Sdk.12.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 doit être exécutée avant la modification. (Hérité de Rule.) | |
FireImmediately | true si cette règle doit être exécutée immédiatement après la modification. (Hérité de Rule.) | |
FireOnLocalCommit | true si cette règle doit être exécutée lorsque la transaction en cours est validée. (Hérité de Rule.) | |
FireOnTopLevelCommit | true si cette règle doit être exécutée lorsque la première transaction est validée. (Hérité de Rule.) | |
FireTime | Obtient ou définit une valeur lorsque la règle doit s'exécuter.Normalement défini par l'attribut RuleOn. (Hérité de Rule.) | |
IsEnabled | Obtient ou définit une valeur indiquant si la règle est spécifiée.Normalement true par défaut, mais vous pouvez l'initialiser sur false dans l'attribut RuleOn. (Hérité de Rule.) | |
Priority | Obtient la priorité assignée à la règle.Permet de déterminer l'ordre dans lequel les 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 d'après leurs identificateurs. (Hérité de Rule.) | |
ElementAdded | Avertit les écouteurs de l'utilisation d'une règle. | |
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 de 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 générées lorsqu'un élément, une relation, une forme, un connecteur ou un schéma est ajouté au modèle.
Un attribut d'RuleOnAttribute placé sur la classe indique le type d'objet auquel la règle fonctionne aussi sur et lorsque la règle doit être activé.
La règle est appelée lorsque l'objet du type spécifié est ajouté au modèle, si elle est ajoutée dans l'interface utilisateur ou par programme.
La règle est également générée lorsqu'un élément est chargé du fichier. Si vous souhaitez éviter de répondre dans ce cas, inclure 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, il définit une règle qui vient d'AddRule. Les ensembles de règles la position d'une forme lorsqu'elle est ajoutée au schéma.
L'attribut de RuleOn indique que la règle doit se déclencher lors que la 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