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(); }
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); } }
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); } }
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); } }
public CalendarRendererTimeUnitEventArgs(CalendarRendererEventArgs original, CalendarTimeScaleUnit unit) : base(original) { _unit = unit; }
/// <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(); }
/// <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); }
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; } }
/// <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); } }
public CalendarRendererTimeUnitEventArgs(CalendarRendererEventArgs original, CalendarTimeScaleUnit unit) : base(original) { _unit = unit; }
/// <summary> /// Ivalidates the bounds of the specified unit /// </summary> /// <param name="unit"></param> public void Invalidate(CalendarTimeScaleUnit unit) { Invalidate(unit.Bounds); }
/// <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)); } }