public override Point GetDragHintLocation(ISupportDrop dropTarget, Point mousePosition)
        {
            GridHeaderCellElement headerCellElement  = dropTarget as GridHeaderCellElement;
            Rectangle             boundingRectangle1 = headerCellElement.ControlBoundingRectangle;
            Rectangle             boundingRectangle2 = headerCellElement.RowElement.TableElement.ViewElement.ControlBoundingRectangle;

            if (boundingRectangle1.Right > boundingRectangle2.Right)
            {
                boundingRectangle1.Width -= boundingRectangle1.Right - boundingRectangle2.Right;
            }
            if (boundingRectangle1.X < boundingRectangle2.X)
            {
                boundingRectangle1.Width -= boundingRectangle2.X - boundingRectangle1.X;
                boundingRectangle1.X      = boundingRectangle2.X;
            }
            Rectangle screen = this.GridViewElement.ElementTree.Control.RectangleToScreen(boundingRectangle1);
            Size      size   = Size.Empty;

            if (this.DragHint.Image != null)
            {
                size = this.DragHint.Image.Size;
            }
            Padding margins      = this.DragHint.Margins;
            Point   dropLocation = headerCellElement.PointFromScreen(mousePosition);

            if (this.orientation == Orientation.Vertical)
            {
                return(new Point((RadGridViewDragDropService.IsDroppedAtLeft(dropLocation, headerCellElement.Size.Width) ? screen.X : screen.Right) - size.Width / 2, screen.Y - margins.Top));
            }
            return(new Point(screen.X - margins.Left, screen.Bottom - margins.Top - size.Height / 2));
        }
Ejemplo n.º 2
0
 protected override void ProcessColumnDrop(Point dropLocation, GridViewColumn column)
 {
     if (TemplateGroupsElement.RaiseGroupByChanging(this.TemplateElement.ViewTemplate, this.Description, NotifyCollectionChangedAction.ItemChanged))
     {
         return;
     }
     RadGridViewDragDropService.InsertOnLeftOrRight <SortDescriptor>(RadGridViewDragDropService.IsDroppedAtLeft(dropLocation, this.Size.Width), (Collection <SortDescriptor>) this.Description.GroupNames, this.sortDescription, new SortDescriptor(column.Name, ListSortDirection.Ascending));
     TemplateGroupsElement.RaiseGroupByChanged(this.TemplateElement.ViewTemplate, this.Description, NotifyCollectionChangedAction.ItemChanged);
 }
Ejemplo n.º 3
0
        protected virtual void ProcessColumnDrop(Point dropLocation, GridViewColumn column)
        {
            GroupDescriptor groupDescriptor = new GroupDescriptor();

            groupDescriptor.GroupNames.Add(new SortDescriptor(column.Name, ListSortDirection.Ascending));
            if (TemplateGroupsElement.RaiseGroupByChanging(this.templateElement.ViewTemplate, groupDescriptor, NotifyCollectionChangedAction.Add))
            {
                return;
            }
            RadGridViewDragDropService.InsertOnLeftOrRight <GroupDescriptor>(RadGridViewDragDropService.IsDroppedAtLeft(dropLocation, this.Size.Width), (Collection <GroupDescriptor>) this.description.Owner, this.description, groupDescriptor);
            TemplateGroupsElement.RaiseGroupByChanged(this.templateElement.ViewTemplate, groupDescriptor, NotifyCollectionChangedAction.Add);
        }
Ejemplo n.º 4
0
        private void ProcessGroupFieldDrop(Point dropLocation, GroupFieldDragDropContext context)
        {
            SortDescriptor   sortDescription  = context.SortDescription;
            GridViewTemplate viewTemplate     = context.ViewTemplate;
            GroupDescriptor  groupDescription = context.GroupDescription;

            if (TemplateGroupsElement.RaiseGroupByChanging(viewTemplate, groupDescription, NotifyCollectionChangedAction.Batch) || this.ProcessGroupFieldDropOverride(dropLocation, context))
            {
                return;
            }
            groupDescription.GroupNames.Remove(sortDescription);
            GroupDescriptor groupDescriptor = new GroupDescriptor();

            groupDescriptor.GroupNames.Add(sortDescription);
            RadGridViewDragDropService.InsertOnLeftOrRight <GroupDescriptor>(RadGridViewDragDropService.IsDroppedAtLeft(dropLocation, this.Size.Width), (Collection <GroupDescriptor>) this.description.Owner, this.description, groupDescriptor);
            if (groupDescription.GroupNames.Count == 0)
            {
                viewTemplate.DataView.GroupDescriptors.Remove(groupDescription);
            }
            TemplateGroupsElement.RaiseGroupByChanged(viewTemplate, groupDescriptor, NotifyCollectionChangedAction.Batch);
        }
Ejemplo n.º 5
0
        protected override bool ProcessGroupFieldDropOverride(
            Point dropLocation,
            GroupFieldDragDropContext context)
        {
            SortDescriptor   sortDescription  = context.SortDescription;
            GridViewTemplate viewTemplate     = context.ViewTemplate;
            GroupDescriptor  groupDescription = context.GroupDescription;

            groupDescription.GroupNames.Remove(sortDescription);
            if (RadGridViewDragDropService.IsDroppedAtLeft(dropLocation, this.Size.Width))
            {
                this.Description.GroupNames.Insert(0, sortDescription);
            }
            else
            {
                this.Description.GroupNames.Add(sortDescription);
            }
            if (groupDescription.GroupNames.Count == 0)
            {
                viewTemplate.DataView.GroupDescriptors.Remove(groupDescription);
            }
            TemplateGroupsElement.RaiseGroupByChanged(context.ViewTemplate, context.GroupDescription, NotifyCollectionChangedAction.Batch);
            return(true);
        }
Ejemplo n.º 6
0
        protected override bool ProcessGroupFieldDropOverride(
            Point dropLocation,
            GroupFieldDragDropContext context)
        {
            bool isDroppedAtLeft = RadGridViewDragDropService.IsDroppedAtLeft(dropLocation, this.Size.Width);

            if (this.Description != context.GroupDescription)
            {
                SortDescriptor   sortDescription = context.SortDescription;
                GridViewTemplate viewTemplate    = context.ViewTemplate;
                context.GroupDescription.GroupNames.Remove(sortDescription);
                if (context.GroupDescription.GroupNames.Count == 0)
                {
                    viewTemplate.DataView.GroupDescriptors.Remove(context.GroupDescription);
                }
                RadGridViewDragDropService.InsertOnLeftOrRight <SortDescriptor>(isDroppedAtLeft, (Collection <SortDescriptor>) this.Description.GroupNames, this.sortDescription, sortDescription);
            }
            else
            {
                RadGridViewDragDropService.MoveOnLeftOrRight <SortDescriptor>(isDroppedAtLeft, (Collection <SortDescriptor>) this.Description.GroupNames, this.sortDescription, context.SortDescription);
            }
            TemplateGroupsElement.RaiseGroupByChanged(context.ViewTemplate, context.GroupDescription, NotifyCollectionChangedAction.Batch);
            return(true);
        }