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;
        }
Exemplo n.º 2
0
        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;
                }
            }
        }
Exemplo n.º 3
0
        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;
        }
Exemplo n.º 4
0
        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())
                {
                }
        }
Exemplo n.º 5
0
        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);
        }
Exemplo n.º 6
0
 public ChartPanel(InspectBuilder dataSource, IServiceProvider parentProvider)
 {
     source   = dataSource;
     provider = parentProvider;
 }
Exemplo n.º 7
0
 public VisualizerMashup(InspectBuilder source, MashupTypeVisualizer visualizer)
 {
     inspectBuilder = source ?? throw new ArgumentNullException(nameof(source));
     Visualizer     = visualizer ?? throw new ArgumentNullException(nameof(visualizer));
     Source         = inspectBuilder.Output;
 }