public static TranslationSettings Update( this VisualizerDialogSettings dialogSettings, TranslationSettings settings) { if (dialogSettings.UseFullyQualifiedTypeNames) { settings = settings.UseFullyQualifiedTypeNames; } if (dialogSettings.UseExplicitTypeNames) { settings = settings.UseExplicitTypeNames; } if (dialogSettings.UseExplicitGenericParameters) { settings = settings.UseExplicitGenericParameters; } if (dialogSettings.DeclareOutputParametersInline) { settings = settings.DeclareOutputParametersInline; } if (dialogSettings.ShowImplicitArrayTypes) { settings = settings.ShowImplicitArrayTypes; } if (dialogSettings.ShowLambdaParameterTypeNames) { settings = settings.ShowLambdaParameterTypes; } if (dialogSettings.ShowQuotedLambdaComments) { settings = settings.ShowQuotedLambdaComments; } settings.IndentUsing(dialogSettings.Indent); return(settings); }
static void RunLayout( string fileName, IObservable <TypeVisualizerDescriptor> visualizerProvider, WorkflowBuilder workflowBuilder, VisualizerLayout layout) { var typeVisualizers = new TypeVisualizerMap(); var loadVisualizers = (from typeVisualizer in visualizerProvider let targetType = Type.GetType(typeVisualizer.TargetTypeName) let visualizerType = Type.GetType(typeVisualizer.VisualizerTypeName) where targetType != null && visualizerType != null select Tuple.Create(targetType, visualizerType)) .Do(entry => typeVisualizers.Add(entry.Item1, entry.Item2)) .ToEnumerable().ToList(); workflowBuilder = new WorkflowBuilder(workflowBuilder.Workflow.ToInspectableGraph()); LayoutHelper.SetWorkflowNotifications(workflowBuilder.Workflow, publishNotifications: false); foreach (var node in workflowBuilder.Workflow) { var layoutSettings = layout.GetLayoutSettings(node.Value); if (layoutSettings == null) { layoutSettings = new VisualizerDialogSettings(); layout.DialogSettings.Add(layoutSettings); } layoutSettings.Tag = node.Value; } LayoutHelper.SetLayoutNotifications(layout); var services = new System.ComponentModel.Design.ServiceContainer(); var runtimeWorkflow = workflowBuilder.Workflow.BuildObservable(); var mapping = LayoutHelper.CreateVisualizerMapping(workflowBuilder.Workflow, layout, typeVisualizers, services); var cts = new CancellationTokenSource(); var contextMenu = new ContextMenuStrip(); foreach (var launcher in mapping.Values.Where(launcher => launcher.Visualizer.IsValueCreated)) { var activeLauncher = launcher; contextMenu.Items.Add(new ToolStripMenuItem(launcher.Text, null, (sender, e) => { activeLauncher.Show(services); })); } contextMenu.Items.Add(new ToolStripSeparator()); contextMenu.Items.Add(new ToolStripMenuItem("Stop", null, (sender, e) => cts.Cancel())); var notifyIcon = new NotifyIcon(); notifyIcon.Icon = Properties.Resources.Icon; notifyIcon.Text = Path.GetFileName(fileName); notifyIcon.ContextMenuStrip = contextMenu; notifyIcon.Visible = true; runtimeWorkflow.Finally(() => { notifyIcon.Visible = false; Application.Exit(); }).Subscribe( unit => { }, ex => { Console.WriteLine(ex); }, () => { }, cts.Token); Application.Run(); }
private static VisualizerDialogSettings GetDialogSettings() => VisualizerDialogSettings.GetInstance();