Beispiel #1
0
        public SingleConnectionDrawer(Grid grid)
        {
            _grid = grid;

            _mainLineIn = DrawerHelper.GetLine();

            _mainLineOut = DrawerHelper.GetLine(DrawerHelper.BlueBrush);

            _firstLine = DrawerHelper.GetLine();

            _secondLine = DrawerHelper.GetLine(DrawerHelper.BlueBrush);

            _outFirstLine = DrawerHelper.GetLine();

            _outSecondLine = DrawerHelper.GetLine(DrawerHelper.BlueBrush);

            AddLines();

            void AddLines()
            {
                _grid.Children.Add(_mainLineIn);
                _grid.Children.Add(_mainLineOut);
                _grid.Children.Add(_firstLine);
                _grid.Children.Add(_secondLine);
                _grid.Children.Add(_outFirstLine);
                _grid.Children.Add(_outSecondLine);
            }
        }
Beispiel #2
0
        public void Draw(LetterView from, LetterView to, SignalDirection direction)
        {
            Point start       = DrawerHelper.GetLocation(from, _grid, _xOffset, _yOffset);
            Point end         = DrawerHelper.GetLocation(to, _grid, _xOffset, _yOffset);
            Point middlePoint = DrawerHelper.GetMiddlePoint(start, end);

            DrawerHelper.SetLine(_mainLineIn, start, middlePoint);

            DrawerHelper.SetLine(_mainLineOut, middlePoint, end);

            DrawerHelper.SetHorizontalLine(_firstLine, start, 5);

            DrawerHelper.SetHorizontalLine(_secondLine, end, 5);

            var v = new Vector(from.Width + 4, 0);

            DrawerHelper.SetHorizontalLine(_outFirstLine, start + v, 50);

            DrawerHelper.SetHorizontalLine(_outSecondLine, end + v, 50);
        }
Beispiel #3
0
        public void DrawFirst(LetterView from, LetterView to)
        {
            Point start = DrawerHelper.GetLocation(from, _grid, _xOffset, _yOffset);
            Point end   = DrawerHelper.GetLocation(to, _grid, to.Width + 2 + _xOffset + 7, _yOffset);

            DrawerHelper.SetLine(_mainLineIn, start, end);

            DrawerHelper.SetHorizontalLine(_firstLineIn, start, 5);

            DrawerHelper.SetHorizontalLine(_secondLineIn, end, -5);

            var v = new Vector(from.Width + 4, 0);

            Point outerStart = Point.Add(start, v);

            DrawerHelper.SetHorizontalLine(_startOuterLineIn, outerStart, 50);

            Point outerEnd = Point.Add(end, -v);

            DrawerHelper.SetHorizontalLine(_endOuterLineIn, outerEnd, -50);
        }
Beispiel #4
0
        public DoubleConnectionDrawer(Grid grid)
        {
            _grid = grid;

            _mainLineIn = DrawerHelper.GetLine();

            _firstLineIn = DrawerHelper.GetLine();

            _secondLineIn = DrawerHelper.GetLine();

            _startOuterLineIn = DrawerHelper.GetLine();

            _endOuterLineIn = DrawerHelper.GetLine();

            var brush = DrawerHelper.BlueBrush;

            _mainLineOut = DrawerHelper.GetLine(brush);

            _firstLineOut = DrawerHelper.GetLine(brush);

            _secondLineOut = DrawerHelper.GetLine(brush);

            _startOuterLineOut = DrawerHelper.GetLine(brush);

            _endOuterLineOut = DrawerHelper.GetLine(brush);

            AddLines();

            void AddLines()
            {
                _grid.Children.Add(_mainLineIn);
                Grid.SetColumnSpan(_mainLineIn, 2);

                _grid.Children.Add(_firstLineIn);
                Grid.SetColumnSpan(_firstLineIn, 2);

                _grid.Children.Add(_secondLineIn);
                Grid.SetColumnSpan(_secondLineIn, 2);

                _grid.Children.Add(_startOuterLineIn);
                Grid.SetColumnSpan(_startOuterLineIn, 2);

                _grid.Children.Add(_endOuterLineIn);
                Grid.SetColumnSpan(_endOuterLineIn, 2);

                _grid.Children.Add(_mainLineOut);
                Grid.SetColumnSpan(_mainLineOut, 2);

                _grid.Children.Add(_firstLineOut);
                Grid.SetColumnSpan(_firstLineOut, 2);

                _grid.Children.Add(_secondLineOut);
                Grid.SetColumnSpan(_secondLineOut, 2);

                _grid.Children.Add(_startOuterLineOut);
                Grid.SetColumnSpan(_startOuterLineOut, 2);

                _grid.Children.Add(_endOuterLineOut);
                Grid.SetColumnSpan(_endOuterLineOut, 2);
            }
        }