private async Task OnShowSourceRequestAsync([NotNull] IDiagramShape diagramShape)
 {
     if (diagramShape is IDiagramNode diagramNode)
     {
         await new ShowSourceFileCommand(this, diagramNode).ExecuteAsync();
     }
 }
 protected DiagramShapeViewModelBase(
     [NotNull] IModelEventSource modelEventSource,
     [NotNull] IDiagramEventSource diagramEventSource,
     [NotNull] IDiagramShape diagramShape)
     : base(modelEventSource, diagramEventSource)
 {
     SetDiagramShapeProperties(diagramShape);
 }
Example #3
0
 protected DiagramShapeViewModelBase(
     IModelService modelService,
     IDiagramService diagramService,
     IDiagramShape diagramShape)
     : base(modelService, diagramService)
 {
     DiagramShape = diagramShape;
 }
        private void AddShape(IDiagramShape diagramShape)
        {
            var diagramShapeViewModel = _diagramShapeViewModelFactory.CreateViewModel(diagramShape, _areDiagramNodeDescriptionsVisible);

            diagramShapeViewModel.RemoveRequested += OnShapeRemoveRequested;

            AddToViewModels(diagramShapeViewModel);
            _diagramShapeToViewModelMap.Set(diagramShape, diagramShapeViewModel);
        }
        private void OnDiagramShapeAdded(IDiagramShape diagramShape)
        {
            var removedModelEntity = diagramShape?.ModelItem as IModelEntity;

            if (removedModelEntity == null)
            {
                return;
            }

            Items.Remove(removedModelEntity);
        }
        private async Task OnShowSourceRequestAsync(IDiagramShape diagramShape)
        {
            var diagramNode = diagramShape as IDiagramNode;

            if (diagramNode == null)
            {
                return;
            }

            await new ShowSourceFileCommand(this, diagramNode).ExecuteAsync();
        }
Example #7
0
        /// <summary>
        /// Whenever a shape is added to the diagram we try to proactively expand the model with the related entities.
        /// </summary>
        /// <param name="diagramShape">The shape that was added to the diagram.</param>
        private void OnShapeAdded(IDiagramShape diagramShape)
        {
            var diagramNode = diagramShape as IDiagramNode;

            if (diagramNode == null)
            {
                return;
            }

            ModelServices.ExtendModelWithRelatedEntities(diagramNode.ModelEntity);
        }
Example #8
0
        private void OnShowSourceRequested(IDiagramShape diagramShape)
        {
            var diagramNode = diagramShape as IDiagramNode;

            if (diagramNode == null)
            {
                return;
            }

            new ShowSourceFileCommand(this).Execute(diagramNode);
        }
#pragma warning disable VSTHRD100 // Avoid async void methods
        private async void OnShowSourceRequested(IDiagramShape diagramShape)
#pragma warning restore VSTHRD100 // Avoid async void methods
        {
            var diagramNode = diagramShape as IDiagramNode;

            if (diagramNode == null)
            {
                return;
            }

            await new ShowSourceFileCommand(this, diagramNode).ExecuteAsync();
        }
        private void OnShapeRemoveRequested(IDiagramShape diagramShape)
        {
            var diagramShapeViewModel = _diagramShapeToViewModelMap.Get(diagramShape);

            if (diagramShapeViewModel == null)
            {
                return;
            }

            DiagramShapeRemoveRequested?.Invoke(diagramShapeViewModel);

            Diagram.RemoveDiagramShape(diagramShape);
        }
        private void OnShapeRemoved(IDiagramShape diagramShape)
        {
            var diagramNode = diagramShape as DiagramNode;

            if (diagramNode != null)
            {
                EnqueueDiagramAction(new RemoveDiagramNodeAction(diagramNode));
            }

            var diagramConnector = diagramShape as DiagramConnector;

            if (diagramConnector != null)
            {
                EnqueueDiagramAction(new RemoveDiagramConnectorAction(diagramConnector));
            }
        }
Example #12
0
        public DiagramShapeViewModelBase CreateViewModel(IDiagramShape diagramShape, bool isDescriptionVisible)
        {
            if (diagramShape is IDiagramNode)
            {
                return(new DiagramNodeViewModel(Diagram, (IDiagramNode)diagramShape, isDescriptionVisible));
            }

            if (diagramShape is IDiagramConnector)
            {
                var diagramConnector = (IDiagramConnector)diagramShape;
                var sourceNode       = _diagramNodeViewModels.First(i => i.DiagramShape == diagramConnector.Source);
                var targetNode       = _diagramNodeViewModels.First(i => i.DiagramShape == diagramConnector.Target);
                return(new DiagramConnectorViewModel(Diagram, diagramConnector, sourceNode, targetNode));
            }

            throw new NotImplementedException();
        }
        private void RemoveShape(IDiagramShape diagramShape)
        {
            var diagramShapeViewModel = _diagramShapeToViewModelMap.Get(diagramShape);

            if (diagramShapeViewModel == null)
            {
                return;
            }

            if (diagramShapeViewModel is DiagramNodeViewModel)
            {
                DecorationManager.Unfocus(diagramShapeViewModel as DiagramNodeViewModel);
            }

            diagramShapeViewModel.RemoveRequested -= OnShapeRemoveRequested;

            RemoveFromViewModels(diagramShapeViewModel);
            _diagramShapeToViewModelMap.Remove(diagramShape);
        }
Example #14
0
 public void RemoveDiagramShape(IDiagramShape diagramShape) => HideModelItems(new[] { diagramShape.ModelItem });
 private void OnDiagramShapeRemoved(IDiagramShape diagramShape) => EnsureUiThread(() => RemoveShape(diagramShape));
 // All diagram-induced view model manipulation must occur on the UI thread to avoid certain race conditions.
 // (E.g. avoid the case when creating a connector view model precedes the creation of its source and target node view models.)
 private void OnDiagramShapeAdded(IDiagramShape diagramShape) => EnsureUiThread(() => AddShape(diagramShape));
 private void OnShowSourceRequested(IDiagramShape diagramShape)
 {
     _hostUiServices.Run(async() => await OnShowSourceRequestAsync(diagramShape));
 }
 protected DiagramShapeViewModelBase(IArrangedDiagram diagram, IDiagramShape diagramShape)
     : base(diagram)
 {
     DiagramShape = diagramShape;
 }
 private void OnShowSourceRequested([NotNull] IDiagramShape diagramShape)
 {
     HostUiService.Run(async() => await OnShowSourceRequestAsync(diagramShape));
 }
Example #20
0
 private void OnDiagramShapeRemoved(IDiagramShape diagramShape) => ShapeRemoved?.Invoke(diagramShape);
 protected void SetDiagramShapeProperties([NotNull] IDiagramShape diagramShape)
 {
     DiagramShape = diagramShape;
     Rect         = diagramShape.AbsoluteRect.ToWpf();
 }
Example #22
0
 private void OnDiagramShapeAdded(IDiagramShape diagramShape) => ShapeAdded?.Invoke(diagramShape);
 private void OnShowSourceCommand(IDiagramShape diagramShape)
 => ShowSourceRequested?.Invoke(diagramShape);
Example #24
0
 public void SelectDiagramShape(IDiagramShape diagramShape) => OnDiagramShapeSelected(diagramShape);
Example #25
0
 private void OnShowSourceRequested(IDiagramShape diagramShape)
 {
     ShowSourceRequested?.Invoke(diagramShape);
 }
Example #26
0
 private void OnDiagramShapeRemoved(IDiagramShape diagramShape) => UpdateDiagramContentRect();
 private void OnDiagramShapeAdded(IDiagramShape shape) => RecalculateVisibility();
Example #28
0
 private void OnDiagramShapeSelected(IDiagramShape diagramShape) => ShapeSelected?.Invoke(diagramShape);