Création d'une sélection d'objets à l'aide de scripts

L'objet Object Selection est un objet du modèle très utile pour sélectionner d'autres objets du modèle afin de leur appliquer un traitement spécifique. Vous pouvez par exemple ajouter des objets dans l'objet Object Selection pour les déplacer dans un autre package, et cela en une seule opération, plutôt que de répéter la même opération pour chacun des objets individuellement.

Toutes les fois que vous manipulez un ensemble d'objets dans l'interface utilisateur, vous devez utiliser l'objet Object Selection dans les scripts.

Vous créez l'objet Object Selection depuis un modèle en utilisant la méthode CreateSelection : CreateSelection() As BaseObject.

Exemple

Set MySel = ActiveModel.CreateSelection
  • Ajouter des objets individuellement

Vous pouvez ajouter des objets individuellement en ajoutant l'objet requis à la collection Objects.

Vous utilisez la méthode suivante de l'objet Object Selection : Add(obj As BaseObject)

Exemple

Ajout d'un objet dénommé Editeur :

MySel.Objects.Add(Editeur)
  • Ajouter des objets d'un type donné

Vous pouvez ajouter tous les objets d'un type donné en utilisant la méthode suivante de l'objet Object Selection : AddObjects(ByVal RootPackage As BaseObject, ByVal ClassType As Long, ByVal IncludeShortcuts As Boolean = 0, ByVal Recursive As Boolean = 0).

RootPackage désigne le package à partir duquel les objets sont à ajouter.

ClassType désigne le type d'objet à ajouter.

IncludeShortcuts est le paramètre qui permet d'inclure des raccourcis.

Recursive est le paramètre qui permet de rechercher dans tous les sous-packages.

Exemple

Un ajout de classes sans inclusion de raccourcis et sans récursivité dans les sous-packages :

MySel.AddObjects(folder,cls_class)
  • Retrait d'objets de la sélection courante

Vous pouvez retirer des objets de la sélection courante à l'aide de la méthode suivante de l'objet Object Selection : RemoveObjects(ByVal ClassType As Long, ByVal IncludeShortcuts As Boolean = -1)

Exemple

Retrait de toutes les classes et raccourcis de l'objet Object Selection :

MySel.RemoveObjects(cls_class, -1)
  • Déplacement d'objets de la sélection courante vers un package cible

Vous pouvez déplacer les objets de la sélection courante vers un package cible à l'aide de la méthode suivante de l'objet Object Selection : MoveToPackage(ByVal TargetPackage As BaseObject)

Exemple

Déplacement d'objets de la sélection vers un package cible nommé Pack :

MySel.MoveToPackage Pack
  • Copie d'objet de la sélection courante dans un package cible

Vous pouvez copier les objets de la sélection courante dans un package cible à l'aide la méthode suivante de l'objet Object Selection : CopyToPackage(ByVal TargetPackage As BaseObject)

Exemple

Copie d'objets de la sélection courante dans un package cible nommé Pack :

MySel.CopyToPackage Pack
  • Filtrage d'une liste de sélection par stéréotype

Vous pouvez créer une sélection d'objets et filtrer cette sélection en utilisant un stéréotype. Vous devez pour ce faire utiliser la méthode suivante :

ShowObjectPicker(ByVal ClassNames As String = "", ByVal StereotypeFilter As String = "", ByVal DialogCaption As String = "", ByVal ShowEmpty As Boolean = True, ByVal InModel As Boolean = True) As BaseObject

Exemple

Affiche une boîte de dialogue de sélection permettant de sélectionner une transaction métiers :

If Not Fldr is Nothing then
         ' Create a selection object
         Set Sel = Mdl.CreateSelection
         If Not Sel is Nothing then
           'Show the object picker dialog for selecting a BT
            Set Impl = Sel.ShowObjectPicker ("Process", "BinaryCollaboration", "Select a Binary Collaboration Process")
            ' Retrieve the selection
            If not Impl is Nothing Then
               If Impl.IsKindOf(PDBPM.Cls_Process) and Impl.Stereotype = "BinaryCollaboration" then
                  Set Shct = Impl.CreateShortcut (Fldr)
                  If not Shct is Nothing Then
                     obj.Implementer = Shct
                        %Initialize% = True 
                  End If
               End If
             End If
         End If