Пример #1
0
 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();
     }
 }
Пример #2
0
        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);
        }
Пример #3
0
 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;
 }
Пример #5
0
        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);
        }
Пример #8
0
        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);
            }
        }