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); }
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; }
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); }
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); }
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)); } } }
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); }
public ColumnGroupsViewDefinition() { this.columnGroups = new ColumnGroupCollection(this); }