예제 #1
0
 private GridViewColumnGroup FindGroup(
     ColumnGroupCollection groups,
     GridViewColumn column)
 {
     foreach (GridViewColumnGroup group1 in (Collection <GridViewColumnGroup>)groups)
     {
         if (group1.Groups.Count > 0)
         {
             GridViewColumnGroup group2 = this.FindGroup(group1.Groups, column);
             if (group2 != null)
             {
                 return(group2);
             }
         }
         else
         {
             foreach (GridViewColumnGroupRow row in (Collection <GridViewColumnGroupRow>)group1.Rows)
             {
                 foreach (string columnName in (Collection <string>)row.ColumnNames)
                 {
                     if (columnName == column.Name)
                     {
                         return(group1);
                     }
                 }
             }
         }
     }
     return((GridViewColumnGroup)null);
 }
예제 #2
0
 public GridViewColumnGroup(string text, string name)
 {
     this.groups = new ColumnGroupCollection(this);
     this.rows   = new ColumnGroupRowCollection();
     this.rows.CollectionChanged += new NotifyCollectionChangedEventHandler(this.rows_CollectionChanged);
     this.text = text;
     this.name = name;
 }
예제 #3
0
        private IEnumerable <GridViewColumnGroup> GetAllGroups(
            ColumnGroupCollection collection)
        {
            foreach (GridViewColumnGroup gridViewColumnGroup in (Collection <GridViewColumnGroup>)collection)
            {
                yield return(gridViewColumnGroup);

                foreach (GridViewColumnGroup allGroup in this.GetAllGroups(gridViewColumnGroup.Groups))
                {
                    yield return(allGroup);
                }
            }
        }
        private void DropColumnGroup(
            ColumnGroupsViewDefinition view,
            GridViewColumnGroup group,
            RadPosition dropPosition)
        {
            ColumnGroupCollection groupCollection1 = this.FindGroupCollection(view, this.GridViewGroupColumn.Group);
            ColumnGroupCollection groupCollection2 = this.FindGroupCollection(view, group);
            int index = groupCollection1.IndexOf(this.GridViewGroupColumn.Group);

            if (groupCollection1 == groupCollection2 && groupCollection2 != null && groupCollection2.IndexOf(group) < index)
            {
                --index;
            }
            if (group.Parent != null)
            {
                group.Parent.Groups.Remove(group);
            }
            else
            {
                view.ColumnGroups.Remove(group);
            }
            if ((dropPosition & RadPosition.Bottom) != RadPosition.None && this.GridViewGroupColumn.Group.Rows.Count == 0)
            {
                this.GridViewGroupColumn.Group.Groups.Add(group);
            }
            else if ((dropPosition & RadPosition.Left) != RadPosition.None)
            {
                groupCollection1.Insert(index, group);
            }
            else if (index < groupCollection1.Count - 1)
            {
                groupCollection1.Remove(group);
                groupCollection1.Insert(index + 1, group);
            }
            else
            {
                groupCollection1.Add(group);
            }
            if (!group.IsVisible)
            {
                group.IsVisible = true;
            }
            ColumnGroupRowLayout rowLayout = this.TableElement.ViewElement.RowLayout as ColumnGroupRowLayout;

            rowLayout.InvalidateLayout();
            rowLayout.InvalidateRenderColumns();
            this.TableElement.ViewElement.UpdateRows(true);
        }
예제 #5
0
        public void Rebuild(ColumnGroupCollection rootGroups)
        {
            this.root       = new ColumnGroupLayoutNode();
            this.root.Level = 0;
            List <GridViewColumnGroup> gridViewColumnGroupList = new List <GridViewColumnGroup>();
            int index = 0;
            int num   = 0;

            foreach (GridViewColumnGroup rootGroup in (Collection <GridViewColumnGroup>)rootGroups)
            {
                if (rootGroup.IsVisible)
                {
                    if (rootGroup.PinPosition == PinnedColumnPosition.Left)
                    {
                        gridViewColumnGroupList.Insert(index, rootGroup);
                        ++index;
                    }
                    else if (rootGroup.PinPosition == PinnedColumnPosition.None)
                    {
                        gridViewColumnGroupList.Insert(index + num, rootGroup);
                        ++num;
                    }
                    else
                    {
                        gridViewColumnGroupList.Add(rootGroup);
                    }
                }
            }
            foreach (GridViewColumnGroup group in gridViewColumnGroupList)
            {
                if (group.IsVisible)
                {
                    ColumnGroupLayoutNode node = new ColumnGroupLayoutNode(group);
                    this.AddGroupsRecursively(node, group);
                    this.root.Children.Add(node);
                    node.Parent = this.root;
                }
            }
            this.systemColumns.Clear();
            foreach (GridViewColumn systemColumn in this.owner.SystemColumns)
            {
                this.systemColumns.Add(systemColumn, new ColumnGroupColumnData());
            }
            this.RebuildLayout(this.root);
            this.ResetOriginalBounds(this.root);
        }
예제 #6
0
 private IEnumerable <GridViewColumn> GetColumnGroups(
     ColumnGroupCollection groups)
 {
     foreach (GridViewColumnGroup group in (Collection <GridViewColumnGroup>)groups)
     {
         if (group.IsVisible)
         {
             foreach (GridViewColumn columnGroup in this.GetColumnGroups(group.Groups))
             {
                 yield return(columnGroup);
             }
         }
         else if (group.VisibleInColumnChooser && !group.IsVisible)
         {
             yield return((GridViewColumn) new GridViewGroupColumn(group));
         }
     }
 }
예제 #7
0
        public static string GetUniqueName(ColumnGroupCollection collection, string baseName)
        {
            if (string.IsNullOrEmpty(baseName))
            {
                return(string.Empty);
            }
            if (collection[baseName] == null && char.IsNumber(baseName[baseName.Length - 1]))
            {
                return(baseName);
            }
            int num = 1;

            while (collection.Contains(string.Format("{0}{1}", (object)baseName, (object)num)))
            {
                ++num;
            }
            return(baseName + (object)num);
        }
예제 #8
0
 public ColumnGroupsViewDefinition()
 {
     this.columnGroups = new ColumnGroupCollection(this);
 }