Exemplo n.º 1
0
        /// <summary>
        /// Display diagram according to given definition
        /// </summary>
        /// <param name="diagramDefinition">Definition of diagram to be displayed</param>
        private void displayDiagram(DiagramDefinition diagramDefinition)
        {
            diagramDefinition.ShowJoinLines    = _guiManager.ShowJoinLines;
            diagramDefinition.UseItemAvoidance = _guiManager.UseItemAvoidance;
            diagramDefinition.UseJoinAvoidance = _guiManager.UseJoinAvoidance;

            _guiManager.Display(diagramDefinition);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Display given <see cref="DiagramDefinition" /> within editors workspace.
        /// </summary>
        /// <param name="diagram">Displayed diagram.</param>
        /// <param name="forceShow">Determine that displaye will be forced</param>
        public void Display(DiagramDefinition diagram, bool forceShow = false)
        {
            DispatchedAction(() =>
            {
                if (diagram != null || forceShow)
                {
                    //prevent showing workspace when
                    //there is no diagram
                    _gui.ShowWorkspace();
                }

                _vs.SafeRun(() => _drawingProvider.Display(diagram)
                            , "Trying to display drawing");
            });
        }
Exemplo n.º 3
0
        /// <summary>
        /// Initializes a new instance of the <see cref="DrawingPipeline"/> class.
        /// </summary>
        /// <param name="drawer">The general drawer.</param>
        /// <param name="runtime">Corresponding <see cref="RuntimeAssembly"/>.</param>
        /// <param name="result">The analysis result which instances will be drawn.</param>
        public DrawingPipeline(GeneralDrawer drawer, RuntimeAssembly runtime, AnalyzingResult result)
        {
            Runtime = runtime;
            _result = result;
            _drawer = drawer;

            var initialView = new EditView(_result.CreateExecutionView());

            Context = new DiagramDefinition(initialView);

            foreach (var edit in runtime.GlobalEdits)
            {
                var drawingEdit = CreateEditDefinition(edit);
                Context.AddEdit(drawingEdit);
            }
        }
Exemplo n.º 4
0
        private DiagramContext getContext()
        {
            if (_context == null)
            {
                var testCanvas = new DiagramCanvas();
                var diagramDef = new DiagramDefinition(null);
                foreach (var item in _items.Values)
                {
                    diagramDef.DrawItem(item);
                }

                var provider = new DrawingProvider(testCanvas, new TestDrawingFactory());
                _context = provider.Display(diagramDef);

                testCanvas.Measure(new Size(Double.PositiveInfinity, Double.PositiveInfinity));
                testCanvas.Arrange(new Rect(new Point(), testCanvas.DesiredSize));
            }

            return(_context);
        }
Exemplo n.º 5
0
        /// <summary>
        /// Find drawings between instances created during execution
        /// </summary>
        private void createDrawings()
        {
            var pipeline = _assembly.Runtime.CreateDrawingPipeline(generalDrawer, _result.Execution);

            foreach (var instance in _result.Execution.CreatedInstances)
            {
                var hasDrawer        = _assembly.Runtime.GetDrawer(instance) != null;
                var hasComponentInfo = _assembly.Loader.GetComponentInfo(instance.Info) != null;

                var addToQueue = hasDrawer || hasComponentInfo;

                if (addToQueue)
                {
                    pipeline.AddToDrawQueue(instance);
                    if (hasComponentInfo)
                    {
                        pipeline.ForceDisplay(instance);
                    }
                }
            }

            _diagramDefinition = pipeline.GetOutput();
        }