public virtual IDiagramNodeUi CreateDiagramNodeUi(
     [NotNull] IDiagramService diagramService,
     [NotNull] IDiagramNode diagramNode,
     [NotNull] IFocusTracker <IDiagramShapeUi> focusTracker)
 {
     return(new DiagramNodeViewModel(ModelService, diagramService, RelatedNodeTypeProvider, focusTracker, diagramNode));
 }
Exemplo n.º 2
0
 public IDiagramNodeUi CreateDiagramNodeUi(
     IDiagramService diagramService,
     IDiagramNode diagramNode,
     IFocusTracker <IDiagramShapeUi> focusTracker)
 {
     return(new DiagramNodeViewModel(ModelService, diagramService, _relatedNodeTypeProvider, focusTracker, diagramNode));
 }
Exemplo n.º 3
0
 public PropertyDiagramNodeViewModel(
     IModelService modelService,
     IDiagramService diagramService,
     IFocusTracker <IDiagramShapeUi> focusTracker,
     PropertyDiagramNode diagramNode)
     : base(modelService, diagramService, focusTracker, diagramNode)
 {
 }
 public virtual IDiagramConnectorUi CreateDiagramConnectorUi(
     IDiagramConnector diagramConnector,
     IFocusTracker <IDiagramShapeUi> focusTracker)
 {
     return(new DiagramConnectorViewModel(
                ModelEventSource,
                DiagramEventSource,
                diagramConnector));
 }
Exemplo n.º 5
0
        public override IDiagramNodeUi CreateDiagramNodeUi(IDiagramService diagramService, IDiagramNode diagramNode,
                                                           IFocusTracker <IDiagramShapeUi> focusTracker)
        {
            if (diagramNode is RoslynTypeDiagramNode roslynTypeDiagramNode)
            {
                return(new RoslynTypeDiagramNodeViewModel(ModelService, diagramService, focusTracker, roslynTypeDiagramNode, IsDescriptionVisible));
            }

            throw new InvalidOperationException($"Unexpected diagram node type {diagramNode?.GetType().Name}");
        }
Exemplo n.º 6
0
        protected DiagramNodeViewModelBase(IModelService modelService, IDiagramService diagramService,
                                           IFocusTracker <IDiagramShapeUi> focusTracker, IDiagramNode diagramNode)
            : base(modelService, diagramService, diagramNode)
        {
            Name    = diagramNode.Name;
            Center  = diagramNode.Center.ToWpf();
            TopLeft = diagramNode.TopLeft.ToWpf();
            // Must NOT populate size from model because its value flows from the controls to the models.

            FocusTracker             = (IWpfFocusTracker <IDiagramShapeUi>)focusTracker;
            RelatedNodeCueViewModels = CreateRelatedNodeCueViewModels();

            DiagramService.DiagramChanged += OnDiagramChanged;
        }
 public virtual IDiagramNodeUi CreateDiagramNodeUi(
     IDiagramNode diagramNode,
     IFocusTracker <IDiagramShapeUi> focusTracker)
 {
     return(new DiagramNodeViewModel(
                ModelEventSource,
                DiagramEventSource,
                diagramNode,
                RelatedNodeTypeProvider,
                (IWpfFocusTracker <IDiagramShapeUi>)focusTracker,
                new DiagramNodeHeaderViewModel {
         Payload = diagramNode.ModelNode.Payload
     }));
 }
Exemplo n.º 8
0
        public override IDiagramNodeUi CreateDiagramNodeUi(IDiagramService diagramService, IDiagramNode diagramNode,
                                                           IFocusTracker <IDiagramShapeUi> focusTracker)
        {
            if (diagramNode is TypeDiagramNode typeDiagramNode)
            {
                return(new TypeDiagramNodeViewModel(ModelService, diagramService, focusTracker, typeDiagramNode));
            }

            if (diagramNode is PropertyDiagramNode propertyDiagramNode)
            {
                return(new PropertyDiagramNodeViewModel(ModelService, diagramService, focusTracker, propertyDiagramNode));
            }

            throw new ArgumentException($"Unexpected type {diagramNode.GetType().Name} in {GetType().Name}");
        }
Exemplo n.º 9
0
        public DiagramNodeViewModel(
            [NotNull] IModelService modelService,
            [NotNull] IDiagramService diagramService,
            [NotNull] IRelatedNodeTypeProvider relatedNodeTypeProvider,
            [NotNull] IFocusTracker <IDiagramShapeUi> focusTracker,
            [NotNull] IDiagramNode diagramNode)
            : base(modelService, diagramService, diagramNode)
        {
            PopulateFromDiagramNode(diagramNode);
            // Must NOT populate size from model because its value flows from the controls to the models.

            RelatedNodeTypeProvider  = relatedNodeTypeProvider;
            FocusTracker             = (IWpfFocusTracker <IDiagramShapeUi>)focusTracker;
            RelatedNodeCueViewModels = CreateRelatedNodeCueViewModels();

            DiagramService.DiagramChanged += OnDiagramChanged;
        }
Exemplo n.º 10
0
        private Node[] CreateChain(int depth, IFocusTracker tracker)
        {
            var nodes   = new List <Node>();
            var desktop = new Mock <IVirtualDesktop>();

            desktop.SetupGet(m => m.FocusTracker).Returns(tracker);
            var mockFirst = NodeHelper.CreateMockContainer(GetRect());
            var first     = mockFirst.Object;

            mockFirst.SetupGet(m => m.Desktop).Returns(desktop.Object);
            nodes.Add(first);
            Node prev = first;

            for (int i = 1; i < depth; i++)
            {
                var n = NodeHelper.CreateMockContainer(GetRect()).Object;
                prev.AddNodes(n);
                prev = n;
                nodes.Add(n);
            }

            var node = new Mock <Node>(GetRect(), Direction.Horizontal, null)
            {
                CallBase = true
            };

            prev.AddNodes(node.Object);
            nodes.Add(node.Object);
            return(nodes.ToArray());

            /*
             * var first = NodeHelper.CreateMockContainer();
             * var prev = first;
             * for(int i = 0; i < depth; i++)
             * {
             *  var next = NodeHelper.CreateMockContainer();
             *  prev.Object.AddNodes(next.Object);
             *  prev = next;
             * }
             *
             * var node = new Mock<Node>(new RECT(), Direction.Horizontal, null) { CallBase = true };
             * prev.Object.AddNodes(node.Object);
             *
             * return (first, node);
             */
        }
Exemplo n.º 11
0
        public DiagramNodeViewModel(
            IModelService modelService,
            IDiagramService diagramService,
            IRelatedNodeTypeProvider relatedNodeTypeProvider,
            IFocusTracker <IDiagramShapeUi> focusTracker,
            IDiagramNode diagramNode)
            : base(modelService, diagramService, diagramNode)
        {
            Name    = diagramNode.ModelNode.Name;
            Center  = diagramNode.Center.ToWpf();
            TopLeft = diagramNode.TopLeft.ToWpf();
            // Must NOT populate size from model because its value flows from the controls to the models.

            _relatedNodeTypeProvider = relatedNodeTypeProvider;
            FocusTracker             = (IWpfFocusTracker <IDiagramShapeUi>)focusTracker;
            RelatedNodeCueViewModels = CreateRelatedNodeCueViewModels();
            ChildNodes = new ThreadSafeObservableCollection <DiagramNodeViewModel>();

            DiagramService.DiagramChanged += OnDiagramChanged;
        }
Exemplo n.º 12
0
        public override IDiagramNodeUi CreateDiagramNodeUi(
            IDiagramNode diagramNode,
            IFocusTracker <IDiagramShapeUi> focusTracker)
        {
            var payload = diagramNode.ModelNode.Payload;

            if (!(payload is ISymbol symbol))
            {
                return(null);
            }

            var headerUi = CreateDiagramNodeHeaderUi(symbol);

            return(new RoslynDiagramNodeViewModel(
                       ModelEventSource,
                       DiagramEventSource,
                       diagramNode,
                       RelatedNodeTypeProvider,
                       (IWpfFocusTracker <IDiagramShapeUi>)focusTracker,
                       IsDescriptionVisible,
                       symbol,
                       headerUi));
        }
Exemplo n.º 13
0
 protected ContainerDiagramNodeViewModelBase(IModelService modelService, IDiagramService diagramService,
                                             IFocusTracker <IDiagramShapeUi> focusTracker, IDiagramNode diagramNode)
     : base(modelService, diagramService, focusTracker, diagramNode)
 {
     ChildNodes = new ThreadSafeObservableCollection <DiagramNodeViewModelBase>();
 }
Exemplo n.º 14
0
 public abstract IDiagramNodeUi CreateDiagramNodeUi(IDiagramService diagramService, IDiagramNode diagramNode, IFocusTracker <IDiagramShapeUi> focusTracker);
Exemplo n.º 15
0
 public RoslynTypeDiagramNodeViewModel(IModelService modelService, IDiagramService diagramService, IFocusTracker <IDiagramShapeUi> focusTracker,
                                       RoslynTypeDiagramNode roslynTypeDiagramNode, bool isDescriptionVisible)
     : base(modelService, diagramService, focusTracker, roslynTypeDiagramNode)
 {
     IsDescriptionVisible = isDescriptionVisible;
     PopulateFromDiagramNode(roslynTypeDiagramNode);
 }