Exemplo n.º 1
0
        protected override void UpdateData()
        {
            Word.Polygons.Clear();
            var solidFigure = Figure as SolidFigure;

            if (solidFigure == null)
            {
                throw new ArgumentNullException();
            }

            foreach (Figure figure in Figures)
            {
                PointF[] points  = figure.Path.PathPoints;
                var      polygon = new Polygon();

                foreach (PointF point in points)
                {
                    polygon.AddPoint(new DataBase.Domain.Point {
                        X = point.X, Y = point.Y
                    });
                }

                Word.AddPolygon(polygon);
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// Завершает добавление нового слова
        /// </summary>
        private void CompleteCreatingWord()
        {
            var figure = Figure as UnclosedPathFigure;

            if (figure == null)
            {
                throw new ArgumentNullException();
            }

            GraphicsPath path = figure.GeneratePath();

            var word = new Word();

            if (ParentVectorRedactor.Mode == RedactorModes.AddPolygon)
            {
                word = Redactor.Word;
            }

            var polygon = new Polygon();

            polygon.LoadPointList(figure.Points);
            word.AddPolygon(polygon);


            var number = 1;

            if (Redactor.Line.Words.Count > 0)
            {
                number = (from dbWord in Redactor.Line.Words orderby dbWord.Number descending select dbWord.Number).ToList()[0] + 1;
            }
            word.Number = number;

            if (ParentVectorRedactor.Mode == RedactorModes.AddPolygon)
            {
                Redactor.Line.AddWord(word);
            }

            var wordGlyph = new WordGlyph(word)
            {
                Figure = new SolidFigure(path), Config = ParentVectorRedactor.WordConfig
            };

            if (!Redactor.Line.Words.Contains(word))
            {
                Redactor.Line.AddWord(word);
            }

            Parent.InsertChild(wordGlyph);

            ParentVectorRedactor.ActiveGlyph = wordGlyph;
        }