Esempio n. 1
0
        public Equipment(string name, string imageName, Common.Sport sport)
        {
            Name      = name;
            ImageName = imageName;
            Sport     = sport;

            LoadImage();
        }
Esempio n. 2
0
 protected TrainingEntry(TimeSpan duration, Common.Sport sport, Common.EntryType entryType)
     : base(entryType)
 {
     if (entryType != Common.EntryType.Competition)
     {
         throw new ArgumentException("constructor for competitions");
     }
     Sport    = sport;
     Duration = duration;
 }
Esempio n. 3
0
        public SportOverviewChart(Func <TrainingEntry[]> getEntries, Common.Sport sport)
            : base(() => getEntries().Cast <Entry>().ToArray())
        {
            _sport = sport;
            Titles.Add(_sport + " Overview");

            // can't do that in Initialize() because _sport isn't yet set
            var trainingTypeColors = Common.GetTrainingTypeColors(_sport);

            for (var i = 0; i < Common.GetTrainingTypes(_sport).Length; i++)
            {
                Series.Add(
                    new Series("Training Type " + Common.GetTrainingTypes(_sport)[i].ToString())
                {
                    XValueType = ChartValueType.Date,
                    YValueType = ChartValueType.Int32,
                    ChartType  = SeriesChartType.StackedColumn,
                    Color      = trainingTypeColors[i],
                    ChartArea  = "Monthly Training Types"
                });
            }
            // must add entries manually for the same reason
            AddEntries();

            // detect whether chartarea is clicked
            MouseClick += (s, e) =>
            {
                if (_maximizedChartArea != 0)
                {
                    _maximizedChartArea = 0;
                    AlignChartAreas();
                    return;
                }

                for (var i = 0; i < ChartAreas.Count; i++)
                {
                    var minX = (int)ChartAreas[i].Position.X * Width / 100;
                    var maxX = (int)((ChartAreas[i].Position.X + ChartAreas[i].Position.Width) * Width / 100);
                    var minY = (int)ChartAreas[i].Position.Y * Height / 100;
                    var maxY = (int)((ChartAreas[i].Position.Y + ChartAreas[i].Position.Height) * Height / 100);

                    if (e.X < minX || e.X > maxX || e.Y < minY || e.Y > maxY)
                    {
                        continue;
                    }

                    //The mouse is inside the given area
                    _maximizedChartArea = i + 1;
                    AlignChartAreas();
                    return;
                }
            };
        }