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); }
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; } }
void CurrentScheduler_PreviewMouseMove(object sender, System.Windows.Input.MouseEventArgs e) { if (e.LeftButton == System.Windows.Input.MouseButtonState.Pressed && downHitInfo != null) { Size dragSize = System.Windows.Forms.SystemInformation.DragSize; Rectangle dragRect = new Rectangle(new Point(downHitPoint.X - dragSize.Width / 2, downHitPoint.Y - dragSize.Height / 2), dragSize); System.Windows.Point eventPoint = e.GetPosition(CurrentScheduler); if (!dragRect.Contains(new Point((int)eventPoint.X, (int)eventPoint.Y))) { System.Windows.DragDrop.DoDragDrop(CurrentScheduler, downHitInfo.ViewInfo.Resource, System.Windows.DragDropEffects.Move); downHitInfo = null; downHitPoint = Point.Empty; } } }
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); } } }
private void SchedulerControl_MouseMove(object sender, MouseEventArgs e) { // Obtain hit information under the test point. Point position = e.GetPosition(schedulerControl1); ISchedulerHitInfo hitInfo = schedulerControl1.CalcHitInfo(position); if (hitInfo != null) { this.hitResultsHeader.Text = "Hit Test Results"; StringBuilder builder = new StringBuilder(); builder.AppendLine(Enum.GetName(typeof(SchedulerHitTestType), hitInfo.HitTestType)); switch (hitInfo.HitTestType) { case SchedulerHitTestType.Appointment: AppointmentViewModel appViewModel = hitInfo.ViewModel as AppointmentViewModel; if (appViewModel != null) { builder.AppendLine("Subject: " + appViewModel.Appointment.Subject); builder.AppendLine("Start: " + appViewModel.Appointment.Start.ToString()); builder.AppendLine("End: " + appViewModel.Appointment.End.ToString()); } break; case SchedulerHitTestType.Cell: builder.AppendLine("Interval: " + hitInfo.ViewModel.Interval.ToString()); builder.AppendLine("Selected: " + hitInfo.ViewModel.IsSelected.ToString()); break; case SchedulerHitTestType.Ruler: TimeRulerCellViewModel rulerViewModel = hitInfo.ViewModel as TimeRulerCellViewModel; if (rulerViewModel != null) { builder.AppendLine("Time: " + rulerViewModel.Time.ToString()); builder.AppendLine("Time Scale: " + rulerViewModel.TimeScale.ToString()); } break; } this.hitResultsText.Text = builder.ToString(); } else { ClearResults(); } }
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(); } } }