private void schedulerControl1_AppointmentResizing(object sender, AppointmentResizeEventArgs e) { if (schedulerControl1.ActiveViewType == SchedulerViewType.Day) { Point mousePosition = schedulerControl1.PointToClient(Form.MousePosition); SchedulerHitInfo shi = schedulerControl1.ActiveView.ViewInfo.CalcHitInfo(mousePosition, true); int borderPos = e.ResizedSide == ResizedSide.AtStartTime ? shi.ViewInfo.Bounds.Y : shi.ViewInfo.Bounds.Y + shi.ViewInfo.Bounds.Height; if (Math.Abs(mousePosition.Y - borderPos) > 1) { double perc = (double)(mousePosition.Y - shi.ViewInfo.Bounds.Y) / (double)shi.ViewInfo.Bounds.Height; TimeSpan timetoAdd = TimeSpan.FromMinutes(e.HitInterval.Duration.TotalMinutes * perc); if (e.ResizedSide == ResizedSide.AtStartTime) { e.EditedAppointment.Start = e.HitInterval.Start + timetoAdd; e.EditedAppointment.End = e.SourceAppointment.End; } else { e.EditedAppointment.Start = e.SourceAppointment.Start; e.EditedAppointment.End = e.HitInterval.Start + timetoAdd; } e.Handled = true; } } }
private void schedulerControl1_MouseUp(object sender, MouseEventArgs e) { if (e.Button == System.Windows.Forms.MouseButtons.Left) { SchedulerViewInfoBase viewInfo = schedulerControl1.ActiveView.ViewInfo; SchedulerHitInfo hitInfo = viewInfo.CalcHitInfo(e.Location, false); if (hitInfo.HitTest == SchedulerHitTest.AppointmentContent) { AppointmentViewInfo info = (AppointmentViewInfo)hitInfo.ViewInfo; foreach (ViewInfoItem item in info.Items) { ViewInfoImageItem imageItemInfo = item as ViewInfoImageItem; if (imageItemInfo == null) { continue; } Rectangle itemBounds = info.ConvertToVisualBounds(item.Bounds); if (itemBounds.Contains(e.Location)) { MyMessageBox mb = new MyMessageBox(((ViewInfoImageItem)item).Image, "Got it!"); mb.ShowDialog(); } } } } }
private void GetTargetTime(Point pt) { SchedulerHitInfo hitInfo = schedulerControl1.ActiveView.ViewInfo.CalcHitInfo(pt, true); if (hitInfo.HitTest == SchedulerHitTest.Cell) { SelectableIntervalViewInfo cell = hitInfo.ViewInfo; targetTime = cell.Interval.Start; } else { targetTime = DateTime.MinValue; } }
private bool SchedulerCanStartDrag(SchedulerControl source, MouseButtonEventArgs e, ref object dragData) { ISchedulerHitInfo hitInfo = SchedulerHitInfo.CreateSchedulerHitInfo(source, e.GetPosition(source)); VisualAppointmentViewInfo vavi = hitInfo.ViewInfo as VisualAppointmentViewInfo; if (vavi != null) { dragData = AppointmentToScheduleTask(((IAppointmentView)vavi).Appointment); return(dragData != null); } return(false); }
private void schedulerControl1_DoubleClick(object sender, EventArgs e) { Point pt = schedulerControl1.PointToClient(Control.MousePosition); SchedulerHitInfo schHitInfo = schedulerControl1.ActiveView.ViewInfo.CalcHitInfo(pt, false); if (schHitInfo.HitTest == SchedulerHitTest.AppointmentContent) { Appointment dropAppointment = ((AppointmentViewInfo)schHitInfo.ViewInfo).Appointment; PROJECTWORKPACKDetailsActivityAssignment view = new PROJECTWORKPACKDetailsActivityAssignment(TASK_WBSAppointments, WORKPACK_Dashboards, WORKPACK_ASSIGNMENTSViewModel, ISMODIFIED, dropAppointment); view.ShowDialog(); view.Dispose(); CalculateAppointmentsUnits(); } }
void CurrentScheduler_PreviewMouseDown(object sender, System.Windows.Input.MouseButtonEventArgs e) { downHitInfo = null; downHitPoint = Point.Empty; System.Windows.Point eventPoint = e.GetPosition(CurrentScheduler); ISchedulerHitInfo hitInfo = SchedulerHitInfo.CreateSchedulerHitInfo(CurrentScheduler, eventPoint); if (hitInfo.HitTest == DevExpress.XtraScheduler.Drawing.SchedulerHitTest.ResourceHeader) { downHitInfo = hitInfo; downHitPoint = new Point((int)eventPoint.X, (int)eventPoint.Y); e.Handled = true; } }
private void schedulerControl1_DragDrop(object sender, DragEventArgs e) { WORKPACK_Dashboard dragDropWorkpack = (WORKPACK_Dashboard)((DataObject)e.Data).GetData(typeof(WORKPACK_Dashboard)); Point pt = schedulerControl1.PointToClient(Control.MousePosition); SchedulerHitInfo schHitInfo = schedulerControl1.ActiveView.ViewInfo.CalcHitInfo(pt, false); if (schHitInfo.HitTest == SchedulerHitTest.AppointmentContent) { var dropAppointment = ((AppointmentViewInfo)schHitInfo.ViewInfo).Appointment; PROJECTWORKPACKDetailsWorkpackAssignment view = new PROJECTWORKPACKDetailsWorkpackAssignment(TASK_WBSAppointments, WORKPACK_Dashboards, WORKPACK_ASSIGNMENTSViewModel, ISMODIFIED, dropAppointment, dragDropWorkpack); view.ShowDialog(); view.Dispose(); CalculateAppointmentsUnits(); } }
public override void OnMouseDown(MouseEventArgs e) { SchedulerControl control = _schedulerProvider as SchedulerControl; SchedulerHitInfo hitInfo = control.ActiveView.ViewInfo.CalcHitInfo(e.Location, false); if (hitInfo.HitTest == SchedulerHitTest.ResourceHeader) { ResourceHeader resHeader = hitInfo.ViewInfo as ResourceHeader; Rectangle rect = new Rectangle(resHeader.Bounds.X + 2, resHeader.Bounds.Y + 2, 16, 16); if (rect.Contains(e.Location)) { return; } } base.OnMouseDown(e); }
public override void OnMouseDown(PortableMouseEventArgs e) { downHitInfo = null; downHitPoint = Point.Empty; SchedulerHitInfo hitInfo = (provider as SchedulerControl).ActiveView.ViewInfo.CalcHitInfo(e.Location, false); if (hitInfo.HitTest == SchedulerHitTest.ResourceHeader) { downHitInfo = hitInfo; downHitPoint = e.Location; } else { base.OnMouseDown(e); } }
// Add a new appointment initialized with Car data. private void DoDrop(Point point, CarDragData data) { SchedulerHitInfo hitInfo = schedulerControl1.ActiveView.ViewInfo.CalcHitInfo(point, true); if (hitInfo.HitTest == SchedulerHitTest.Cell) { // Obtain the time interval view info. SelectableIntervalViewInfo cell = hitInfo.ViewInfo; // Add an appointment. Appointment apt = schedulerStorage1.CreateAppointment(AppointmentType.Normal, cell.Interval.Start, TimeSpan.FromHours(4)); apt.Subject = data.Model; apt.Description = data.Description; schedulerStorage1.Appointments.Add(apt); } }
private void schedulerControl1_DragOver(object sender, DragEventArgs e) { SchedulerControl scheduler = sender as SchedulerControl; if (scheduler == null) { return; } Point p = scheduler.PointToClient(new Point(e.X, e.Y)); SchedulerHitInfo info = scheduler.DayView.ViewInfo.CalcHitInfo(p, true); if (info.HitTest == SchedulerHitTest.AllDayArea) { e.Effect = DragDropEffects.None; } }
public void scheduler_Drop(object sender, DragAndDropEventArgs e) { ISchedulerHitInfo hitInfo = SchedulerHitInfo.CreateSchedulerHitInfo(schedulerControl1, e.Location); VisualSelectableIntervalViewInfo vsivi = hitInfo.ViewInfo as VisualSelectableIntervalViewInfo; if (vsivi != null) { IList dragData = (IList)e.DragData; for (int i = 0; i < dragData.Count; i++) { ((IList)gridControl1.ItemsSource).Remove(dragData[i]); Appointment apt = ScheduleTaskToAppointment(dragData[i] as ScheduleTask); apt.Start = vsivi.Interval.Start; schedulerControl1.Storage.AppointmentStorage.Add(apt); } } }
void CurrentScheduler_DragDrop(object sender, System.Windows.Forms.DragEventArgs e) { if (e.Data.GetDataPresent(typeof(DevExpress.XtraScheduler.Resource))) { SchedulerHitInfo dropHitInfo = CurrentScheduler.ActiveView.ViewInfo.CalcHitInfo(CurrentScheduler.PointToClient(new Point(e.X, e.Y)), false); if (dropHitInfo.HitTest == SchedulerHitTest.ResourceHeader) { Resource sourceResource = e.Data.GetData(typeof(DevExpress.XtraScheduler.Resource)) as DevExpress.XtraScheduler.Resource; Resource targetResource = dropHitInfo.ViewInfo.Resource; if (sourceResource != targetResource) { object sourceResourceSortOrder = sourceResource.CustomFields[CustomFieldName]; sourceResource.CustomFields[CustomFieldName] = targetResource.CustomFields[CustomFieldName]; targetResource.CustomFields[CustomFieldName] = sourceResourceSortOrder; ApplySorting(); } } } }
public override void OnMouseMove(PortableMouseEventArgs e) { if (e.Button == PortableMouseButtons.Left && downHitInfo != null) { Size dragSize = SystemInformation.DragSize; Rectangle dragRect = new Rectangle(new Point(downHitPoint.X - dragSize.Width / 2, downHitPoint.Y - dragSize.Height / 2), dragSize); if (!dragRect.Contains(new Point(e.X, e.Y))) { (provider as SchedulerControl).DoDragDrop(downHitInfo.ViewInfo.Resource, DragDropEffects.All); downHitInfo = null; downHitPoint = Point.Empty; } } else { base.OnMouseMove(e); } }
void CurrentScheduler_Drop(object sender, System.Windows.DragEventArgs e) { if (downHitInfo == null) { return; } ISchedulerHitInfo dropHitInfo = SchedulerHitInfo.CreateSchedulerHitInfo(CurrentScheduler, e.GetPosition(CurrentScheduler)); if (dropHitInfo.HitTest == DevExpress.XtraScheduler.Drawing.SchedulerHitTest.ResourceHeader) { Resource targetResource = dropHitInfo.ViewInfo.Resource; Resource sourceResource = downHitInfo.ViewInfo.Resource; if (targetResource != sourceResource) { int sourceResourceSortOrder = Convert.ToInt32(sourceResource.CustomFields[CustomFieldName]); sourceResource.CustomFields[CustomFieldName] = targetResource.CustomFields[CustomFieldName]; targetResource.CustomFields[CustomFieldName] = sourceResourceSortOrder; ApplySorting(); } } }
public static HitTimeCellInfo CreateHitTimeCellInfo(SchedulerControl control, Point mousePosition) { SchedulerControlHitInfo hitInfo = control.ActiveView.CalcHitInfo(mousePosition); SchedulerHitInfo cellHitInfo = hitInfo.FindHitInfo(SchedulerHitTest.Cell) as SchedulerHitInfo; if (cellHitInfo == null) { return(null); } UIElement cell = cellHitInfo.VisualHit; if (cell == null) { return(null); } //--First method //GeneralTransform positionTransform = cell.TransformToAncestor(control); //Point areaPosition = positionTransform.Transform(new Point()); //--Second method Point areaPosition = control.PointFromScreen(cell.PointToScreen(new Point())); Rect timeCellBounds = new Rect(areaPosition, cell.RenderSize); double percent = 0d; if (control.ActiveViewType == DevExpress.XtraScheduler.SchedulerViewType.Timeline) { percent = (timeCellBounds.Width != 0) ? (double)(mousePosition.X - timeCellBounds.X) / (double)timeCellBounds.Width : 0; } else { percent = (timeCellBounds.Height != 0) ? (double)(mousePosition.Y - timeCellBounds.Y) / (double)timeCellBounds.Height : 0; } TimeSpan timeShift = TimeSpan.FromMinutes(cellHitInfo.ViewInfo.Interval.Duration.TotalMinutes * percent); return(new HitTimeCellInfo(cellHitInfo.ViewInfo, timeShift, timeCellBounds)); }
private void schedulerControl1_DragOver(object sender, DragEventArgs e) { Point pt = schedulerControl1.PointToClient(Control.MousePosition); SchedulerHitInfo schHitInfo = schedulerControl1.ActiveView.ViewInfo.CalcHitInfo(pt, false); if (schHitInfo.HitTest == SchedulerHitTest.AppointmentContent) { Appointment moveAppointment = ((AppointmentViewInfo)schHitInfo.ViewInfo).Appointment; if (moveAppointment.StatusKey.ToString() == AppointmentActivityType.Milestone.ToString()) { e.Effect = DragDropEffects.None; } else { schedulerControl1.GanttView.SelectAppointment(moveAppointment); e.Effect = DragDropEffects.All; } } else { e.Effect = DragDropEffects.None; } }
private void SchedulerControl1_MouseClick(object sender, MouseEventArgs e) { DateTime date = DateTime.Now; bBUS = new BookingBUS(); List <DTO.Booking> list = bBUS.getList(date); SchedulerHitInfo hitInfo = schedulerControl1.ActiveView.ViewInfo.CalcHitInfo(e.Location, false); if (hitInfo.HitTest == SchedulerHitTest.AppointmentContent) { foreach (DTO.Booking b in list) { foreach (Appointment myAppt in schedulerControl1.SelectedAppointments) { //MessageBox.Show(myAppt.Description); loadInfo(b); } } } }
private void schedulerControl1_MouseMove(object sender, MouseEventArgs e) { try { Point pos = new Point(e.X, e.Y); SchedulerViewInfoBase viewInfo = schedulerControl1.ActiveView.ViewInfo; SchedulerHitInfo hitInfo = viewInfo.CalcHitInfo(pos, false); if (hitInfo.HitTest == SchedulerHitTest.AppointmentContent) { apptSelected = ((AppointmentViewInfo)hitInfo.ViewInfo).Appointment; whatsSelected = Selection.Appointment; } else if (schedulerControl1.ActiveView.Type == SchedulerViewType.Month && hitInfo.HitTest == SchedulerHitTest.Cell) { int diff = pos.Y - ((SelectableIntervalViewInfo)hitInfo.ViewInfo).Bounds.Y; long ticksPerPixel = ((SelectableIntervalViewInfo)hitInfo.ViewInfo).Interval.Duration.Ticks / ((SelectableIntervalViewInfo)hitInfo.ViewInfo).Bounds.Height; long ticksCount = (long)ticksPerPixel * diff; dateSel = ((SelectableIntervalViewInfo)hitInfo.ViewInfo).Interval.Start.AddTicks(ticksCount); whatsSelected = Selection.Date; } else if (hitInfo.HitTest == SchedulerHitTest.None) { whatsSelected = Selection.Nothing; } else { whatsSelected = Selection.Nothing; } } catch (Exception ex) { MessageBox.Show(MiscStuff.GetAllMessages(ex)); } }
private void schedulerControl1_MouseMove(object sender, MouseEventArgs e) { SchedulerControl scheduler = sender as SchedulerControl; if (scheduler == null) { return; } Point pos = new Point(e.X, e.Y); SchedulerViewInfoBase viewInfo = schedulerControl1.ActiveView.ViewInfo; SchedulerHitInfo hitInfo = viewInfo.CalcHitInfo(pos, false); if (hitInfo.HitTest == SchedulerHitTest.AppointmentContent) { Appointment apt = ((AppointmentViewInfo)hitInfo.ViewInfo).Appointment; Text = apt.Subject; } else if (scheduler.ActiveView.Type == SchedulerViewType.Day && hitInfo.HitTest == SchedulerHitTest.Cell) { int diff = pos.Y - hitInfo.ViewInfo.Bounds.Y; long ticksPerPixel = hitInfo.ViewInfo.Interval.Duration.Ticks / hitInfo.ViewInfo.Bounds.Height; long ticksCount = ticksPerPixel * diff; DateTime actualTime = hitInfo.ViewInfo.Interval.Start.AddTicks(ticksCount); Text = actualTime.ToString(); } else if (hitInfo.HitTest == SchedulerHitTest.None) { Text = Application.ProductName; } else { Text = string.Empty; } }
protected internal SelectableIntervalViewInfo GetTimeCellViewInfo() { SchedulerHitInfo shi = control.ActiveView.ViewInfo.CalcHitInfo(MousePosition, true); return(shi.ViewInfo); }
protected internal AppointmentViewInfo GetAppointmentViewInfo() { SchedulerHitInfo shi = control.ActiveView.ViewInfo.CalcHitInfo(MousePosition, false); return((shi.HitTest == SchedulerHitTest.AppointmentContent) ? (AppointmentViewInfo)shi.ViewInfo : null); }