public DiagramViewportViewModel( [NotNull] IModelEventSource modelEventSource, [NotNull] IDiagramEventSource diagramEventSource, [NotNull] IDiagramShapeUiFactory diagramShapeUiFactory, [NotNull] IMiniButtonManager miniButtonManager, double minZoom, double maxZoom, double initialZoom) : base(modelEventSource, diagramEventSource) { MinZoom = minZoom; MaxZoom = maxZoom; _diagramNodeToViewModelMap = new Map <ModelNodeId, DiagramNodeViewModel>(); _diagramConnectorToViewModelMap = new Map <ModelRelationshipId, DiagramConnectorViewModel>(); DiagramShapeUiFactory = diagramShapeUiFactory; MiniButtonPanelViewModel = (MiniButtonPanelViewModel)miniButtonManager; ViewportCalculator = new AutoMoveViewportViewModel(modelEventSource, diagramEventSource, minZoom, maxZoom, initialZoom); DiagramNodeViewModels = new ThreadSafeObservableCollection <DiagramNodeViewModel>(); DiagramConnectorViewModels = new ThreadSafeObservableCollection <DiagramConnectorViewModel>(); DiagramNodeDoubleClickedCommand = new DelegateCommand <IDiagramNode>(i => DiagramNodeInvoked?.Invoke(i)); ViewportCalculator.TransformChanged += OnViewportTransformChanged; DiagramEventSource.DiagramChanged += OnDiagramChanged; AddDiagram(diagramEventSource.LatestDiagram); }
public RoslynDiagramViewportViewModel( [NotNull] IModelEventSource modelEventSource, [NotNull] IDiagramEventSource diagramEventSource, [NotNull] IDiagramShapeUiFactory diagramShapeUiFactory, [NotNull] IMiniButtonManager miniButtonManager, double minZoom, double maxZoom, double initialZoom) : base(modelEventSource, diagramEventSource, diagramShapeUiFactory, miniButtonManager, minZoom, maxZoom, initialZoom) { _roslynDiagramShapeUiFactory = (IRoslynDiagramShapeUiFactory)diagramShapeUiFactory; }