/// <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); }
/// <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"); }); }
/// <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); } }
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); }
/// <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(); }