Example #1
0
        internal bool IsCheckBoardCircle(GrafData data)
        {
            foreach (var circle in _circleList)
            {
                var dx = data.ClicPoint.X - circle.Point.X;
                var dy = data.ClicPoint.Y - circle.Point.Y;
                var r  = circle.R;
                if (dx * dx + dy * dy < r * r)
                {
                    circle.Check     = !circle.Check;
                    data.CheckCircle = !data.CheckCircle;
                    if (data.ForDej)
                    {
                        _listForDej.Enqueue(circle.Number);
                        if (_listForDej.Count > 2)
                        {
                            _listForDej.Clear();
                            ClearChekedList();
                        }
                    }
                    return(true);
                }
            }

            return(false);
        }
Example #2
0
 internal void Draw(GrafData data)
 {
     if (_drawToRyppaty)
     {
         _lineList.Remove(_drawForRippatyList[0]);
         _buferLineList.Add(_drawForRippatyList[0]);
         _drawForRippatyList.RemoveAt(0);
     }
     foreach (var line in _lineList)
     {
         line.Draw(data);
     }
     foreach (var circle in _circleList)
     {
         circle.Draw(data);
     }
     foreach (var line in _buferLineList)
     {
         line.TimingDraw(data);
     }
     if (_drawToRyppaty)
     {
         if (_drawForRippatyList.Count == 0)
         {
             _drawToRyppaty = false;
             _lineList.AddRange(_buferLineList);
             _buferLineList.Clear();
             foreach (var circle in _circleList)
             {
                 circle.Check = false;
             }
             _checkedVertex.Clear();
         }
     }
 }
Example #3
0
        private void UpdateDay(PersonNoTreningDaySet obj)//super metodka która trigeruje się za każdym razem jak jest zmiana na dacie
        {
            SelectedDay = (PersonNoTreningDaySet)obj;
            Values      = new ObservableCollection <PersonNoTreningDaySet>();//wreszcie sukces ;)
            Values.Add(SelectedDay);


            using (Models.WorkOut2Container contex = new Models.WorkOut2Container())
            {
                var listForGraf  = (from c in contex.PersonNoTreningDaySetSet where c.PersonSetId == SelectedPerson.Id select c);
                var listForGraf1 = (from c in contex.PersonTreningDaySetSet where c.PersonSetId == SelectedPerson.Id select c);
                Dictionary <string, double?> dictionary = new Dictionary <string, double?>();

                foreach (var graf in listForGraf)
                {
                    DateTime temp = (DateTime)graf.Date;
                    dictionary.Add(temp.ToShortDateString(), graf.Weight);
                }
                foreach (var graf in listForGraf1)
                {
                    DateTime temp = (DateTime)graf.Date;
                    dictionary.Add(temp.ToShortDateString(), graf.Weight);
                }

                var items = from pair in dictionary orderby pair.Key ascending select pair;
                foreach (var graf in items)
                {
                    GrafData.Add(new KeyValuePair <string, double?>(graf.Key, graf.Value));
                }
            }
        }
Example #4
0
        internal void TimingDraw(GrafData data)
        {
            var pen            = new Pen(Color.Red, 5);
            var brushForWeight = new SolidBrush(Color.Black);

            pen.EndCap = LineCap.ArrowAnchor;
            data.FormGraphics.DrawLine(pen, _startPoint, _finishPoint);
            WriteWeight(data, brushForWeight);
        }
Example #5
0
 private void WriteWeight(GrafData data, Brush brush)
 {
     if (Weight != 30)
     {
         var point      = new Point((_startPoint.X + _finishPoint.X) / 2, (_startPoint.Y + _finishPoint.Y) / 2);
         var fontFamily = new FontFamily("Comic Sans MS");
         var font       = new Font(fontFamily, 16, FontStyle.Underline, GraphicsUnit.Pixel);
         data.FormGraphics.DrawString(Weight.ToString(), font, brush, point);
     }
 }
Example #6
0
 internal void AddEdge(GrafData data)
 {
     foreach (var circle in _circleList)
     {
         if (_checkedVertex.Count == 0)
         {
             if (circle.Check)
             {
                 _checkedVertex.Add(circle);
                 return;
             }
         }
         if (circle.Check && circle != _checkedVertex[0])
         {
             _checkedVertex.Add(circle);
             foreach (var line in _lineList)
             {
                 if (data.CheckEdgeRoute)
                 {
                     if (line.NumStartVertex == _checkedVertex[0].Number &&
                         line.NumFinishVertex == _checkedVertex[1].Number)
                     {
                         return;
                     }
                 }
                 else
                 {
                     if (line.NumStartVertex == _checkedVertex[0].Number &&
                         line.NumFinishVertex == _checkedVertex[1].Number ||
                         line.NumStartVertex == _checkedVertex[1].Number &&
                         line.NumFinishVertex == _checkedVertex[0].Number)
                     {
                         return;
                     }
                 }
             }
             _graf.AddEdge(_checkedVertex[0].Number, _checkedVertex[1].Number, data.Weight, data.CheckEdgeRoute);
             _lineList.Add(new LineDrawer
                           (
                               _checkedVertex[0].Point,
                               _checkedVertex[1].Point,
                               data.Weight,
                               _checkedVertex[0].Number,
                               _checkedVertex[1].Number)
                           );
             _checkedVertex.Clear();
             foreach (var circle2 in _circleList)
             {
                 circle2.Check = false;
             }
             return;
         }
     }
 }
Example #7
0
 /// <summary>
 /// Обработка события клика, выделение, рисование вершин и ребер
 /// </summary>
 /// <param name="data">Модель данных</param>
 public void ClickOnPainBox(GrafData data)
 {
     if (IsCheckBoardCircle(data))
     {
         _mainDrawer.AddEdge(data);
     }
     else
     {
         _mainDrawer.AddVertex(data);
     }
 }
Example #8
0
        internal void AddVertex(GrafData data)
        {
            var num    = _graf.AddVertex();
            var vertex = new CircleDrawer(num, data.ClicPoint);

            _circleList.Add(vertex);
            _checkedVertex.Clear();
            foreach (var circleDrawer in _circleList)
            {
                circleDrawer.Check = false;
            }
        }
Example #9
0
        internal void Draw(GrafData data)
        {
            var pen = new Pen(Color.Green);

            if (data.CheckEdgeRoute)
            {
                pen        = new Pen(Color.Green, 10);
                pen.EndCap = LineCap.ArrowAnchor;
            }
            data.FormGraphics.DrawLine(pen, _startPoint, _finishPoint);
            var brushForWeight = new SolidBrush(Color.Brown);

            WriteWeight(data, brushForWeight);
        }
        private void UpdateDay(PersonTreningDaySet obj)//super metodka która trigeruje się za każdym razem jak jest zmiana na dacie
        {
            SelectedDay = (PersonTreningDaySet)obj;

            using (Models.WorkOut2Container contex = new Models.WorkOut2Container())
            {
                firstIdOfImage  = (from c in contex.PersonPhotoSetSet where c.PersonTreningDaySetId == SelectedDay.Id select c.Id).FirstOrDefault();
                howManyImage    = (from c in contex.PersonPhotoSetSet where c.PersonTreningDaySetId == SelectedDay.Id select c.Id).Count();
                _howManyImage   = howManyImage;
                _firstIdOfImage = firstIdOfImage;
            }

            Values = new ObservableCollection <ExtendedPersonTraninDaySet>();//wreszcie sukces ;)

            if (SelectedDay.PersonPhotoSet.FirstOrDefault() != null)
            {
                Photo          = SelectedDay.PersonPhotoSet.FirstOrDefault().Photo;
                ConvertetPhoto = this.LoadImage(Photo);

                tmp = new ExtendedPersonTraninDaySet(SelectedDay.Date, SelectedDay.Diet, SelectedDay.PersonSetId, SelectedDay.Weight, SelectedDay.Exercises, SelectedDay.Supplementation, ConvertetPhoto);
                Values.Add(tmp);
            }

            tmp = new ExtendedPersonTraninDaySet(SelectedDay.Date, SelectedDay.Diet, SelectedDay.PersonSetId, SelectedDay.Weight, SelectedDay.Exercises, SelectedDay.Supplementation, null);
            Values.Add(tmp);
            using (Models.WorkOut2Container contex = new Models.WorkOut2Container())
            {
                var listForGraf  = (from c in contex.PersonNoTreningDaySetSet where c.PersonSetId == SelectedPerson.Id select c);
                var listForGraf1 = (from c in contex.PersonTreningDaySetSet where c.PersonSetId == SelectedPerson.Id select c);
                Dictionary <string, double?> dictionary = new Dictionary <string, double?>();

                foreach (var graf in listForGraf)
                {
                    DateTime temp = (DateTime)graf.Date;
                    dictionary.Add(temp.ToShortDateString(), graf.Weight);
                }
                foreach (var graf in listForGraf1)
                {
                    DateTime temp = (DateTime)graf.Date;
                    dictionary.Add(temp.ToShortDateString(), graf.Weight);
                }

                var items = from pair in dictionary orderby pair.Key ascending select pair;
                foreach (var graf in items)
                {
                    GrafData.Add(new KeyValuePair <string, double?>(graf.Key, graf.Value));
                }
            }
        }
Example #11
0
        /// <summary>
        /// Отрисовка графа на форме
        /// </summary>
        /// <param name="data">Модель данных</param>
        public void Draw(GrafData data)
        {
            _mainDrawer.Draw(data);
            var edgeList = new List <EdgeForDGW>();

            foreach (var edge in _graf.GetEdgeList())
            {
                edgeList.Add(new EdgeForDGW
                {
                    Start  = edge.StartVertex,
                    Finish = edge.FinishVertex,
                    Weight = edge.Weight
                });
            }
            AddEdgeEvent?.Invoke(edgeList);
        }
Example #12
0
 public void CheckVertex(GrafData data)
 {
     data.ForDej = true;
     _mainDrawer.IsCheckBoardCircle(data);
 }
Example #13
0
 /// <summary>
 /// Проверка выбора вершины
 /// </summary>
 /// <param name="data">Модель данных</param>
 /// <returns>bool, выбрана или нет</returns>
 private bool IsCheckBoardCircle(GrafData data)
 {
     return(_mainDrawer.IsCheckBoardCircle(data));
 }