/// <summary>
        /// Creates a new instance.
        /// </summary>
        public DiagramToolApplication(IRoslynModelProvider roslynModelProvider, IHostUiServices hostUiServices)
        {
            _visualizationService = CreateVisualizationService(roslynModelProvider, hostUiServices);
            _diagramId            = _visualizationService.CreateDiagram(AppDefaults.MinZoom, AppDefaults.MaxZoom, AppDefaults.InitialZoom);

            RoslynModelService.HideTrivialBaseNodes = AppDefaults.HideTrivialBaseNodes;

            ApplicationUiService.ImageExportDpi           = Dpi.Dpi150;
            ApplicationUiService.DiagramNodeInvoked      += OnShowSourceRequested;
            ApplicationUiService.ShowModelItemsRequested += OnShowItemsRequestedAsync;
        }
Ejemplo n.º 2
0
        private IUiService CreateDiagramUi(DiagramId diagramId,
                                           double minZoom     = DefaultMinZoom,
                                           double maxZoom     = DefaultMaxZoom,
                                           double initialZoom = DefaultInitialZoom)
        {
            var diagramService = GetDiagramService(diagramId);
            var diagramUi      = UiServiceFactory.Create(ModelService, diagramService, minZoom, maxZoom, initialZoom);

            diagramUi.DiagramNodeSizeChanged     += (diagramNode, size) => OnDiagramNodeSizeChanged(diagramId, diagramNode, size);
            diagramUi.RemoveDiagramNodeRequested += diagramNode => OnRemoveDiagramNodeRequested(diagramId, diagramNode);

            return(diagramUi);
        }
Ejemplo n.º 3
0
        public DiagramId CreateDiagram(
            double minZoom     = DefaultMinZoom,
            double maxZoom     = DefaultMaxZoom,
            double initialZoom = DefaultInitialZoom)
        {
            var diagramId      = DiagramId.Create();
            var diagramService = DiagramServiceFactory.Create(GetModelService());

            _diagramServices.Add(diagramId, diagramService);

            var diagramUi = CreateDiagramUi(diagramId, minZoom, maxZoom, initialZoom);

            _diagramUis.Add(diagramId, diagramUi);

            // Warning: plugins must be created after the UI so its event callbacks don't precede UI updates.
            var diagramPlugins = CreateAndAttachDiagramPlugins(DiagramPluginIds, ModelService, diagramService);

            _diagramPlugins.Add(diagramId, diagramPlugins.ToList());

            return(diagramId);
        }
 public IRoslynUiService GetRoslynUiService(DiagramId diagramId)
 => (IRoslynUiService)GetUiService(diagramId);
 public IRoslynDiagramService GetRoslynDiagramService(DiagramId diagramId)
 => (IRoslynDiagramService)GetDiagramService(diagramId);
Ejemplo n.º 6
0
 public IUiService GetUiService(DiagramId diagramId) => _diagramUis[diagramId];
Ejemplo n.º 7
0
 public IDiagramService GetDiagramService(DiagramId diagramId) => _diagramServices[diagramId];
Ejemplo n.º 8
0
 private void OnRemoveDiagramNodeRequested(DiagramId diagramId, IDiagramNode diagramNode)
 {
     GetDiagramService(diagramId).HideModelNode(diagramNode.Id);
 }
Ejemplo n.º 9
0
 private void OnDiagramNodeSizeChanged(DiagramId diagramId, IDiagramNode diagramNode, Size2D newSize)
 {
     GetDiagramService(diagramId).UpdateDiagramNodeSize(diagramNode, newSize);
 }