예제 #1
0
        public override void BuildEdge(Point[] path, IEdge originalEdge, DotEdge <int> edge)
        {
#if SILVERLIGHT
            var data = new StringToPathGeometryConverter().Convert(TransformCoordinates(path, this.canvas));
#else
            var data = Geometry.Parse(TransformCoordinates(path, this.canvas));
#endif
            var edgeElement = this.elementsFactory.CreateEdge(new EdgeViewModel(data, originalEdge));
            if (edge.Label != "blind")
            {
                this.canvas.Children.Add(edgeElement);
            }

            if (edge.DestinationArrowEnd.HasValue)
            {
                CreateArrow(
                    TransformCoordinates(edge.DestinationArrowEnd.Value, canvas),
                    TransformCoordinates(path.Last(), canvas),
                    edge.Destination,
                    this.elementsFactory.CreateEdgeArrow(new EdgeArrowViewModel(originalEdge, originalEdge.DestinationArrow)),
                    this.canvas);
            }

            if (edge.SourceArrowEnd.HasValue)
            {
                CreateArrow(
                    TransformCoordinates(edge.SourceArrowEnd.Value, canvas),
                    TransformCoordinates(path.First(), canvas),
                    edge.Source,
                    this.elementsFactory.CreateEdgeArrow(new EdgeArrowViewModel(originalEdge, originalEdge.SourceArrow)),
                    this.canvas);
            }

            if (edge.LabelPos.HasValue && edge.Label != "blind")
            {
                var labelElement = this.elementsFactory.CreateEdgeLabel(new EdgeLabelViewModel(edge.Label, edge.labelToolTip, originalEdge));
                this.CreateLabel(edge.LabelPos.Value, labelElement);
            }

            if (edge.SourceArrowLabelPosition.HasValue)
            {
                var viewModel    = new EdgeArrowLabelViewModel(edge.SourceArrowLabel, originalEdge, edge.SourceArrow);
                var labelElement = this.elementsFactory.CreateEdgeArrowLabel(viewModel);
                this.CreateLabel(edge.SourceArrowLabelPosition.Value, labelElement);
            }

            if (edge.DestinationArrowLabelPosition.HasValue)
            {
                var viewModel    = new EdgeArrowLabelViewModel(edge.DestinationArrowLabel, originalEdge, originalEdge.DestinationArrow);
                var labelElement = this.elementsFactory.CreateEdgeArrowLabel(viewModel);
                this.CreateLabel(edge.DestinationArrowLabelPosition.Value, labelElement);
            }
        }
예제 #2
0
        public override void BuildEdge(Primitives.Point[] path, IEdge originalEdge, DotEdge <int> edge)
        {
            var data        = Geometry.Parse(TransformCoordinates(path, this.canvas));
            var edgeElement = this.elementsFactory.CreateEdge(new EdgeViewModel(data, originalEdge));

            this.canvas.Children.Add(edgeElement);

            if (edge.DestinationArrowEnd.HasValue)
            {
                CreateArrow(
                    TransformCoordinates(edge.DestinationArrowEnd.Value, canvas),
                    TransformCoordinates(path.Last(), canvas),
                    edge.Destination,
                    this.elementsFactory.CreateEdgeArrow(new EdgeArrowViewModel(originalEdge, originalEdge.DestinationArrow)),
                    this.canvas);
            }

            if (edge.SourceArrowEnd.HasValue)
            {
                CreateArrow(
                    TransformCoordinates(edge.SourceArrowEnd.Value, canvas),
                    TransformCoordinates(path.First(), canvas),
                    edge.Source,
                    this.elementsFactory.CreateEdgeArrow(new EdgeArrowViewModel(originalEdge, originalEdge.SourceArrow)),
                    this.canvas);
            }

            if (edge.LabelPos.HasValue)
            {
                var labelElement = this.elementsFactory.CreateEdgeLabel(new EdgeLabelViewModel(edge.Label, originalEdge));
                this.CreateLabel(edge.LabelPos.Value, labelElement);
            }

            if (edge.SourceArrowLabelPosition.HasValue)
            {
                var viewModel    = new EdgeArrowLabelViewModel(edge.SourceArrowLabel, originalEdge, edge.SourceArrow);
                var labelElement = this.elementsFactory.CreateEdgeArrowLabel(viewModel);
                this.CreateLabel(edge.SourceArrowLabelPosition.Value, labelElement);
            }

            if (edge.DestinationArrowLabelPosition.HasValue)
            {
                var viewModel    = new EdgeArrowLabelViewModel(edge.DestinationArrowLabel, originalEdge, originalEdge.DestinationArrow);
                var labelElement = this.elementsFactory.CreateEdgeArrowLabel(viewModel);
                this.CreateLabel(edge.DestinationArrowLabelPosition.Value, labelElement);
            }
        }
예제 #3
0
 public FrameworkElement CreateEdgeArrowLabel(EdgeArrowLabelViewModel labelViewModel)
 {
     return new ContentPresenter { Content = labelViewModel };
 }
예제 #4
0
 public FrameworkElement CreateEdgeArrowLabel(EdgeArrowLabelViewModel labelViewModel)
 {
     return(new TextBlock {
         Text = labelViewModel.Label
     });
 }
 public FrameworkElement CreateEdgeArrowLabel(EdgeArrowLabelViewModel labelViewModel)
 {
     return new TextBlock { Text = labelViewModel.Label };
 }
 public FrameworkElement CreateEdgeArrowLabel(EdgeArrowLabelViewModel labelViewModel)
 {
     return(new ContentPresenter {
         Content = labelViewModel
     });
 }