public DiagramViewModel( IModelService modelService, IDiagramService diagramService, IDiagramShapeUiFactory diagramShapeUiFactory, double minZoom, double maxZoom, double initialZoom) : base(modelService, diagramService) { DiagramShapeUiFactory = diagramShapeUiFactory; DiagramViewportViewModel = new DiagramViewportViewModel( ModelService, DiagramService, diagramShapeUiFactory, minZoom, maxZoom, initialZoom); RelatedNodeListBoxViewModel = new RelatedNodeListBoxViewModel(ModelService, DiagramService); RelatedNodeListBoxViewModel.ItemSelected += OnRelatedNodeSelected; RelatedNodeListBoxViewModel.Items.CollectionChanged += OnRelatedNodeCollectionChanged; PopupTextViewModel = new AutoHidePopupTextViewModel(); PreviewMouseDownCommand = new DelegateCommand(OnAnyMouseDownEvent); MouseDownCommand = new DelegateCommand(OnUnhandledMouseDownEvent); DiagramService.DiagramChanged += OnDiagramChanged; SubscribeToViewportEvents(); _lastDiagram = DiagramService.LatestDiagram; }
public DiagramViewModel( [NotNull] IModelEventSource modelEventSource, [NotNull] IDiagramEventSource diagramEventSource, [NotNull] IDiagramViewportUi diagramViewportUi, [NotNull] IRelatedNodeItemViewModelFactory relatedNodeItemViewModelFactory, [NotNull] IComparer <IModelNode> modelNodeComparer) : base(modelEventSource, diagramEventSource) { _relatedNodeItemViewModelFactory = relatedNodeItemViewModelFactory; _modelNodeComparer = modelNodeComparer; DiagramViewportViewModel = (DiagramViewportViewModel)diagramViewportUi; RelatedNodeListBoxViewModel = new RelatedNodeListBoxViewModel(ModelEventSource, DiagramEventSource); RelatedNodeListBoxViewModel.ItemSelected += OnRelatedNodeSelected; RelatedNodeListBoxViewModel.Items.CollectionChanged += OnRelatedNodeCollectionChanged; PopupTextViewModel = new AutoHidePopupTextViewModel(); PreviewMouseDownCommand = new DelegateCommand(OnAnyMouseDownEvent); MouseDownCommand = new DelegateCommand(OnUnhandledMouseDownEvent); DiagramEventSource.DiagramChanged += OnDiagramChanged; SubscribeToViewportEvents(); _lastDiagram = DiagramEventSource.LatestDiagram; }
private void OnRelatedNodeSelectorRequested(RelatedNodeMiniButtonViewModel ownerButton, IReadOnlyList <IModelNode> modelNodes) { DiagramViewportViewModel.PinFocus(); var viewModelItems = modelNodes.OrderBy(i => i, _modelNodeComparer).Select(_relatedNodeItemViewModelFactory.Create); RelatedNodeListBoxViewModel.Show(ownerButton, viewModelItems); }
public override void Dispose() { base.Dispose(); RelatedNodeListBoxViewModel.ItemSelected -= OnRelatedNodeSelected; RelatedNodeListBoxViewModel.Items.CollectionChanged -= OnRelatedNodeCollectionChanged; RelatedNodeListBoxViewModel.Dispose(); DiagramEventSource.DiagramChanged -= OnDiagramChanged; UnsubscribeFromViewportEvents(); DiagramViewportViewModel.Dispose(); }
private void HideRelatedNodeListBox() { DiagramViewportViewModel.UnpinDecoration(); RelatedNodeListBoxViewModel.Hide(); }
private void OnRelatedNodeSelectorRequested(RelatedNodeMiniButtonViewModel ownerButton, IReadOnlyList <IModelNode> modelNodes) { DiagramViewportViewModel.PinDecoration(); RelatedNodeListBoxViewModel.Show(ownerButton, modelNodes); }
private void HideRelatedNodeListBox() { DiagramViewportViewModel.UnpinFocus(); RelatedNodeListBoxViewModel.Hide(); }