public virtual void OnViewAttachedToWindow(AbstractViewHolder viewHolder)
        {
            AbstractViewHolder.SelectionState selectionState =
                mTableView.GetSelectionHandler().GetColumnSelectionState(viewHolder.AdapterPosition);
            // Control to ignore selection color
            if (!mTableView.IsIgnoreSelectionColors())
            {
                // Change background color of the view considering it's selected state
                mTableView.GetSelectionHandler()
                .ChangeColumnBackgroundColorBySelectionStatus(viewHolder, selectionState);
            }

            // Change selection status
            viewHolder.SetSelected(selectionState);
            // Control whether the TableView is sortable or not.
            if (mTableView.IsSortable())
            {
                if (viewHolder is AbstractSorterViewHolder)
                {
                    // Get its sorting state
                    SortState state = GetColumnSortHelper().GetSortingStatus(viewHolder.AdapterPosition);
                    // Fire onSortingStatusChanged
                    ((AbstractSorterViewHolder)viewHolder).OnSortingStatusChanged(state);
                }
            }
        }
        protected internal override bool ClickAction(RecyclerView view, MotionEvent e)
        {
            // Get interacted view from x,y coordinate.
            Android.Views.View childView = view.FindChildViewUnder(e.GetX(), e.GetY());
            if (childView != null)
            {
                // Find the view holder
                AbstractViewHolder holder = (AbstractViewHolder)mRecyclerView.GetChildViewHolder(childView);
                int column = holder.AdapterPosition;
                // Control to ignore selection color
                if (!mTableView.IsIgnoreSelectionColors())
                {
                    mSelectionHandler.SetSelectedColumnPosition(holder, column);
                }

                if (GetTableViewListener() != null)
                {
                    // Call ITableView listener for item click
                    GetTableViewListener().OnColumnHeaderClicked(holder, column);
                }

                return(true);
            }

            return(false);
        }
 public virtual void OnViewDetachedFromWindow(AbstractViewHolder holder)
 {
     base.OnViewDetachedFromWindow(holder);
     // Clear selection status of the view holder
     mTableView.GetSelectionHandler().ChangeSelectionOfRecyclerView(
         ((CellRecyclerViewAdapter.CellRowViewHolder)holder).recyclerView,
         AbstractViewHolder.SelectionState.Unselected, mTableView.GetUnSelectedColor());
 }
 public virtual void OnViewRecycled(AbstractViewHolder holder)
 {
     base.OnViewRecycled(holder);
     CellRecyclerViewAdapter.CellRowViewHolder viewHolder = (CellRecyclerViewAdapter.CellRowViewHolder)holder;
     // ScrolledX should be cleared at that time. Because we need to prepare each
     // recyclerView
     // at onViewAttachedToWindow process.
     viewHolder.recyclerView.ClearScrolledX();
 }
        public virtual void OnBindViewHolder(AbstractViewHolder holder, int yPosition)
        {
            CellRecyclerViewAdapter.CellRowViewHolder viewHolder = (CellRecyclerViewAdapter.CellRowViewHolder)holder;
            CellRowRecyclerViewAdapter viewAdapter = (CellRowRecyclerViewAdapter)viewHolder.recyclerView.GetAdapter();
            // Get the list
            IList <ICell> rowList = mItemList[yPosition];

            // Set Row position
            viewAdapter.SetYPosition(yPosition);
            // Set the list to the adapter
            viewAdapter.SetItems(rowList);
        }
        public virtual AbstractViewHolder[] GetVisibleViewHolders()
        {
            int visibleChildCount = FindLastVisibleItemPosition() - FindFirstVisibleItemPosition() + 1;
            int index             = 0;

            AbstractViewHolder[] views = new AbstractViewHolder[visibleChildCount];
            for (int i = FindFirstVisibleItemPosition(); i < FindLastVisibleItemPosition() + 1; i++)
            {
                views[index] = (AbstractViewHolder)mCellRowRecyclerView.FindViewHolderForAdapterPosition(i);
                index++;
            }

            return(views);
        }
        public virtual void OnViewAttachedToWindow(AbstractViewHolder viewHolder)
        {
            base.OnViewAttachedToWindow(viewHolder);
            AbstractViewHolder.SelectionState selectionState =
                mTableView.GetSelectionHandler().GetRowSelectionState(viewHolder.AdapterPosition);
            // Control to ignore selection color
            if (!mTableView.IsIgnoreSelectionColors())
            {
                // Change background color of the view considering it's selected state
                mTableView.GetSelectionHandler().ChangeRowBackgroundColorBySelectionStatus(viewHolder, selectionState);
            }

            // Change selection status
            viewHolder.SetSelected(selectionState);
        }
Esempio n. 8
0
        private void SortingStatusChanged(int column, SortState sortState)
        {
            AbstractViewHolder holder = mColumnHeaderLayoutManager.GetViewHolder(column);

            if (holder != null)
            {
                if (holder is AbstractSorterViewHolder)
                {
                    ((AbstractSorterViewHolder)holder).OnSortingStatusChanged(sortState);
                }
                else
                {
                    throw new ArgumentException("Column Header ViewHolder must extend " + "AbstractSorterViewHolder");
                }
            }
        }
        public virtual AbstractViewHolder[] GetVisibleCellViewsByColumnPosition(int xPosition)
        {
            int visibleChildCount = FindLastVisibleItemPosition() - FindFirstVisibleItemPosition() + 1;
            int index             = 0;

            AbstractViewHolder[] viewHolders = new AbstractViewHolder[visibleChildCount];
            for (int i = FindFirstVisibleItemPosition(); i < FindLastVisibleItemPosition() + 1; i++)
            {
                CellRecyclerView   cellRowRecyclerView = (CellRecyclerView)FindViewByPosition(i);
                AbstractViewHolder holder =
                    (AbstractViewHolder)cellRowRecyclerView.FindViewHolderForAdapterPosition(xPosition);
                viewHolders[index] = holder;
                index++;
            }

            return(viewHolders);
        }
        public virtual void OnViewAttachedToWindow(AbstractViewHolder holder)
        {
            base.OnViewAttachedToWindow(holder);
            CellRecyclerViewAdapter.CellRowViewHolder viewHolder = (CellRecyclerViewAdapter.CellRowViewHolder)holder;
            ScrollHandler scrollHandler = mTableView.GetScrollHandler();

            // The below code helps to display a new attached recyclerView on exact scrolled position.
            ((ColumnLayoutManager)viewHolder.recyclerView.GetLayoutManager()).ScrollToPositionWithOffset(
                scrollHandler.GetColumnPosition(), scrollHandler.GetColumnPositionOffset());
            SelectionHandler selectionHandler = mTableView.GetSelectionHandler();

            if (selectionHandler.IsAnyColumnSelected())
            {
                AbstractViewHolder cellViewHolder =
                    (AbstractViewHolder)viewHolder.recyclerView.FindViewHolderForAdapterPosition(
                        selectionHandler.GetSelectedColumnPosition());
                if (cellViewHolder != null)
                {
                    // Control to ignore selection color
                    if (!mTableView.IsIgnoreSelectionColors())
                    {
                        cellViewHolder.SetBackgroundColor(mTableView.GetSelectedColor());
                    }

                    cellViewHolder.SetSelected(AbstractViewHolder.SelectionState.Selected);
                }
            }
            else
            {
                if (selectionHandler.IsRowSelected(holder.AdapterPosition))
                {
                    selectionHandler.ChangeSelectionOfRecyclerView(viewHolder.recyclerView,
                                                                   AbstractViewHolder.SelectionState.Selected, mTableView.GetSelectedColor());
                }
            }
        }
Esempio n. 11
0
 public virtual void OnBindViewHolder(AbstractViewHolder holder, int xPosition)
 {
     mTableAdapter.OnBindCellViewHolder(holder, GetItem(xPosition), xPosition, mYPosition);
 }
 public virtual void OnBindViewHolder(AbstractViewHolder holder, int position)
 {
     mTableAdapter.OnBindColumnHeaderViewHolder(holder, GetItem(position), position);
 }