Partage via


WorkflowDesignerLoader Constructeur

Définition

Lors de l'implémentation dans une classe dérivée, initialise une nouvelle instance de la classe WorkflowDesignerLoader.

protected:
 WorkflowDesignerLoader();
protected WorkflowDesignerLoader ();
Protected Sub New ()

Exemples

L'exemple suivant montre comment créer une instance d'un objet WorkflowDesignerLoader. Dans ce cas, la classe WorkflowLoader est dérivée de WorkflowDesignerLoader. Lorsque le WorkflowDesignerLoader est créé, un DesignSurface est également créé et associé au WorkflowDesignerLoader à l'aide de la méthode BeginLoad.

private ICollection LoadWorkflow(Type workflowType)
{
    WorkflowLoader loader = new WorkflowLoader();
    loader.WorkflowType = workflowType;

    return LoadWorkflow(loader);
}

private ICollection LoadWorkflow(WorkflowLoader loader)
{
    SuspendLayout();

    DesignSurface designSurface = new DesignSurface();
    designSurface.BeginLoad(loader);
    if (designSurface.LoadErrors.Count > 0)
        return designSurface.LoadErrors;

    IDesignerHost designerHost = designSurface.GetService(typeof(IDesignerHost)) as IDesignerHost;
    if (designerHost != null && designerHost.RootComponent != null)
    {
        IRootDesigner rootDesigner = designerHost.GetDesigner(designerHost.RootComponent) as IRootDesigner;
        if (rootDesigner != null)
        {
            UnloadWorkflow();

            this.designSurface = designSurface;
            this.loader = loader;
            this.workflowView = rootDesigner.GetView(ViewTechnology.Default) as WorkflowView;
            this.splitContainer1.Panel1.Controls.Add(this.workflowView);
            this.workflowView.Dock = DockStyle.Fill;
            this.workflowView.TabIndex = 1;
            this.workflowView.TabStop = true;
            this.workflowView.HScrollBar.TabStop = false;
            this.workflowView.VScrollBar.TabStop = false;
            this.workflowView.ShadowDepth = 0;
            this.workflowView.EnableFitToScreen = true;
            this.workflowView.Focus();

            ISelectionService selectionService = GetService(typeof(ISelectionService)) as ISelectionService;
            IComponentChangeService changeService = GetService(typeof(IComponentChangeService)) as IComponentChangeService;

            if (selectionService != null)
            {
                selectionService.SelectionChanged += new EventHandler(OnSelectionChanged);
            }

            if (changeService != null)
            {
                changeService.ComponentAdded += new ComponentEventHandler(changeService_ComponentAdded);
                changeService.ComponentChanged += new ComponentChangedEventHandler(changeService_ComponentChanged);
                changeService.ComponentRemoved += new ComponentEventHandler(changeService_ComponentRemoved);
                changeService.ComponentRename += new ComponentRenameEventHandler(changeService_ComponentRename);
            }
        }
    }

    ResumeLayout(true);

    if (btnAutoSynch.Checked == true)
    {
        this.xomlView.Text = GetCurrentXoml();
    }

    return null;
}
Private Function LoadWorkflow(ByVal workflowType As Type) As ICollection
    Dim loader As New WorkflowLoader()
    loader.WorkflowType = workflowType
    Return LoadWorkflow(loader)
End Function

Private Function LoadWorkflow(ByVal loader As WorkflowLoader) As ICollection

    SuspendLayout()

    Dim designSurface As New DesignSurface()
    designSurface.BeginLoad(loader)
    If designSurface.LoadErrors.Count > 0 Then
        Return designSurface.LoadErrors
    End If

    Dim designerHost As IDesignerHost = CType(designSurface.GetService(GetType(IDesignerHost)), IDesignerHost)
    If designerHost IsNot Nothing And designerHost.RootComponent IsNot Nothing Then

        Dim rootDesigner As IRootDesigner = CType(designerHost.GetDesigner(designerHost.RootComponent), IRootDesigner)
        If rootDesigner IsNot Nothing Then
            UnloadWorkflow()

            Me.designSurface = designSurface
            Me.loader = loader
            Me.workflowView = CType(rootDesigner.GetView(ViewTechnology.Default), WorkflowView)
            Me.splitContainer1.Panel1.Controls.Add(Me.workflowView)
            Me.workflowView.Dock = DockStyle.Fill
            Me.workflowView.TabIndex = 1
            Me.workflowView.TabStop = True
            Me.workflowView.HScrollBar.TabStop = False
            Me.workflowView.VScrollBar.TabStop = False
            Me.workflowView.ShadowDepth = 0
            Me.workflowView.EnableFitToScreen = True
            Me.workflowView.Focus()

            Dim selectionService As ISelectionService = CType(GetService(GetType(ISelectionService)), ISelectionService)
            Dim changeService As IComponentChangeService = CType(GetService(GetType(IComponentChangeService)), IComponentChangeService)

            If selectionService IsNot Nothing Then
                AddHandler selectionService.SelectionChanged, AddressOf OnSelectionChanged
            End If

            If changeService IsNot Nothing Then

                AddHandler changeService.ComponentAdded, AddressOf changeService_ComponentAdded
                AddHandler changeService.ComponentChanged, AddressOf changeService_ComponentChanged
                AddHandler changeService.ComponentRemoved, AddressOf changeService_ComponentRemoved
                AddHandler changeService.ComponentRename, AddressOf changeService_ComponentRename
            End If
        End If
    End If

    ResumeLayout(True)

    If btnAutoSynch.Checked = True Then
        Me.xomlView.Text = GetCurrentXoml()
    End If

    Return Nothing
End Function

S’applique à