示例#1
0
        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();
                 }
             }
         }
     }
 }
示例#3
0
        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();
            }
        }
示例#6
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;
            }
        }
        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();
            }
        }
示例#8
0
        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);
            }
        }
示例#11
0
        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);
            }
        }
示例#15
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();
                }
            }
        }
    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;
            }
        }
示例#18
0
        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);
                    }
                }
            }
        }
示例#19
0
        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));
            }
        }
示例#20
0
        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);
        }