Beispiel #1
0
 public void UpdateGroupingFields()
 {
     if (this.Description == null || string.IsNullOrEmpty(this.Description.Expression))
     {
         this.groupFields = new GroupFieldElement[0];
     }
     else
     {
         this.panel.DisposeChildren();
         SortDescriptorCollection groupNames = this.Description.GroupNames;
         int count = groupNames.Count;
         List <GroupFieldElement> groupFieldElementList = new List <GroupFieldElement>();
         GridViewColumnCollection columns = this.TemplateElement.ViewTemplate.Columns;
         for (int index = 0; index < count; ++index)
         {
             GroupFieldElement groupFieldElement = new GroupFieldElement(this.TemplateElement, this.Description, groupNames[index]);
             if (groupFieldElement.Column != null)
             {
                 this.panel.Children.Add((RadElement)groupFieldElement);
                 groupFieldElementList.Add(groupFieldElement);
                 if (index < count - 1)
                 {
                     this.panel.Children.Add((RadElement) new GroupLinkElement(this.TemplateElement)
                     {
                         Type = GroupLinkElement.LinkType.NamesLink
                     });
                 }
             }
         }
         this.groupFields = groupFieldElementList.ToArray();
     }
 }
Beispiel #2
0
        protected virtual void CalcFinalRectRightToLeftBottomGroupLink(
            GroupElement fromGroupElement,
            GroupElement toGroupElement,
            out PointF beingPoint,
            out PointF endPoint)
        {
            GroupFieldElement groupingFieldElement1 = toGroupElement.GroupingFieldElements[0];
            GroupFieldElement groupingFieldElement2 = fromGroupElement.GroupingFieldElements[fromGroupElement.GroupingFieldElements.Count - 1];
            Rectangle         boundingRectangle1    = groupingFieldElement1.ControlBoundingRectangle;
            Rectangle         boundingRectangle2    = groupingFieldElement2.ControlBoundingRectangle;
            float             x1;
            float             y1;
            float             x2;
            float             y2;

            if (this.LinkPosition == TemplateGroupsElement.GroupLinkPosition.Bottom)
            {
                x1 = (float)(boundingRectangle1.Right + groupingFieldElement1.Padding.Right);
                y1 = (float)(boundingRectangle2.Bottom + groupingFieldElement2.Padding.Bottom);
                x2 = (float)(boundingRectangle2.Right - this.LinkOffset);
                y2 = (float)(boundingRectangle1.Bottom + Math.Abs(boundingRectangle2.Bottom - boundingRectangle1.Y));
            }
            else
            {
                x1 = (float)(boundingRectangle1.X + this.LinkOffset);
                y1 = (float)(boundingRectangle2.Y - Math.Abs(boundingRectangle2.Bottom - boundingRectangle1.Y));
                x2 = (float)(boundingRectangle2.X - groupingFieldElement2.Padding.Left);
                y2 = (float)(boundingRectangle1.Y - groupingFieldElement1.Padding.Top);
            }
            beingPoint = new PointF(x1, y1);
            endPoint   = new PointF(x2, y2);
        }
Beispiel #3
0
        protected override void OnPreviewDropTarget(PreviewDropTargetEventArgs e)
        {
            base.OnPreviewDropTarget(e);
            TemplateGroupsElement dropTarget = e.DropTarget as TemplateGroupsElement;

            if (dropTarget == null || dropTarget.CanDragOver(e.DragInstance))
            {
                return;
            }
            GroupFieldElement dragInstance = e.DragInstance as GroupFieldElement;

            if (dragInstance != null)
            {
                e.DropTarget = (ISupportDrop)dragInstance.TemplateElement;
            }
            else
            {
                e.DropTarget = (ISupportDrop)dropTarget.GroupPanelElement;
            }
        }
Beispiel #4
0
        protected virtual IGridDragDropBehavior GetDragDropBehavior()
        {
            IGridDragDropBehavior dragDropBehavior = (IGridDragDropBehavior)null;
            ISupportDrop          dropTarget       = this.DropTarget;

            if (dropTarget is GridHeaderCellElement)
            {
                dragDropBehavior = (IGridDragDropBehavior) new GridColumnDragDropBehvavior();
            }
            else if (dropTarget is GridDataRowElement)
            {
                dragDropBehavior = (IGridDragDropBehavior) new GridRowDragDropBehavior();
            }
            else
            {
                GroupFieldElement groupFieldElement = dropTarget as GroupFieldElement;
            }
            dragDropBehavior?.Initialize(this.GridViewElement);
            return(dragDropBehavior);
        }