internal static void EnsureDesignerThemes(IServiceProvider serviceProvider, WorkflowTheme workflowTheme, TreeNode[] items) { //We need to recurse thru the themes and make sure that we have all the designer themes created foreach (TreeNode item in items) { DesignerTheme designerTheme = null; Type activityType = item.Tag as Type; if (activityType != null) { Type designerBaseType = (activityType.FullName.Equals(DesignerHelpers.SequentialWorkflowTypeRef, StringComparison.OrdinalIgnoreCase)) ? typeof(IRootDesigner) : typeof(IDesigner); Type designerType = ActivityDesigner.GetDesignerType(serviceProvider, activityType, designerBaseType); if (designerType != null) designerTheme = workflowTheme.GetTheme(designerType); } } }
internal static DesignerTheme[] GetDesignerThemes(IServiceProvider serviceProvider, WorkflowTheme workflowTheme, TreeNode selectedNode) { ArrayList list = new ArrayList(); Queue<TreeNode> queue = new Queue<TreeNode>(); queue.Enqueue(selectedNode); while (queue.Count > 0) { TreeNode node = queue.Dequeue(); System.Type tag = node.Tag as System.Type; if (tag != null) { System.Type designerBaseType = tag.FullName.Equals("System.Workflow.Activities.SequentialWorkflowActivity, System.Workflow.Activities, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", StringComparison.OrdinalIgnoreCase) ? typeof(IRootDesigner) : typeof(IDesigner); System.Type designerType = ActivityDesigner.GetDesignerType(serviceProvider, tag, designerBaseType); if (designerType != null) { DesignerTheme theme = workflowTheme.GetTheme(designerType); if (theme != null) { list.Add(theme); } } } else { foreach (TreeNode node2 in node.Nodes) { queue.Enqueue(node2); } continue; } } return (DesignerTheme[]) list.ToArray(typeof(DesignerTheme)); }
internal static DesignerTheme[] GetDesignerThemes(IServiceProvider serviceProvider, WorkflowTheme workflowTheme, TreeNode selectedNode) { ArrayList designerThemes = new ArrayList(); Queue<TreeNode> nodes = new Queue<TreeNode>(); nodes.Enqueue(selectedNode); while (nodes.Count > 0) { TreeNode treeNode = nodes.Dequeue(); Type activityType = treeNode.Tag as System.Type; if (activityType != null) { Type designerBaseType = (activityType.FullName.Equals(DesignerHelpers.SequentialWorkflowTypeRef, StringComparison.OrdinalIgnoreCase)) ? typeof(IRootDesigner) : typeof(IDesigner); Type designerType = ActivityDesigner.GetDesignerType(serviceProvider, activityType, designerBaseType); if (designerType != null) { DesignerTheme designerTheme = workflowTheme.GetTheme(designerType); if (designerTheme != null) designerThemes.Add(designerTheme); } } else { foreach (TreeNode childNode in treeNode.Nodes) nodes.Enqueue(childNode); } } return ((DesignerTheme[])designerThemes.ToArray(typeof(DesignerTheme))); }
internal static void EnsureDesignerThemes(IServiceProvider serviceProvider, WorkflowTheme workflowTheme, TreeNode[] items) { foreach (TreeNode node in items) { System.Type tag = node.Tag as System.Type; if (tag != null) { System.Type designerBaseType = tag.FullName.Equals("System.Workflow.Activities.SequentialWorkflowActivity, System.Workflow.Activities, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", StringComparison.OrdinalIgnoreCase) ? typeof(IRootDesigner) : typeof(IDesigner); System.Type designerType = ActivityDesigner.GetDesignerType(serviceProvider, tag, designerBaseType); if (designerType != null) { workflowTheme.GetTheme(designerType); } } } }