コード例 #1
0
 /// <summary>
 /// Invokes event
 /// </summary>
 protected virtual void OnCellSelection(CellElement oldCell, CellElement newCell)
 {
     if (CellSelection != null)
     {
         CellSelection(oldCell, newCell);
     }
 }
コード例 #2
0
        /// <summary>
        /// Dispatches appropriate events and performs row selection in the grid
        /// </summary>
        public virtual void DispatchCellSelection(CellElement cell)
        {
            foreach (var col in m_Grid.m_Columns)
            {
                col.m_HasCellSelection = false;
            }

            if (m_Grid.CellSelectionAllowed)
            {
                m_HasCellSelection = true;
                OnCellSelection(m_Grid.SelectedCell, cell);
            }

            m_Grid.DispatchCellSelection(cell);
        }
コード例 #3
0
        private void rebuildAllCells(bool force)//true to force rebuild inspite of Begin/End Change
        {
            if (!force && m_BatchChangeCounter > 0)
            {
                m_BatchChangeNeedsRebuild = true;
                return;
            }

            try
            {
                if (m_CellView == null)
                {
                    return;
                }

                if (m_Disposed)
                {
                    return;
                }

                //forget all previously selected cells
                m_SelectedCell = null;

                m_CommentElement = null;

                m_CellView.DeleteAllElements();
                buildCells();
            }
            finally
            {
                if (!force)
                {
                    m_BatchChangeNeedsRebuild = false;
                }
            }
        }
コード例 #4
0
        /// <summary>
        /// Dispatches appropriate events and performs row selection in the grid
        /// </summary>
        public virtual void DispatchCellSelection(CellElement cell)
        {
            if (cell.Row != null)
            {
                if (!m_MultiSelect)
                {
                    if ((Control.ModifierKeys & Keys.Control) > 0)
                    {
                        UnSelectRow(cell.Row);
                    }
                    else
                    {
                        SelectRow(cell.Row);
                    }
                }
                else //multiselect
                {
                    if ((Control.ModifierKeys & Keys.Shift) > 0)
                    {
                        if (!SelectedRows.Any())
                        {
                            SelectRow(cell.Row);
                            return;
                        }

                        var first = m_RowMap.FindIndex(re => re.Row == SelectedRows.First());
                        var last  = m_RowMap.FindIndex(re => re.Row == SelectedRows.Last());
                        var cur   = m_RowMap.FindIndex(re => re.Row == cell.Row);

                        if (cur < 0)
                        {
                            return;
                        }

                        UnSelectAllRows();

                        if (last <= cur)
                        {
                            for (var i = last; i <= cur; ++i)
                            {
                                SelectRow(m_RowMap[i].Row);
                            }
                        }
                        else if (cur <= first)
                        {
                            for (var i = cur; i <= first; ++i)
                            {
                                SelectRow(m_RowMap[i].Row);
                            }
                        }
                    }
                    else if (!m_MultiSelectWithCtrl || (Control.ModifierKeys & Keys.Control) > 0)
                    {
                        if (IsRowSelected(cell.Row))
                        {
                            UnSelectRow(cell.Row);
                        }
                        else
                        {
                            SelectRow(cell.Row);
                        }
                    }
                    else
                    {
                        UnSelectAllRows();
                        SelectRow(cell.Row);
                    }
                }
            }

            if (m_CellSelectionAllowed)
            {
                try
                {
                    rebuildAllCells(true);//must force the rebuild or event will be invalid
                    OnCellSelection(m_SelectedCell, cell);
                }finally{
                    m_SelectedCell = cell;
                }
            }
        }
コード例 #5
0
 internal ColumnResizeElement(CellView host, CellElement headerCell) : base(host)
 {
     m_HeaderCell = headerCell;
     m_Grid       = m_HeaderCell.Column.Grid;
 }