WorkflowDesignerLoader Constructor
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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