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);
        }
Example #2
0
        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;
            }
        }
Example #3
0
 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();
            }
        }
Example #6
0
        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();
                }
            }
        }