Compartir a través de


WorkflowDesignerLoader Constructor

Definición

Cuando se implementa en una clase derivada, inicializa una instancia nueva de la clase WorkflowDesignerLoader.

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

Ejemplos

En el ejemplo siguiente se muestra cómo se crea una nueva instancia de un objeto WorkflowDesignerLoader. En este caso, la clase WorkflowLoader se deriva de WorkflowDesignerLoader. Cuando se crea WorkflowDesignerLoader, también se crea DesignSurface y se asocia a WorkflowDesignerLoader utilizando el método 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

Se aplica a