Example #1
0
        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;
        }
Example #2
0
        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;
        }
Example #3
0
        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);
 }
Example #7
0
 private void HideRelatedNodeListBox()
 {
     DiagramViewportViewModel.UnpinFocus();
     RelatedNodeListBoxViewModel.Hide();
 }