コード例 #1
0
        private void removeTrainingToolStripMenuItem_Click(object sender, EventArgs e)
        {
            ICalendarSelectableElement start = worker_calendar.SelectedElementStart;
            ICalendarSelectableElement end   = worker_calendar.SelectedElementEnd;

            CalendarDayTop start_day = start as CalendarDayTop;
            CalendarDayTop end_day   = end as CalendarDayTop;

            CalendarTimeScaleUnit start_timeunit = start as CalendarTimeScaleUnit;
            CalendarTimeScaleUnit end_timeunit   = end as CalendarTimeScaleUnit;

            if (start_day == null && end_day == null && start_timeunit == null && end_timeunit == null)
            {
                return;
            }
            else if (start_day != null && end_day != null)
            {
                if (start_day.Date > end_day.Date)
                {
                    //swap em ;)
                    CalendarDayTop tmp = start_day;
                    start_day = end_day;
                    end_day   = tmp;
                }

                IEnumerable <CalendarDay> days = worker_calendar.Days.Where(d => d.Date >= start_day.Date && d.Date <= end_day.Date);

                Worker.Training.RemoveDays(days.ElementAt(0).Date, days.Count());
            }
            else if (start_timeunit != null && end_timeunit != null && !start_timeunit.Day.Disabled)
            {
                //timescaleunit clicked

                start_day = start_timeunit.Day.DayTop;
                end_day   = end_timeunit.Day.DayTop;

                IEnumerable <CalendarDay> daysSelected = worker_calendar.Days.Where(d => d.Date >= start_day.Date && d.Date <= end_day.Date);

                List <CalendarTimeScaleUnit> timeunitSelected = new List <CalendarTimeScaleUnit>();

                foreach (CalendarDay day in daysSelected)
                {
                    timeunitSelected.AddRange(day.TimeUnits.Where(t => t.Day == day && (t.Date >= start_timeunit.Date && t.Date <= end_timeunit.Date)));
                }

                foreach (CalendarTimeScaleUnit unit in timeunitSelected)
                {
                    Worker.Training.RemoveTime(unit.Date, 60);
                }
            }

            Cursor             = Cursors.WaitCursor;
            Worker.MarkForSave = true;
            Worker.Save();
            Cursor = Cursors.Default;

            Refresh();
        }
コード例 #2
0
        private void ScrollToTimeUnit(CalendarTimeScaleUnit timeScaleUnit = null)
        {
            try
            {
                if (timeScaleUnit == null)
                {
                    timeScaleUnit = calendar.GetTimeUnit(DateTime.Now, true);
                }

                calendar.ScrollCalendarControl(timeScaleUnit.Index);
            }
            catch (Exception ex)
            {
                BasicMessagesHandler.ShowErrorMessage("Vyskytla sa chyba pri skrolovaní stredného panelu", ex);
            }
        }
コード例 #3
0
 private void calendar_MouseClick(object sender, MouseEventArgs e)
 {
     if (e.Button == MouseButtons.Left)
     {
         CalendarTimeScaleUnit item = calendar.HitTest(e.Location) as CalendarTimeScaleUnit;
         if (item != null)
         {
             visitUserControl.ResetVisitPanel(Enums.WorkingTypeEnum.Creating);
             visitUserControl.SetEventStartDate(item.Date);
         }
     }
     else if (e.Button == MouseButtons.Right)
     {
         monthviewSettingsMenuStrip.Show(calendar, e.Location);
     }
 }
コード例 #4
0
        private void selectionToolStripMenuItem_Click_1(object sender, EventArgs e)
        {
            ICalendarSelectableElement start = worker_calendar.SelectedElementStart;
            ICalendarSelectableElement end   = worker_calendar.SelectedElementEnd;

            CalendarDayTop start_day = start as CalendarDayTop;
            CalendarDayTop end_day   = end as CalendarDayTop;

            CalendarTimeScaleUnit start_timeunit = start as CalendarTimeScaleUnit;
            CalendarTimeScaleUnit end_timeunit   = end as CalendarTimeScaleUnit;


            if (start_day == null && end_day == null && start_timeunit == null && end_timeunit == null)
            {
                return;
            }
            else if (start_day != null && end_day != null)
            {
                //whole day selection

                if (start_day.Date > end_day.Date)
                {
                    //swap em ;)
                    CalendarDayTop tmp = start_day;
                    start_day = end_day;
                    end_day   = tmp;
                }

                AddTraining(start_day.Date, (int)(end_day.Date - start_day.Date).TotalDays + 1);
            }
            else if (start_timeunit != null && end_timeunit != null)
            {
                //time unit selection

                if (start_timeunit.Date > end_timeunit.Date)
                {
                    //swap em ;)
                    CalendarTimeScaleUnit tmp = start_timeunit;
                    start_timeunit = end_timeunit;
                    end_timeunit   = tmp;
                }


                AddTraining(start_timeunit.Date, 0, (int)(end_timeunit.Date - start_timeunit.Date).TotalMinutes + 60);
            }
        }
コード例 #5
0
 public CalendarRendererTimeUnitEventArgs(CalendarRendererEventArgs original, CalendarTimeScaleUnit unit)
     : base(original)
 {
     _unit = unit;
 }
コード例 #6
0
        /// <summary>
        /// Updates the value of <see cref="TimeUnits"/> property
        /// </summary>
        internal void UpdateUnits()
        {
            int factor = 0;

            switch (Calendar.TimeScale)
            {
                case CalendarTimeScale.SixtyMinutes:    factor = 1;     break;
                case CalendarTimeScale.ThirtyMinutes:   factor = 2;     break;
                case CalendarTimeScale.FifteenMinutes:  factor = 4;     break;
                case CalendarTimeScale.TenMinutes:      factor = 6;     break;
                case CalendarTimeScale.SixMinutes:      factor = 10;    break;
                case CalendarTimeScale.FiveMinutes:     factor = 12;    break;
                default: throw new NotImplementedException("TimeScale not supported");
            }

            _timeUnits = new CalendarTimeScaleUnit[24 * factor];

            int hourSum = 0;
            int minSum = 0;

            for (int i = 0; i < _timeUnits.Length; i++)
            {
                _timeUnits[i] = new CalendarTimeScaleUnit(this, i, hourSum, minSum);

                minSum += 60 / factor;

                if (minSum >= 60)
                {
                    minSum = 0;
                    hourSum++;
                }
            }

            UpdateHighlights();
        }
コード例 #7
0
 /// <summary>
 /// Comparison delegate to sort units
 /// </summary>
 /// <param name="item1"></param>
 /// <param name="item2"></param>
 /// <returns></returns>
 private static int CompareUnits(CalendarTimeScaleUnit item1, CalendarTimeScaleUnit item2)
 {
     return item1.Date.CompareTo(item2.Date);
 }
コード例 #8
0
        private void contextMenuStrip1_Opening(object sender, CancelEventArgs e)
        {
            //clear everything first
            setAsHolidayToolStripMenuItem.Visible  = false;
            removeHolidayToolStripMenuItem.Visible = false;

            setAsSickDayToolStripMenuItem.Visible  = false;
            removeSickDayToolStripMenuItem.Visible = false;

            setAsTrainingToolStripMenuItem.Visible  = false;
            removeTrainingToolStripMenuItem.Visible = false;

            oneWeekToolStripMenuItem.Visible  = false;
            twoWeeksToolStripMenuItem.Visible = false;
            otherToolStripMenuItem2.Visible   = false;

            unassignToolStripMenuItem.Visible = false;

            if (SelectedItems.Count > 0)
            {
                unassignToolStripMenuItem.Visible = true;
                return;
            }


            ICalendarSelectableElement start = worker_calendar.SelectedElementStart;
            ICalendarSelectableElement end   = worker_calendar.SelectedElementEnd;

            CalendarDayTop start_day = start as CalendarDayTop;
            CalendarDayTop end_day   = end as CalendarDayTop;

            CalendarTimeScaleUnit start_timeunit = start as CalendarTimeScaleUnit;
            CalendarTimeScaleUnit end_timeunit   = end as CalendarTimeScaleUnit;


            oneWeekToolStripMenuItem.Visible  = true;
            twoWeeksToolStripMenuItem.Visible = true;
            otherToolStripMenuItem2.Visible   = true;

            if (start_day != null && end_day != null)
            {
                //day top clicked

                if (start_day.Date > end_day.Date)
                {
                    //swap em ;)
                    CalendarDayTop tmp = start_day;
                    start_day = end_day;
                    end_day   = tmp;
                }

                if (start_day == null || end_day == null)
                {
                    //only allow training to be set if we arent selecting the whole day
                    removeTrainingToolStripMenuItem.Visible = true;
                    setAsTrainingToolStripMenuItem.Visible  = true;
                }
                else
                {
                    IEnumerable <CalendarDay> daysSelected = worker_calendar.Days.Where(d => d.Date >= start_day.Date && d.Date <= end_day.Date);

                    int holidayCount  = daysSelected.Where(d => d.Disabled && d.Image != null && d.Image.Tag.ToString() == "holiday").Count();
                    int sickCount     = daysSelected.Where(d => d.Disabled && d.Image != null && d.Image.Tag.ToString() == "sick").Count();
                    int trainingCount = daysSelected.Where(d => d.Disabled && d.Image != null && d.Image.Tag.ToString() == "training").Count();

                    if (holidayCount < daysSelected.Count())
                    {
                        setAsHolidayToolStripMenuItem.Visible = true;      //not all are holiday
                    }
                    if (sickCount < daysSelected.Count())
                    {
                        setAsSickDayToolStripMenuItem.Visible = true;       //not all are sick
                    }
                    if (trainingCount < daysSelected.Count())
                    {
                        setAsTrainingToolStripMenuItem.Visible = true;       //not all are training
                    }
                    if (holidayCount > 0)
                    {
                        removeHolidayToolStripMenuItem.Visible = true;
                    }

                    if (sickCount > 0)
                    {
                        removeSickDayToolStripMenuItem.Visible = true;
                    }

                    if (trainingCount > 0)
                    {
                        removeTrainingToolStripMenuItem.Visible = true;
                    }
                }
            }
            else if (start_timeunit != null && end_timeunit != null && !start_timeunit.Day.Disabled)
            {
                //timescaleunit clicked

                //dont need these for individual hour training
                oneWeekToolStripMenuItem.Visible  = false;
                twoWeeksToolStripMenuItem.Visible = false;
                otherToolStripMenuItem2.Visible   = false;



                start_day = start_timeunit.Day.DayTop;
                end_day   = end_timeunit.Day.DayTop;

                IEnumerable <CalendarDay> daysSelected = worker_calendar.Days.Where(d => d.Date >= start_day.Date && d.Date <= end_day.Date);

                List <CalendarTimeScaleUnit> timeunitSelected = new List <CalendarTimeScaleUnit>();

                foreach (CalendarDay day in daysSelected)
                {
                    timeunitSelected.AddRange(day.TimeUnits.Where(t => t.Day == day && (t.Date >= start_timeunit.Date && t.Date <= end_timeunit.Date)));
                }

                int trainingCount = timeunitSelected.Where(t => t.Disabled && t.Image != null && t.Image.Tag.ToString() == "training").Count();

                if (trainingCount < timeunitSelected.Count())
                {
                    setAsTrainingToolStripMenuItem.Visible = true;       //not all are training
                }
                if (trainingCount > 0)
                {
                    removeTrainingToolStripMenuItem.Visible = true;
                }
            }
            else
            {
                e.Cancel = true;
                return;
            }
        }
コード例 #9
0
 /// <summary>
 /// Adds the specified unit as a passing unit
 /// </summary>
 /// <param name="calendarTimeScaleUnit"></param>
 internal void AddUnitPassing(CalendarTimeScaleUnit calendarTimeScaleUnit)
 {
     if (!UnitsPassing.Contains(calendarTimeScaleUnit))
     {
         UnitsPassing.Add(calendarTimeScaleUnit);
     }
 }
コード例 #10
0
 public CalendarRendererTimeUnitEventArgs(CalendarRendererEventArgs original, CalendarTimeScaleUnit unit)
     : base(original)
 {
     _unit = unit;
 }
コード例 #11
0
ファイル: Calendar.cs プロジェクト: NiDaSilva/PPE4-STARS-UP
 /// <summary>
 /// Ivalidates the bounds of the specified unit
 /// </summary>
 /// <param name="unit"></param>
 public void Invalidate(CalendarTimeScaleUnit unit)
 {
     Invalidate(unit.Bounds);
 }
コード例 #12
0
ファイル: Calendar.cs プロジェクト: NiDaSilva/PPE4-STARS-UP
        /// <summary>
        /// Ensures the scrolling shows the specified time unit. It doesn't affect View date ranges.
        /// </summary>
        /// <param name="unit">Unit to ensure visibility</param>
        public void EnsureVisible(CalendarTimeScaleUnit unit)
        {
            if (Days == null || Days.Length == 0) return;

            Rectangle view = Days[0].BodyBounds;

            if (unit.Bounds.Bottom > view.Bottom)
            {
                TimeUnitsOffset = -Convert.ToInt32(Math.Ceiling(unit.Date.TimeOfDay.TotalMinutes / (double)TimeScale))
                     + Renderer.GetVisibleTimeUnits();
            }
            else if (unit.Bounds.Top < view.Top)
            {
                TimeUnitsOffset = -Convert.ToInt32(Math.Ceiling(unit.Date.TimeOfDay.TotalMinutes / (double)TimeScale));
            }
        }