Kader Yildirim
Développer une activité Windows Workflow Foundation
Cet article montre comment créer une activité personnalisée pour Windows Workflow Foundation à travers un exemple simple
Par Kader Yildirim publié le 09/04/2006 à 20:44, lu 5633 fois, 9 pages
 6 | Développement de la classe d'interaction avec le designer
Téléchargez le code source - 70 Kb
Développement de la classe d'interaction avec le designer
Le framework de Windows Workflow Foundation offre aux développeurs les outils nécessaires pour faire interagir avec l'environnement de développement lors de la phase de design.

Pour cela il suffit d'hériter de la classe de base ActivityDesigner ou bien de l'un de ses dérivés (CompositeActivityDesigner, FreeformActivityDesigner...) :
public class MSMQActivityDesigner : ActivityDesigner {...}
Dans notre exemple nous allons simplement surcharger le comportement du clic droit sur notre composant dans le designer en ajoutant une entrée au menu par défaut. Ce menu va permettre à l'utilisateur de donner le message à envoyer à MSMQ.

Pour cela il suffit de surcharger la propriété Verbs et d'ajouter une entrée pour notre besoin et de préciser la callback à appeler lorsque l'utilisateur va cliquer sur ce dernier :
private void VerbsEvent(object sender, EventArgs e){
    (this.Activity as MSMQActivity).Message =
        Interaction.InputBox("Message  envoyer", "MSMQ Message", "Message par dfaut", -1, -1);
}

protected override ActivityDesignerVerbCollection Verbs{
    get{
        ActivityDesignerVerbCollection Verbs = new ActivityDesignerVerbCollection();
        Verbs.AddRange(base.Verbs);
        Verbs.Add(new ActivityDesignerVerb(this, DesignerVerbGroup.Options,
            "Enter MSMQ message to send", new EventHandler(VerbsEvent)));
        return Verbs;
    }
}
Pour associer ce code à notre activité nous allons mettre un attribut Designer sur la classe MSMQActivity :
[Designer(typeof(MSMQActivityDesigner))]
[ToolboxItem(typeof(MSMQActivityToolboxItem))]
[ActivityValidator(typeof(MSMQActivityValidator))]
[ToolboxBitmap(typeof(MSMQActivity))]
public partial class MSMQActivity: Activity{...}
Lorsque le composant est utilisé dans un designer on peut voir l'entrée que nous avons ajoutée :

 
» Démarrer une discussion
 
Discussion démarée par Smyrnian le 14/04/2009 à 16:09, 1 commentaire(s).
Discussion démarée par magdallyna le 21/01/2009 à 12:25, 1 commentaire(s).
Discussion démarée par oulkabir le 18/02/2009 à 19:43, 1 commentaire(s).