public virtual void InitializeMenuItems(VirtualGridCellElement cell) { this.currentContext = new VirtualGridCellInfo(cell.RowIndex, cell.ColumnIndex, cell.ViewInfo); if (cell is VirtualGridHeaderCellElement) { this.InitializeHeaderCellContextMenu((VirtualGridHeaderCellElement)cell); } else if (cell is VirtualGridNewCellElement) { this.InitializeNewRowContextMenu(); } else if (cell is VirtualGridFilterCellElement) { this.InitializeFilterCellContextMenu(); } else if (cell is VirtualGridIndentCellElement) { if (cell.RowIndex < 0) { return; } this.InitializeRowContextMenu(); } else { if (cell == null) { return; } this.InitializeDataCellContextMenu(); } }
protected override SizeF MeasureElementCore(RadElement element, SizeF availableSize) { int num = 0; if (this.RowElement.TableElement.ColumnScroller.ScrollMode == ItemScrollerScrollModes.Discrete) { for (int itemIndex = 0; itemIndex < this.RowElement.TableElement.ColumnScroller.Scrollbar.Value; ++itemIndex) { num += this.RowElement.TableElement.ColumnScroller.GetScrollHeight(this.RowElement.TableElement.ViewInfo.ColumnsViewState.GetItemSize(itemIndex)); } } else { num = this.RowElement.TableElement.HScrollBar.Value; } VirtualGridCellElement virtualGridCellElement = element as VirtualGridCellElement; int itemOffset = this.RowElement.ViewInfo.ColumnsViewState.GetItemOffset(virtualGridCellElement.Data); int itemSize = this.RowElement.ViewInfo.ColumnsViewState.GetItemSize(virtualGridCellElement.Data); element.Measure(availableSize); if (itemOffset + itemSize > num && itemOffset < num) { return(new SizeF((float)(itemOffset + itemSize - num), element.DesiredSize.Height)); } return(element.DesiredSize); }
public VirtualGridCellElementMouseEventArgs( VirtualGridCellElement cellElement, VirtualGridViewInfo viewInfo, MouseEventArgs mouseEventArgs) : base(cellElement, viewInfo) { this.mouseEventArgs = mouseEventArgs; }
public VirtualGridCellPaintEventArgs( VirtualGridCellElement cellElement, VirtualGridViewInfo viewInfo, Graphics graphics) : base(cellElement, viewInfo) { this.graphics = graphics; }
protected virtual void OnSortAscendingItemClick(object sender, EventArgs e) { VirtualGridCellElement cellElement = this.GridElement.FindCellElement(this.currentContext.RowIndex, this.currentContext.ColumnIndex, this.currentContext.ViewInfo); this.currentContext.ViewInfo.SortDescriptors.BeginUpdate(); this.currentContext.ViewInfo.SortDescriptors.Remove(cellElement.FieldName); this.currentContext.ViewInfo.SortDescriptors.Add(new SortDescriptor(cellElement.FieldName, ListSortDirection.Ascending)); this.currentContext.ViewInfo.SortDescriptors.EndUpdate(); }
public bool CacheElement(IVirtualizedElement <int> element) { if (element is VirtualGridHeaderCellElement) { return(false); } VirtualGridCellElement virtualGridCellElement = element as VirtualGridCellElement; if (virtualGridCellElement == null || virtualGridCellElement.IsDisposed || (virtualGridCellElement.IsDisposing || this.cachedCells.Contains(virtualGridCellElement))) { return(false); } this.cachedCells.Add(virtualGridCellElement); return(true); }
public IVirtualizedElement <int> GetElement(int data, object context) { VirtualGridCellElement virtualGridCellElement1 = (VirtualGridCellElement)null; for (int index = this.cachedCells.Count - 1; index >= 0; --index) { if (this.cachedCells[index].IsCompatible(data, context)) { virtualGridCellElement1 = this.cachedCells[index]; this.cachedCells.RemoveAt(index); break; } } if (virtualGridCellElement1 == null) { VirtualGridCellElement virtualGridCellElement2 = data != -1 ? (!(context is VirtualGridHeaderRowElement) ? (!(context is VirtualGridFilterRowElement) ? (!(context is VirtualGridNewRowElement) ? this.CreateElement(data, typeof(VirtualGridCellElement), context) : this.CreateElement(data, typeof(VirtualGridNewCellElement), context)) : this.CreateElement(data, typeof(VirtualGridFilterCellElement), context)) : this.CreateElement(data, typeof(VirtualGridHeaderCellElement), context)) : this.CreateElement(data, typeof(VirtualGridIndentCellElement), context); virtualGridCellElement2.Initialize(this.owner); virtualGridCellElement2.Attach(data, context); return((IVirtualizedElement <int>)virtualGridCellElement2); } virtualGridCellElement1.Attach(data, context); return((IVirtualizedElement <int>)virtualGridCellElement1); }
public void InvalidatePinnedColumns() { int num1 = 1 + this.tableElement.ColumnsViewState.TopPinnedItems.Count; int count = this.tableElement.ColumnsViewState.BottomPinnedItems.Count; while (this.leftPinnedColumns.Children.Count > num1) { this.leftPinnedColumns.Children[this.leftPinnedColumns.Children.Count - 1].Dispose(); } while (this.rightPinnedColumns.Children.Count > count) { this.rightPinnedColumns.Children[this.rightPinnedColumns.Children.Count - 1].Dispose(); } if (this.leftPinnedColumns.Children.Count == 0 || !(this.leftPinnedColumns.Children[0] is VirtualGridIndentCellElement)) { if (this.leftPinnedColumns.Children.Count > 0) { this.leftPinnedColumns.Children[0].Dispose(); } this.leftPinnedColumns.Children.Insert(0, (RadElement)this.scrollableColumns.ElementProvider.GetElement(-1, (object)this)); } while (this.leftPinnedColumns.Children.Count < num1) { this.leftPinnedColumns.Children.Add((RadElement)this.scrollableColumns.ElementProvider.GetElement(this.ViewInfo.ColumnsViewState.TopPinnedItems[this.ViewInfo.ColumnsViewState.TopPinnedItems.Count - 1], (object)this)); } for (int index = 0; index < this.leftPinnedColumns.Children.Count - 1; ++index) { int topPinnedItem = this.ViewInfo.ColumnsViewState.TopPinnedItems[index]; if (!((VirtualGridCellElement)this.leftPinnedColumns.Children[index + 1]).IsCompatible(topPinnedItem, (object)this)) { this.leftPinnedColumns.Children.RemoveAt(index + 1); VirtualGridCellElement element = (VirtualGridCellElement)this.scrollableColumns.ElementProvider.GetElement(topPinnedItem, (object)this); this.leftPinnedColumns.Children.Insert(index + 1, (RadElement)element); } } while (this.rightPinnedColumns.Children.Count < count) { this.rightPinnedColumns.Children.Add((RadElement)this.scrollableColumns.ElementProvider.GetElement(this.ViewInfo.ColumnsViewState.BottomPinnedItems[this.ViewInfo.ColumnsViewState.BottomPinnedItems.Count - 1], (object)this)); } for (int index = 0; index < this.rightPinnedColumns.Children.Count; ++index) { int bottomPinnedItem = this.ViewInfo.ColumnsViewState.BottomPinnedItems[index]; if (!((VirtualGridCellElement)this.rightPinnedColumns.Children[index]).IsCompatible(bottomPinnedItem, (object)this)) { this.rightPinnedColumns.Children.RemoveAt(index); VirtualGridCellElement element = (VirtualGridCellElement)this.scrollableColumns.ElementProvider.GetElement(bottomPinnedItem, (object)this); this.rightPinnedColumns.Children.Insert(index, (RadElement)element); } } VirtualGridIndentCellElement child = this.leftPinnedColumns.Children[0] as VirtualGridIndentCellElement; if (child.RowIndex != this.RowIndex) { child.Detach(); child.Attach(-1, (object)this, false); } int num2 = 1; int num3 = 0; foreach (int topPinnedItem in this.tableElement.ColumnsViewState.TopPinnedItems) { ((VirtualGridCellElement)this.leftPinnedColumns.Children[num2++]).Attach(topPinnedItem, (object)this, false); } foreach (int bottomPinnedItem in this.tableElement.ColumnsViewState.BottomPinnedItems) { ((VirtualGridCellElement)this.rightPinnedColumns.Children[num3++]).Attach(bottomPinnedItem, (object)this, false); } }