public VisualizerDialogLauncher( InspectBuilder visualizerSource, Func <DialogTypeVisualizer> visualizerFactory, WorkflowGraphView workflowGraphView, InspectBuilder workflowSource) { if (visualizerSource == null) { throw new ArgumentNullException("visualizerSource"); } if (visualizerFactory == null) { throw new ArgumentNullException("visualizerFactory"); } if (workflowGraphView == null) { throw new ArgumentNullException("workflowGraphView"); } this.visualizerSource = visualizerSource; this.visualizer = new Lazy <DialogTypeVisualizer>(visualizerFactory); this.workflowGraphView = workflowGraphView; this.source = workflowSource ?? visualizerSource; }
public IEnumerable <Type> GetTypeVisualizers(InspectBuilder inspectBuilder) { var workflowElementType = ExpressionBuilder.GetWorkflowElement(inspectBuilder).GetType(); foreach (var type in GetTypeVisualizers(workflowElementType)) { yield return(type); } var observableType = inspectBuilder.ObservableType; while (observableType != null) { foreach (var type in GetTypeVisualizers(observableType)) { yield return(type); } if (!observableType.IsClass) { foreach (var type in GetTypeVisualizers(typeof(object))) { yield return(type); } break; } else { observableType = observableType.BaseType; } } }
public VisualizerDialogLauncher( Type visualizerType, InspectBuilder visualizerElement, Func <DialogTypeVisualizer> visualizerFactory, ExpressionBuilderGraph visualizerWorkflow, InspectBuilder workflowSource, WorkflowGraphView workflowGraphView) { if (visualizerFactory == null) { throw new ArgumentNullException(nameof(visualizerFactory)); } VisualizerType = visualizerType ?? throw new ArgumentNullException(nameof(visualizerType)); visualizerSource = visualizerElement ?? throw new ArgumentNullException(nameof(visualizerElement)); Visualizer = new Lazy <DialogTypeVisualizer>(visualizerFactory); Source = workflowSource ?? visualizerElement; workflow = visualizerWorkflow; graphView = workflowGraphView; }
void RunInspector(params ExpressionBuilder[] builders) { var workflowBuilder = new WorkflowBuilder(); var previous = default(Node <ExpressionBuilder, ExpressionBuilderArgument>); foreach (var builder in builders) { var inspector = new InspectBuilder(builder); var node = workflowBuilder.Workflow.Add(inspector); if (previous != null) { workflowBuilder.Workflow.AddEdge(previous, node, new ExpressionBuilderArgument()); } previous = node; } var result = workflowBuilder.Workflow.BuildObservable(); var errors = workflowBuilder.Workflow.InspectErrorsEx(); using (var error = errors.Subscribe(ex => { throw ex; })) using (var subscription = result.Subscribe()) { } }
public static VisualizerDialogLauncher CreateVisualizerLauncher( InspectBuilder source, VisualizerLayout visualizerLayout, TypeVisualizerMap typeVisualizerMap, ExpressionBuilderGraph workflow, Editor.GraphView.WorkflowGraphView workflowGraphView = null) { var inspectBuilder = ExpressionBuilder.GetVisualizerElement(source); if (inspectBuilder.ObservableType == null || !inspectBuilder.PublishNotifications) { return(null); } Type visualizerType = null; var deserializeVisualizer = false; Func <DialogTypeVisualizer> visualizerFactory = null; var layoutSettings = visualizerLayout.GetLayoutSettings(source); var visualizerTypes = typeVisualizerMap.GetTypeVisualizers(inspectBuilder); if (layoutSettings != null && !string.IsNullOrEmpty(layoutSettings.VisualizerTypeName)) { visualizerType = visualizerTypes.FirstOrDefault(type => type.FullName == layoutSettings.VisualizerTypeName); if (visualizerType != null && layoutSettings.VisualizerSettings != null) { var root = layoutSettings.VisualizerSettings; root.SetAttributeValue(XsdAttributeName, XsdAttributeValue); root.SetAttributeValue(XsiAttributeName, XsiAttributeValue); var serializer = new XmlSerializer(visualizerType); using (var reader = layoutSettings.VisualizerSettings.CreateReader()) { if (serializer.CanDeserialize(reader)) { var visualizer = (DialogTypeVisualizer)serializer.Deserialize(reader); visualizerFactory = () => visualizer; deserializeVisualizer = true; } } } } visualizerType ??= visualizerTypes.FirstOrDefault(); if (visualizerType == null) { return(null); } if (visualizerFactory == null) { var visualizerActivation = Expression.New(visualizerType); visualizerFactory = Expression.Lambda <Func <DialogTypeVisualizer> >(visualizerActivation).Compile(); } var launcher = new VisualizerDialogLauncher(visualizerType, inspectBuilder, visualizerFactory, workflow, source, workflowGraphView); launcher.Text = source != null?ExpressionBuilder.GetElementDisplayName(source) : null; if (deserializeVisualizer) { launcher = launcher.Visualizer.Value != null ? launcher : null; } return(launcher); }
public ChartPanel(InspectBuilder dataSource, IServiceProvider parentProvider) { source = dataSource; provider = parentProvider; }
public VisualizerMashup(InspectBuilder source, MashupTypeVisualizer visualizer) { inspectBuilder = source ?? throw new ArgumentNullException(nameof(source)); Visualizer = visualizer ?? throw new ArgumentNullException(nameof(visualizer)); Source = inspectBuilder.Output; }