コード例 #1
0
        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);
        }
コード例 #2
0
ファイル: WorkflowRunner.cs プロジェクト: spacelabswc/bonsai
        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();