Aracılığıyla paylaş


WorkflowDesignerLoader Oluşturucu

Tanım

Türetilmiş bir sınıfta uygulandığında, sınıfının yeni bir örneğini WorkflowDesignerLoader başlatır.

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

Örnekler

Aşağıdaki örnekte, bir WorkflowDesignerLoader nesnenin yeni bir örneğinin nasıl oluşturulacağı gösterilmektedir. Bu durumda, WorkflowLoader sınıfı öğesinden WorkflowDesignerLoadertüretilir. WorkflowDesignerLoader oluşturulduğunda, bir DesignSurface de oluşturulur ve yöntemi kullanılarak BeginLoad ile WorkflowDesignerLoader ilişkilendirilir.

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

Şunlara uygulanır