From 3389d35ae247e9f5e3ba34064f5e44fed26599ed Mon Sep 17 00:00:00 2001 From: Cedric Ferry Date: Mon, 12 Feb 2018 12:07:35 +1100 Subject: [PATCH 01/64] refactored SelectionHandler - now selection state sit in each Cell (instead of the CellRecyclerView, so the recycler doesn't get confuse) - introduced a new ISelectableModel interface, that need to be implemented by Cell, RH and CH in order to get a selection state - introduced multiple selection --- .../tableviewsample/MainFragment.java | 1 + .../tableviewsample/tableview/model/Cell.java | 15 +- .../com/evrencoskun/tableview/ITableView.java | 4 + .../com/evrencoskun/tableview/TableView.java | 45 +- .../adapter/AbstractTableAdapter.java | 29 ++ .../tableview/adapter/ITableAdapter.java | 2 + .../recyclerview/CellRecyclerViewAdapter.java | 23 - .../CellRowRecyclerViewAdapter.java | 14 +- .../ColumnHeaderRecyclerViewAdapter.java | 14 +- .../RowHeaderRecyclerViewAdapter.java | 14 +- .../tableview/handler/ISelectableModel.java | 12 + .../tableview/handler/SelectionHandler.java | 442 ++++++++---------- .../CellRecyclerViewItemClickListener.java | 6 +- ...mnHeaderRecyclerViewItemClickListener.java | 2 +- ...owHeaderRecyclerViewItemClickListener.java | 2 +- 15 files changed, 331 insertions(+), 294 deletions(-) create mode 100644 tableview/src/main/java/com/evrencoskun/tableview/handler/ISelectableModel.java diff --git a/app/src/main/java/com/evrencoskun/tableviewsample/MainFragment.java b/app/src/main/java/com/evrencoskun/tableviewsample/MainFragment.java index 54b6ecc9..30ad5e47 100644 --- a/app/src/main/java/com/evrencoskun/tableviewsample/MainFragment.java +++ b/app/src/main/java/com/evrencoskun/tableviewsample/MainFragment.java @@ -91,6 +91,7 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle // Create Table view mTableView = createTableView(); + mTableView.setSelectable(true); mTableFilter = new Filter(mTableView); // Create an instance of a Filter and pass the // created TableView. diff --git a/app/src/main/java/com/evrencoskun/tableviewsample/tableview/model/Cell.java b/app/src/main/java/com/evrencoskun/tableviewsample/tableview/model/Cell.java index 2de25802..74548645 100644 --- a/app/src/main/java/com/evrencoskun/tableviewsample/tableview/model/Cell.java +++ b/app/src/main/java/com/evrencoskun/tableviewsample/tableview/model/Cell.java @@ -17,18 +17,21 @@ package com.evrencoskun.tableviewsample.tableview.model; +import com.evrencoskun.tableview.adapter.recyclerview.holder.AbstractViewHolder; import com.evrencoskun.tableview.filter.IFilterableModel; +import com.evrencoskun.tableview.handler.ISelectableModel; import com.evrencoskun.tableview.sort.ISortableModel; /** * Created by evrencoskun on 11/06/2017. */ -public class Cell implements ISortableModel, IFilterableModel { +public class Cell implements ISortableModel, IFilterableModel, ISelectableModel { private String mId; private Object mData; private String mFilterKeyword; + private AbstractViewHolder.SelectionState mSelectionState = AbstractViewHolder.SelectionState.UNSELECTED; public Cell(String id) { this.mId = id; @@ -83,5 +86,15 @@ public void setFilterKeyword(String filterKeyword) { public String getFilterableKeyword() { return mFilterKeyword; } + + @Override + public AbstractViewHolder.SelectionState getSelectionState() { + return mSelectionState; + } + + @Override + public void setSelectionState(AbstractViewHolder.SelectionState selectionState) { + mSelectionState = selectionState; + } } diff --git a/tableview/src/main/java/com/evrencoskun/tableview/ITableView.java b/tableview/src/main/java/com/evrencoskun/tableview/ITableView.java index a87267ae..cf36c44f 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/ITableView.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/ITableView.java @@ -50,6 +50,10 @@ public interface ITableView { boolean isSortable(); + boolean isSelectable(); + + void setSelectable(boolean selectable); + CellRecyclerView getCellRecyclerView(); CellRecyclerView getColumnHeaderRecyclerView(); diff --git a/tableview/src/main/java/com/evrencoskun/tableview/TableView.java b/tableview/src/main/java/com/evrencoskun/tableview/TableView.java index afebe9f8..b1543135 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/TableView.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/TableView.java @@ -97,6 +97,7 @@ public class TableView extends FrameLayout implements ITableView { private boolean mShowHorizontalSeparators = true; private boolean mShowVerticalSeparators = true; private boolean mIsSortable; + private boolean mIsSelectable; public TableView(@NonNull Context context) { super(context); @@ -345,6 +346,16 @@ public boolean isSortable() { return mIsSortable; } + @Override + public boolean isSelectable() { + return mIsSelectable; + } + + @Override + public void setSelectable(boolean selectable) { + mIsSelectable = selectable; + } + public void setShowHorizontalSeparators(boolean showSeparators) { this.mShowHorizontalSeparators = showSeparators; } @@ -511,43 +522,37 @@ public boolean isRowVisible(int row) { return mVisibilityHandler.isRowVisible(row); } + + + public void setSelectedRow(int row) { + mSelectionHandler.setSelectedRowPosition(row); + } + /** * Returns the index of the selected row, -1 if no row is selected. */ public int getSelectedRow() { - return mSelectionHandler.getSelectedRowPosition(); - } - - public void setSelectedRow(int row) { - // Find the row header view holder which is located on row position. - AbstractViewHolder rowViewHolder = (AbstractViewHolder) getRowHeaderRecyclerView() - .findViewHolderForAdapterPosition(row); - - - mSelectionHandler.setSelectedRowPosition(rowViewHolder, row); + //TODO: reuse logic in mSelectionHandler.rowHasItemSelected + // to return list of selected rows + return -1;//mSelectionHandler.getSelectedRowPosition(); } /** * Returns the index of the selected column, -1 if no column is selected. */ public int getSelectedColumn() { - return mSelectionHandler.getSelectedColumnPosition(); + //TODO: reuse logic in mSelectionHandler.columnHasItemSelected + // to return list of selected columns + return -1; //mSelectionHandler.getSelectedColumnPosition(); } public void setSelectedColumn(int column) { - // Find the column view holder which is located on column position . - AbstractViewHolder columnViewHolder = (AbstractViewHolder) getColumnHeaderRecyclerView() - .findViewHolderForAdapterPosition(column); - - mSelectionHandler.setSelectedColumnPosition(columnViewHolder, column); + mSelectionHandler.setSelectedColumnPosition(column); } public void setSelectedCell(int column, int row) { // Find the cell view holder which is located on x,y (column,row) position. - AbstractViewHolder cellViewHolder = getCellLayoutManager().getCellViewHolder - (column, row); - - mSelectionHandler.setSelectedCellPositions(cellViewHolder, column, row); + mSelectionHandler.setSelectedCellPositions(row, column); } @Override diff --git a/tableview/src/main/java/com/evrencoskun/tableview/adapter/AbstractTableAdapter.java b/tableview/src/main/java/com/evrencoskun/tableview/adapter/AbstractTableAdapter.java index f74b6e82..78f04980 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/adapter/AbstractTableAdapter.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/adapter/AbstractTableAdapter.java @@ -26,6 +26,7 @@ import com.evrencoskun.tableview.adapter.recyclerview.CellRecyclerViewAdapter; import com.evrencoskun.tableview.adapter.recyclerview.ColumnHeaderRecyclerViewAdapter; import com.evrencoskun.tableview.adapter.recyclerview.RowHeaderRecyclerViewAdapter; +import com.evrencoskun.tableview.adapter.recyclerview.holder.AbstractViewHolder; import java.util.ArrayList; import java.util.List; @@ -301,4 +302,32 @@ public void addAdapterDataSetChangedListener(AdapterDataSetChangedListener liste dataSetChangedListeners.add(listener); } + + public boolean isSelectable(){ + return mTableView.isSelectable(); + } + + public int getColorForSelection(AbstractViewHolder.SelectionState selectionState) { + switch (selectionState) { + case SELECTED: + return mTableView.getSelectedColor(); + case SHADOWED: + return mTableView.getShadowColor(); + } + return mTableView.getUnSelectedColor(); + } + + public int getColumnHeaderItemCount() { + if( mColumnHeaderItems != null) { + return mColumnHeaderItems.size(); + } + return 0; + } + + public int getRowHeaderItemCount() { + if( mRowHeaderItems != null) { + return mRowHeaderItems.size(); + } + return 0; + } } diff --git a/tableview/src/main/java/com/evrencoskun/tableview/adapter/ITableAdapter.java b/tableview/src/main/java/com/evrencoskun/tableview/adapter/ITableAdapter.java index adaa8402..c7675ab2 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/adapter/ITableAdapter.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/adapter/ITableAdapter.java @@ -55,6 +55,8 @@ void onBindRowHeaderViewHolder(AbstractViewHolder holder, Object rowHeaderItemMo ITableView getTableView(); + int getColorForSelection(AbstractViewHolder.SelectionState selectionState); + /** * Sets the listener for changes of data set on the TableView. * diff --git a/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/CellRecyclerViewAdapter.java b/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/CellRecyclerViewAdapter.java index 5a62144a..268e22ac 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/CellRecyclerViewAdapter.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/CellRecyclerViewAdapter.java @@ -124,29 +124,6 @@ public void onViewAttachedToWindow(RecyclerView.ViewHolder holder) { .scrollToPositionWithOffset(mHorizontalListener.getScrollPosition(), mHorizontalListener.getScrollPositionOffset()); - SelectionHandler selectionHandler = mTableAdapter.getTableView().getSelectionHandler(); - - if (selectionHandler.isAnyColumnSelected()) { - - AbstractViewHolder cellViewHolder = (AbstractViewHolder) ((CellRowViewHolder) holder) - .m_jRecyclerView.findViewHolderForAdapterPosition(selectionHandler - .getSelectedColumnPosition()); - - if (cellViewHolder != null) { - // Control to ignore selection color - if (!mTableAdapter.getTableView().isIgnoreSelectionColors()) { - cellViewHolder.setBackgroundColor(mTableAdapter.getTableView() - .getSelectedColor()); - } - cellViewHolder.setSelected(SelectionState.SELECTED); - - } - } else if (selectionHandler.isRowSelected(holder.getAdapterPosition())) { - - viewHolder.m_jRecyclerView.setSelected(SelectionState.SELECTED, mTableAdapter - .getTableView().getSelectedColor(), mTableAdapter.getTableView() - .isIgnoreSelectionColors()); - } } diff --git a/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/CellRowRecyclerViewAdapter.java b/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/CellRowRecyclerViewAdapter.java index 39d7a10a..4cb0b07e 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/CellRowRecyclerViewAdapter.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/CellRowRecyclerViewAdapter.java @@ -24,6 +24,7 @@ import com.evrencoskun.tableview.adapter.ITableAdapter; import com.evrencoskun.tableview.adapter.recyclerview.holder.AbstractViewHolder; import com.evrencoskun.tableview.adapter.recyclerview.holder.AbstractViewHolder.SelectionState; +import com.evrencoskun.tableview.handler.ISelectableModel; import java.util.List; @@ -62,6 +63,17 @@ public void onBindViewHolder(final RecyclerView.ViewHolder holder, int xPosition AbstractViewHolder viewHolder = (AbstractViewHolder) holder; Object value = getItem(xPosition); + // Apply Selection Style + if(mTableAdapter.getTableView().isSelectable()) { + if (value instanceof ISelectableModel) { + viewHolder.setSelected(((ISelectableModel) value).getSelectionState()); + int color = mTableAdapter.getColorForSelection(((ISelectableModel) value).getSelectionState()); + viewHolder.setBackgroundColor(color); + } else { + //TODO: trigger exception, if isSelectable, Cells MUST implements ISelectableModel + } + } + mTableAdapter.onBindCellViewHolder(viewHolder, value, xPosition, mYPosition); } } @@ -81,7 +93,7 @@ public void onViewAttachedToWindow(RecyclerView.ViewHolder holder) { AbstractViewHolder viewHolder = (AbstractViewHolder) holder; SelectionState selectionState = mTableAdapter.getTableView().getSelectionHandler() - .getCellSelectionState(holder.getAdapterPosition(), mYPosition); + .getSelectionStateCell(holder.getAdapterPosition(), mYPosition); // Control to ignore selection color if (!mTableAdapter.getTableView().isIgnoreSelectionColors()) { diff --git a/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/ColumnHeaderRecyclerViewAdapter.java b/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/ColumnHeaderRecyclerViewAdapter.java index f196f3c9..a6615ef5 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/ColumnHeaderRecyclerViewAdapter.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/ColumnHeaderRecyclerViewAdapter.java @@ -25,6 +25,7 @@ import com.evrencoskun.tableview.adapter.recyclerview.holder.AbstractSorterViewHolder; import com.evrencoskun.tableview.adapter.recyclerview.holder.AbstractViewHolder; import com.evrencoskun.tableview.adapter.recyclerview.holder.AbstractViewHolder.SelectionState; +import com.evrencoskun.tableview.handler.ISelectableModel; import com.evrencoskun.tableview.sort.ColumnSortHelper; import com.evrencoskun.tableview.sort.SortState; @@ -56,6 +57,17 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { AbstractViewHolder viewHolder = (AbstractViewHolder) holder; Object value = getItem(position); + // Apply Selection Style + if(mTableAdapter.getTableView().isSelectable()) { + if (value instanceof ISelectableModel) { + viewHolder.setSelected(((ISelectableModel) value).getSelectionState()); + final int color = mTableAdapter.getColorForSelection(((ISelectableModel) value).getSelectionState()); + viewHolder.setBackgroundColor(color); + } else { + //TODO: trigger exception, if isSelectable, Cells MUST implements ISelectableModel + } + } + mTableAdapter.onBindColumnHeaderViewHolder(viewHolder, value, position); } @@ -70,7 +82,7 @@ public void onViewAttachedToWindow(RecyclerView.ViewHolder holder) { AbstractViewHolder viewHolder = (AbstractViewHolder) holder; SelectionState selectionState = mTableAdapter.getTableView().getSelectionHandler() - .getColumnSelectionState(viewHolder.getAdapterPosition()); + .getSelectionStateColumnHeader(viewHolder.getAdapterPosition()); // Control to ignore selection color if (!mTableAdapter.getTableView().isIgnoreSelectionColors()) { diff --git a/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/RowHeaderRecyclerViewAdapter.java b/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/RowHeaderRecyclerViewAdapter.java index ff09914c..a980eed1 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/RowHeaderRecyclerViewAdapter.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/RowHeaderRecyclerViewAdapter.java @@ -24,6 +24,7 @@ import com.evrencoskun.tableview.adapter.ITableAdapter; import com.evrencoskun.tableview.adapter.recyclerview.holder.AbstractViewHolder; import com.evrencoskun.tableview.adapter.recyclerview.holder.AbstractViewHolder.SelectionState; +import com.evrencoskun.tableview.handler.ISelectableModel; import java.util.List; @@ -51,6 +52,17 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { AbstractViewHolder viewHolder = (AbstractViewHolder) holder; Object value = getItem(position); + // Apply Selection Style + if(mTableAdapter.getTableView().isSelectable()) { + if (value instanceof ISelectableModel) { + viewHolder.setSelected(((ISelectableModel) value).getSelectionState()); + int color = mTableAdapter.getColorForSelection(((ISelectableModel) value).getSelectionState()); + viewHolder.setBackgroundColor(color); + } else { + //TODO: trigger exception, if isSelectable, Cells MUST implements ISelectableModel + } + } + mTableAdapter.onBindRowHeaderViewHolder(viewHolder, value, position); } @@ -65,7 +77,7 @@ public void onViewAttachedToWindow(RecyclerView.ViewHolder holder) { AbstractViewHolder viewHolder = (AbstractViewHolder) holder; SelectionState selectionState = mTableAdapter.getTableView().getSelectionHandler() - .getRowSelectionState(holder.getAdapterPosition()); + .getSelectionStateRowHeader(holder.getAdapterPosition()); // Control to ignore selection color diff --git a/tableview/src/main/java/com/evrencoskun/tableview/handler/ISelectableModel.java b/tableview/src/main/java/com/evrencoskun/tableview/handler/ISelectableModel.java new file mode 100644 index 00000000..bb5b8ecc --- /dev/null +++ b/tableview/src/main/java/com/evrencoskun/tableview/handler/ISelectableModel.java @@ -0,0 +1,12 @@ +package com.evrencoskun.tableview.handler; + +import com.evrencoskun.tableview.adapter.recyclerview.holder.AbstractViewHolder; + +/** + * Created by cedricferry on 8/2/18. + */ + +public interface ISelectableModel { + AbstractViewHolder.SelectionState getSelectionState(); + void setSelectionState(AbstractViewHolder.SelectionState selectionState); +} diff --git a/tableview/src/main/java/com/evrencoskun/tableview/handler/SelectionHandler.java b/tableview/src/main/java/com/evrencoskun/tableview/handler/SelectionHandler.java index caf8fdf3..d451e694 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/handler/SelectionHandler.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/handler/SelectionHandler.java @@ -17,338 +17,296 @@ package com.evrencoskun.tableview.handler; +import android.util.Log; + import com.evrencoskun.tableview.ITableView; import com.evrencoskun.tableview.adapter.recyclerview.CellRecyclerView; import com.evrencoskun.tableview.adapter.recyclerview.holder.AbstractViewHolder; import com.evrencoskun.tableview.adapter.recyclerview.holder.AbstractViewHolder.SelectionState; +import com.evrencoskun.tableview.sort.ISortableModel; + +import java.util.ArrayList; /** * Created by evrencoskun on 24/10/2017. + * Refactored by cedricferry on 10/02/2018 */ public class SelectionHandler { - public static final int UNSELECTED_POSITION = -1; - private int mSelectedRowPosition = UNSELECTED_POSITION; - private int mSelectedColumnPosition = UNSELECTED_POSITION; + public enum SELECTION_TYPE { NONE, CELLS, ROWS, COLUMNS}; + + private SELECTION_TYPE selectionType = SELECTION_TYPE.NONE; + + private boolean mMultiSelectionEnabled = true; private ITableView mTableView; - private AbstractViewHolder mPreviousSelectedViewHolder; - private CellRecyclerView mColumnHeaderRecyclerView; - private CellRecyclerView mRowHeaderRecyclerView; public SelectionHandler(ITableView tableView) { this.mTableView = tableView; - this.mColumnHeaderRecyclerView = mTableView.getColumnHeaderRecyclerView(); - this.mRowHeaderRecyclerView = mTableView.getRowHeaderRecyclerView(); - } - - public void setSelectedCellPositions(AbstractViewHolder selectedViewHolder, int column, int - row) { - this.setPreviousSelectedView(selectedViewHolder); - - this.mSelectedColumnPosition = column; - this.mSelectedRowPosition = row; - - selectedCellView(); - } - - - public void setSelectedColumnPosition(AbstractViewHolder selectedViewHolder, int column) { - this.setPreviousSelectedView(selectedViewHolder); - - this.mSelectedColumnPosition = column; - - selectedColumnHeader(); - - // Set unselected others - mSelectedRowPosition = UNSELECTED_POSITION; } - public int getSelectedColumnPosition() { - return mSelectedColumnPosition; + /** + * set selected state for one cell at (row, column) coordinates + * + * @param row + * @param column + */ + public void setSelectedCellPositions(int row, int column) { + setSelectedCellPositions(row, column, true); } - public void setSelectedRowPosition(AbstractViewHolder selectedViewHolder, int row) { - this.setPreviousSelectedView(selectedViewHolder); + /** + * set selected state for one cell at (row, column) coordinates + * notify can be set to true to notify adapter. However, is you + * consider doing multiple operations, you might notify the adapter + * manually. + * + * @param column + * @param row + * @param notify + */ + private void setSelectedCellPositions(int row, int column, boolean notify) { + boolean clean = false; + if(selectionType != SELECTION_TYPE.CELLS && selectionType != SELECTION_TYPE.NONE) { + // unselect everything + clearAllSelection(false); + selectionType = SELECTION_TYPE.CELLS; + clean = true; + } - this.mSelectedRowPosition = row; + if(!mMultiSelectionEnabled && !clean) { + // unselect everything first + clearAllSelection(false); + } - selectedRowHeader(); - // Set unselected others - mSelectedColumnPosition = UNSELECTED_POSITION; - } - public int getSelectedRowPosition() { - return mSelectedRowPosition; - } + if(getSelectionStateCell(column, row) != SelectionState.SELECTED) { + // Select the Cell + setSelectionStateCell(column, row, SelectionState.SELECTED); + // Shadow column and row + setSelectionStateRowHeader(row, SelectionState.SHADOWED); + setSelectionStateColumnHeader(column, SelectionState.SHADOWED); + } else { + setSelectionStateCell(column, row, SelectionState.UNSELECTED); - public void setPreviousSelectedView(AbstractViewHolder viewHolder) { - restorePreviousSelectedView(); + // unShadow column and row + // check if any other cell selection is shadowing the row (in case of multiselection) + if(!mMultiSelectionEnabled || !rowHasItemSelected(row)) { + setSelectionStateRowHeader(row, SelectionState.UNSELECTED); + } - if (mPreviousSelectedViewHolder != null) { - // Change color - mPreviousSelectedViewHolder.setBackgroundColor(mTableView.getUnSelectedColor()); - // Change state - mPreviousSelectedViewHolder.setSelected(SelectionState.UNSELECTED); + // check if any other cell selection is shadowing the column (in case of multiselection) + if (!mMultiSelectionEnabled || !columnHasItemSelected(column)) { + setSelectionStateColumnHeader(column, SelectionState.UNSELECTED); + } } - AbstractViewHolder oldViewHolder = mTableView.getCellLayoutManager().getCellViewHolder - (getSelectedColumnPosition(), getSelectedRowPosition()); - - if (oldViewHolder != null) { - // Change color - oldViewHolder.setBackgroundColor(mTableView.getUnSelectedColor()); - // Change state - oldViewHolder.setSelected(SelectionState.UNSELECTED); + if(notify) { + mTableView.getAdapter().notifyDataSetChanged(); } - - this.mPreviousSelectedViewHolder = viewHolder; - - // Change color - mPreviousSelectedViewHolder.setBackgroundColor(mTableView.getSelectedColor()); - // Change state - mPreviousSelectedViewHolder.setSelected(SelectionState.SELECTED); } + /** + * Select the full row + * + * @param rowPosition + */ + public void setSelectedRowPosition(int rowPosition) { + boolean clean = false; + if(selectionType != SELECTION_TYPE.ROWS && selectionType != SELECTION_TYPE.NONE) { + // unselect everything + clearAllSelection(false); + selectionType = SELECTION_TYPE.ROWS; + clean = true; + } - private void restorePreviousSelectedView() { - if (mSelectedColumnPosition != UNSELECTED_POSITION && mSelectedRowPosition != - UNSELECTED_POSITION) { - unselectedCellView(); - } else if (mSelectedColumnPosition != UNSELECTED_POSITION) { - unselectedColumnHeader(); - } else if (mSelectedRowPosition != UNSELECTED_POSITION) { - unselectedRowHeader(); + if(!mMultiSelectionEnabled && !clean) { + // unselect everything first + clearAllSelection(false); } - } - private void selectedRowHeader() { - // Change background color of the selected cell views - changeVisibleCellViewsBackgroundForRow(mSelectedRowPosition, true); + for(Object cell: mTableView.getAdapter().getCellRowItems(rowPosition)) { + if(cell instanceof ISelectableModel) { + ISelectableModel selectableModel = (ISelectableModel)cell; + if (selectableModel.getSelectionState() != AbstractViewHolder.SelectionState.SELECTED) { + selectableModel.setSelectionState(AbstractViewHolder.SelectionState.SELECTED); + } else { + selectableModel.setSelectionState(AbstractViewHolder.SelectionState.UNSELECTED); + } + } + } - // Change background color of the column headers to be shown as a shadow. - mTableView.getColumnHeaderRecyclerView().setSelected(SelectionState.SHADOWED, mTableView - .getShadowColor(), false); - } + Object rowHeader = mTableView.getAdapter().getRowHeaderItem(rowPosition); + if(rowHeader instanceof ISelectableModel) { + ISelectableModel selectableModel = (ISelectableModel)rowHeader; + if (selectableModel.getSelectionState() != AbstractViewHolder.SelectionState.SELECTED) { + selectableModel.setSelectionState(AbstractViewHolder.SelectionState.SELECTED); + } else { + selectableModel.setSelectionState(AbstractViewHolder.SelectionState.UNSELECTED); + } + } - private void unselectedRowHeader() { - changeVisibleCellViewsBackgroundForRow(mSelectedRowPosition, false); + // TODO: Shadow/UnShadow column headers - // Change background color of the column headers to be shown as a normal. - mTableView.getColumnHeaderRecyclerView().setSelected(SelectionState.UNSELECTED, - mTableView.getUnSelectedColor(), false); + mTableView.getAdapter().notifyDataSetChanged(); } - private void selectedCellView() { - int shadowColor = mTableView.getShadowColor(); - - - // Change background color of the row header which is located on Y Position of the cell - // view. - AbstractViewHolder rowHeader = (AbstractViewHolder) mRowHeaderRecyclerView - .findViewHolderForAdapterPosition(mSelectedRowPosition); - - // If view is null, that means the row view holder was already recycled. - if (rowHeader != null) { - // Change color - rowHeader.setBackgroundColor(shadowColor); - // Change state - rowHeader.setSelected(SelectionState.SHADOWED); + /** + * Select the full column + * + * @param columnPosition + */ + public void setSelectedColumnPosition(Integer columnPosition) { + boolean clean = false; + if(selectionType != SELECTION_TYPE.COLUMNS && selectionType != SELECTION_TYPE.NONE) { + // unselect everything + selectionType = SELECTION_TYPE.COLUMNS; + clearAllSelection(false); } - // Change background color of the column header which is located on X Position of the cell - // view. - AbstractViewHolder columnHeader = (AbstractViewHolder) mColumnHeaderRecyclerView - .findViewHolderForAdapterPosition(mSelectedColumnPosition); - if (columnHeader != null) { - // Change color - columnHeader.setBackgroundColor(shadowColor); - // Change state - columnHeader.setSelected(SelectionState.SHADOWED); + if(!mMultiSelectionEnabled && !clean) { + // unselect everything first + clearAllSelection(false); } - } - - private void unselectedCellView() { - int unSelectedColor = mTableView.getUnSelectedColor(); - - // Change background color of the row header which is located on Y Position of the cell - // view. - AbstractViewHolder rowHeader = (AbstractViewHolder) mRowHeaderRecyclerView - .findViewHolderForAdapterPosition(mSelectedRowPosition); - - // If view is null, that means the row view holder was already recycled. - if (rowHeader != null) { - // Change color - rowHeader.setBackgroundColor(unSelectedColor); - // Change state - rowHeader.setSelected(SelectionState.UNSELECTED); + for(Object cell: mTableView.getAdapter().getCellColumnItems(columnPosition)) { + if(cell instanceof ISelectableModel) { + ISelectableModel selectableModel = (ISelectableModel)cell; + if (selectableModel.getSelectionState() != AbstractViewHolder.SelectionState.SELECTED) { + selectableModel.setSelectionState(AbstractViewHolder.SelectionState.SELECTED); + } else { + selectableModel.setSelectionState(AbstractViewHolder.SelectionState.UNSELECTED); + } + } } - // Change background color of the column header which is located on X Position of the cell - // view. - AbstractViewHolder columnHeader = (AbstractViewHolder) mColumnHeaderRecyclerView - .findViewHolderForAdapterPosition(mSelectedColumnPosition); - - if (columnHeader != null) { - // Change color - columnHeader.setBackgroundColor(unSelectedColor); - // Change state - columnHeader.setSelected(SelectionState.UNSELECTED); + Object columnHeader = mTableView.getAdapter().getColumnHeaderItem(columnPosition); + if(columnHeader instanceof ISelectableModel) { + ISelectableModel selectableModel = (ISelectableModel)columnHeader; + if (selectableModel.getSelectionState() != AbstractViewHolder.SelectionState.SELECTED) { + selectableModel.setSelectionState(AbstractViewHolder.SelectionState.SELECTED); + } else { + selectableModel.setSelectionState(AbstractViewHolder.SelectionState.UNSELECTED); + } } - } - - private void selectedColumnHeader() { - changeVisibleCellViewsBackgroundForColumn(mSelectedColumnPosition, true); - mTableView.getRowHeaderRecyclerView().setSelected(SelectionState.SHADOWED, mTableView - .getShadowColor(), false); + // TODO: Shadow/UnShadow row headers - } - - private void unselectedColumnHeader() { - changeVisibleCellViewsBackgroundForColumn(mSelectedColumnPosition, false); + mTableView.getAdapter().notifyDataSetChanged(); - mTableView.getRowHeaderRecyclerView().setSelected(SelectionState.UNSELECTED, mTableView - .getUnSelectedColor(), false); } - public boolean isCellSelected(int column, int row) { - return (getSelectedColumnPosition() == column && getSelectedRowPosition() == row) || - isColumnSelected(column) || isRowSelected(row); - } - - public SelectionState getCellSelectionState(int column, int row) { - if (isCellSelected(column, row)) { - return SelectionState.SELECTED; + /** + * clear all selection + * + * @param notify + */ + public void clearAllSelection(boolean notify){ + + // clear cells + for(int rowPosition = 0; rowPosition < mTableView.getAdapter().getRowHeaderItemCount(); rowPosition++) { + // clear row headers + setSelectionStateRowHeader(rowPosition, AbstractViewHolder.SelectionState.UNSELECTED); + if(mTableView.getAdapter().getCellRowItems(rowPosition) != null) { + for (Object cell : mTableView.getAdapter().getCellRowItems(rowPosition)) { + if (cell instanceof ISelectableModel) { + ISelectableModel selectableModel = (ISelectableModel) cell; + selectableModel.setSelectionState(AbstractViewHolder.SelectionState.UNSELECTED); + } + } + } } - return SelectionState.UNSELECTED; - } - public boolean isColumnSelected(int column) { - return (getSelectedColumnPosition() == column && getSelectedRowPosition() == - UNSELECTED_POSITION); - } + // clear column headers + for(int columnPosition = 0; columnPosition < mTableView.getAdapter().getColumnHeaderItemCount(); columnPosition++) { + setSelectionStateColumnHeader(columnPosition, AbstractViewHolder.SelectionState.UNSELECTED); + } - public boolean isColumnShadowed(int column) { - return (getSelectedColumnPosition() == column && getSelectedRowPosition() != - UNSELECTED_POSITION) || (getSelectedColumnPosition() == UNSELECTED_POSITION && - getSelectedRowPosition() != UNSELECTED_POSITION); - } + if(notify) { + mTableView.getAdapter().notifyDataSetChanged(); + } - public boolean isAnyColumnSelected() { - return (getSelectedColumnPosition() != SelectionHandler.UNSELECTED_POSITION && - getSelectedRowPosition() == SelectionHandler.UNSELECTED_POSITION); } - public SelectionState getColumnSelectionState(int column) { - - if (isColumnShadowed(column)) { - return SelectionState.SHADOWED; - - } else if (isColumnSelected(column)) { - return SelectionState.SELECTED; - } else { - return SelectionState.UNSELECTED; - } + public SelectionState getSelectionStateCell(int column, int row){ + ISelectableModel cellModel = (ISelectableModel) mTableView.getAdapter().getCellItem(column, row); + return cellModel.getSelectionState(); } - public boolean isRowSelected(int row) { - return (getSelectedRowPosition() == row && getSelectedColumnPosition() == - UNSELECTED_POSITION); + public SelectionState getSelectionStateRowHeader(int row) { + ISelectableModel rowModel = (ISelectableModel) mTableView.getAdapter().getRowHeaderItem(row); + return rowModel.getSelectionState(); } - public boolean isRowShadowed(int row) { - return (getSelectedRowPosition() == row && getSelectedColumnPosition() != - UNSELECTED_POSITION) || (getSelectedRowPosition() == UNSELECTED_POSITION && - getSelectedColumnPosition() != UNSELECTED_POSITION); + public SelectionState getSelectionStateColumnHeader(int column) { + ISelectableModel columnModel = (ISelectableModel) mTableView.getAdapter().getColumnHeaderItem(column); + return columnModel.getSelectionState(); } - public SelectionState getRowSelectionState(int row) { + private void setSelectionStateCell(int column, int row , SelectionState selectionState){ + ISelectableModel cellModel = (ISelectableModel) mTableView.getAdapter().getCellItem(column, row); + cellModel.setSelectionState(selectionState); - if (isRowShadowed(row)) { - return SelectionState.SHADOWED; + Log.d("SelectionHandler", "r"+row+"-"+column+" val: "+((ISelectableModel)cellModel).getSelectionState()+" "+((ISortableModel)cellModel).getContent()); - } else if (isRowSelected(row)) { - return SelectionState.SELECTED; - - } else { - return SelectionState.UNSELECTED; - } } - private void changeVisibleCellViewsBackgroundForRow(int row, boolean isSelected) { - int selectedColor = mTableView.getSelectedColor(); - int unSelectedColor = mTableView.getUnSelectedColor(); + private void setSelectionStateRowHeader(Integer row, SelectionState selectionState) { + ISelectableModel rowModel = (ISelectableModel) mTableView.getAdapter().getRowHeaderItem(row); + rowModel.setSelectionState(selectionState); + } - CellRecyclerView recyclerView = (CellRecyclerView) mTableView.getCellLayoutManager() - .findViewByPosition(row); + private void setSelectionStateColumnHeader(Integer column, SelectionState selectionState) { + ISelectableModel columnModel = (ISelectableModel) mTableView.getAdapter().getColumnHeaderItem(column); + columnModel.setSelectionState(selectionState); + } - if (recyclerView == null) { - return; + public boolean columnHasItemSelected(int column) { + for(Object cell : mTableView.getAdapter().getCellColumnItems(column)) { + if(cell instanceof ISelectableModel) { + if( ((ISelectableModel)cell).getSelectionState() == SelectionState.SELECTED ) { + return true; + } + } } - - recyclerView.setSelected(isSelected ? SelectionState.SELECTED : SelectionState - .UNSELECTED, isSelected ? selectedColor : unSelectedColor, false); + return false; } - private void changeVisibleCellViewsBackgroundForColumn(int column, boolean isSelected) { - int selectedColor = mTableView.getSelectedColor(); - int unSelectedColor = mTableView.getUnSelectedColor(); - - AbstractViewHolder[] visibleCellViews = mTableView.getCellLayoutManager() - .getVisibleCellViewsByColumnPosition(column); - - if (visibleCellViews != null) { - for (AbstractViewHolder viewHolder : visibleCellViews) { - if (viewHolder != null) { - // Get each view container of the cell view and set unselected color. - viewHolder.setBackgroundColor(isSelected ? selectedColor : unSelectedColor); - - // Change selection status of the view holder - viewHolder.setSelected(isSelected ? SelectionState.SELECTED : SelectionState - .UNSELECTED); + public boolean rowHasItemSelected(int row) { + for(Object cell : mTableView.getAdapter().getCellRowItems(row)) { + if(cell instanceof ISelectableModel) { + if( ((ISelectableModel)cell).getSelectionState() == SelectionState.SELECTED ) { + return true; } } } + return false; } + public void changeRowBackgroundColorBySelectionStatus(AbstractViewHolder viewHolder, SelectionState selectionState) { - if (selectionState == SelectionState.SHADOWED) { - viewHolder.setBackgroundColor(mTableView.getShadowColor()); - - } else if (selectionState == SelectionState.SELECTED) { - viewHolder.setBackgroundColor(mTableView.getSelectedColor()); - - } else { - viewHolder.setBackgroundColor(mTableView.getUnSelectedColor()); - } + viewHolder.setBackgroundColor(mTableView.getAdapter().getColorForSelection(selectionState)); } public void changeColumnBackgroundColorBySelectionStatus(AbstractViewHolder viewHolder, SelectionState selectionState) { - if (selectionState == SelectionState.SHADOWED) { - viewHolder.setBackgroundColor(mTableView.getShadowColor()); - } else if (selectionState == SelectionState.SELECTED) { - viewHolder.setBackgroundColor(mTableView.getSelectedColor()); + viewHolder.setBackgroundColor(mTableView.getAdapter().getColorForSelection(selectionState)); + } - } else { - viewHolder.setBackgroundColor(mTableView.getUnSelectedColor()); - } + public boolean isMultiSelectionEnabled() { + return mMultiSelectionEnabled; } - - public void clearSelection() { - unselectedRowHeader(); - unselectedCellView(); - unselectedColumnHeader(); + + public void setMultiSelectionEnabled(boolean enabled) { + this.mMultiSelectionEnabled = enabled; } } diff --git a/tableview/src/main/java/com/evrencoskun/tableview/listener/itemclick/CellRecyclerViewItemClickListener.java b/tableview/src/main/java/com/evrencoskun/tableview/listener/itemclick/CellRecyclerViewItemClickListener.java index a02c33d2..4e68e9e5 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/listener/itemclick/CellRecyclerViewItemClickListener.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/listener/itemclick/CellRecyclerViewItemClickListener.java @@ -58,13 +58,13 @@ protected boolean clickAction(RecyclerView view, MotionEvent e) { int row = adapter.getYPosition(); // Control to ignore selection color - if (!mTableView.isIgnoreSelectionColors()) { - mSelectionHandler.setSelectedCellPositions(holder, column, row); + if (!mTableView.isIgnoreSelectionColors() && mTableView.isSelectable()) { + mSelectionHandler.setSelectedCellPositions(row, column); } if (getTableViewListener() != null) { // Call ITableView listener for item click - getTableViewListener().onCellClicked(holder, column, row); + getTableViewListener().onCellClicked(holder, row, column); } return true; diff --git a/tableview/src/main/java/com/evrencoskun/tableview/listener/itemclick/ColumnHeaderRecyclerViewItemClickListener.java b/tableview/src/main/java/com/evrencoskun/tableview/listener/itemclick/ColumnHeaderRecyclerViewItemClickListener.java index e62d81da..ea585932 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/listener/itemclick/ColumnHeaderRecyclerViewItemClickListener.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/listener/itemclick/ColumnHeaderRecyclerViewItemClickListener.java @@ -51,7 +51,7 @@ protected boolean clickAction(RecyclerView view, MotionEvent e) { // Control to ignore selection color if (!mTableView.isIgnoreSelectionColors()) { - mSelectionHandler.setSelectedColumnPosition(holder, column); + mSelectionHandler.setSelectedColumnPosition(column); } if (getTableViewListener() != null) { diff --git a/tableview/src/main/java/com/evrencoskun/tableview/listener/itemclick/RowHeaderRecyclerViewItemClickListener.java b/tableview/src/main/java/com/evrencoskun/tableview/listener/itemclick/RowHeaderRecyclerViewItemClickListener.java index 605a08af..bbdb1cf7 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/listener/itemclick/RowHeaderRecyclerViewItemClickListener.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/listener/itemclick/RowHeaderRecyclerViewItemClickListener.java @@ -50,7 +50,7 @@ protected boolean clickAction(RecyclerView view, MotionEvent e) { // Control to ignore selection color if (!mTableView.isIgnoreSelectionColors()) { - mSelectionHandler.setSelectedRowPosition(holder, row); + mSelectionHandler.setSelectedRowPosition(row); } if (getTableViewListener() != null) { From de59225f72a9c05f128437641c880365c0995d80 Mon Sep 17 00:00:00 2001 From: Cedric Ferry Date: Mon, 12 Feb 2018 12:38:26 +1100 Subject: [PATCH 02/64] re-enabled enableShadow with new SelectionHandler implementation fixed multi-selection clear when change between cell , row or column selection introduced multiselection in tableview sample --- .../tableviewsample/MainFragment.java | 2 + .../tableview/handler/SelectionHandler.java | 58 +++++++++++++------ ...mnHeaderRecyclerViewItemClickListener.java | 2 +- ...owHeaderRecyclerViewItemClickListener.java | 2 +- 4 files changed, 44 insertions(+), 20 deletions(-) diff --git a/app/src/main/java/com/evrencoskun/tableviewsample/MainFragment.java b/app/src/main/java/com/evrencoskun/tableviewsample/MainFragment.java index a44dc192..919e9d42 100644 --- a/app/src/main/java/com/evrencoskun/tableviewsample/MainFragment.java +++ b/app/src/main/java/com/evrencoskun/tableviewsample/MainFragment.java @@ -98,6 +98,8 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle // Create Table view mTableView = createTableView(); mTableView.setSelectable(true); + mTableView.getSelectionHandler().setShadowEnabled(true); + mTableView.getSelectionHandler().setMultiSelectionEnabled(true); mTableFilter = new Filter(mTableView); // Create an instance of a Filter and pass the // created TableView. diff --git a/tableview/src/main/java/com/evrencoskun/tableview/handler/SelectionHandler.java b/tableview/src/main/java/com/evrencoskun/tableview/handler/SelectionHandler.java index 4b9eecae..bc2f87cb 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/handler/SelectionHandler.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/handler/SelectionHandler.java @@ -20,13 +20,10 @@ import android.util.Log; import com.evrencoskun.tableview.ITableView; -import com.evrencoskun.tableview.adapter.recyclerview.CellRecyclerView; import com.evrencoskun.tableview.adapter.recyclerview.holder.AbstractViewHolder; import com.evrencoskun.tableview.adapter.recyclerview.holder.AbstractViewHolder.SelectionState; import com.evrencoskun.tableview.sort.ISortableModel; -import java.util.ArrayList; - /** * Created by evrencoskun on 24/10/2017. * Refactored by cedricferry on 10/02/2018 @@ -42,7 +39,7 @@ public enum SELECTION_TYPE { NONE, CELLS, ROWS, COLUMNS}; private boolean mMultiSelectionEnabled = false; - private boolean shadowEnabled = true; + private boolean mShadowEnabled = true; private ITableView mTableView; @@ -51,6 +48,14 @@ public SelectionHandler(ITableView tableView) { this.mTableView = tableView; } + public boolean isShadowEnabled() { + return mShadowEnabled; + } + + public void setShadowEnabled(boolean shadowEnabled) { + this.mShadowEnabled = shadowEnabled; + } + /** * set selected state for one cell at (row, column) coordinates * @@ -75,10 +80,10 @@ private void setSelectedCellPositions(int row, int column, boolean notify) { boolean clean = false; if(selectionType != SELECTION_TYPE.CELLS && selectionType != SELECTION_TYPE.NONE) { // unselect everything - clearAllSelection(false); - selectionType = SELECTION_TYPE.CELLS; + clearAllSelection(true); clean = true; } + selectionType = SELECTION_TYPE.CELLS; if(!mMultiSelectionEnabled && !clean) { // unselect everything first @@ -92,8 +97,10 @@ private void setSelectedCellPositions(int row, int column, boolean notify) { setSelectionStateCell(column, row, SelectionState.SELECTED); // Shadow column and row - setSelectionStateRowHeader(row, SelectionState.SHADOWED); - setSelectionStateColumnHeader(column, SelectionState.SHADOWED); + if(mShadowEnabled) { + setSelectionStateRowHeader(row, SelectionState.SHADOWED); + setSelectionStateColumnHeader(column, SelectionState.SHADOWED); + } } else { setSelectionStateCell(column, row, SelectionState.UNSELECTED); @@ -123,10 +130,10 @@ public void setSelectedRowPosition(int rowPosition) { boolean clean = false; if(selectionType != SELECTION_TYPE.ROWS && selectionType != SELECTION_TYPE.NONE) { // unselect everything - clearAllSelection(false); - selectionType = SELECTION_TYPE.ROWS; + clearAllSelection(true); clean = true; } + selectionType = SELECTION_TYPE.ROWS; if(!mMultiSelectionEnabled && !clean) { // unselect everything first @@ -155,8 +162,15 @@ public void setSelectedRowPosition(int rowPosition) { } - if(shadowEnabled) { - // TODO: Shadow/UnShadow column headers + if(mShadowEnabled) { + // Shadow/UnShadow row headers + for(int columnPosition = 0; columnPosition < mTableView.getAdapter().getColumnHeaderItemCount(); columnPosition++) { + if(getSelectionStateRowHeader(columnPosition) != SelectionState.SHADOWED){ + setSelectionStateColumnHeader(columnPosition, SelectionState.SHADOWED); + } else { + setSelectionStateColumnHeader(columnPosition, SelectionState.UNSELECTED); + } + } } mTableView.getAdapter().notifyDataSetChanged(); @@ -171,9 +185,10 @@ public void setSelectedColumnPosition(Integer columnPosition) { boolean clean = false; if(selectionType != SELECTION_TYPE.COLUMNS && selectionType != SELECTION_TYPE.NONE) { // unselect everything - selectionType = SELECTION_TYPE.COLUMNS; - clearAllSelection(false); + clearAllSelection(true); + clean = true; } + selectionType = SELECTION_TYPE.COLUMNS; if(!mMultiSelectionEnabled && !clean) { @@ -202,8 +217,15 @@ public void setSelectedColumnPosition(Integer columnPosition) { } } - if(shadowEnabled) { - // TODO: Shadow/UnShadow row headers + if(mShadowEnabled) { + // Shadow/UnShadow row headers + for(int rowPosition = 0; rowPosition < mTableView.getAdapter().getRowHeaderItemCount(); rowPosition++) { + if(getSelectionStateRowHeader(rowPosition) != SelectionState.SHADOWED){ + setSelectionStateRowHeader(rowPosition, SelectionState.SHADOWED); + } else { + setSelectionStateRowHeader(rowPosition, SelectionState.UNSELECTED); + } + } } mTableView.getAdapter().notifyDataSetChanged(); @@ -301,14 +323,14 @@ public boolean rowHasItemSelected(int row) { public void changeRowBackgroundColorBySelectionStatus(AbstractViewHolder viewHolder, SelectionState selectionState) { - if(shadowEnabled || (!shadowEnabled && selectionState != SelectionState.SHADOWED)) { + if(mShadowEnabled || (!mShadowEnabled && selectionState != SelectionState.SHADOWED)) { viewHolder.setBackgroundColor(mTableView.getAdapter().getColorForSelection(selectionState)); } } public void changeColumnBackgroundColorBySelectionStatus(AbstractViewHolder viewHolder, SelectionState selectionState) { - if(shadowEnabled || (!shadowEnabled && selectionState != SelectionState.SHADOWED)) { + if(mShadowEnabled || (!mShadowEnabled && selectionState != SelectionState.SHADOWED)) { viewHolder.setBackgroundColor(mTableView.getAdapter().getColorForSelection(selectionState)); } } diff --git a/tableview/src/main/java/com/evrencoskun/tableview/listener/itemclick/ColumnHeaderRecyclerViewItemClickListener.java b/tableview/src/main/java/com/evrencoskun/tableview/listener/itemclick/ColumnHeaderRecyclerViewItemClickListener.java index ea585932..b3d3026b 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/listener/itemclick/ColumnHeaderRecyclerViewItemClickListener.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/listener/itemclick/ColumnHeaderRecyclerViewItemClickListener.java @@ -50,7 +50,7 @@ protected boolean clickAction(RecyclerView view, MotionEvent e) { int column = holder.getAdapterPosition(); // Control to ignore selection color - if (!mTableView.isIgnoreSelectionColors()) { + if (!mTableView.isIgnoreSelectionColors() && mTableView.isSelectable()) { mSelectionHandler.setSelectedColumnPosition(column); } diff --git a/tableview/src/main/java/com/evrencoskun/tableview/listener/itemclick/RowHeaderRecyclerViewItemClickListener.java b/tableview/src/main/java/com/evrencoskun/tableview/listener/itemclick/RowHeaderRecyclerViewItemClickListener.java index bbdb1cf7..857fc32b 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/listener/itemclick/RowHeaderRecyclerViewItemClickListener.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/listener/itemclick/RowHeaderRecyclerViewItemClickListener.java @@ -49,7 +49,7 @@ protected boolean clickAction(RecyclerView view, MotionEvent e) { int row = holder.getAdapterPosition(); // Control to ignore selection color - if (!mTableView.isIgnoreSelectionColors()) { + if (!mTableView.isIgnoreSelectionColors() && mTableView.isSelectable()) { mSelectionHandler.setSelectedRowPosition(row); } From 4d1c7935bb5cae6539dfc374bfbb93301e3160ca Mon Sep 17 00:00:00 2001 From: Cedric Ferry Date: Tue, 13 Feb 2018 09:32:44 +1100 Subject: [PATCH 03/64] check if table isSelectable before accessing SelectionState --- .../CellRowRecyclerViewAdapter.java | 30 ++++++++++--------- .../ColumnHeaderRecyclerViewAdapter.java | 22 +++++++------- .../RowHeaderRecyclerViewAdapter.java | 22 +++++++------- 3 files changed, 40 insertions(+), 34 deletions(-) diff --git a/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/CellRowRecyclerViewAdapter.java b/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/CellRowRecyclerViewAdapter.java index 4cb0b07e..f4524857 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/CellRowRecyclerViewAdapter.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/CellRowRecyclerViewAdapter.java @@ -90,23 +90,25 @@ public int getItemViewType(int position) { @Override public void onViewAttachedToWindow(RecyclerView.ViewHolder holder) { super.onViewAttachedToWindow(holder); - AbstractViewHolder viewHolder = (AbstractViewHolder) holder; - - SelectionState selectionState = mTableAdapter.getTableView().getSelectionHandler() - .getSelectionStateCell(holder.getAdapterPosition(), mYPosition); + + if(mTableAdapter.getTableView().isSelectable()) { + AbstractViewHolder viewHolder = (AbstractViewHolder) holder; + SelectionState selectionState = mTableAdapter.getTableView().getSelectionHandler() + .getSelectionStateCell(holder.getAdapterPosition(), mYPosition); - // Control to ignore selection color - if (!mTableAdapter.getTableView().isIgnoreSelectionColors()) { + // Control to ignore selection color + if (!mTableAdapter.getTableView().isIgnoreSelectionColors()) { - // Change the background color of the view considering selected row/cell position. - if (selectionState == SelectionState.SELECTED) { - viewHolder.setBackgroundColor(mTableAdapter.getTableView().getSelectedColor()); - } else { - viewHolder.setBackgroundColor(mTableAdapter.getTableView().getUnSelectedColor()); + // Change the background color of the view considering selected row/cell position. + if (selectionState == SelectionState.SELECTED) { + viewHolder.setBackgroundColor(mTableAdapter.getTableView().getSelectedColor()); + } else { + viewHolder.setBackgroundColor(mTableAdapter.getTableView().getUnSelectedColor()); + } } - } - // Change selection status - viewHolder.setSelected(selectionState); + // Change selection status + viewHolder.setSelected(selectionState); + } } } diff --git a/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/ColumnHeaderRecyclerViewAdapter.java b/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/ColumnHeaderRecyclerViewAdapter.java index a6615ef5..233438bc 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/ColumnHeaderRecyclerViewAdapter.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/ColumnHeaderRecyclerViewAdapter.java @@ -81,19 +81,21 @@ public void onViewAttachedToWindow(RecyclerView.ViewHolder holder) { super.onViewAttachedToWindow(holder); AbstractViewHolder viewHolder = (AbstractViewHolder) holder; - SelectionState selectionState = mTableAdapter.getTableView().getSelectionHandler() - .getSelectionStateColumnHeader(viewHolder.getAdapterPosition()); + if(mTableAdapter.getTableView().isSelectable()) { + SelectionState selectionState = mTableAdapter.getTableView().getSelectionHandler() + .getSelectionStateColumnHeader(viewHolder.getAdapterPosition()); - // Control to ignore selection color - if (!mTableAdapter.getTableView().isIgnoreSelectionColors()) { + // Control to ignore selection color + if (!mTableAdapter.getTableView().isIgnoreSelectionColors()) { - // Change background color of the view considering it's selected state - mTableAdapter.getTableView().getSelectionHandler() - .changeColumnBackgroundColorBySelectionStatus(viewHolder, selectionState); - } + // Change background color of the view considering it's selected state + mTableAdapter.getTableView().getSelectionHandler() + .changeColumnBackgroundColorBySelectionStatus(viewHolder, selectionState); + } - // Change selection status - viewHolder.setSelected(selectionState); + // Change selection status + viewHolder.setSelected(selectionState); + } // Control whether the TableView is sortable or not. if (mTableAdapter.getTableView().isSortable()) { diff --git a/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/RowHeaderRecyclerViewAdapter.java b/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/RowHeaderRecyclerViewAdapter.java index 1b0aec38..080e4837 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/RowHeaderRecyclerViewAdapter.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/RowHeaderRecyclerViewAdapter.java @@ -79,19 +79,21 @@ public void onViewAttachedToWindow(RecyclerView.ViewHolder holder) { super.onViewAttachedToWindow(holder); AbstractViewHolder viewHolder = (AbstractViewHolder) holder; - SelectionState selectionState = mTableAdapter.getTableView().getSelectionHandler() - .getSelectionStateRowHeader(holder.getAdapterPosition()); + if(mTableAdapter.getTableView().isSelectable()) { + SelectionState selectionState = mTableAdapter.getTableView().getSelectionHandler() + .getSelectionStateRowHeader(holder.getAdapterPosition()); - // Control to ignore selection color - if (!mTableAdapter.getTableView().isIgnoreSelectionColors()) { - // Change background color of the view considering it's selected state - mTableAdapter.getTableView().getSelectionHandler() - .changeRowBackgroundColorBySelectionStatus(viewHolder, selectionState); - } + // Control to ignore selection color + if (!mTableAdapter.getTableView().isIgnoreSelectionColors()) { + // Change background color of the view considering it's selected state + mTableAdapter.getTableView().getSelectionHandler() + .changeRowBackgroundColorBySelectionStatus(viewHolder, selectionState); + } - // Change selection status - viewHolder.setSelected(selectionState); + // Change selection status + viewHolder.setSelected(selectionState); + } } public RowHeaderSortHelper getRowHeaderSortHelper() { From b881d10191daac8eba721fc0b16ad3c168cce096 Mon Sep 17 00:00:00 2001 From: Cedric Ferry Date: Tue, 13 Feb 2018 11:21:42 +1100 Subject: [PATCH 04/64] added Selecting section --- README.md | 82 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) diff --git a/README.md b/README.md index ea0dc92c..230b9e0e 100644 --- a/README.md +++ b/README.md @@ -44,6 +44,11 @@ You can check new implementations of TableView on TableViewSample 2 app shows also usage of these helper methods. +## Selecting + +### 1. Implements ISelectable to your Cell Model + +To be able use this feature on your TableView. You have to implement ISelectableModel to your Cell Model. This interface +wants two methods from your cell model. These are ; + +- ```java SelectionState getSelectionState()``` : To get current selection state for this Cell +- ```java SelectionState setSelectionState()``` : To set current selection state for this Cell + +Note: Make sure you return a default SelectionState value (UNSELECTED) when calling ```getSelectionState()``` + +As you seen getSelectionState value returns SelectionState. TableView controls the style regarding this state. +Their are three states; + +```java + /** + * Enumeration value indicating the item is selected. + * SELECTED. + */ + SELECTED, + + /** + * Enumeration value indicating the item is selected. + * UNSELECTED. + */ + UNSELECTED, + + /** + * Enumeration value indicating the item is shadowed. + * SHADOWED. + */ + SHADOWED +``` + +### 2. Enable selection on the TableView + +To enable selection, you have to enable selection for the TableView +```java +mTableView.setSelectable(true); +``` + +### 3. Multi-selection and Shadows + +You can enable multi-selection thanks to the SelectionHandler: +```java +mTableView.getSelectionHandler().setMultiSelectionEnabled(true); +``` + +You can also enable/disable Shadows thanks to the SelectionHandler: + +```java +mTableView.getSelectionHandler().setShadowEnabled(true); +``` + +### 4. Customize selection colors + +You can customize selection colors easily in your layout: +```xml + + +``` + ## Hiding & Showing the Row @@ -589,6 +665,12 @@ To ignore setting selection colors that are displayed by user interaction, the b tableView.setIgnoreSelectionColors(false); ``` +To enable selection, the below line can be used. You will need to implement ISelectable in your Cell +```java +tableView.setSelectable(true); +``` + + To show or hide separators of the TableView, you can simply use these helper methods. ```java From ae904be2f9c42466fb2eef2084e6585b247a4a89 Mon Sep 17 00:00:00 2001 From: Cedric Ferry Date: Tue, 13 Feb 2018 12:23:06 +1100 Subject: [PATCH 05/64] used the RecyclerViewAdapters instead of the main dataset so it prevent UI issue with sorting --- .../recyclerview/CellRecyclerViewAdapter.java | 21 +++++++++++ .../tableview/handler/SelectionHandler.java | 35 ++++++++++--------- 2 files changed, 40 insertions(+), 16 deletions(-) diff --git a/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/CellRecyclerViewAdapter.java b/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/CellRecyclerViewAdapter.java index 268e22ac..0502279a 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/CellRecyclerViewAdapter.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/CellRecyclerViewAdapter.java @@ -172,6 +172,27 @@ public void notifyCellDataSetChanged() { } + public C getItem(int rowPosition, int columnPosition) { + if(mItemList.size() > rowPosition) { + List row = (List) mItemList.get(rowPosition); + if(row.size() > columnPosition) { + return row.get(columnPosition); + } + } + return null; + } + + /** + * This method helps to get cell item model that is located on given row position. + * + * @param rowPosition + */ + public List getRowItems(int rowPosition) { + List cellItems = new ArrayList<>(); + + return (List) mItemList.get(rowPosition); + } + /** * This method helps to get cell item model that is located on given column position. * diff --git a/tableview/src/main/java/com/evrencoskun/tableview/handler/SelectionHandler.java b/tableview/src/main/java/com/evrencoskun/tableview/handler/SelectionHandler.java index bc2f87cb..c8e6710c 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/handler/SelectionHandler.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/handler/SelectionHandler.java @@ -140,7 +140,8 @@ public void setSelectedRowPosition(int rowPosition) { clearAllSelection(false); } - for(Object cell: mTableView.getAdapter().getCellRowItems(rowPosition)) { + + for(Object cell: mTableView.getAdapter().getCellRecyclerViewAdapter().getRowItems(rowPosition)) { if(cell instanceof ISelectableModel) { ISelectableModel selectableModel = (ISelectableModel)cell; if (selectableModel.getSelectionState() != AbstractViewHolder.SelectionState.SELECTED) { @@ -151,7 +152,7 @@ public void setSelectedRowPosition(int rowPosition) { } } - Object rowHeader = mTableView.getAdapter().getRowHeaderItem(rowPosition); + Object rowHeader = mTableView.getAdapter().getRowHeaderRecyclerViewAdapter().getItem(rowPosition); if(rowHeader instanceof ISelectableModel) { ISelectableModel selectableModel = (ISelectableModel)rowHeader; if (selectableModel.getSelectionState() != AbstractViewHolder.SelectionState.SELECTED) { @@ -164,7 +165,7 @@ public void setSelectedRowPosition(int rowPosition) { if(mShadowEnabled) { // Shadow/UnShadow row headers - for(int columnPosition = 0; columnPosition < mTableView.getAdapter().getColumnHeaderItemCount(); columnPosition++) { + for(int columnPosition = 0; columnPosition < mTableView.getAdapter().getColumnHeaderRecyclerViewAdapter().getItemCount(); columnPosition++) { if(getSelectionStateRowHeader(columnPosition) != SelectionState.SHADOWED){ setSelectionStateColumnHeader(columnPosition, SelectionState.SHADOWED); } else { @@ -196,7 +197,7 @@ public void setSelectedColumnPosition(Integer columnPosition) { clearAllSelection(false); } - for(Object cell: mTableView.getAdapter().getCellColumnItems(columnPosition)) { + for(Object cell: mTableView.getAdapter().getCellRecyclerViewAdapter().getColumnItems(columnPosition)) { if(cell instanceof ISelectableModel) { ISelectableModel selectableModel = (ISelectableModel)cell; if (selectableModel.getSelectionState() != AbstractViewHolder.SelectionState.SELECTED) { @@ -207,7 +208,8 @@ public void setSelectedColumnPosition(Integer columnPosition) { } } - Object columnHeader = mTableView.getAdapter().getColumnHeaderItem(columnPosition); + + Object columnHeader = mTableView.getAdapter().getColumnHeaderRecyclerViewAdapter().getItem(columnPosition); if(columnHeader instanceof ISelectableModel) { ISelectableModel selectableModel = (ISelectableModel)columnHeader; if (selectableModel.getSelectionState() != AbstractViewHolder.SelectionState.SELECTED) { @@ -219,7 +221,8 @@ public void setSelectedColumnPosition(Integer columnPosition) { if(mShadowEnabled) { // Shadow/UnShadow row headers - for(int rowPosition = 0; rowPosition < mTableView.getAdapter().getRowHeaderItemCount(); rowPosition++) { + + for(int rowPosition = 0; rowPosition < mTableView.getAdapter().getRowHeaderRecyclerViewAdapter().getItemCount(); rowPosition++) { if(getSelectionStateRowHeader(rowPosition) != SelectionState.SHADOWED){ setSelectionStateRowHeader(rowPosition, SelectionState.SHADOWED); } else { @@ -266,40 +269,40 @@ public void clearAllSelection(boolean notify){ public SelectionState getSelectionStateCell(int column, int row){ - ISelectableModel cellModel = (ISelectableModel) mTableView.getAdapter().getCellItem(column, row); + ISelectableModel cellModel = (ISelectableModel) mTableView.getAdapter().getCellRecyclerViewAdapter().getItem(row, column); return cellModel.getSelectionState(); } public SelectionState getSelectionStateRowHeader(int row) { - ISelectableModel rowModel = (ISelectableModel) mTableView.getAdapter().getRowHeaderItem(row); + ISelectableModel rowModel = (ISelectableModel) mTableView.getAdapter().getRowHeaderRecyclerViewAdapter().getItem(row); return rowModel.getSelectionState(); } public SelectionState getSelectionStateColumnHeader(int column) { - ISelectableModel columnModel = (ISelectableModel) mTableView.getAdapter().getColumnHeaderItem(column); + ISelectableModel columnModel = (ISelectableModel) mTableView.getAdapter().getColumnHeaderRecyclerViewAdapter().getItem(column); return columnModel.getSelectionState(); } private void setSelectionStateCell(int column, int row , SelectionState selectionState){ - ISelectableModel cellModel = (ISelectableModel) mTableView.getAdapter().getCellItem(column, row); + ISelectableModel cellModel = (ISelectableModel) mTableView.getAdapter().getCellRecyclerViewAdapter().getItem(row, column); cellModel.setSelectionState(selectionState); Log.d("SelectionHandler", "r"+row+"-"+column+" val: "+((ISelectableModel)cellModel).getSelectionState()+" "+((ISortableModel)cellModel).getContent()); } - private void setSelectionStateRowHeader(Integer row, SelectionState selectionState) { - ISelectableModel rowModel = (ISelectableModel) mTableView.getAdapter().getRowHeaderItem(row); + private void setSelectionStateRowHeader(int row, SelectionState selectionState) { + ISelectableModel rowModel = (ISelectableModel) mTableView.getAdapter().getRowHeaderRecyclerViewAdapter().getItem(row); rowModel.setSelectionState(selectionState); } - private void setSelectionStateColumnHeader(Integer column, SelectionState selectionState) { - ISelectableModel columnModel = (ISelectableModel) mTableView.getAdapter().getColumnHeaderItem(column); + private void setSelectionStateColumnHeader(int column, SelectionState selectionState) { + ISelectableModel columnModel = (ISelectableModel) mTableView.getAdapter().getColumnHeaderRecyclerViewAdapter().getItem(column); columnModel.setSelectionState(selectionState); } public boolean columnHasItemSelected(int column) { - for(Object cell : mTableView.getAdapter().getCellColumnItems(column)) { + for(Object cell : mTableView.getAdapter().getCellRecyclerViewAdapter().getColumnItems(column)) { if(cell instanceof ISelectableModel) { if( ((ISelectableModel)cell).getSelectionState() == SelectionState.SELECTED ) { return true; @@ -310,7 +313,7 @@ public boolean columnHasItemSelected(int column) { } public boolean rowHasItemSelected(int row) { - for(Object cell : mTableView.getAdapter().getCellRowItems(row)) { + for(Object cell : mTableView.getAdapter().getCellRecyclerViewAdapter().getRowItems(row)) { if(cell instanceof ISelectableModel) { if( ((ISelectableModel)cell).getSelectionState() == SelectionState.SELECTED ) { return true; From 34146fe4e6d0d3d0c002f34ff4328f15d3901d75 Mon Sep 17 00:00:00 2001 From: Cedric Ferry Date: Wed, 14 Feb 2018 10:55:31 +1100 Subject: [PATCH 06/64] added exception when TableView isSelectable and ISelectable is not implement in Cell, RowHeader or ColumnHeader --- .../adapter/recyclerview/CellRowRecyclerViewAdapter.java | 5 +++-- .../recyclerview/ColumnHeaderRecyclerViewAdapter.java | 6 ++++-- .../adapter/recyclerview/RowHeaderRecyclerViewAdapter.java | 5 +++-- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/CellRowRecyclerViewAdapter.java b/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/CellRowRecyclerViewAdapter.java index f4524857..83314238 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/CellRowRecyclerViewAdapter.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/CellRowRecyclerViewAdapter.java @@ -69,8 +69,9 @@ public void onBindViewHolder(final RecyclerView.ViewHolder holder, int xPosition viewHolder.setSelected(((ISelectableModel) value).getSelectionState()); int color = mTableAdapter.getColorForSelection(((ISelectableModel) value).getSelectionState()); viewHolder.setBackgroundColor(color); - } else { - //TODO: trigger exception, if isSelectable, Cells MUST implements ISelectableModel + } else if(value != null){ + // trigger exception, if isSelectable, Cells MUST implements ISelectableModel + throw new ClassCastException("Invalid Class type for Cell: ("+mYPosition+","+xPosition+"), ISelectableModel expected. Please implement ISelectable in your Cell in order to have it selectable."); } } diff --git a/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/ColumnHeaderRecyclerViewAdapter.java b/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/ColumnHeaderRecyclerViewAdapter.java index 233438bc..e5e442c3 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/ColumnHeaderRecyclerViewAdapter.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/ColumnHeaderRecyclerViewAdapter.java @@ -63,8 +63,10 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { viewHolder.setSelected(((ISelectableModel) value).getSelectionState()); final int color = mTableAdapter.getColorForSelection(((ISelectableModel) value).getSelectionState()); viewHolder.setBackgroundColor(color); - } else { - //TODO: trigger exception, if isSelectable, Cells MUST implements ISelectableModel + } else if(value != null){ + // trigger exception, if isSelectable, Cells MUST implements ISelectableModel + throw new ClassCastException("Invalid Class type for CH: "+position+", ISelectableModel expected. Please implement ISelectable in your ColumnHeaderCell in order to have it selectable."); + } } diff --git a/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/RowHeaderRecyclerViewAdapter.java b/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/RowHeaderRecyclerViewAdapter.java index 080e4837..d6da4623 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/RowHeaderRecyclerViewAdapter.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/RowHeaderRecyclerViewAdapter.java @@ -61,8 +61,9 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { viewHolder.setSelected(((ISelectableModel) value).getSelectionState()); int color = mTableAdapter.getColorForSelection(((ISelectableModel) value).getSelectionState()); viewHolder.setBackgroundColor(color); - } else { - //TODO: trigger exception, if isSelectable, Cells MUST implements ISelectableModel + } else if(value != null){ + // trigger exception, if isSelectable, Cells MUST implements ISelectableModel + throw new ClassCastException("Invalid Class type for RH: "+position+", ISelectableModel expected. Please implement ISelectable in your RowHeaderCell in order to have it selectable."); } } From 3ac2e6054d20957037051ac681450930451f84e6 Mon Sep 17 00:00:00 2001 From: sonique6784 Date: Sun, 19 Apr 2020 17:41:00 +1000 Subject: [PATCH 07/64] Update README.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Gaëtan Muller --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index a1dc62c9..a80e9e93 100644 --- a/README.md +++ b/README.md @@ -46,7 +46,7 @@ You can check new implementations of TableView on the [release page](https://git - [2. AbstractSorterViewHolder to your Column Header ViewHolder](#2-abstractsorterviewholder-to-your-column-header-viewholder) - [3. Helper methods for sorting process](#3-helper-methods-for-sorting-process) - [Selecting](#selecting) - - [1. Implements ISelectable to your Cell Model](#1-implements-iselectable-to-your-cell-model) + - [1. Implement ISelectable on your Cell model](#1-implement-iselectable-on-your-cell-model) - [2. Enable selection on the TableView](#2-enable-selection-on-the-tableview) - [3. Multi-selection and Shadows](#3-multi-selection-and-shadows) - [4. Customize selection colors](#4-customize-selection-colors) From b8453f86e799d8233f41de7f01848aae8e6062ba Mon Sep 17 00:00:00 2001 From: sonique6784 Date: Sun, 19 Apr 2020 17:41:13 +1000 Subject: [PATCH 08/64] Update README.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Gaëtan Muller --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index a80e9e93..47e118cb 100644 --- a/README.md +++ b/README.md @@ -860,7 +860,7 @@ As of version **0.8.5.1**, TableView has some helper functions to change desired ### 1. Implements ISelectable to your Cell Model -To be able use this feature on your TableView. You have to implement ISelectableModel to your Cell Model. This interface +To be able to use this feature on your `TableView`, you have to implement `ISelectableModel` on your Cell model. This interface wants two methods from your cell model. These are ; - ```java SelectionState getSelectionState()``` : To get current selection state for this Cell From 9819d3274ef9d483054e19877e0fe5ae98dc68e4 Mon Sep 17 00:00:00 2001 From: sonique6784 Date: Sun, 19 Apr 2020 17:41:26 +1000 Subject: [PATCH 09/64] Update README.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Gaëtan Muller --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 47e118cb..acbc31bc 100644 --- a/README.md +++ b/README.md @@ -861,7 +861,7 @@ As of version **0.8.5.1**, TableView has some helper functions to change desired ### 1. Implements ISelectable to your Cell Model To be able to use this feature on your `TableView`, you have to implement `ISelectableModel` on your Cell model. This interface -wants two methods from your cell model. These are ; +provides the following two methods: - ```java SelectionState getSelectionState()``` : To get current selection state for this Cell - ```java SelectionState setSelectionState()``` : To set current selection state for this Cell From 0d3324dbb6c77f40e651288e9f40df1cec71a468 Mon Sep 17 00:00:00 2001 From: sonique6784 Date: Sun, 19 Apr 2020 17:41:41 +1000 Subject: [PATCH 10/64] Update README.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Gaëtan Muller --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index acbc31bc..72502a7e 100644 --- a/README.md +++ b/README.md @@ -863,7 +863,7 @@ As of version **0.8.5.1**, TableView has some helper functions to change desired To be able to use this feature on your `TableView`, you have to implement `ISelectableModel` on your Cell model. This interface provides the following two methods: -- ```java SelectionState getSelectionState()``` : To get current selection state for this Cell +- `SelectionState getSelectionState()`: to get the current selection state of this Cell - ```java SelectionState setSelectionState()``` : To set current selection state for this Cell Note: Make sure you return a default SelectionState value (UNSELECTED) when calling ```getSelectionState()``` From fa50f503b7d7ec0055e3654a5dba7dd98c70f5e1 Mon Sep 17 00:00:00 2001 From: sonique6784 Date: Sun, 19 Apr 2020 17:43:41 +1000 Subject: [PATCH 11/64] Update Readme.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit suggestion from MGaetan89 Co-Authored-By: Gaëtan Muller --- README.md | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 72502a7e..14d6d200 100644 --- a/README.md +++ b/README.md @@ -858,34 +858,34 @@ As of version **0.8.5.1**, TableView has some helper functions to change desired ## Selecting -### 1. Implements ISelectable to your Cell Model +### 1. Implement ISelectable on your Cell model To be able to use this feature on your `TableView`, you have to implement `ISelectableModel` on your Cell model. This interface provides the following two methods: - `SelectionState getSelectionState()`: to get the current selection state of this Cell -- ```java SelectionState setSelectionState()``` : To set current selection state for this Cell +- `SelectionState setSelectionState()`: to set the current selection state of this Cell -Note: Make sure you return a default SelectionState value (UNSELECTED) when calling ```getSelectionState()``` +Note: make sure that `getSelectionState()` returns `SelectionState.UNSELECTED` as a default value. -As you seen getSelectionState value returns SelectionState. TableView controls the style regarding this state. +`TableView` uses the return value of `getSelectionState()` to style each Cell. The supported values are: Their are three states; ```java /** - * Enumeration value indicating the item is selected. + * Indicates that the item is selected. * SELECTED. */ SELECTED, /** - * Enumeration value indicating the item is selected. + * Indicates that the item is not selected. * UNSELECTED. */ UNSELECTED, /** - * Enumeration value indicating the item is shadowed. + * Indicates that the item is shadowed. * SHADOWED. */ SHADOWED @@ -893,20 +893,19 @@ Their are three states; ### 2. Enable selection on the TableView -To enable selection, you have to enable selection for the TableView +To enable selection, you have to make your `TableView` selectable: ```java mTableView.setSelectable(true); ``` ### 3. Multi-selection and Shadows -You can enable multi-selection thanks to the SelectionHandler: +You can enable multi-selection through the `SelectionHandler`: ```java mTableView.getSelectionHandler().setMultiSelectionEnabled(true); ``` -You can also enable/disable Shadows thanks to the SelectionHandler: - +You can also enable/disable Shadows through the `SelectionHandler`: ```java mTableView.getSelectionHandler().setShadowEnabled(true); ``` From d158ae06ae895be526fae31c838d98b35ab7b705 Mon Sep 17 00:00:00 2001 From: sonique6784 Date: Sun, 19 Apr 2020 17:45:50 +1000 Subject: [PATCH 12/64] Code formatting and minor copy updates MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit thanks to MGaetan89 Co-Authored-By: Gaëtan Muller --- .../tableview/adapter/AbstractTableAdapter.java | 4 ++-- .../adapter/recyclerview/CellRecyclerViewAdapter.java | 3 ++- .../adapter/recyclerview/CellRowRecyclerViewAdapter.java | 8 ++++---- .../recyclerview/ColumnHeaderRecyclerViewAdapter.java | 6 +++--- .../recyclerview/RowHeaderRecyclerViewAdapter.java | 8 ++++---- 5 files changed, 15 insertions(+), 14 deletions(-) diff --git a/tableview/src/main/java/com/evrencoskun/tableview/adapter/AbstractTableAdapter.java b/tableview/src/main/java/com/evrencoskun/tableview/adapter/AbstractTableAdapter.java index 7a09d918..72355db4 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/adapter/AbstractTableAdapter.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/adapter/AbstractTableAdapter.java @@ -321,14 +321,14 @@ public int getColorForSelection(AbstractViewHolder.SelectionState selectionState } public int getColumnHeaderItemCount() { - if( mColumnHeaderItems != null) { + if (mColumnHeaderItems != null) { return mColumnHeaderItems.size(); } return 0; } public int getRowHeaderItemCount() { - if( mRowHeaderItems != null) { + if (mRowHeaderItems != null) { return mRowHeaderItems.size(); } return 0; diff --git a/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/CellRecyclerViewAdapter.java b/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/CellRecyclerViewAdapter.java index 0502279a..dc75ca72 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/CellRecyclerViewAdapter.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/CellRecyclerViewAdapter.java @@ -172,8 +172,9 @@ public void notifyCellDataSetChanged() { } + @Nullable public C getItem(int rowPosition, int columnPosition) { - if(mItemList.size() > rowPosition) { + if (mItemList.size() > rowPosition) { List row = (List) mItemList.get(rowPosition); if(row.size() > columnPosition) { return row.get(columnPosition); diff --git a/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/CellRowRecyclerViewAdapter.java b/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/CellRowRecyclerViewAdapter.java index 83314238..4ddd78de 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/CellRowRecyclerViewAdapter.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/CellRowRecyclerViewAdapter.java @@ -64,14 +64,14 @@ public void onBindViewHolder(final RecyclerView.ViewHolder holder, int xPosition Object value = getItem(xPosition); // Apply Selection Style - if(mTableAdapter.getTableView().isSelectable()) { + if (mTableAdapter.getTableView().isSelectable()) { if (value instanceof ISelectableModel) { viewHolder.setSelected(((ISelectableModel) value).getSelectionState()); int color = mTableAdapter.getColorForSelection(((ISelectableModel) value).getSelectionState()); viewHolder.setBackgroundColor(color); - } else if(value != null){ + } else if (value != null) { // trigger exception, if isSelectable, Cells MUST implements ISelectableModel - throw new ClassCastException("Invalid Class type for Cell: ("+mYPosition+","+xPosition+"), ISelectableModel expected. Please implement ISelectable in your Cell in order to have it selectable."); + throw new ClassCastException("Item at position (" + mYPosition + ", " + xPosition + ") must implement ISelectableModel to be selectable."); } } @@ -92,7 +92,7 @@ public int getItemViewType(int position) { public void onViewAttachedToWindow(RecyclerView.ViewHolder holder) { super.onViewAttachedToWindow(holder); - if(mTableAdapter.getTableView().isSelectable()) { + if (mTableAdapter.getTableView().isSelectable()) { AbstractViewHolder viewHolder = (AbstractViewHolder) holder; SelectionState selectionState = mTableAdapter.getTableView().getSelectionHandler() .getSelectionStateCell(holder.getAdapterPosition(), mYPosition); diff --git a/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/ColumnHeaderRecyclerViewAdapter.java b/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/ColumnHeaderRecyclerViewAdapter.java index e5e442c3..b36f9684 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/ColumnHeaderRecyclerViewAdapter.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/ColumnHeaderRecyclerViewAdapter.java @@ -58,14 +58,14 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { Object value = getItem(position); // Apply Selection Style - if(mTableAdapter.getTableView().isSelectable()) { + if (mTableAdapter.getTableView().isSelectable()) { if (value instanceof ISelectableModel) { viewHolder.setSelected(((ISelectableModel) value).getSelectionState()); final int color = mTableAdapter.getColorForSelection(((ISelectableModel) value).getSelectionState()); viewHolder.setBackgroundColor(color); } else if(value != null){ // trigger exception, if isSelectable, Cells MUST implements ISelectableModel - throw new ClassCastException("Invalid Class type for CH: "+position+", ISelectableModel expected. Please implement ISelectable in your ColumnHeaderCell in order to have it selectable."); + throw new ClassCastException("Item at position " + position + " must implement ISelectableModel to be selectable."); } } @@ -83,7 +83,7 @@ public void onViewAttachedToWindow(RecyclerView.ViewHolder holder) { super.onViewAttachedToWindow(holder); AbstractViewHolder viewHolder = (AbstractViewHolder) holder; - if(mTableAdapter.getTableView().isSelectable()) { + if (mTableAdapter.getTableView().isSelectable()) { SelectionState selectionState = mTableAdapter.getTableView().getSelectionHandler() .getSelectionStateColumnHeader(viewHolder.getAdapterPosition()); diff --git a/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/RowHeaderRecyclerViewAdapter.java b/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/RowHeaderRecyclerViewAdapter.java index d6da4623..06e04040 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/RowHeaderRecyclerViewAdapter.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/RowHeaderRecyclerViewAdapter.java @@ -56,14 +56,14 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { Object value = getItem(position); // Apply Selection Style - if(mTableAdapter.getTableView().isSelectable()) { + if (mTableAdapter.getTableView().isSelectable()) { if (value instanceof ISelectableModel) { viewHolder.setSelected(((ISelectableModel) value).getSelectionState()); int color = mTableAdapter.getColorForSelection(((ISelectableModel) value).getSelectionState()); viewHolder.setBackgroundColor(color); - } else if(value != null){ + } else if (value != null) { // trigger exception, if isSelectable, Cells MUST implements ISelectableModel - throw new ClassCastException("Invalid Class type for RH: "+position+", ISelectableModel expected. Please implement ISelectable in your RowHeaderCell in order to have it selectable."); + throw new ClassCastException("Item at position " + position + " must implement ISelectableModel to be selectable."); } } @@ -80,7 +80,7 @@ public void onViewAttachedToWindow(RecyclerView.ViewHolder holder) { super.onViewAttachedToWindow(holder); AbstractViewHolder viewHolder = (AbstractViewHolder) holder; - if(mTableAdapter.getTableView().isSelectable()) { + if (mTableAdapter.getTableView().isSelectable()) { SelectionState selectionState = mTableAdapter.getTableView().getSelectionHandler() .getSelectionStateRowHeader(holder.getAdapterPosition()); From 6c62048cdb1ad884bc19e0d7b3dd0b9debf28bc6 Mon Sep 17 00:00:00 2001 From: sonique6784 Date: Tue, 17 Jul 2018 13:49:31 +1000 Subject: [PATCH 13/64] moved the verticalScroll detection moved the vertical detection AFTER checking if it the same RV. else it could set the mCurrentRVTouched to null and lead to unsync scrolling. --- .../scroll/VerticalRecyclerViewListener.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/tableview/src/main/java/com/evrencoskun/tableview/listener/scroll/VerticalRecyclerViewListener.java b/tableview/src/main/java/com/evrencoskun/tableview/listener/scroll/VerticalRecyclerViewListener.java index 565e7409..ca50124f 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/listener/scroll/VerticalRecyclerViewListener.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/listener/scroll/VerticalRecyclerViewListener.java @@ -79,17 +79,17 @@ private boolean verticalDirection(MotionEvent ev) { @Override public boolean onInterceptTouchEvent(RecyclerView rv, MotionEvent e) { - // If scroll direction is not Vertical, then ignore and reset last RV touched - if(!verticalDirection(e)) { - mCurrentRVTouched = null; - return false; - } - // Prevent multitouch, once we start to listen with a RV, // we ignore any other RV until the touch is released (UP) if((mCurrentRVTouched != null && rv != mCurrentRVTouched)) { return true; } + + // If scroll direction is not Vertical, then ignore and reset last RV touched + if(!verticalDirection(e)) { + mCurrentRVTouched = null; + return false; + } if (e.getAction() == MotionEvent.ACTION_DOWN) { mCurrentRVTouched = rv; From c51b9476d095d4551dca804d01638f6c32c6d94a Mon Sep 17 00:00:00 2001 From: Andhie Wong Date: Tue, 4 Sep 2018 12:34:58 +0800 Subject: [PATCH 14/64] Handle case where item is null --- .../com/evrencoskun/tableview/sort/ColumnSortCallback.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tableview/src/main/java/com/evrencoskun/tableview/sort/ColumnSortCallback.java b/tableview/src/main/java/com/evrencoskun/tableview/sort/ColumnSortCallback.java index 2e65c049..b4e37d2c 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/sort/ColumnSortCallback.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/sort/ColumnSortCallback.java @@ -17,6 +17,7 @@ package com.evrencoskun.tableview.sort; +import android.support.v4.util.ObjectsCompat; import android.support.v7.util.DiffUtil; import java.util.List; @@ -76,7 +77,7 @@ public boolean areContentsTheSame(int oldItemPosition, int newItemPosition) { .getContent(); Object newContent = mNewCellItems.get(newItemPosition).get(mColumnPosition) .getContent(); - return oldContent.equals(newContent); + return ObjectsCompat.equals(oldContent, newContent); } } return false; From 0167dc6f034676ef39d6928254eca78a53f2935d Mon Sep 17 00:00:00 2001 From: Damiano Giusti Date: Thu, 20 Sep 2018 16:20:44 +0200 Subject: [PATCH 15/64] Invalidate layout managers cache when changing the table dataset --- .../evrencoskun/tableview/adapter/AbstractTableAdapter.java | 4 ++-- .../tableview/layoutmanager/CellLayoutManager.java | 4 ++++ .../tableview/layoutmanager/ColumnHeaderLayoutManager.java | 3 +++ 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/tableview/src/main/java/com/evrencoskun/tableview/adapter/AbstractTableAdapter.java b/tableview/src/main/java/com/evrencoskun/tableview/adapter/AbstractTableAdapter.java index b002d035..a26ad912 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/adapter/AbstractTableAdapter.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/adapter/AbstractTableAdapter.java @@ -81,7 +81,7 @@ public void setColumnHeaderItems(List columnHeaderItems) { } mColumnHeaderItems = columnHeaderItems; - + mTableView.getColumnHeaderLayoutManager().clearCache(); // Set the items to the adapter mColumnHeaderRecyclerViewAdapter.setItems(mColumnHeaderItems); dispatchColumnHeaderDataSetChangesToListeners(columnHeaderItems); @@ -105,7 +105,7 @@ public void setCellItems(List> cellItems) { } mCellItems = cellItems; - + mTableView.getCellLayoutManager().clearCache(); // Set the items to the adapter mCellRecyclerViewAdapter.setItems(mCellItems); dispatchCellDataSetChangesToListeners(mCellItems); diff --git a/tableview/src/main/java/com/evrencoskun/tableview/layoutmanager/CellLayoutManager.java b/tableview/src/main/java/com/evrencoskun/tableview/layoutmanager/CellLayoutManager.java index a06bc488..c17031ff 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/layoutmanager/CellLayoutManager.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/layoutmanager/CellLayoutManager.java @@ -528,6 +528,10 @@ public int getCacheWidth(int row, int column) { return -1; } + public void clearCache() { + mCachedWidthList.clear(); + } + public CellRecyclerView[] getVisibleCellRowRecyclerViews() { int length = findLastVisibleItemPosition() - findFirstVisibleItemPosition() + 1; CellRecyclerView[] recyclerViews = new CellRecyclerView[length]; diff --git a/tableview/src/main/java/com/evrencoskun/tableview/layoutmanager/ColumnHeaderLayoutManager.java b/tableview/src/main/java/com/evrencoskun/tableview/layoutmanager/ColumnHeaderLayoutManager.java index 6129777b..0156e789 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/layoutmanager/ColumnHeaderLayoutManager.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/layoutmanager/ColumnHeaderLayoutManager.java @@ -100,6 +100,9 @@ public void removeCachedWidth(int position) { mCachedWidthList.remove(position); } + public void clearCache() { + mCachedWidthList.clear(); + } public void customRequestLayout() { int left = getFirstItemLeft(); From 33d339055abb7923f8aa66f0511f06d88654f0e2 Mon Sep 17 00:00:00 2001 From: Damiano Giusti Date: Thu, 20 Sep 2018 16:28:52 +0200 Subject: [PATCH 16/64] Add documentation --- .../tableview/adapter/AbstractTableAdapter.java | 8 ++++++-- .../tableview/layoutmanager/CellLayoutManager.java | 5 ++++- .../layoutmanager/ColumnHeaderLayoutManager.java | 5 ++++- 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/tableview/src/main/java/com/evrencoskun/tableview/adapter/AbstractTableAdapter.java b/tableview/src/main/java/com/evrencoskun/tableview/adapter/AbstractTableAdapter.java index a26ad912..fdb12ecf 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/adapter/AbstractTableAdapter.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/adapter/AbstractTableAdapter.java @@ -81,7 +81,9 @@ public void setColumnHeaderItems(List columnHeaderItems) { } mColumnHeaderItems = columnHeaderItems; - mTableView.getColumnHeaderLayoutManager().clearCache(); + // Invalidate the cached widths for letting the view measure the cells width + // from scratch. + mTableView.getColumnHeaderLayoutManager().clearCachedWidths(); // Set the items to the adapter mColumnHeaderRecyclerViewAdapter.setItems(mColumnHeaderItems); dispatchColumnHeaderDataSetChangesToListeners(columnHeaderItems); @@ -105,7 +107,9 @@ public void setCellItems(List> cellItems) { } mCellItems = cellItems; - mTableView.getCellLayoutManager().clearCache(); + // Invalidate the cached widths for letting the view measure the cells width + // from scratch. + mTableView.getCellLayoutManager().clearCachedWidths(); // Set the items to the adapter mCellRecyclerViewAdapter.setItems(mCellItems); dispatchCellDataSetChangesToListeners(mCellItems); diff --git a/tableview/src/main/java/com/evrencoskun/tableview/layoutmanager/CellLayoutManager.java b/tableview/src/main/java/com/evrencoskun/tableview/layoutmanager/CellLayoutManager.java index c17031ff..4088a721 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/layoutmanager/CellLayoutManager.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/layoutmanager/CellLayoutManager.java @@ -528,7 +528,10 @@ public int getCacheWidth(int row, int column) { return -1; } - public void clearCache() { + /** + * Clears the widths which have been calculated and reused. + */ + public void clearCachedWidths() { mCachedWidthList.clear(); } diff --git a/tableview/src/main/java/com/evrencoskun/tableview/layoutmanager/ColumnHeaderLayoutManager.java b/tableview/src/main/java/com/evrencoskun/tableview/layoutmanager/ColumnHeaderLayoutManager.java index 0156e789..9e9108cd 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/layoutmanager/ColumnHeaderLayoutManager.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/layoutmanager/ColumnHeaderLayoutManager.java @@ -100,7 +100,10 @@ public void removeCachedWidth(int position) { mCachedWidthList.remove(position); } - public void clearCache() { + /** + * Clears the widths which have been calculated and reused. + */ + public void clearCachedWidths() { mCachedWidthList.clear(); } From 2dc2536ca700745f3753c2d1db05188ac03ff7ab Mon Sep 17 00:00:00 2001 From: Victor Manuel Cervantes Date: Sat, 17 Nov 2018 23:30:37 -0600 Subject: [PATCH 17/64] Fix for issue #185 Get the preferences object from the actual parcel when the SavedState is created from a parcel --- .../java/com/evrencoskun/tableview/preference/SavedState.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/tableview/src/main/java/com/evrencoskun/tableview/preference/SavedState.java b/tableview/src/main/java/com/evrencoskun/tableview/preference/SavedState.java index c9495927..434cacbe 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/preference/SavedState.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/preference/SavedState.java @@ -35,7 +35,7 @@ public SavedState(Parcelable superState) { private SavedState(Parcel in) { super(in); - + preferences = in.readParcelable(Preferences.class.getClassLoader()); } @Override @@ -51,4 +51,3 @@ public void writeToParcel(Parcel out, int flags) { public SavedState[] newArray(int size) { return new SavedState[size]; } }; } - From 061a0b629b3d0492a6c667b545a625e9d0229e53 Mon Sep 17 00:00:00 2001 From: nawinkhatiwada Date: Sun, 13 Jan 2019 12:14:31 +0545 Subject: [PATCH 18/64] removed cached .idea --- .gitignore | 11 +---- .idea/compiler.xml | 21 ---------- .idea/dictionaries/evrencoskun.xml | 3 -- .idea/encodings.xml | 6 --- .idea/gradle.xml | 19 --------- .idea/misc.xml | 67 ------------------------------ .idea/modules.xml | 10 ----- .idea/runConfigurations.xml | 12 ------ 8 files changed, 1 insertion(+), 148 deletions(-) delete mode 100644 .idea/compiler.xml delete mode 100644 .idea/dictionaries/evrencoskun.xml delete mode 100644 .idea/encodings.xml delete mode 100644 .idea/gradle.xml delete mode 100644 .idea/misc.xml delete mode 100644 .idea/modules.xml delete mode 100644 .idea/runConfigurations.xml diff --git a/.gitignore b/.gitignore index 1b8a457d..52d5ba7c 100644 --- a/.gitignore +++ b/.gitignore @@ -37,16 +37,7 @@ captures/ # Intellij *.iml -.idea/workspace.xml -.idea/tasks.xml -.idea/gradle.xml -.idea/dictionaries -.idea/libraries -.idea/vcs.xml -.idea/misc.xml -.idea/modules.xml -.idea/copyright/ -.idea/ +*.idea/ # Keystore files *.jks diff --git a/.idea/compiler.xml b/.idea/compiler.xml deleted file mode 100644 index 1f2af519..00000000 --- a/.idea/compiler.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/dictionaries/evrencoskun.xml b/.idea/dictionaries/evrencoskun.xml deleted file mode 100644 index d45930d1..00000000 --- a/.idea/dictionaries/evrencoskun.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/.idea/encodings.xml b/.idea/encodings.xml deleted file mode 100644 index 97626ba4..00000000 --- a/.idea/encodings.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/.idea/gradle.xml b/.idea/gradle.xml deleted file mode 100644 index ba27e299..00000000 --- a/.idea/gradle.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml deleted file mode 100644 index 14a5d427..00000000 --- a/.idea/misc.xml +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - - - - - - - - - - Android Lint - - - C/C++ - - - Control flow issuesJava - - - GeneralC/C++ - - - Java - - - Probable bugsJava - - - - - Android - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml deleted file mode 100644 index aebc5305..00000000 --- a/.idea/modules.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/.idea/runConfigurations.xml b/.idea/runConfigurations.xml deleted file mode 100644 index 7f68460d..00000000 --- a/.idea/runConfigurations.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - \ No newline at end of file From dee42fca91b9744276f53edd59986656fe5c1355 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Evren=20Co=C5=9Fkun?= Date: Sun, 2 Jun 2019 20:46:27 +0300 Subject: [PATCH 19/64] Create FUNDING.yml --- .github/FUNDING.yml | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 .github/FUNDING.yml diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml new file mode 100644 index 00000000..779dc525 --- /dev/null +++ b/.github/FUNDING.yml @@ -0,0 +1,9 @@ +# These are supported funding model platforms + +github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] +patreon: # Replace with a single Patreon username +open_collective: # Replace with a single Open Collective username +ko_fi: # Replace with a single Ko-fi username +tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel +community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry +custom: # Replace with a single custom sponsorship URL From 444e818fb3d898a3dc839047d38ec44dbd5df0d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gae=CC=88tan=20Muller?= Date: Wed, 5 Jun 2019 22:31:26 +0200 Subject: [PATCH 20/64] Update dependencies --- app/build.gradle | 22 ++++----- .../ExampleInstrumentedTest.java | 43 ------------------ .../tableviewsample/ExampleUnitTest.java | 34 -------------- build.gradle | 9 ++-- gradle/wrapper/gradle-wrapper.jar | Bin 54708 -> 55616 bytes gradle/wrapper/gradle-wrapper.properties | 4 +- gradlew | 18 +++++++- gradlew.bat | 18 +++++++- tableview/build.gradle | 32 +++++-------- .../tableview/ExampleInstrumentedTest.java | 43 ------------------ .../tableview/ExampleUnitTest.java | 34 -------------- 11 files changed, 62 insertions(+), 195 deletions(-) delete mode 100644 app/src/androidTest/java/com/evrencoskun/tableviewsample/ExampleInstrumentedTest.java delete mode 100644 app/src/test/java/com/evrencoskun/tableviewsample/ExampleUnitTest.java delete mode 100644 tableview/src/androidTest/java/com/evrencoskun/tableview/ExampleInstrumentedTest.java delete mode 100644 tableview/src/test/java/com/evrencoskun/tableview/ExampleUnitTest.java diff --git a/app/build.gradle b/app/build.gradle index 06938b49..b93574e0 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -18,17 +18,19 @@ apply plugin: 'com.android.application' android { - compileSdkVersion 27 - buildToolsVersion '27.0.3' + compileSdkVersion 28 + buildToolsVersion '28.0.3' + defaultConfig { applicationId "com.evrencoskun.tableviewsample" minSdkVersion 15 - targetSdkVersion 25 + targetSdkVersion 28 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" vectorDrawables.useSupportLibrary = true } + buildTypes { release { minifyEnabled false @@ -39,18 +41,12 @@ android { lintOptions { abortOnError false } - } dependencies { - compile fileTree(dir: 'libs', include: ['*.jar']) - androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { - exclude group: 'com.android.support', module: 'support-annotations' - }) - compile 'com.android.support:appcompat-v7:27.0.2' - compile 'com.android.support:support-v4:27.0.2' - compile 'com.android.support:design:27.0.2' + implementation project(path: ':tableview') - testCompile 'junit:junit:4.12' - compile project(path: ':tableview') + implementation 'com.android.support:appcompat-v7:28.0.0' + implementation 'com.android.support:support-v4:28.0.0' + implementation 'com.android.support:design:28.0.0' } diff --git a/app/src/androidTest/java/com/evrencoskun/tableviewsample/ExampleInstrumentedTest.java b/app/src/androidTest/java/com/evrencoskun/tableviewsample/ExampleInstrumentedTest.java deleted file mode 100644 index bd08b8d1..00000000 --- a/app/src/androidTest/java/com/evrencoskun/tableviewsample/ExampleInstrumentedTest.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright (c) 2018. Evren Coşkun - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -package com.evrencoskun.tableviewsample; - -import android.content.Context; -import android.support.test.InstrumentationRegistry; -import android.support.test.runner.AndroidJUnit4; - -import org.junit.Test; -import org.junit.runner.RunWith; - -import static org.junit.Assert.*; - -/** - * Instrumentation test, which will execute on an Android device. - * - * @see Testing documentation - */ -@RunWith(AndroidJUnit4.class) -public class ExampleInstrumentedTest { - @Test - public void useAppContext() throws Exception { - // Context of the app under test. - Context appContext = InstrumentationRegistry.getTargetContext(); - - assertEquals("com.evrencoskun.tableviewsample", appContext.getPackageName()); - } -} diff --git a/app/src/test/java/com/evrencoskun/tableviewsample/ExampleUnitTest.java b/app/src/test/java/com/evrencoskun/tableviewsample/ExampleUnitTest.java deleted file mode 100644 index 3988ef7d..00000000 --- a/app/src/test/java/com/evrencoskun/tableviewsample/ExampleUnitTest.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright (c) 2018. Evren Coşkun - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -package com.evrencoskun.tableviewsample; - -import org.junit.Test; - -import static org.junit.Assert.*; - -/** - * Example local unit test, which will execute on the development machine (host). - * - * @see Testing documentation - */ -public class ExampleUnitTest { - @Test - public void addition_isCorrect() throws Exception { - assertEquals(4, 2 + 2); - } -} \ No newline at end of file diff --git a/build.gradle b/build.gradle index ba8c6236..6ec12496 100644 --- a/build.gradle +++ b/build.gradle @@ -22,11 +22,12 @@ buildscript { jcenter() google() } + dependencies { - classpath 'com.android.tools.build:gradle:3.0.1' - classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.7.3' - classpath 'com.github.dcendents:android-maven-gradle-plugin:1.4.1' - classpath 'com.novoda:bintray-release:0.7.0' + classpath 'com.android.tools.build:gradle:3.4.1' + classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.8.4' + classpath 'com.github.dcendents:android-maven-gradle-plugin:2.1' + classpath 'com.novoda:bintray-release:0.9.1' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 7a3265ee94c0ab25cf079ac8ccdf87f41d455d42..5c2d1cf016b3885f6930543d57b744ea8c220a1a 100644 GIT binary patch literal 55616 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

_x$+l{{cH8$W#CT diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index f2fee99c..fe9259c3 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -15,9 +15,9 @@ # # -#Thu Oct 26 21:32:22 EET 2017 +#Wed Jun 05 22:25:57 CEST 2019 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip diff --git a/gradlew b/gradlew index cccdd3d5..b0d6d0ab 100755 --- a/gradlew +++ b/gradlew @@ -1,5 +1,21 @@ #!/usr/bin/env sh +# +# Copyright 2015 the original author or authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + ############################################################################## ## ## Gradle start up script for UN*X @@ -28,7 +44,7 @@ APP_NAME="Gradle" APP_BASE_NAME=`basename "$0"` # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS="" +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD="maximum" diff --git a/gradlew.bat b/gradlew.bat index f9553162..9991c503 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -1,3 +1,19 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem http://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + @if "%DEBUG%" == "" @echo off @rem ########################################################################## @rem @@ -14,7 +30,7 @@ set APP_BASE_NAME=%~n0 set APP_HOME=%DIRNAME% @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS= +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" @rem Find java.exe if defined JAVA_HOME goto findJavaFromJavaHome diff --git a/tableview/build.gradle b/tableview/build.gradle index a739b081..0bfa4576 100644 --- a/tableview/build.gradle +++ b/tableview/build.gradle @@ -1,20 +1,18 @@ apply plugin: 'com.android.library' apply plugin: 'com.novoda.bintray-release' - android { - compileSdkVersion 27 - buildToolsVersion '27.0.3' + compileSdkVersion 28 + buildToolsVersion '28.0.3' defaultConfig { minSdkVersion 14 - targetSdkVersion 27 + targetSdkVersion 28 versionCode 1 versionName "1.0" - testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" - } + buildTypes { release { minifyEnabled false @@ -34,21 +32,15 @@ android { } dependencies { - compile fileTree(dir: 'libs', include: ['*.jar']) - androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { - exclude group: 'com.android.support', module: 'support-annotations' - }) - compile 'com.android.support:appcompat-v7:27.0.2' - compile 'com.android.support:recyclerview-v7:27.0.2' - - testCompile 'junit:junit:4.12' + implementation 'com.android.support:appcompat-v7:28.0.0' + implementation 'com.android.support:recyclerview-v7:28.0.0' } publish { - userOrg = 'evrencoskun'//user name of bintray.com - groupId = 'com.evrencoskun.library'//jcenter's url - artifactId = 'tableview'//project name - publishVersion = '0.8.8'//version code + userOrg = 'evrencoskun' //user name of bintray.com + groupId = 'com.evrencoskun.library' //jcenter's url + artifactId = 'tableview' //project name + publishVersion = '0.8.8' //version code desc = 'TableView is a powerful Android library for displaying complex data structures and rendering tabular data composed of rows, columns and cells.' - website = 'https://github.com/evrencoskun/TableView'//website -} \ No newline at end of file + website = 'https://github.com/evrencoskun/TableView '//website +} diff --git a/tableview/src/androidTest/java/com/evrencoskun/tableview/ExampleInstrumentedTest.java b/tableview/src/androidTest/java/com/evrencoskun/tableview/ExampleInstrumentedTest.java deleted file mode 100644 index 7f9e90ca..00000000 --- a/tableview/src/androidTest/java/com/evrencoskun/tableview/ExampleInstrumentedTest.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright (c) 2018. Evren CoÅŸkun - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -package com.evrencoskun.tableview; - -import android.content.Context; -import android.support.test.InstrumentationRegistry; -import android.support.test.runner.AndroidJUnit4; - -import org.junit.Test; -import org.junit.runner.RunWith; - -import static org.junit.Assert.*; - -/** - * Instrumentation test, which will execute on an Android device. - * - * @see Testing documentation - */ -@RunWith(AndroidJUnit4.class) -public class ExampleInstrumentedTest { - @Test - public void useAppContext() throws Exception { - // Context of the app under test. - Context appContext = InstrumentationRegistry.getTargetContext(); - - assertEquals("com.evrencoskun.tableview.test", appContext.getPackageName()); - } -} diff --git a/tableview/src/test/java/com/evrencoskun/tableview/ExampleUnitTest.java b/tableview/src/test/java/com/evrencoskun/tableview/ExampleUnitTest.java deleted file mode 100644 index 9e7b75ec..00000000 --- a/tableview/src/test/java/com/evrencoskun/tableview/ExampleUnitTest.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright (c) 2018. Evren CoÅŸkun - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -package com.evrencoskun.tableview; - -import org.junit.Test; - -import static org.junit.Assert.*; - -/** - * Example local unit test, which will execute on the development machine (host). - * - * @see Testing documentation - */ -public class ExampleUnitTest { - @Test - public void addition_isCorrect() throws Exception { - assertEquals(4, 2 + 2); - } -} \ No newline at end of file From af08feb34d3598658f4a7116d0301f3bb3f87345 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gae=CC=88tan=20Muller?= Date: Wed, 5 Jun 2019 22:59:02 +0200 Subject: [PATCH 21/64] Migrate to AndroidX --- app/build.gradle | 8 +++++--- .../evrencoskun/tableviewsample/MainActivity.java | 3 ++- .../evrencoskun/tableviewsample/MainFragment.java | 3 ++- .../tableview/TableViewListener.java | 5 +++-- .../tableviewsample/tableview/TableViewModel.java | 3 ++- .../tableview/holder/ColumnHeaderViewHolder.java | 3 ++- .../tableview/holder/GenderCellViewHolder.java | 3 ++- .../tableview/holder/MoodCellViewHolder.java | 3 ++- .../tableview/popup/RowHeaderLongPressPopup.java | 3 ++- tableview/build.gradle | 5 +++-- .../com/evrencoskun/tableview/ITableView.java | 5 +++-- .../java/com/evrencoskun/tableview/TableView.java | 15 ++++++++------- .../recyclerview/AbstractRecyclerViewAdapter.java | 3 ++- .../adapter/recyclerview/CellRecyclerView.java | 3 ++- .../recyclerview/CellRecyclerViewAdapter.java | 3 ++- .../recyclerview/holder/AbstractViewHolder.java | 5 +++-- .../tableview/handler/ColumnSortHandler.java | 2 +- .../tableview/handler/ScrollHandler.java | 5 +++-- .../tableview/handler/SelectionHandler.java | 4 ++-- .../layoutmanager/CellLayoutManager.java | 5 +++-- .../layoutmanager/ColumnHeaderLayoutManager.java | 3 ++- .../layoutmanager/ColumnLayoutManager.java | 5 +++-- .../tableview/listener/ITableViewListener.java | 4 ++-- .../itemclick/AbstractItemClickListener.java | 3 ++- .../CellRecyclerViewItemClickListener.java | 3 ++- ...ColumnHeaderRecyclerViewItemClickListener.java | 3 ++- .../RowHeaderRecyclerViewItemClickListener.java | 3 ++- .../scroll/HorizontalRecyclerViewListener.java | 5 +++-- .../scroll/VerticalRecyclerViewListener.java | 3 ++- .../tableview/sort/ColumnSortCallback.java | 4 ++-- .../tableview/sort/RowHeaderSortCallback.java | 2 +- .../tableview/util/TableViewUtils.java | 3 ++- 32 files changed, 79 insertions(+), 51 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index b93574e0..6ffc99d0 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -46,7 +46,9 @@ android { dependencies { implementation project(path: ':tableview') - implementation 'com.android.support:appcompat-v7:28.0.0' - implementation 'com.android.support:support-v4:28.0.0' - implementation 'com.android.support:design:28.0.0' + implementation 'androidx.annotation:annotation:1.1.0' + implementation 'androidx.appcompat:appcompat:1.0.2' + implementation 'androidx.core:core:1.0.2' + implementation 'androidx.fragment:fragment:1.0.0' + implementation 'androidx.recyclerview:recyclerview:1.0.0' } diff --git a/app/src/main/java/com/evrencoskun/tableviewsample/MainActivity.java b/app/src/main/java/com/evrencoskun/tableviewsample/MainActivity.java index ab226317..0c4b64bf 100644 --- a/app/src/main/java/com/evrencoskun/tableviewsample/MainActivity.java +++ b/app/src/main/java/com/evrencoskun/tableviewsample/MainActivity.java @@ -18,7 +18,8 @@ package com.evrencoskun.tableviewsample; import android.os.Bundle; -import android.support.v7.app.AppCompatActivity; + +import androidx.appcompat.app.AppCompatActivity; public class MainActivity extends AppCompatActivity { diff --git a/app/src/main/java/com/evrencoskun/tableviewsample/MainFragment.java b/app/src/main/java/com/evrencoskun/tableviewsample/MainFragment.java index f9ce701f..351074db 100644 --- a/app/src/main/java/com/evrencoskun/tableviewsample/MainFragment.java +++ b/app/src/main/java/com/evrencoskun/tableviewsample/MainFragment.java @@ -19,7 +19,6 @@ import android.os.Bundle; -import android.support.v4.app.Fragment; import android.text.Editable; import android.text.TextUtils; import android.text.TextWatcher; @@ -32,6 +31,8 @@ import android.widget.Spinner; import android.widget.TextView; +import androidx.fragment.app.Fragment; + import com.evrencoskun.tableview.TableView; import com.evrencoskun.tableview.adapter.AbstractTableAdapter; import com.evrencoskun.tableview.filter.Filter; diff --git a/app/src/main/java/com/evrencoskun/tableviewsample/tableview/TableViewListener.java b/app/src/main/java/com/evrencoskun/tableviewsample/tableview/TableViewListener.java index 9736ecd7..40ea7f8a 100644 --- a/app/src/main/java/com/evrencoskun/tableviewsample/tableview/TableViewListener.java +++ b/app/src/main/java/com/evrencoskun/tableviewsample/tableview/TableViewListener.java @@ -18,10 +18,11 @@ package com.evrencoskun.tableviewsample.tableview; import android.content.Context; -import android.support.annotation.NonNull; -import android.support.v7.widget.RecyclerView; import android.widget.Toast; +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; + import com.evrencoskun.tableview.TableView; import com.evrencoskun.tableview.listener.ITableViewListener; import com.evrencoskun.tableviewsample.tableview.holder.ColumnHeaderViewHolder; diff --git a/app/src/main/java/com/evrencoskun/tableviewsample/tableview/TableViewModel.java b/app/src/main/java/com/evrencoskun/tableviewsample/tableview/TableViewModel.java index c4da8f0d..a1bae39c 100644 --- a/app/src/main/java/com/evrencoskun/tableviewsample/tableview/TableViewModel.java +++ b/app/src/main/java/com/evrencoskun/tableviewsample/tableview/TableViewModel.java @@ -19,7 +19,8 @@ import android.content.Context; import android.graphics.drawable.Drawable; -import android.support.v4.content.ContextCompat; + +import androidx.core.content.ContextCompat; import com.evrencoskun.tableviewsample.R; import com.evrencoskun.tableviewsample.tableview.model.Cell; diff --git a/app/src/main/java/com/evrencoskun/tableviewsample/tableview/holder/ColumnHeaderViewHolder.java b/app/src/main/java/com/evrencoskun/tableviewsample/tableview/holder/ColumnHeaderViewHolder.java index ab2dd46e..bc1b7403 100644 --- a/app/src/main/java/com/evrencoskun/tableviewsample/tableview/holder/ColumnHeaderViewHolder.java +++ b/app/src/main/java/com/evrencoskun/tableviewsample/tableview/holder/ColumnHeaderViewHolder.java @@ -18,13 +18,14 @@ package com.evrencoskun.tableviewsample.tableview.holder; import android.graphics.drawable.Drawable; -import android.support.v4.content.ContextCompat; import android.util.Log; import android.view.View; import android.widget.ImageButton; import android.widget.LinearLayout; import android.widget.TextView; +import androidx.core.content.ContextCompat; + import com.evrencoskun.tableview.ITableView; import com.evrencoskun.tableview.adapter.recyclerview.holder.AbstractSorterViewHolder; import com.evrencoskun.tableview.sort.SortState; diff --git a/app/src/main/java/com/evrencoskun/tableviewsample/tableview/holder/GenderCellViewHolder.java b/app/src/main/java/com/evrencoskun/tableviewsample/tableview/holder/GenderCellViewHolder.java index 22b092ec..d913fb11 100644 --- a/app/src/main/java/com/evrencoskun/tableviewsample/tableview/holder/GenderCellViewHolder.java +++ b/app/src/main/java/com/evrencoskun/tableviewsample/tableview/holder/GenderCellViewHolder.java @@ -18,9 +18,10 @@ package com.evrencoskun.tableviewsample.tableview.holder; import android.graphics.drawable.Drawable; -import android.support.v4.content.ContextCompat; import android.view.View; +import androidx.core.content.ContextCompat; + import com.evrencoskun.tableviewsample.R; import com.evrencoskun.tableviewsample.tableview.TableViewModel; diff --git a/app/src/main/java/com/evrencoskun/tableviewsample/tableview/holder/MoodCellViewHolder.java b/app/src/main/java/com/evrencoskun/tableviewsample/tableview/holder/MoodCellViewHolder.java index 2ca7f9e3..088fd12a 100644 --- a/app/src/main/java/com/evrencoskun/tableviewsample/tableview/holder/MoodCellViewHolder.java +++ b/app/src/main/java/com/evrencoskun/tableviewsample/tableview/holder/MoodCellViewHolder.java @@ -18,11 +18,12 @@ package com.evrencoskun.tableviewsample.tableview.holder; import android.graphics.drawable.Drawable; -import android.support.v4.content.ContextCompat; import android.view.View; import android.widget.ImageView; import android.widget.LinearLayout; +import androidx.core.content.ContextCompat; + import com.evrencoskun.tableview.adapter.recyclerview.holder.AbstractViewHolder; import com.evrencoskun.tableviewsample.R; import com.evrencoskun.tableviewsample.tableview.TableViewModel; diff --git a/app/src/main/java/com/evrencoskun/tableviewsample/tableview/popup/RowHeaderLongPressPopup.java b/app/src/main/java/com/evrencoskun/tableviewsample/tableview/popup/RowHeaderLongPressPopup.java index dd090595..c8201445 100644 --- a/app/src/main/java/com/evrencoskun/tableviewsample/tableview/popup/RowHeaderLongPressPopup.java +++ b/app/src/main/java/com/evrencoskun/tableviewsample/tableview/popup/RowHeaderLongPressPopup.java @@ -18,11 +18,12 @@ package com.evrencoskun.tableviewsample.tableview.popup; import android.content.Context; -import android.support.v7.widget.RecyclerView; import android.view.Menu; import android.view.MenuItem; import android.widget.PopupMenu; +import androidx.recyclerview.widget.RecyclerView; + import com.evrencoskun.tableview.ITableView; import com.evrencoskun.tableviewsample.R; diff --git a/tableview/build.gradle b/tableview/build.gradle index 0bfa4576..966e9f65 100644 --- a/tableview/build.gradle +++ b/tableview/build.gradle @@ -32,8 +32,9 @@ android { } dependencies { - implementation 'com.android.support:appcompat-v7:28.0.0' - implementation 'com.android.support:recyclerview-v7:28.0.0' + implementation 'androidx.annotation:annotation:1.1.0' + implementation 'androidx.core:core:1.0.2' + implementation 'androidx.recyclerview:recyclerview:1.0.0' } publish { diff --git a/tableview/src/main/java/com/evrencoskun/tableview/ITableView.java b/tableview/src/main/java/com/evrencoskun/tableview/ITableView.java index 6613f3c3..7fe04cbe 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/ITableView.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/ITableView.java @@ -17,11 +17,12 @@ package com.evrencoskun.tableview; -import android.support.v7.widget.DividerItemDecoration; -import android.support.v7.widget.LinearLayoutManager; import android.view.View; import android.view.ViewGroup; +import androidx.recyclerview.widget.DividerItemDecoration; +import androidx.recyclerview.widget.LinearLayoutManager; + import com.evrencoskun.tableview.adapter.AbstractTableAdapter; import com.evrencoskun.tableview.adapter.recyclerview.CellRecyclerView; import com.evrencoskun.tableview.filter.Filter; diff --git a/tableview/src/main/java/com/evrencoskun/tableview/TableView.java b/tableview/src/main/java/com/evrencoskun/tableview/TableView.java index 2a467844..d9efc4f2 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/TableView.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/TableView.java @@ -22,17 +22,18 @@ import android.graphics.PorterDuff; import android.graphics.drawable.Drawable; import android.os.Parcelable; -import android.support.annotation.AttrRes; -import android.support.annotation.ColorInt; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.v4.content.ContextCompat; -import android.support.v7.widget.DividerItemDecoration; -import android.support.v7.widget.LinearLayoutManager; import android.util.AttributeSet; import android.view.ViewGroup; import android.widget.FrameLayout; +import androidx.annotation.AttrRes; +import androidx.annotation.ColorInt; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.DividerItemDecoration; +import androidx.recyclerview.widget.LinearLayoutManager; + import com.evrencoskun.tableview.adapter.AbstractTableAdapter; import com.evrencoskun.tableview.adapter.recyclerview.CellRecyclerView; import com.evrencoskun.tableview.adapter.recyclerview.holder.AbstractViewHolder; diff --git a/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/AbstractRecyclerViewAdapter.java b/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/AbstractRecyclerViewAdapter.java index edc409ad..3ba434cc 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/AbstractRecyclerViewAdapter.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/AbstractRecyclerViewAdapter.java @@ -18,7 +18,8 @@ package com.evrencoskun.tableview.adapter.recyclerview; import android.content.Context; -import android.support.v7.widget.RecyclerView; + +import androidx.recyclerview.widget.RecyclerView; import com.evrencoskun.tableview.adapter.recyclerview.holder.AbstractViewHolder; diff --git a/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/CellRecyclerView.java b/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/CellRecyclerView.java index e44f2c63..237dbb28 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/CellRecyclerView.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/CellRecyclerView.java @@ -18,10 +18,11 @@ package com.evrencoskun.tableview.adapter.recyclerview; import android.content.Context; -import android.support.v7.widget.RecyclerView; import android.util.Log; import android.view.View; +import androidx.recyclerview.widget.RecyclerView; + import com.evrencoskun.tableview.R; import com.evrencoskun.tableview.listener.scroll.HorizontalRecyclerViewListener; import com.evrencoskun.tableview.listener.scroll.VerticalRecyclerViewListener; diff --git a/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/CellRecyclerViewAdapter.java b/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/CellRecyclerViewAdapter.java index 7a5913d6..58a1312d 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/CellRecyclerViewAdapter.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/CellRecyclerViewAdapter.java @@ -18,10 +18,11 @@ package com.evrencoskun.tableview.adapter.recyclerview; import android.content.Context; -import android.support.v7.widget.RecyclerView; import android.view.View; import android.view.ViewGroup; +import androidx.recyclerview.widget.RecyclerView; + import com.evrencoskun.tableview.ITableView; import com.evrencoskun.tableview.adapter.recyclerview.holder.AbstractViewHolder; import com.evrencoskun.tableview.adapter.recyclerview.holder.AbstractViewHolder.SelectionState; diff --git a/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/holder/AbstractViewHolder.java b/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/holder/AbstractViewHolder.java index a2304e8a..fca858a5 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/holder/AbstractViewHolder.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/holder/AbstractViewHolder.java @@ -17,10 +17,11 @@ package com.evrencoskun.tableview.adapter.recyclerview.holder; -import android.support.annotation.ColorInt; -import android.support.v7.widget.RecyclerView; import android.view.View; +import androidx.annotation.ColorInt; +import androidx.recyclerview.widget.RecyclerView; + /** * Created by evrencoskun on 23/10/2017. */ diff --git a/tableview/src/main/java/com/evrencoskun/tableview/handler/ColumnSortHandler.java b/tableview/src/main/java/com/evrencoskun/tableview/handler/ColumnSortHandler.java index d8828094..c007e5b4 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/handler/ColumnSortHandler.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/handler/ColumnSortHandler.java @@ -17,7 +17,7 @@ package com.evrencoskun.tableview.handler; -import android.support.v7.util.DiffUtil; +import androidx.recyclerview.widget.DiffUtil; import com.evrencoskun.tableview.ITableView; import com.evrencoskun.tableview.adapter.recyclerview.CellRecyclerViewAdapter; diff --git a/tableview/src/main/java/com/evrencoskun/tableview/handler/ScrollHandler.java b/tableview/src/main/java/com/evrencoskun/tableview/handler/ScrollHandler.java index 17bdf9ce..c54ce71a 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/handler/ScrollHandler.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/handler/ScrollHandler.java @@ -17,10 +17,11 @@ package com.evrencoskun.tableview.handler; -import android.support.v7.widget.LinearLayoutManager; -import android.support.v7.widget.RecyclerView; import android.view.View; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + import com.evrencoskun.tableview.ITableView; import com.evrencoskun.tableview.layoutmanager.CellLayoutManager; import com.evrencoskun.tableview.layoutmanager.ColumnHeaderLayoutManager; diff --git a/tableview/src/main/java/com/evrencoskun/tableview/handler/SelectionHandler.java b/tableview/src/main/java/com/evrencoskun/tableview/handler/SelectionHandler.java index eeddcf24..791ff59d 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/handler/SelectionHandler.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/handler/SelectionHandler.java @@ -17,8 +17,8 @@ package com.evrencoskun.tableview.handler; -import android.support.annotation.ColorInt; -import android.support.v7.widget.LinearLayoutManager; +import androidx.annotation.ColorInt; +import androidx.recyclerview.widget.LinearLayoutManager; import com.evrencoskun.tableview.ITableView; import com.evrencoskun.tableview.adapter.recyclerview.CellRecyclerView; diff --git a/tableview/src/main/java/com/evrencoskun/tableview/layoutmanager/CellLayoutManager.java b/tableview/src/main/java/com/evrencoskun/tableview/layoutmanager/CellLayoutManager.java index 4088a721..ffb738d2 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/layoutmanager/CellLayoutManager.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/layoutmanager/CellLayoutManager.java @@ -19,11 +19,12 @@ import android.content.Context; import android.os.Handler; -import android.support.v7.widget.LinearLayoutManager; -import android.support.v7.widget.RecyclerView; import android.util.Log; import android.view.View; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + import com.evrencoskun.tableview.ITableView; import com.evrencoskun.tableview.adapter.recyclerview.CellRecyclerView; import com.evrencoskun.tableview.adapter.recyclerview.holder.AbstractViewHolder; diff --git a/tableview/src/main/java/com/evrencoskun/tableview/layoutmanager/ColumnHeaderLayoutManager.java b/tableview/src/main/java/com/evrencoskun/tableview/layoutmanager/ColumnHeaderLayoutManager.java index 9e9108cd..21531825 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/layoutmanager/ColumnHeaderLayoutManager.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/layoutmanager/ColumnHeaderLayoutManager.java @@ -18,9 +18,10 @@ package com.evrencoskun.tableview.layoutmanager; import android.content.Context; -import android.support.v7.widget.LinearLayoutManager; import android.view.View; +import androidx.recyclerview.widget.LinearLayoutManager; + import com.evrencoskun.tableview.ITableView; import com.evrencoskun.tableview.adapter.recyclerview.holder.AbstractViewHolder; import com.evrencoskun.tableview.util.TableViewUtils; diff --git a/tableview/src/main/java/com/evrencoskun/tableview/layoutmanager/ColumnLayoutManager.java b/tableview/src/main/java/com/evrencoskun/tableview/layoutmanager/ColumnLayoutManager.java index 7fa9400d..9c6784eb 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/layoutmanager/ColumnLayoutManager.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/layoutmanager/ColumnLayoutManager.java @@ -18,11 +18,12 @@ package com.evrencoskun.tableview.layoutmanager; import android.content.Context; -import android.support.v7.widget.LinearLayoutManager; -import android.support.v7.widget.RecyclerView; import android.util.Log; import android.view.View; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + import com.evrencoskun.tableview.ITableView; import com.evrencoskun.tableview.adapter.recyclerview.CellRecyclerView; import com.evrencoskun.tableview.adapter.recyclerview.holder.AbstractViewHolder; diff --git a/tableview/src/main/java/com/evrencoskun/tableview/listener/ITableViewListener.java b/tableview/src/main/java/com/evrencoskun/tableview/listener/ITableViewListener.java index 2feda436..bc99ee67 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/listener/ITableViewListener.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/listener/ITableViewListener.java @@ -17,8 +17,8 @@ package com.evrencoskun.tableview.listener; -import android.support.annotation.NonNull; -import android.support.v7.widget.RecyclerView; +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; /** * Created by evrencoskun on 20/09/2017. diff --git a/tableview/src/main/java/com/evrencoskun/tableview/listener/itemclick/AbstractItemClickListener.java b/tableview/src/main/java/com/evrencoskun/tableview/listener/itemclick/AbstractItemClickListener.java index 01af6f3b..6fe58d3e 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/listener/itemclick/AbstractItemClickListener.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/listener/itemclick/AbstractItemClickListener.java @@ -17,10 +17,11 @@ package com.evrencoskun.tableview.listener.itemclick; -import android.support.v7.widget.RecyclerView; import android.view.GestureDetector; import android.view.MotionEvent; +import androidx.recyclerview.widget.RecyclerView; + import com.evrencoskun.tableview.ITableView; import com.evrencoskun.tableview.adapter.recyclerview.CellRecyclerView; import com.evrencoskun.tableview.handler.SelectionHandler; diff --git a/tableview/src/main/java/com/evrencoskun/tableview/listener/itemclick/CellRecyclerViewItemClickListener.java b/tableview/src/main/java/com/evrencoskun/tableview/listener/itemclick/CellRecyclerViewItemClickListener.java index d3369b7e..4dfeeb02 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/listener/itemclick/CellRecyclerViewItemClickListener.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/listener/itemclick/CellRecyclerViewItemClickListener.java @@ -17,10 +17,11 @@ package com.evrencoskun.tableview.listener.itemclick; -import android.support.v7.widget.RecyclerView; import android.view.MotionEvent; import android.view.View; +import androidx.recyclerview.widget.RecyclerView; + import com.evrencoskun.tableview.ITableView; import com.evrencoskun.tableview.adapter.recyclerview.CellRecyclerView; import com.evrencoskun.tableview.adapter.recyclerview.CellRowRecyclerViewAdapter; diff --git a/tableview/src/main/java/com/evrencoskun/tableview/listener/itemclick/ColumnHeaderRecyclerViewItemClickListener.java b/tableview/src/main/java/com/evrencoskun/tableview/listener/itemclick/ColumnHeaderRecyclerViewItemClickListener.java index e62d81da..aeb3a9df 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/listener/itemclick/ColumnHeaderRecyclerViewItemClickListener.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/listener/itemclick/ColumnHeaderRecyclerViewItemClickListener.java @@ -17,10 +17,11 @@ package com.evrencoskun.tableview.listener.itemclick; -import android.support.v7.widget.RecyclerView; import android.view.MotionEvent; import android.view.View; +import androidx.recyclerview.widget.RecyclerView; + import com.evrencoskun.tableview.ITableView; import com.evrencoskun.tableview.adapter.recyclerview.CellRecyclerView; import com.evrencoskun.tableview.adapter.recyclerview.holder.AbstractViewHolder; diff --git a/tableview/src/main/java/com/evrencoskun/tableview/listener/itemclick/RowHeaderRecyclerViewItemClickListener.java b/tableview/src/main/java/com/evrencoskun/tableview/listener/itemclick/RowHeaderRecyclerViewItemClickListener.java index 605a08af..b161e97a 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/listener/itemclick/RowHeaderRecyclerViewItemClickListener.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/listener/itemclick/RowHeaderRecyclerViewItemClickListener.java @@ -17,10 +17,11 @@ package com.evrencoskun.tableview.listener.itemclick; -import android.support.v7.widget.RecyclerView; import android.view.MotionEvent; import android.view.View; +import androidx.recyclerview.widget.RecyclerView; + import com.evrencoskun.tableview.ITableView; import com.evrencoskun.tableview.adapter.recyclerview.CellRecyclerView; import com.evrencoskun.tableview.adapter.recyclerview.holder.AbstractViewHolder; diff --git a/tableview/src/main/java/com/evrencoskun/tableview/listener/scroll/HorizontalRecyclerViewListener.java b/tableview/src/main/java/com/evrencoskun/tableview/listener/scroll/HorizontalRecyclerViewListener.java index fa5d92b9..a11838e5 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/listener/scroll/HorizontalRecyclerViewListener.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/listener/scroll/HorizontalRecyclerViewListener.java @@ -17,11 +17,12 @@ package com.evrencoskun.tableview.listener.scroll; -import android.support.v7.widget.LinearLayoutManager; -import android.support.v7.widget.RecyclerView; import android.util.Log; import android.view.MotionEvent; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + import com.evrencoskun.tableview.ITableView; import com.evrencoskun.tableview.adapter.recyclerview.CellRecyclerView; diff --git a/tableview/src/main/java/com/evrencoskun/tableview/listener/scroll/VerticalRecyclerViewListener.java b/tableview/src/main/java/com/evrencoskun/tableview/listener/scroll/VerticalRecyclerViewListener.java index ca50124f..d610c144 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/listener/scroll/VerticalRecyclerViewListener.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/listener/scroll/VerticalRecyclerViewListener.java @@ -17,10 +17,11 @@ package com.evrencoskun.tableview.listener.scroll; -import android.support.v7.widget.RecyclerView; import android.util.Log; import android.view.MotionEvent; +import androidx.recyclerview.widget.RecyclerView; + import com.evrencoskun.tableview.ITableView; import com.evrencoskun.tableview.adapter.recyclerview.CellRecyclerView; diff --git a/tableview/src/main/java/com/evrencoskun/tableview/sort/ColumnSortCallback.java b/tableview/src/main/java/com/evrencoskun/tableview/sort/ColumnSortCallback.java index b4e37d2c..4c1a394a 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/sort/ColumnSortCallback.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/sort/ColumnSortCallback.java @@ -17,8 +17,8 @@ package com.evrencoskun.tableview.sort; -import android.support.v4.util.ObjectsCompat; -import android.support.v7.util.DiffUtil; +import androidx.core.util.ObjectsCompat; +import androidx.recyclerview.widget.DiffUtil; import java.util.List; diff --git a/tableview/src/main/java/com/evrencoskun/tableview/sort/RowHeaderSortCallback.java b/tableview/src/main/java/com/evrencoskun/tableview/sort/RowHeaderSortCallback.java index 39d8e7c1..8cead0ff 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/sort/RowHeaderSortCallback.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/sort/RowHeaderSortCallback.java @@ -1,6 +1,6 @@ package com.evrencoskun.tableview.sort; -import android.support.v7.util.DiffUtil; +import androidx.recyclerview.widget.DiffUtil; import java.util.List; diff --git a/tableview/src/main/java/com/evrencoskun/tableview/util/TableViewUtils.java b/tableview/src/main/java/com/evrencoskun/tableview/util/TableViewUtils.java index 7d8319e7..21a2e3aa 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/util/TableViewUtils.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/util/TableViewUtils.java @@ -17,10 +17,11 @@ package com.evrencoskun.tableview.util; -import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.LinearLayout; +import androidx.recyclerview.widget.RecyclerView; + /** * Created by evrencoskun on 18/09/2017. */ From 2aa6ccfef8fd9d150bf446fde6477b8fcd89eb18 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gae=CC=88tan=20Muller?= Date: Sun, 9 Jun 2019 18:40:06 +0200 Subject: [PATCH 22/64] Annotate the 'tableview' module with `@NonNull` and `@Nullable` and fix some issues --- .../tableview/TableViewAdapter.java | 26 +-- .../tableview/TableViewListener.java | 12 +- .../holder/ColumnHeaderViewHolder.java | 3 +- .../tableviewsample/tableview/model/Cell.java | 20 ++- .../tableview/model/ColumnHeader.java | 8 +- .../tableview/model/RowHeader.java | 7 +- .../com/evrencoskun/tableview/ITableView.java | 34 +++- .../com/evrencoskun/tableview/TableView.java | 151 ++++++++++-------- .../adapter/AbstractTableAdapter.java | 68 ++++---- .../AdapterDataSetChangedListener.java | 8 +- .../tableview/adapter/ITableAdapter.java | 23 ++- .../AbstractRecyclerViewAdapter.java | 36 ++--- .../recyclerview/CellRecyclerView.java | 16 +- .../recyclerview/CellRecyclerViewAdapter.java | 27 ++-- .../CellRowRecyclerViewAdapter.java | 21 +-- .../ColumnHeaderRecyclerViewAdapter.java | 17 +- .../RowHeaderRecyclerViewAdapter.java | 16 +- .../holder/AbstractSorterViewHolder.java | 9 +- .../holder/AbstractViewHolder.java | 6 +- .../evrencoskun/tableview/filter/Filter.java | 23 +-- .../filter/FilterChangedListener.java | 6 +- .../tableview/filter/FilterItem.java | 8 +- .../tableview/filter/IFilterableModel.java | 3 + .../tableview/handler/ColumnSortHandler.java | 53 +++--- .../tableview/handler/ColumnWidthHandler.java | 7 +- .../tableview/handler/FilterHandler.java | 66 ++++---- .../tableview/handler/PreferencesHandler.java | 16 +- .../tableview/handler/ScrollHandler.java | 11 +- .../tableview/handler/SelectionHandler.java | 34 ++-- .../tableview/handler/VisibilityHandler.java | 33 ++-- .../layoutmanager/CellLayoutManager.java | 53 +++--- .../ColumnHeaderLayoutManager.java | 27 ++-- .../layoutmanager/ColumnLayoutManager.java | 21 ++- .../listener/ITableViewListener.java | 1 - .../TableViewLayoutChangeListener.java | 9 +- .../itemclick/AbstractItemClickListener.java | 23 ++- .../CellRecyclerViewItemClickListener.java | 21 ++- ...mnHeaderRecyclerViewItemClickListener.java | 18 +-- ...owHeaderRecyclerViewItemClickListener.java | 16 +- .../HorizontalRecyclerViewListener.java | 24 +-- .../scroll/VerticalRecyclerViewListener.java | 25 +-- .../tableview/pagination/IPagination.java | 4 +- .../tableview/pagination/Pagination.java | 85 +++++----- .../tableview/preference/Preferences.java | 5 + .../tableview/preference/SavedState.java | 15 +- .../sort/AbstractSortComparator.java | 7 +- .../ColumnForRowHeaderSortComparator.java | 23 +-- .../tableview/sort/ColumnSortCallback.java | 8 +- .../tableview/sort/ColumnSortComparator.java | 7 +- .../tableview/sort/ColumnSortHelper.java | 19 ++- .../sort/ColumnSortStateChangedListener.java | 6 +- .../tableview/sort/ISortableModel.java | 6 +- .../sort/RowHeaderForCellSortComparator.java | 24 +-- .../tableview/sort/RowHeaderSortCallback.java | 10 +- .../sort/RowHeaderSortComparator.java | 7 +- .../tableview/sort/RowHeaderSortHelper.java | 16 +- .../evrencoskun/tableview/sort/SortState.java | 4 +- .../tableview/util/TableViewUtils.java | 6 +- 58 files changed, 712 insertions(+), 546 deletions(-) diff --git a/app/src/main/java/com/evrencoskun/tableviewsample/tableview/TableViewAdapter.java b/app/src/main/java/com/evrencoskun/tableviewsample/tableview/TableViewAdapter.java index 1a934194..4a7bbf23 100644 --- a/app/src/main/java/com/evrencoskun/tableviewsample/tableview/TableViewAdapter.java +++ b/app/src/main/java/com/evrencoskun/tableviewsample/tableview/TableViewAdapter.java @@ -23,6 +23,9 @@ import android.view.View; import android.view.ViewGroup; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + import com.evrencoskun.tableview.adapter.AbstractTableAdapter; import com.evrencoskun.tableview.adapter.recyclerview.holder.AbstractViewHolder; import com.evrencoskun.tableview.sort.SortState; @@ -67,11 +70,11 @@ public TableViewAdapter(Context context, TableViewModel tableViewModel) { * * @param viewType : This value comes from "getCellItemViewType" method to support different * type of viewHolder as a Cell item. - * * @see #getCellItemViewType(int); */ + @NonNull @Override - public AbstractViewHolder onCreateCellViewHolder(ViewGroup parent, int viewType) { + public AbstractViewHolder onCreateCellViewHolder(@NonNull ViewGroup parent, int viewType) { //TODO check Log.e(LOG_TAG, " onCreateCellViewHolder has been called"); View layout; @@ -108,11 +111,10 @@ public AbstractViewHolder onCreateCellViewHolder(ViewGroup parent, int viewType) * example, the model class is "Cell". * @param columnPosition : This is the X (Column) position of the cell item. * @param rowPosition : This is the Y (Row) position of the cell item. - * * @see #onCreateCellViewHolder(ViewGroup, int) ; */ @Override - public void onBindCellViewHolder(AbstractViewHolder holder, Object cellItemModel, int + public void onBindCellViewHolder(@NonNull AbstractViewHolder holder, @Nullable Object cellItemModel, int columnPosition, int rowPosition) { Cell cell = (Cell) cellItemModel; @@ -144,11 +146,11 @@ public void onBindCellViewHolder(AbstractViewHolder holder, Object cellItemModel * * @param viewType : This value comes from "getColumnHeaderItemViewType" method to support * different type of viewHolder as a Column Header item. - * * @see #getColumnHeaderItemViewType(int); */ + @NonNull @Override - public AbstractViewHolder onCreateColumnHeaderViewHolder(ViewGroup parent, int viewType) { + public AbstractViewHolder onCreateColumnHeaderViewHolder(@NonNull ViewGroup parent, int viewType) { // TODO: check //Log.e(LOG_TAG, " onCreateColumnHeaderViewHolder has been called"); // Get Column Header xml Layout @@ -170,11 +172,10 @@ public AbstractViewHolder onCreateColumnHeaderViewHolder(ViewGroup parent, int v * @param columnHeaderItemModel : This is the column header view model located on this X * position. In this example, the model class is "ColumnHeader". * @param columnPosition : This is the X (Column) position of the column header item. - * * @see #onCreateColumnHeaderViewHolder(ViewGroup, int) ; */ @Override - public void onBindColumnHeaderViewHolder(AbstractViewHolder holder, Object + public void onBindColumnHeaderViewHolder(@NonNull AbstractViewHolder holder, @Nullable Object columnHeaderItemModel, int columnPosition) { ColumnHeader columnHeader = (ColumnHeader) columnHeaderItemModel; @@ -190,11 +191,11 @@ public void onBindColumnHeaderViewHolder(AbstractViewHolder holder, Object * * @param viewType : This value comes from "getRowHeaderItemViewType" method to support * different type of viewHolder as a row Header item. - * * @see #getRowHeaderItemViewType(int); */ + @NonNull @Override - public AbstractViewHolder onCreateRowHeaderViewHolder(ViewGroup parent, int viewType) { + public AbstractViewHolder onCreateRowHeaderViewHolder(@NonNull ViewGroup parent, int viewType) { // Get Row Header xml Layout View layout = mInflater.inflate(R.layout.table_view_row_header_layout, parent, false); @@ -214,11 +215,10 @@ public AbstractViewHolder onCreateRowHeaderViewHolder(ViewGroup parent, int view * @param rowHeaderItemModel : This is the row header view model located on this Y position. In * this example, the model class is "RowHeader". * @param rowPosition : This is the Y (row) position of the row header item. - * * @see #onCreateRowHeaderViewHolder(ViewGroup, int) ; */ @Override - public void onBindRowHeaderViewHolder(AbstractViewHolder holder, Object rowHeaderItemModel, + public void onBindRowHeaderViewHolder(@NonNull AbstractViewHolder holder, @Nullable Object rowHeaderItemModel, int rowPosition) { RowHeader rowHeader = (RowHeader) rowHeaderItemModel; @@ -227,7 +227,7 @@ public void onBindRowHeaderViewHolder(AbstractViewHolder holder, Object rowHeade rowHeaderViewHolder.row_header_textview.setText(String.valueOf(rowHeader.getData())); } - + @NonNull @Override public View onCreateCornerView() { // Get Corner xml layout diff --git a/app/src/main/java/com/evrencoskun/tableviewsample/tableview/TableViewListener.java b/app/src/main/java/com/evrencoskun/tableviewsample/tableview/TableViewListener.java index 40ea7f8a..5a902383 100644 --- a/app/src/main/java/com/evrencoskun/tableviewsample/tableview/TableViewListener.java +++ b/app/src/main/java/com/evrencoskun/tableviewsample/tableview/TableViewListener.java @@ -96,7 +96,7 @@ public void onColumnHeaderClicked(@NonNull RecyclerView.ViewHolder columnHeaderV public void onColumnHeaderLongPressed(@NonNull RecyclerView.ViewHolder columnHeaderView, int column) { - if (columnHeaderView != null && columnHeaderView instanceof ColumnHeaderViewHolder) { + if (columnHeaderView instanceof ColumnHeaderViewHolder) { // Create Long Press Popup ColumnHeaderLongPressPopup popup = new ColumnHeaderLongPressPopup( (ColumnHeaderViewHolder) columnHeaderView, mTableView); @@ -128,12 +128,10 @@ public void onRowHeaderClicked(@NonNull RecyclerView.ViewHolder rowHeaderView, i @Override public void onRowHeaderLongPressed(@NonNull RecyclerView.ViewHolder rowHeaderView, int row) { - if (rowHeaderView != null) { - // Create Long Press Popup - RowHeaderLongPressPopup popup = new RowHeaderLongPressPopup(rowHeaderView, mTableView); - // Show - popup.show(); - } + // Create Long Press Popup + RowHeaderLongPressPopup popup = new RowHeaderLongPressPopup(rowHeaderView, mTableView); + // Show + popup.show(); } diff --git a/app/src/main/java/com/evrencoskun/tableviewsample/tableview/holder/ColumnHeaderViewHolder.java b/app/src/main/java/com/evrencoskun/tableviewsample/tableview/holder/ColumnHeaderViewHolder.java index bc1b7403..2770261d 100644 --- a/app/src/main/java/com/evrencoskun/tableviewsample/tableview/holder/ColumnHeaderViewHolder.java +++ b/app/src/main/java/com/evrencoskun/tableviewsample/tableview/holder/ColumnHeaderViewHolder.java @@ -24,6 +24,7 @@ import android.widget.LinearLayout; import android.widget.TextView; +import androidx.annotation.NonNull; import androidx.core.content.ContextCompat; import com.evrencoskun.tableview.ITableView; @@ -95,7 +96,7 @@ public void onClick(View view) { }; @Override - public void onSortingStatusChanged(SortState sortState) { + public void onSortingStatusChanged(@NonNull SortState sortState) { Log.e(LOG_TAG, " + onSortingStatusChanged : x: " + getAdapterPosition() + " old state " + getSortState() + " current state : " + sortState + " visiblity: " + column_header_sortButton.getVisibility()); diff --git a/app/src/main/java/com/evrencoskun/tableviewsample/tableview/model/Cell.java b/app/src/main/java/com/evrencoskun/tableviewsample/tableview/model/Cell.java index 2142eecf..8bd9b7f1 100644 --- a/app/src/main/java/com/evrencoskun/tableviewsample/tableview/model/Cell.java +++ b/app/src/main/java/com/evrencoskun/tableviewsample/tableview/model/Cell.java @@ -17,6 +17,9 @@ package com.evrencoskun.tableviewsample.tableview.model; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + import com.evrencoskun.tableview.filter.IFilterableModel; import com.evrencoskun.tableview.sort.ISortableModel; @@ -25,16 +28,17 @@ */ public class Cell implements ISortableModel, IFilterableModel { - + @NonNull private String mId; + @Nullable private Object mData; private String mFilterKeyword; - public Cell(String id) { + public Cell(@NonNull String id) { this.mId = id; } - public Cell(String id, Object data) { + public Cell(@NonNull String id, @Nullable Object data) { this.mId = id; this.mData = data; this.mFilterKeyword = String.valueOf(data); @@ -44,6 +48,7 @@ public Cell(String id, Object data) { * This is necessary for sorting process. * See ISortableModel */ + @NonNull @Override public String getId() { return mId; @@ -53,17 +58,20 @@ public String getId() { * This is necessary for sorting process. * See ISortableModel */ + @Nullable @Override public Object getContent() { return mData; } - + @Nullable public Object getData() { return mData; } - public void setData(String data) { mData = data; } + public void setData(@Nullable String data) { + mData = data; + } public String getFilterKeyword() { return mFilterKeyword; @@ -73,9 +81,9 @@ public void setFilterKeyword(String filterKeyword) { this.mFilterKeyword = filterKeyword; } + @NonNull @Override public String getFilterableKeyword() { return mFilterKeyword; } } - diff --git a/app/src/main/java/com/evrencoskun/tableviewsample/tableview/model/ColumnHeader.java b/app/src/main/java/com/evrencoskun/tableviewsample/tableview/model/ColumnHeader.java index efa1ca14..aeb8c97d 100644 --- a/app/src/main/java/com/evrencoskun/tableviewsample/tableview/model/ColumnHeader.java +++ b/app/src/main/java/com/evrencoskun/tableviewsample/tableview/model/ColumnHeader.java @@ -17,18 +17,20 @@ package com.evrencoskun.tableviewsample.tableview.model; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + /** * Created by evrencoskun on 11/06/2017. */ public class ColumnHeader extends Cell { - public ColumnHeader(String id) { + public ColumnHeader(@NonNull String id) { super(id); } - public ColumnHeader(String id, String data) { + public ColumnHeader(@NonNull String id, @Nullable String data) { super(id, data); } } - diff --git a/app/src/main/java/com/evrencoskun/tableviewsample/tableview/model/RowHeader.java b/app/src/main/java/com/evrencoskun/tableviewsample/tableview/model/RowHeader.java index 5329b84e..787a0cf1 100644 --- a/app/src/main/java/com/evrencoskun/tableviewsample/tableview/model/RowHeader.java +++ b/app/src/main/java/com/evrencoskun/tableviewsample/tableview/model/RowHeader.java @@ -17,17 +17,20 @@ package com.evrencoskun.tableviewsample.tableview.model; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + /** * Created by evrencoskun on 11/06/2017. */ public class RowHeader extends Cell { - public RowHeader(String id) { + public RowHeader(@NonNull String id) { super(id); } - public RowHeader(String id, String data) { + public RowHeader(@NonNull String id, @Nullable String data) { super(id, data); } } diff --git a/tableview/src/main/java/com/evrencoskun/tableview/ITableView.java b/tableview/src/main/java/com/evrencoskun/tableview/ITableView.java index 7fe04cbe..52ad653d 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/ITableView.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/ITableView.java @@ -20,6 +20,8 @@ import android.view.View; import android.view.ViewGroup; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import androidx.recyclerview.widget.DividerItemDecoration; import androidx.recyclerview.widget.LinearLayoutManager; @@ -50,39 +52,54 @@ public interface ITableView { boolean isIgnoreSelectionColors(); boolean isShowHorizontalSeparators(); - + boolean isShowVerticalSeparators(); boolean isSortable(); + @NonNull CellRecyclerView getCellRecyclerView(); + @NonNull CellRecyclerView getColumnHeaderRecyclerView(); + @NonNull CellRecyclerView getRowHeaderRecyclerView(); + @NonNull ColumnHeaderLayoutManager getColumnHeaderLayoutManager(); + @NonNull CellLayoutManager getCellLayoutManager(); + @NonNull LinearLayoutManager getRowHeaderLayoutManager(); + @NonNull HorizontalRecyclerViewListener getHorizontalRecyclerViewListener(); + @NonNull VerticalRecyclerViewListener getVerticalRecyclerViewListener(); + @Nullable ITableViewListener getTableViewListener(); + @NonNull SelectionHandler getSelectionHandler(); - + + @Nullable ColumnSortHandler getColumnSortHandler(); + @NonNull DividerItemDecoration getHorizontalItemDecoration(); - + + @NonNull DividerItemDecoration getVerticalItemDecoration(); + @NonNull SortState getSortingStatus(int column); + @Nullable SortState getRowHeaderSortingStatus(); void scrollToColumnPosition(int column); @@ -121,9 +138,9 @@ public interface ITableView { int getSeparatorColor(); - void sortColumn(int columnPosition, SortState sortState); + void sortColumn(int columnPosition, @NonNull SortState sortState); - void sortRowHeader(SortState sortState); + void sortRowHeader(@NonNull SortState sortState); void remeasureColumnWidth(int column); @@ -131,6 +148,7 @@ public interface ITableView { void setRowHeaderWidth(int rowHeaderWidth); + @Nullable AbstractTableAdapter getAdapter(); /** @@ -138,19 +156,21 @@ public interface ITableView { * * @param filter The filter object. */ - void filter(Filter filter); + void filter(@NonNull Filter filter); /** * Retrieves the FilterHandler of the TableView. * * @return The FilterHandler of the TableView. */ + @Nullable FilterHandler getFilterHandler(); - + /** * Retrieves the ScrollHandler of the TableView. * * @return The ScrollHandler of the TableView. */ + @NonNull ScrollHandler getScrollHandler(); } diff --git a/tableview/src/main/java/com/evrencoskun/tableview/TableView.java b/tableview/src/main/java/com/evrencoskun/tableview/TableView.java index d9efc4f2..60fd5a28 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/TableView.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/TableView.java @@ -61,35 +61,43 @@ */ public class TableView extends FrameLayout implements ITableView { - - private static final String LOG_TAG = TableView.class.getSimpleName(); - + @NonNull protected CellRecyclerView mCellRecyclerView; + @NonNull protected CellRecyclerView mColumnHeaderRecyclerView; + @NonNull protected CellRecyclerView mRowHeaderRecyclerView; - + @Nullable protected AbstractTableAdapter mTableAdapter; + @Nullable private ITableViewListener mTableViewListener; - + @NonNull private VerticalRecyclerViewListener mVerticalRecyclerListener; + @NonNull private HorizontalRecyclerViewListener mHorizontalRecyclerViewListener; - - private ColumnHeaderRecyclerViewItemClickListener mColumnHeaderRecyclerViewItemClickListener; - private RowHeaderRecyclerViewItemClickListener mRowHeaderRecyclerViewItemClickListener; - + @NonNull private ColumnHeaderLayoutManager mColumnHeaderLayoutManager; + @NonNull private LinearLayoutManager mRowHeaderLayoutManager; + @NonNull private CellLayoutManager mCellLayoutManager; - + @NonNull private DividerItemDecoration mVerticalItemDecoration; + @NonNull private DividerItemDecoration mHorizontalItemDecoration; - + @NonNull private SelectionHandler mSelectionHandler; + @Nullable private ColumnSortHandler mColumnSortHandler; + @NonNull private VisibilityHandler mVisibilityHandler; + @NonNull private ScrollHandler mScrollHandler; + @Nullable private FilterHandler mFilterHandler; + @NonNull private PreferencesHandler mPreferencesHandler; + @NonNull private ColumnWidthHandler mColumnWidthHandler; private int mRowHeaderWidth; @@ -125,7 +133,7 @@ public TableView(@NonNull Context context, @Nullable AttributeSet attrs, @AttrRe initialize(); } - private void initialDefaultValues(AttributeSet attrs) { + private void initialDefaultValues(@Nullable AttributeSet attrs) { // Dimensions mRowHeaderWidth = (int) getResources().getDimension(R.dimen.default_row_header_width); mColumnHeaderHeight = (int) getResources().getDimension(R.dimen @@ -212,15 +220,15 @@ protected void initializeListeners() { // --- Listeners to help item clicks --- // Create item click listeners - mColumnHeaderRecyclerViewItemClickListener = new + ColumnHeaderRecyclerViewItemClickListener columnHeaderRecyclerViewItemClickListener = new ColumnHeaderRecyclerViewItemClickListener(mColumnHeaderRecyclerView, this); - mRowHeaderRecyclerViewItemClickListener = new RowHeaderRecyclerViewItemClickListener + RowHeaderRecyclerViewItemClickListener rowHeaderRecyclerViewItemClickListener = new RowHeaderRecyclerViewItemClickListener (mRowHeaderRecyclerView, this); // Add item click listeners for both column header & row header recyclerView mColumnHeaderRecyclerView.addOnItemTouchListener - (mColumnHeaderRecyclerViewItemClickListener); - mRowHeaderRecyclerView.addOnItemTouchListener(mRowHeaderRecyclerViewItemClickListener); + (columnHeaderRecyclerViewItemClickListener); + mRowHeaderRecyclerView.addOnItemTouchListener(rowHeaderRecyclerViewItemClickListener); // Add Layout change listener both of Column Header & Cell recyclerView to detect @@ -233,6 +241,7 @@ protected void initializeListeners() { } + @NonNull protected CellRecyclerView createColumnHeaderRecyclerView() { CellRecyclerView recyclerView = new CellRecyclerView(getContext()); @@ -253,6 +262,7 @@ protected CellRecyclerView createColumnHeaderRecyclerView() { return recyclerView; } + @NonNull protected CellRecyclerView createRowHeaderRecyclerView() { CellRecyclerView recyclerView = new CellRecyclerView(getContext()); @@ -273,6 +283,7 @@ protected CellRecyclerView createRowHeaderRecyclerView() { return recyclerView; } + @NonNull protected CellRecyclerView createCellRecyclerView() { CellRecyclerView recyclerView = new CellRecyclerView(getContext()); @@ -297,8 +308,7 @@ protected CellRecyclerView createCellRecyclerView() { return recyclerView; } - - public void setAdapter(AbstractTableAdapter tableAdapter) { + public void setAdapter(@Nullable AbstractTableAdapter tableAdapter) { if (tableAdapter != null) { this.mTableAdapter = tableAdapter; this.mTableAdapter.setRowHeaderWidth(mRowHeaderWidth); @@ -306,22 +316,15 @@ public void setAdapter(AbstractTableAdapter tableAdapter) { this.mTableAdapter.setTableView(this); // set adapters - if (mColumnHeaderRecyclerView != null) { - mColumnHeaderRecyclerView.setAdapter(mTableAdapter - .getColumnHeaderRecyclerViewAdapter()); - } - if (mRowHeaderRecyclerView != null) { - mRowHeaderRecyclerView.setAdapter(mTableAdapter.getRowHeaderRecyclerViewAdapter()); - } - if (mCellRecyclerView != null) { - mCellRecyclerView.setAdapter(mTableAdapter.getCellRecyclerViewAdapter()); - - // Create Sort Handler - mColumnSortHandler = new ColumnSortHandler(this); - - // Create Filter Handler - mFilterHandler = new FilterHandler(this); - } + mColumnHeaderRecyclerView.setAdapter(mTableAdapter.getColumnHeaderRecyclerViewAdapter()); + mRowHeaderRecyclerView.setAdapter(mTableAdapter.getRowHeaderRecyclerViewAdapter()); + mCellRecyclerView.setAdapter(mTableAdapter.getCellRecyclerViewAdapter()); + + // Create Sort Handler + mColumnSortHandler = new ColumnSortHandler(this); + + // Create Filter Handler + mFilterHandler = new FilterHandler(this); } } @@ -369,21 +372,25 @@ public void setShowVerticalSeparators(boolean showSeparators) { this.mShowVerticalSeparators = showSeparators; } + @NonNull @Override public CellRecyclerView getCellRecyclerView() { return mCellRecyclerView; } + @NonNull @Override public CellRecyclerView getColumnHeaderRecyclerView() { return mColumnHeaderRecyclerView; } + @NonNull @Override public CellRecyclerView getRowHeaderRecyclerView() { return mRowHeaderRecyclerView; } + @NonNull @Override public ColumnHeaderLayoutManager getColumnHeaderLayoutManager() { if (mColumnHeaderLayoutManager == null) { @@ -392,6 +399,7 @@ public ColumnHeaderLayoutManager getColumnHeaderLayoutManager() { return mColumnHeaderLayoutManager; } + @NonNull @Override public CellLayoutManager getCellLayoutManager() { if (mCellLayoutManager == null) { @@ -400,6 +408,7 @@ public CellLayoutManager getCellLayoutManager() { return mCellLayoutManager; } + @NonNull @Override public LinearLayoutManager getRowHeaderLayoutManager() { if (mRowHeaderLayoutManager == null) { @@ -409,39 +418,40 @@ public LinearLayoutManager getRowHeaderLayoutManager() { return mRowHeaderLayoutManager; } + @NonNull @Override public HorizontalRecyclerViewListener getHorizontalRecyclerViewListener() { return mHorizontalRecyclerViewListener; } + @NonNull @Override public VerticalRecyclerViewListener getVerticalRecyclerViewListener() { return mVerticalRecyclerListener; } + @Nullable @Override public ITableViewListener getTableViewListener() { return mTableViewListener; } - - public void setTableViewListener(ITableViewListener tableViewListener) { + public void setTableViewListener(@Nullable ITableViewListener tableViewListener) { this.mTableViewListener = tableViewListener; } @Override - public void sortColumn(int columnPosition, SortState sortState) { + public void sortColumn(int columnPosition, @NonNull SortState sortState) { mIsSortable = true; mColumnSortHandler.sort(columnPosition, sortState); } @Override - public void sortRowHeader(SortState sortState) { + public void sortRowHeader(@NonNull SortState sortState) { mIsSortable = true; mColumnSortHandler.sortByRowHeader(sortState); } - @Override public void remeasureColumnWidth(int column) { // Remove calculated width value to be ready for recalculation. @@ -450,26 +460,30 @@ public void remeasureColumnWidth(int column) { getCellLayoutManager().fitWidthSize(column, false); } + @Nullable @Override public AbstractTableAdapter getAdapter() { return mTableAdapter; } @Override - public void filter(Filter filter) { + public void filter(@NonNull Filter filter) { mFilterHandler.filter(filter); } + @Nullable @Override public FilterHandler getFilterHandler() { return mFilterHandler; } + @NonNull @Override public SortState getSortingStatus(int column) { return mColumnSortHandler.getSortingStatus(column); } + @Nullable @Override public SortState getRowHeaderSortingStatus() { return mColumnSortHandler.getRowHeaderSortingStatus(); @@ -495,6 +509,7 @@ public void scrollToRowPosition(int row, int offset) { mScrollHandler.scrollToRowPosition(row, offset); } + @NonNull public ScrollHandler getScrollHandler() { return mScrollHandler; } @@ -587,16 +602,19 @@ public void setSelectedCell(int column, int row) { mSelectionHandler.setSelectedCellPositions(cellViewHolder, column, row); } + @NonNull @Override public SelectionHandler getSelectionHandler() { return mSelectionHandler; } + @Nullable @Override public ColumnSortHandler getColumnSortHandler() { return mColumnSortHandler; } + @NonNull @Override public DividerItemDecoration getHorizontalItemDecoration() { if (mHorizontalItemDecoration == null) { @@ -605,6 +623,7 @@ public DividerItemDecoration getHorizontalItemDecoration() { return mHorizontalItemDecoration; } + @NonNull @Override public DividerItemDecoration getVerticalItemDecoration() { if (mVerticalItemDecoration == null) { @@ -613,6 +632,7 @@ public DividerItemDecoration getVerticalItemDecoration() { return mVerticalItemDecoration; } + @NonNull protected DividerItemDecoration createItemDecoration(int orientation) { Drawable divider = ContextCompat.getDrawable(getContext(), R.drawable.cell_line_divider); @@ -636,9 +656,9 @@ public void setSelectedColor(@ColorInt int selectedColor) { this.mSelectedColor = selectedColor; } + @ColorInt @Override - public @ColorInt - int getSelectedColor() { + public int getSelectedColor() { return mSelectedColor; } @@ -646,9 +666,9 @@ public void setSeparatorColor(@ColorInt int mSeparatorColor) { this.mSeparatorColor = mSeparatorColor; } + @ColorInt @Override - public @ColorInt - int getSeparatorColor() { + public int getSeparatorColor() { return mSeparatorColor; } @@ -661,9 +681,9 @@ public void setUnSelectedColor(@ColorInt int unSelectedColor) { this.mUnSelectedColor = unSelectedColor; } + @ColorInt @Override - public @ColorInt - int getUnSelectedColor() { + public int getUnSelectedColor() { return mUnSelectedColor; } @@ -695,29 +715,24 @@ public int getRowHeaderWidth() { @Override public void setRowHeaderWidth(int rowHeaderWidth) { this.mRowHeaderWidth = rowHeaderWidth; - if (mRowHeaderRecyclerView != null) { - // Update RowHeader layout width - ViewGroup.LayoutParams layoutParams = mRowHeaderRecyclerView.getLayoutParams(); - layoutParams.width = rowHeaderWidth; - mRowHeaderRecyclerView.setLayoutParams(layoutParams); - mRowHeaderRecyclerView.requestLayout(); - } - if (mColumnHeaderRecyclerView != null) { - // Update ColumnHeader left margin - LayoutParams layoutParams = (LayoutParams) mColumnHeaderRecyclerView.getLayoutParams(); - layoutParams.leftMargin = rowHeaderWidth; - mColumnHeaderRecyclerView.setLayoutParams(layoutParams); - mColumnHeaderRecyclerView.requestLayout(); - } + // Update RowHeader layout width + ViewGroup.LayoutParams layoutParamsRow = mRowHeaderRecyclerView.getLayoutParams(); + layoutParamsRow.width = rowHeaderWidth; + mRowHeaderRecyclerView.setLayoutParams(layoutParamsRow); + mRowHeaderRecyclerView.requestLayout(); - if (mCellRecyclerView != null) { - // Update Cells left margin - LayoutParams layoutParams = (LayoutParams) mCellRecyclerView.getLayoutParams(); - layoutParams.leftMargin = rowHeaderWidth; - mCellRecyclerView.setLayoutParams(layoutParams); - mCellRecyclerView.requestLayout(); - } + // Update ColumnHeader left margin + LayoutParams layoutParamsColumn = (LayoutParams) mColumnHeaderRecyclerView.getLayoutParams(); + layoutParamsColumn.leftMargin = rowHeaderWidth; + mColumnHeaderRecyclerView.setLayoutParams(layoutParamsColumn); + mColumnHeaderRecyclerView.requestLayout(); + + // Update Cells left margin + LayoutParams layoutParamsCell = (LayoutParams) mCellRecyclerView.getLayoutParams(); + layoutParamsCell.leftMargin = rowHeaderWidth; + mCellRecyclerView.setLayoutParams(layoutParamsCell); + mCellRecyclerView.requestLayout(); if (getAdapter() != null) { // update CornerView size @@ -729,7 +744,7 @@ public void setColumnWidth(int columnPosition, int width) { mColumnWidthHandler.setColumnWidth(columnPosition, width); } - + @Nullable @Override protected Parcelable onSaveInstanceState() { SavedState state = new SavedState(super.onSaveInstanceState()); diff --git a/tableview/src/main/java/com/evrencoskun/tableview/adapter/AbstractTableAdapter.java b/tableview/src/main/java/com/evrencoskun/tableview/adapter/AbstractTableAdapter.java index fdb12ecf..b6d1d36b 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/adapter/AbstractTableAdapter.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/adapter/AbstractTableAdapter.java @@ -22,6 +22,9 @@ import android.view.ViewGroup; import android.widget.FrameLayout; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + import com.evrencoskun.tableview.ITableView; import com.evrencoskun.tableview.TableView; import com.evrencoskun.tableview.adapter.recyclerview.CellRecyclerViewAdapter; @@ -35,14 +38,15 @@ * Created by evrencoskun on 10/06/2017. */ -public abstract class AbstractTableAdapter implements ITableAdapter { +public abstract class AbstractTableAdapter implements ITableAdapter { private int mRowHeaderWidth; private int mColumnHeaderHeight; + @NonNull protected Context mContext; - private ColumnHeaderRecyclerViewAdapter mColumnHeaderRecyclerViewAdapter; - private RowHeaderRecyclerViewAdapter mRowHeaderRecyclerViewAdapter; + private ColumnHeaderRecyclerViewAdapter mColumnHeaderRecyclerViewAdapter; + private RowHeaderRecyclerViewAdapter mRowHeaderRecyclerViewAdapter; private CellRecyclerViewAdapter mCellRecyclerViewAdapter; private View mCornerView; @@ -51,31 +55,31 @@ public abstract class AbstractTableAdapter implements ITableAdapter { protected List> mCellItems; private ITableView mTableView; - private List dataSetChangedListeners; + private List> dataSetChangedListeners; - public AbstractTableAdapter(Context context) { + public AbstractTableAdapter(@NonNull Context context) { mContext = context; } - public void setTableView(TableView tableView) { + public void setTableView(@NonNull TableView tableView) { mTableView = tableView; initialize(); } private void initialize() { // Create Column header RecyclerView Adapter - mColumnHeaderRecyclerViewAdapter = new ColumnHeaderRecyclerViewAdapter(mContext, + mColumnHeaderRecyclerViewAdapter = new ColumnHeaderRecyclerViewAdapter<>(mContext, mColumnHeaderItems, this); // Create Row Header RecyclerView Adapter - mRowHeaderRecyclerViewAdapter = new RowHeaderRecyclerViewAdapter(mContext, + mRowHeaderRecyclerViewAdapter = new RowHeaderRecyclerViewAdapter<>(mContext, mRowHeaderItems, this); // Create Cell RecyclerView Adapter - mCellRecyclerViewAdapter = new CellRecyclerViewAdapter(mContext, mCellItems, mTableView); + mCellRecyclerViewAdapter = new CellRecyclerViewAdapter<>(mContext, mCellItems, mTableView); } - public void setColumnHeaderItems(List columnHeaderItems) { + public void setColumnHeaderItems(@Nullable List columnHeaderItems) { if (columnHeaderItems == null) { return; } @@ -89,7 +93,7 @@ public void setColumnHeaderItems(List columnHeaderItems) { dispatchColumnHeaderDataSetChangesToListeners(columnHeaderItems); } - public void setRowHeaderItems(List rowHeaderItems) { + public void setRowHeaderItems(@Nullable List rowHeaderItems) { if (rowHeaderItems == null) { return; } @@ -101,7 +105,7 @@ public void setRowHeaderItems(List rowHeaderItems) { dispatchRowHeaderDataSetChangesToListeners(mRowHeaderItems); } - public void setCellItems(List> cellItems) { + public void setCellItems(@Nullable List> cellItems) { if (cellItems == null) { return; } @@ -115,7 +119,7 @@ public void setCellItems(List> cellItems) { dispatchCellDataSetChangesToListeners(mCellItems); } - public void setAllItems(List columnHeaderItems, List rowHeaderItems, List> + public void setAllItems(@Nullable List columnHeaderItems, @Nullable List rowHeaderItems, @Nullable List> cellItems) { // Set all items setColumnHeaderItems(columnHeaderItems); @@ -142,6 +146,7 @@ public void setAllItems(List columnHeaderItems, List rowHeaderItems, Lis } } + @Nullable public View getCornerView() { return mCornerView; } @@ -171,6 +176,7 @@ public void setColumnHeaderHeight(int columnHeaderHeight) { this.mColumnHeaderHeight = columnHeaderHeight; } + @Nullable public CH getColumnHeaderItem(int position) { if ((mColumnHeaderItems == null || mColumnHeaderItems.isEmpty()) || position < 0 || position >= mColumnHeaderItems.size()) { @@ -179,6 +185,7 @@ public CH getColumnHeaderItem(int position) { return mColumnHeaderItems.get(position); } + @Nullable public RH getRowHeaderItem(int position) { if ((mRowHeaderItems == null || mRowHeaderItems.isEmpty()) || position < 0 || position >= mRowHeaderItems.size()) { @@ -187,6 +194,7 @@ public RH getRowHeaderItem(int position) { return mRowHeaderItems.get(position); } + @Nullable public C getCellItem(int columnPosition, int rowPosition) { if ((mCellItems == null || mCellItems.isEmpty()) || columnPosition < 0 || rowPosition >= mCellItems.size() || mCellItems.get(rowPosition) == null || rowPosition < 0 || @@ -197,6 +205,7 @@ public C getCellItem(int columnPosition, int rowPosition) { return mCellItems.get(rowPosition).get(columnPosition); } + @Nullable public List getCellRowItems(int rowPosition) { return (List) mCellRecyclerViewAdapter.getItem(rowPosition); } @@ -242,21 +251,21 @@ public void removeRowRange(int rowPositionStart, int itemCount, boolean updateRo mRowHeaderRecyclerViewAdapter.deleteItemRange(rowPositionStart, itemCount); } - public void addRow(int rowPosition, RH rowHeaderItem, List cellItems) { + public void addRow(int rowPosition, @Nullable RH rowHeaderItem, @Nullable List cellItems) { mCellRecyclerViewAdapter.addItem(rowPosition, cellItems); mRowHeaderRecyclerViewAdapter.addItem(rowPosition, rowHeaderItem); } - public void addRowRange(int rowPositionStart, List rowHeaderItem, List> cellItems) { + public void addRowRange(int rowPositionStart, @Nullable List rowHeaderItem, @Nullable List> cellItems) { mRowHeaderRecyclerViewAdapter.addItemRange(rowPositionStart, rowHeaderItem); mCellRecyclerViewAdapter.addItemRange(rowPositionStart, cellItems); } - public void changeRowHeaderItem(int rowPosition, RH rowHeaderModel) { + public void changeRowHeaderItem(int rowPosition, @Nullable RH rowHeaderModel) { mRowHeaderRecyclerViewAdapter.changeItem(rowPosition, rowHeaderModel); } - public void changeRowHeaderItemRange(int rowPositionStart, List rowHeaderModelList) { + public void changeRowHeaderItemRange(int rowPositionStart, @Nullable List rowHeaderModelList) { mRowHeaderRecyclerViewAdapter.changeItemRange(rowPositionStart, rowHeaderModelList); } @@ -270,16 +279,16 @@ public void changeCellItem(int columnPosition, int rowPosition, C cellModel) { } } - public void changeColumnHeader(int columnPosition, CH columnHeaderModel) { + public void changeColumnHeader(int columnPosition, @Nullable CH columnHeaderModel) { mColumnHeaderRecyclerViewAdapter.changeItem(columnPosition, columnHeaderModel); } - public void changeColumnHeaderRange(int columnPositionStart, List columnHeaderModelList) { + public void changeColumnHeaderRange(int columnPositionStart, @Nullable List columnHeaderModelList) { mColumnHeaderRecyclerViewAdapter.changeItemRange(columnPositionStart, columnHeaderModelList); } - + @NonNull public List getCellColumnItems(int columnPosition) { return mCellRecyclerViewAdapter.getColumnItems(columnPosition); } @@ -289,7 +298,7 @@ public void removeColumn(int columnPosition) { mCellRecyclerViewAdapter.removeColumnItems(columnPosition); } - public void addColumn(int columnPosition, CH columnHeaderItem, List cellItems) { + public void addColumn(int columnPosition, @Nullable CH columnHeaderItem, @NonNull List cellItems) { mColumnHeaderRecyclerViewAdapter.addItem(columnPosition, columnHeaderItem); mCellRecyclerViewAdapter.addColumnItems(columnPosition, cellItems); } @@ -306,28 +315,25 @@ public ITableView getTableView() { return mTableView; } - @SuppressWarnings("unchecked") - private void dispatchColumnHeaderDataSetChangesToListeners(List newColumnHeaderItems) { + private void dispatchColumnHeaderDataSetChangesToListeners(@NonNull List newColumnHeaderItems) { if (dataSetChangedListeners != null) { - for (AdapterDataSetChangedListener listener : dataSetChangedListeners) { + for (AdapterDataSetChangedListener listener : dataSetChangedListeners) { listener.onColumnHeaderItemsChanged(newColumnHeaderItems); } } } - @SuppressWarnings("unchecked") - private void dispatchRowHeaderDataSetChangesToListeners(final List newRowHeaderItems) { + private void dispatchRowHeaderDataSetChangesToListeners(@NonNull final List newRowHeaderItems) { if (dataSetChangedListeners != null) { - for (AdapterDataSetChangedListener listener : dataSetChangedListeners) { + for (AdapterDataSetChangedListener listener : dataSetChangedListeners) { listener.onRowHeaderItemsChanged(newRowHeaderItems); } } } - @SuppressWarnings("unchecked") - private void dispatchCellDataSetChangesToListeners(List> newCellItems) { + private void dispatchCellDataSetChangesToListeners(@NonNull List> newCellItems) { if (dataSetChangedListeners != null) { - for (AdapterDataSetChangedListener listener : dataSetChangedListeners) { + for (AdapterDataSetChangedListener listener : dataSetChangedListeners) { listener.onCellItemsChanged(newCellItems); } } @@ -338,7 +344,7 @@ private void dispatchCellDataSetChangesToListeners(List> newCellItems) { * * @param listener The AdapterDataSetChangedListener listener. */ - public void addAdapterDataSetChangedListener(AdapterDataSetChangedListener listener) { + public void addAdapterDataSetChangedListener(@NonNull AdapterDataSetChangedListener listener) { if (dataSetChangedListeners == null) { dataSetChangedListeners = new ArrayList<>(); } diff --git a/tableview/src/main/java/com/evrencoskun/tableview/adapter/AdapterDataSetChangedListener.java b/tableview/src/main/java/com/evrencoskun/tableview/adapter/AdapterDataSetChangedListener.java index df068067..53b1b0ae 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/adapter/AdapterDataSetChangedListener.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/adapter/AdapterDataSetChangedListener.java @@ -17,6 +17,8 @@ package com.evrencoskun.tableview.adapter; +import androidx.annotation.NonNull; + import java.util.List; public abstract class AdapterDataSetChangedListener { @@ -26,7 +28,7 @@ public abstract class AdapterDataSetChangedListener { * * @param columnHeaderItems The current column header items. */ - public void onColumnHeaderItemsChanged(List columnHeaderItems) { + public void onColumnHeaderItemsChanged(@NonNull List columnHeaderItems) { } /** @@ -34,7 +36,7 @@ public void onColumnHeaderItemsChanged(List columnHeaderItems) { * * @param rowHeaderItems The current row header items. */ - public void onRowHeaderItemsChanged(List rowHeaderItems) { + public void onRowHeaderItemsChanged(@NonNull List rowHeaderItems) { } /** @@ -42,7 +44,7 @@ public void onRowHeaderItemsChanged(List rowHeaderItems) { * * @param cellItems The current cell items. */ - public void onCellItemsChanged(List> cellItems) { + public void onCellItemsChanged(@NonNull List> cellItems) { } /** diff --git a/tableview/src/main/java/com/evrencoskun/tableview/adapter/ITableAdapter.java b/tableview/src/main/java/com/evrencoskun/tableview/adapter/ITableAdapter.java index e25d2467..fe1aea56 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/adapter/ITableAdapter.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/adapter/ITableAdapter.java @@ -20,6 +20,9 @@ import android.view.View; import android.view.ViewGroup; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + import com.evrencoskun.tableview.ITableView; import com.evrencoskun.tableview.adapter.recyclerview.holder.AbstractViewHolder; @@ -27,7 +30,7 @@ * Created by evrencoskun on 10/06/2017. */ -public interface ITableAdapter { +public interface ITableAdapter { int getColumnHeaderItemViewType(int position); @@ -37,21 +40,25 @@ public interface ITableAdapter { View getCornerView(); - AbstractViewHolder onCreateCellViewHolder(ViewGroup parent, int viewType); + @NonNull + AbstractViewHolder onCreateCellViewHolder(@NonNull ViewGroup parent, int viewType); - void onBindCellViewHolder(AbstractViewHolder holder, Object cellItemModel, int + void onBindCellViewHolder(@NonNull AbstractViewHolder holder, @Nullable Object cellItemModel, int columnPosition, int rowPosition); - AbstractViewHolder onCreateColumnHeaderViewHolder(ViewGroup parent, int viewType); + @NonNull + AbstractViewHolder onCreateColumnHeaderViewHolder(@NonNull ViewGroup parent, int viewType); - void onBindColumnHeaderViewHolder(AbstractViewHolder holder, Object columnHeaderItemModel, + void onBindColumnHeaderViewHolder(@NonNull AbstractViewHolder holder, @Nullable Object columnHeaderItemModel, int columnPosition); - AbstractViewHolder onCreateRowHeaderViewHolder(ViewGroup parent, int viewType); + @NonNull + AbstractViewHolder onCreateRowHeaderViewHolder(@NonNull ViewGroup parent, int viewType); - void onBindRowHeaderViewHolder(AbstractViewHolder holder, Object rowHeaderItemModel, int + void onBindRowHeaderViewHolder(@NonNull AbstractViewHolder holder, @Nullable Object rowHeaderItemModel, int rowPosition); + @NonNull View onCreateCornerView(); ITableView getTableView(); @@ -61,5 +68,5 @@ void onBindRowHeaderViewHolder(AbstractViewHolder holder, Object rowHeaderItemMo * * @param listener The AdapterDataSetChangedListener listener. */ - void addAdapterDataSetChangedListener(AdapterDataSetChangedListener listener); + void addAdapterDataSetChangedListener(@NonNull AdapterDataSetChangedListener listener); } diff --git a/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/AbstractRecyclerViewAdapter.java b/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/AbstractRecyclerViewAdapter.java index 3ba434cc..90a2860c 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/AbstractRecyclerViewAdapter.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/AbstractRecyclerViewAdapter.java @@ -19,6 +19,8 @@ import android.content.Context; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import androidx.recyclerview.widget.RecyclerView; import com.evrencoskun.tableview.adapter.recyclerview.holder.AbstractViewHolder; @@ -33,15 +35,17 @@ public abstract class AbstractRecyclerViewAdapter extends RecyclerView .Adapter { + @NonNull protected List mItemList; + @NonNull protected Context mContext; - public AbstractRecyclerViewAdapter(Context context) { + public AbstractRecyclerViewAdapter(@NonNull Context context) { this(context, null); } - public AbstractRecyclerViewAdapter(Context context, List itemList) { + public AbstractRecyclerViewAdapter(@NonNull Context context, @Nullable List itemList) { mContext = context; if (itemList == null) { @@ -56,17 +60,18 @@ public int getItemCount() { return mItemList.size(); } + @NonNull public List getItems() { return mItemList; } - public void setItems(List itemList) { + public void setItems(@NonNull List itemList) { mItemList = new ArrayList<>(itemList); this.notifyDataSetChanged(); } - public void setItems(List itemList, boolean notifyDataSet) { + public void setItems(@NonNull List itemList, boolean notifyDataSet) { mItemList = new ArrayList<>(itemList); if (notifyDataSet) { @@ -74,9 +79,9 @@ public void setItems(List itemList, boolean notifyDataSet) { } } + @Nullable public T getItem(int position) { - if (mItemList == null || mItemList.isEmpty() || position < 0 || position >= mItemList - .size()) { + if (mItemList.isEmpty() || position < 0 || position >= mItemList.size()) { return null; } return mItemList.get(position); @@ -99,44 +104,39 @@ public void deleteItemRange(int positionStart, int itemCount) { notifyItemRangeRemoved(positionStart, itemCount); } - public void addItem(int position, T item) { + public void addItem(int position, @Nullable T item) { if (position != RecyclerView.NO_POSITION && item != null) { mItemList.add(position, item); notifyItemInserted(position); } } - public void addItemRange(int positionStart, List items) { + public void addItemRange(int positionStart, @Nullable List items) { if (items != null) { for (int i = 0; i < items.size(); i++) { - if (i != RecyclerView.NO_POSITION) { - mItemList.add((i + positionStart), items.get(i)); - } + mItemList.add((i + positionStart), items.get(i)); } notifyItemRangeInserted(positionStart, items.size()); } } - public void changeItem(int position, T item) { + public void changeItem(int position, @Nullable T item) { if (position != RecyclerView.NO_POSITION && item != null) { mItemList.set(position, item); notifyItemChanged(position); } } - public void changeItemRange(int positionStart, List items) { - if (mItemList.size() > positionStart + items.size() && items != null) { + public void changeItemRange(int positionStart, @Nullable List items) { + if (items != null && mItemList.size() > positionStart + items.size()) { for (int i = 0; i < items.size(); i++) { - if (i != RecyclerView.NO_POSITION) { - mItemList.set(i + positionStart, items.get(i)); - } + mItemList.set(i + positionStart, items.get(i)); } notifyItemRangeChanged(positionStart, items.size()); } } - @Override public int getItemViewType(int position) { return 1; diff --git a/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/CellRecyclerView.java b/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/CellRecyclerView.java index 237dbb28..a6122f88 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/CellRecyclerView.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/CellRecyclerView.java @@ -21,6 +21,7 @@ import android.util.Log; import android.view.View; +import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; import com.evrencoskun.tableview.R; @@ -40,7 +41,7 @@ public class CellRecyclerView extends RecyclerView { private boolean mIsHorizontalScrollListenerRemoved = true; private boolean mIsVerticalScrollListenerRemoved = true; - public CellRecyclerView(Context context) { + public CellRecyclerView(@NonNull Context context) { super(context); // These are necessary. @@ -61,7 +62,6 @@ public void onScrolled(int dx, int dy) { super.onScrolled(dx, dy); } - public int getScrolledX() { return mScrolledX; } @@ -70,11 +70,12 @@ public void clearScrolledX() { mScrolledX = 0; } - public int getScrolledY() { return mScrolledY; } - + public int getScrolledY() { + return mScrolledY; + } @Override - public void addOnScrollListener(OnScrollListener listener) { + public void addOnScrollListener(@NonNull OnScrollListener listener) { if (listener instanceof HorizontalRecyclerViewListener) { if (mIsHorizontalScrollListenerRemoved) { mIsHorizontalScrollListenerRemoved = false; @@ -99,7 +100,7 @@ public void addOnScrollListener(OnScrollListener listener) { } @Override - public void removeOnScrollListener(OnScrollListener listener) { + public void removeOnScrollListener(@NonNull OnScrollListener listener) { if (listener instanceof HorizontalRecyclerViewListener) { if (mIsHorizontalScrollListenerRemoved) { // Do not let remove the listener @@ -131,7 +132,6 @@ public boolean isScrollOthers() { return !mIsHorizontalScrollListenerRemoved; } - /** * Begin a standard fling with an initial velocity along each axis in pixels per second. * If the velocity given is below the system-defined minimum this method will return false @@ -139,10 +139,8 @@ public boolean isScrollOthers() { * * @param velocityX Initial horizontal velocity in pixels per second * @param velocityY Initial vertical velocity in pixels per second - * * @return true if the fling was started, false if the velocity was too low to fling or * LayoutManager does not support scrolling in the axis fling is issued. - * * @see LayoutManager#canScrollVertically() * @see LayoutManager#canScrollHorizontally() */ diff --git a/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/CellRecyclerViewAdapter.java b/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/CellRecyclerViewAdapter.java index 58a1312d..dc66cc79 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/CellRecyclerViewAdapter.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/CellRecyclerViewAdapter.java @@ -21,6 +21,8 @@ import android.view.View; import android.view.ViewGroup; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import androidx.recyclerview.widget.RecyclerView; import com.evrencoskun.tableview.ITableView; @@ -40,16 +42,16 @@ */ public class CellRecyclerViewAdapter extends AbstractRecyclerViewAdapter { - - private static final String LOG_TAG = CellRecyclerViewAdapter.class.getSimpleName(); - + @NonNull private ITableView mTableView; + + @NonNull private final RecyclerView.RecycledViewPool mRecycledViewPool; // This is for testing purpose private int mRecyclerViewId = 0; - public CellRecyclerViewAdapter(Context context, List itemList, ITableView tableView) { + public CellRecyclerViewAdapter(@NonNull Context context, @Nullable List itemList, @NonNull ITableView tableView) { super(context, itemList); this.mTableView = tableView; @@ -59,8 +61,9 @@ public CellRecyclerViewAdapter(Context context, List itemList, ITableView tab //mRecycledViewPool.setMaxRecycledViews(0, 110); } + @NonNull @Override - public AbstractViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + public AbstractViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { // Create a RecyclerView as a Row of the CellRecyclerView CellRecyclerView recyclerView = new CellRecyclerView(mContext); @@ -100,7 +103,7 @@ public AbstractViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { } @Override - public void onBindViewHolder(AbstractViewHolder holder, int yPosition) { + public void onBindViewHolder(@NonNull AbstractViewHolder holder, int yPosition) { CellRowViewHolder viewHolder = (CellRowViewHolder) holder; CellRowRecyclerViewAdapter viewAdapter = (CellRowRecyclerViewAdapter) viewHolder .recyclerView.getAdapter(); @@ -116,7 +119,7 @@ public void onBindViewHolder(AbstractViewHolder holder, int yPosition) { } @Override - public void onViewAttachedToWindow(AbstractViewHolder holder) { + public void onViewAttachedToWindow(@NonNull AbstractViewHolder holder) { super.onViewAttachedToWindow(holder); CellRowViewHolder viewHolder = (CellRowViewHolder) holder; @@ -151,7 +154,7 @@ public void onViewAttachedToWindow(AbstractViewHolder holder) { } @Override - public void onViewDetachedFromWindow(AbstractViewHolder holder) { + public void onViewDetachedFromWindow(@NonNull AbstractViewHolder holder) { super.onViewDetachedFromWindow(holder); // Clear selection status of the view holder @@ -160,7 +163,7 @@ public void onViewDetachedFromWindow(AbstractViewHolder holder) { } @Override - public void onViewRecycled(AbstractViewHolder holder) { + public void onViewRecycled(@NonNull AbstractViewHolder holder) { super.onViewRecycled(holder); CellRowViewHolder viewHolder = (CellRowViewHolder) holder; @@ -173,7 +176,7 @@ public void onViewRecycled(AbstractViewHolder holder) { static class CellRowViewHolder extends AbstractViewHolder { final CellRecyclerView recyclerView; - CellRowViewHolder(View itemView) { + CellRowViewHolder(@NonNull View itemView) { super(itemView); recyclerView = (CellRecyclerView) itemView; } @@ -193,12 +196,12 @@ public void notifyCellDataSetChanged() { } - /** * This method helps to get cell item model that is located on given column position. * * @param columnPosition */ + @NonNull public List getColumnItems(int columnPosition) { List cellItems = new ArrayList<>(); @@ -243,7 +246,7 @@ public void removeColumnItems(int column) { setItems((List) cellItems, false); } - public void addColumnItems(int column, List cellColumnItems) { + public void addColumnItems(int column, @NonNull List cellColumnItems) { // It should be same size with exist model list. if (cellColumnItems.size() != mItemList.size() || cellColumnItems.contains(null)) { return; diff --git a/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/CellRowRecyclerViewAdapter.java b/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/CellRowRecyclerViewAdapter.java index a396dc8d..de41e706 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/CellRowRecyclerViewAdapter.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/CellRowRecyclerViewAdapter.java @@ -20,6 +20,8 @@ import android.content.Context; import android.view.ViewGroup; +import androidx.annotation.NonNull; + import com.evrencoskun.tableview.ITableView; import com.evrencoskun.tableview.adapter.ITableAdapter; import com.evrencoskun.tableview.adapter.recyclerview.holder.AbstractViewHolder; @@ -31,26 +33,26 @@ public class CellRowRecyclerViewAdapter extends AbstractRecyclerViewAdapter { - private static final String LOG_TAG = CellRowRecyclerViewAdapter.class.getSimpleName(); - private int mYPosition; private ITableAdapter mTableAdapter; + + @NonNull private ITableView mTableView; - public CellRowRecyclerViewAdapter(Context context, ITableView tableView) { + public CellRowRecyclerViewAdapter(@NonNull Context context, @NonNull ITableView tableView) { super(context, null); this.mTableAdapter = tableView.getAdapter(); this.mTableView = tableView; } + @NonNull @Override - public AbstractViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + public AbstractViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { return mTableAdapter.onCreateCellViewHolder(parent, viewType); } - @Override - public void onBindViewHolder(final AbstractViewHolder holder, final int xPosition) { + public void onBindViewHolder(@NonNull final AbstractViewHolder holder, final int xPosition) { mTableAdapter.onBindCellViewHolder(holder, getItem(xPosition), xPosition, mYPosition); } @@ -67,9 +69,8 @@ public int getItemViewType(int position) { return mTableAdapter.getCellItemViewType(position); } - @Override - public void onViewAttachedToWindow(AbstractViewHolder viewHolder) { + public void onViewAttachedToWindow(@NonNull AbstractViewHolder viewHolder) { super.onViewAttachedToWindow(viewHolder); SelectionState selectionState = mTableView.getSelectionHandler().getCellSelectionState @@ -91,12 +92,12 @@ public void onViewAttachedToWindow(AbstractViewHolder viewHolder) { } @Override - public boolean onFailedToRecycleView(AbstractViewHolder holder) { + public boolean onFailedToRecycleView(@NonNull AbstractViewHolder holder) { return holder.onFailedToRecycleView(); } @Override - public void onViewRecycled(AbstractViewHolder holder) { + public void onViewRecycled(@NonNull AbstractViewHolder holder) { super.onViewRecycled(holder); holder.onViewRecycled(); } diff --git a/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/ColumnHeaderRecyclerViewAdapter.java b/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/ColumnHeaderRecyclerViewAdapter.java index 1ebdb4bc..da5de38e 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/ColumnHeaderRecyclerViewAdapter.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/ColumnHeaderRecyclerViewAdapter.java @@ -20,6 +20,9 @@ import android.content.Context; import android.view.ViewGroup; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + import com.evrencoskun.tableview.ITableView; import com.evrencoskun.tableview.adapter.ITableAdapter; import com.evrencoskun.tableview.adapter.recyclerview.holder.AbstractSorterViewHolder; @@ -35,26 +38,26 @@ */ public class ColumnHeaderRecyclerViewAdapter extends AbstractRecyclerViewAdapter { - private static final String LOG_TAG = ColumnHeaderRecyclerViewAdapter.class.getSimpleName(); - + @NonNull private ITableAdapter mTableAdapter; private ITableView mTableView; private ColumnSortHelper mColumnSortHelper; - public ColumnHeaderRecyclerViewAdapter(Context context, List itemList, ITableAdapter + public ColumnHeaderRecyclerViewAdapter(@NonNull Context context, @Nullable List itemList, @NonNull ITableAdapter tableAdapter) { super(context, itemList); this.mTableAdapter = tableAdapter; this.mTableView = tableAdapter.getTableView(); } + @NonNull @Override - public AbstractViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + public AbstractViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { return mTableAdapter.onCreateColumnHeaderViewHolder(parent, viewType); } @Override - public void onBindViewHolder(AbstractViewHolder holder, int position) { + public void onBindViewHolder(@NonNull AbstractViewHolder holder, int position) { mTableAdapter.onBindColumnHeaderViewHolder(holder, getItem(position), position); } @@ -64,7 +67,7 @@ public int getItemViewType(int position) { } @Override - public void onViewAttachedToWindow(AbstractViewHolder viewHolder) { + public void onViewAttachedToWindow(@NonNull AbstractViewHolder viewHolder) { super.onViewAttachedToWindow(viewHolder); SelectionState selectionState = mTableView.getSelectionHandler().getColumnSelectionState @@ -93,7 +96,7 @@ public void onViewAttachedToWindow(AbstractViewHolder viewHolder) { } } - + @NonNull public ColumnSortHelper getColumnSortHelper() { if (mColumnSortHelper == null) { // It helps to store sorting state of column headers diff --git a/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/RowHeaderRecyclerViewAdapter.java b/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/RowHeaderRecyclerViewAdapter.java index afb930d1..81aa53ac 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/RowHeaderRecyclerViewAdapter.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/RowHeaderRecyclerViewAdapter.java @@ -20,6 +20,9 @@ import android.content.Context; import android.view.ViewGroup; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + import com.evrencoskun.tableview.ITableView; import com.evrencoskun.tableview.adapter.ITableAdapter; import com.evrencoskun.tableview.adapter.recyclerview.holder.AbstractViewHolder; @@ -33,25 +36,26 @@ */ public class RowHeaderRecyclerViewAdapter extends AbstractRecyclerViewAdapter { - + @NonNull private ITableAdapter mTableAdapter; private ITableView mTableView; private RowHeaderSortHelper mRowHeaderSortHelper; - public RowHeaderRecyclerViewAdapter(Context context, List itemList, ITableAdapter + public RowHeaderRecyclerViewAdapter(@NonNull Context context, @Nullable List itemList, @NonNull ITableAdapter tableAdapter) { super(context, itemList); this.mTableAdapter = tableAdapter; this.mTableView = tableAdapter.getTableView(); } + @NonNull @Override - public AbstractViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + public AbstractViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { return mTableAdapter.onCreateRowHeaderViewHolder(parent, viewType); } @Override - public void onBindViewHolder(AbstractViewHolder holder, int position) { + public void onBindViewHolder(@NonNull AbstractViewHolder holder, int position) { mTableAdapter.onBindRowHeaderViewHolder(holder, getItem(position), position); } @@ -61,7 +65,7 @@ public int getItemViewType(int position) { } @Override - public void onViewAttachedToWindow(AbstractViewHolder viewHolder) { + public void onViewAttachedToWindow(@NonNull AbstractViewHolder viewHolder) { super.onViewAttachedToWindow(viewHolder); SelectionState selectionState = mTableView.getSelectionHandler().getRowSelectionState @@ -79,6 +83,7 @@ public void onViewAttachedToWindow(AbstractViewHolder viewHolder) { viewHolder.setSelected(selectionState); } + @NonNull public RowHeaderSortHelper getRowHeaderSortHelper() { if (mRowHeaderSortHelper == null) { // It helps to store sorting state of row headers @@ -86,5 +91,4 @@ public RowHeaderSortHelper getRowHeaderSortHelper() { } return mRowHeaderSortHelper; } - } diff --git a/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/holder/AbstractSorterViewHolder.java b/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/holder/AbstractSorterViewHolder.java index 885ce842..266476df 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/holder/AbstractSorterViewHolder.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/holder/AbstractSorterViewHolder.java @@ -19,6 +19,8 @@ import android.view.View; +import androidx.annotation.NonNull; + import com.evrencoskun.tableview.sort.SortState; /** @@ -26,17 +28,18 @@ */ public class AbstractSorterViewHolder extends AbstractViewHolder { - + @NonNull private SortState mSortState = SortState.UNSORTED; - public AbstractSorterViewHolder(View itemView) { + public AbstractSorterViewHolder(@NonNull View itemView) { super(itemView); } - public void onSortingStatusChanged(SortState pSortState) { + public void onSortingStatusChanged(@NonNull SortState pSortState) { this.mSortState = pSortState; } + @NonNull public SortState getSortState() { return mSortState; } diff --git a/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/holder/AbstractViewHolder.java b/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/holder/AbstractViewHolder.java index fca858a5..b51b6206 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/holder/AbstractViewHolder.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/holder/AbstractViewHolder.java @@ -20,6 +20,7 @@ import android.view.View; import androidx.annotation.ColorInt; +import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; /** @@ -30,13 +31,14 @@ public abstract class AbstractViewHolder extends RecyclerView.ViewHolder { public enum SelectionState {SELECTED, UNSELECTED, SHADOWED} // Default value + @NonNull private SelectionState m_eState = SelectionState.UNSELECTED; - public AbstractViewHolder(View itemView) { + public AbstractViewHolder(@NonNull View itemView) { super(itemView); } - public void setSelected(SelectionState selectionState) { + public void setSelected(@NonNull SelectionState selectionState) { m_eState = selectionState; if (selectionState == SelectionState.SELECTED) { diff --git a/tableview/src/main/java/com/evrencoskun/tableview/filter/Filter.java b/tableview/src/main/java/com/evrencoskun/tableview/filter/Filter.java index ac287518..127292da 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/filter/Filter.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/filter/Filter.java @@ -17,7 +17,7 @@ package com.evrencoskun.tableview.filter; -import android.text.TextUtils; +import androidx.annotation.NonNull; import com.evrencoskun.tableview.ITableView; @@ -33,17 +33,19 @@ public class Filter { /** * List of filter items to be used for filtering. */ + @NonNull private List filterItems; /** * The TableView instance used in this scope. */ + @NonNull private ITableView tableView; /** * @param tableView The TableView to be filtered. */ - public Filter(ITableView tableView) { + public Filter(@NonNull ITableView tableView) { this.tableView = tableView; this.filterItems = new ArrayList<>(); } @@ -54,7 +56,7 @@ public Filter(ITableView tableView) { * * @param filter the filter string. */ - public void set(String filter) { + public void set(@NonNull String filter) { set(-1, filter); } @@ -65,7 +67,7 @@ public void set(String filter) { * @param column the target column for filtering. * @param filter the filter string. */ - public void set(int column, String filter) { + public void set(int column, @NonNull String filter) { final FilterItem filterItem = new FilterItem( column == -1 ? FilterType.ALL : FilterType.COLUMN, column, @@ -73,12 +75,12 @@ public void set(int column, String filter) { ); if (isAlreadyFiltering(column, filterItem)) { - if (TextUtils.isEmpty(filter)) { + if (filter.isEmpty()) { remove(column, filterItem); } else { update(column, filterItem); } - } else if (!TextUtils.isEmpty(filter)) { + } else if (!filter.isEmpty()) { add(filterItem); } } @@ -88,7 +90,7 @@ public void set(int column, String filter) { * * @param filterItem The filter item to be added to the list. */ - private void add(FilterItem filterItem) { + private void add(@NonNull FilterItem filterItem) { filterItems.add(filterItem); tableView.filter(this); } @@ -99,7 +101,7 @@ private void add(FilterItem filterItem) { * @param column The column to be checked for removing the filter item. * @param filterItem The filter item to be removed. */ - private void remove(int column, FilterItem filterItem) { + private void remove(int column, @NonNull FilterItem filterItem) { // This would remove a FilterItem from the Filter list when the filter is cleared. // Used Iterator for removing instead of canonical loop to prevent ConcurrentModificationException. for (Iterator filterItemIterator = filterItems.iterator(); filterItemIterator.hasNext(); ) { @@ -121,7 +123,7 @@ private void remove(int column, FilterItem filterItem) { * @param column The column in which filter item will be updated. * @param filterItem The updated filter item. */ - private void update(int column, FilterItem filterItem) { + private void update(int column, @NonNull FilterItem filterItem) { // This would update an existing FilterItem from the Filter list. // Used Iterator for updating instead of canonical loop to prevent ConcurrentModificationException. for (Iterator filterItemIterator = filterItems.iterator(); filterItemIterator.hasNext(); ) { @@ -144,7 +146,7 @@ private void update(int column, FilterItem filterItem) { * @param filterItem The filter item to be checked. * @return True if a filter item for a specific column or for ALL is already in the list. */ - private boolean isAlreadyFiltering(int column, FilterItem filterItem) { + private boolean isAlreadyFiltering(int column, @NonNull FilterItem filterItem) { // This would determine if Filter is already filtering ALL or a specified COLUMN. for (FilterItem item : filterItems) { if (column == -1 && item.getFilterType().equals(filterItem.getFilterType())) { @@ -161,6 +163,7 @@ private boolean isAlreadyFiltering(int column, FilterItem filterItem) { * * @return The list of filter items. */ + @NonNull public List getFilterItems() { return this.filterItems; } diff --git a/tableview/src/main/java/com/evrencoskun/tableview/filter/FilterChangedListener.java b/tableview/src/main/java/com/evrencoskun/tableview/filter/FilterChangedListener.java index a6aba6f6..3fb9d8de 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/filter/FilterChangedListener.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/filter/FilterChangedListener.java @@ -17,6 +17,8 @@ package com.evrencoskun.tableview.filter; +import androidx.annotation.NonNull; + import java.util.List; public abstract class FilterChangedListener { @@ -27,7 +29,7 @@ public abstract class FilterChangedListener { * @param filteredCellItems The list of filtered cell items. * @param filteredRowHeaderItems The list of filtered row items. */ - public void onFilterChanged(List> filteredCellItems, List filteredRowHeaderItems) { + public void onFilterChanged(@NonNull List> filteredCellItems, @NonNull List filteredRowHeaderItems) { } /** @@ -36,6 +38,6 @@ public void onFilterChanged(List> filteredCellItems, List filteredRow * @param originalCellItems The unfiltered cell item list. * @param originalRowHeaderItems The unfiltered row header list. */ - public void onFilterCleared(List> originalCellItems, List originalRowHeaderItems) { + public void onFilterCleared(@NonNull List> originalCellItems, @NonNull List originalRowHeaderItems) { } } diff --git a/tableview/src/main/java/com/evrencoskun/tableview/filter/FilterItem.java b/tableview/src/main/java/com/evrencoskun/tableview/filter/FilterItem.java index 65c99a57..1b04ef21 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/filter/FilterItem.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/filter/FilterItem.java @@ -17,21 +17,27 @@ package com.evrencoskun.tableview.filter; +import androidx.annotation.NonNull; + public class FilterItem { + @NonNull private FilterType filterType; + @NonNull private String filter; private int column; - public FilterItem(FilterType type, int column, String filter) { + public FilterItem(@NonNull FilterType type, int column, @NonNull String filter) { this.filterType = type; this.column = column; this.filter = filter; } + @NonNull public FilterType getFilterType() { return filterType; } + @NonNull public String getFilter() { return filter; } diff --git a/tableview/src/main/java/com/evrencoskun/tableview/filter/IFilterableModel.java b/tableview/src/main/java/com/evrencoskun/tableview/filter/IFilterableModel.java index 32c151d2..292211e7 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/filter/IFilterableModel.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/filter/IFilterableModel.java @@ -17,6 +17,8 @@ package com.evrencoskun.tableview.filter; +import androidx.annotation.NonNull; + public interface IFilterableModel { /** @@ -24,5 +26,6 @@ public interface IFilterableModel { * * @return query string for this object to be used in filtering. */ + @NonNull String getFilterableKeyword(); } diff --git a/tableview/src/main/java/com/evrencoskun/tableview/handler/ColumnSortHandler.java b/tableview/src/main/java/com/evrencoskun/tableview/handler/ColumnSortHandler.java index c007e5b4..ce188c39 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/handler/ColumnSortHandler.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/handler/ColumnSortHandler.java @@ -17,6 +17,8 @@ package com.evrencoskun.tableview.handler; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import androidx.recyclerview.widget.DiffUtil; import com.evrencoskun.tableview.ITableView; @@ -43,8 +45,8 @@ public class ColumnSortHandler { - private CellRecyclerViewAdapter mCellRecyclerViewAdapter; - private RowHeaderRecyclerViewAdapter mRowHeaderRecyclerViewAdapter; + private CellRecyclerViewAdapter> mCellRecyclerViewAdapter; + private RowHeaderRecyclerViewAdapter mRowHeaderRecyclerViewAdapter; private ColumnHeaderRecyclerViewAdapter mColumnHeaderRecyclerViewAdapter; private List columnSortStateChangedListeners = new ArrayList<>(); @@ -58,18 +60,18 @@ public void setEnableAnimation(boolean mEnableAnimation) { this.mEnableAnimation = mEnableAnimation; } - public ColumnSortHandler(ITableView tableView) { - this.mCellRecyclerViewAdapter = (CellRecyclerViewAdapter) tableView.getCellRecyclerView() + public ColumnSortHandler(@NonNull ITableView tableView) { + this.mCellRecyclerViewAdapter = (CellRecyclerViewAdapter>) tableView.getCellRecyclerView() .getAdapter(); - this.mRowHeaderRecyclerViewAdapter = (RowHeaderRecyclerViewAdapter) tableView + this.mRowHeaderRecyclerViewAdapter = (RowHeaderRecyclerViewAdapter) tableView .getRowHeaderRecyclerView().getAdapter(); this.mColumnHeaderRecyclerViewAdapter = (ColumnHeaderRecyclerViewAdapter) tableView .getColumnHeaderRecyclerView().getAdapter(); } - public void sortByRowHeader(final SortState sortState) { + public void sortByRowHeader(@NonNull final SortState sortState) { List originalRowHeaderList = mRowHeaderRecyclerViewAdapter.getItems(); List sortedRowHeaderList = new ArrayList<>(originalRowHeaderList); @@ -78,7 +80,7 @@ public void sortByRowHeader(final SortState sortState) { if (sortState != SortState.UNSORTED) { // Do descending / ascending sort - Collections.sort(sortedRowHeaderList, new RowHeaderSortComparator(sortState) ); + Collections.sort(sortedRowHeaderList, new RowHeaderSortComparator(sortState)); // Sorting Columns/Cells using the same logic has sorting DataSet RowHeaderForCellSortComparator rowHeaderForCellSortComparator @@ -96,7 +98,7 @@ public void sortByRowHeader(final SortState sortState) { swapItems(originalRowHeaderList, sortedRowHeaderList, sortedList, sortState); } - public void sort(int column, SortState sortState) { + public void sort(int column, @NonNull SortState sortState) { List> originalList = mCellRecyclerViewAdapter.getItems(); List> sortedList = new ArrayList<>(originalList); @@ -112,10 +114,10 @@ public void sort(int column, SortState sortState) { // Sorting RowHeader using the same logic has sorting DataSet ColumnForRowHeaderSortComparator columnForRowHeaderSortComparator = new ColumnForRowHeaderSortComparator( - originalRowHeaderList, - originalList, - column, - sortState); + originalRowHeaderList, + originalList, + column, + sortState); Collections.sort(sortedRowHeaderList, columnForRowHeaderSortComparator); } @@ -127,17 +129,17 @@ public void sort(int column, SortState sortState) { swapItems(originalList, sortedList, column, sortedRowHeaderList, sortState); } - private void swapItems(List oldRowHeader, - List newRowHeader, - List> newColumnItems, - SortState sortState + private void swapItems(@NonNull List oldRowHeader, + @NonNull List newRowHeader, + @NonNull List> newColumnItems, + @NonNull SortState sortState ) { // Set new items without calling notifyCellDataSetChanged method of CellRecyclerViewAdapter mRowHeaderRecyclerViewAdapter.setItems(newRowHeader, !mEnableAnimation); mCellRecyclerViewAdapter.setItems(newColumnItems, !mEnableAnimation); - if(mEnableAnimation) { + if (mEnableAnimation) { // Find the differences between old cell items and new items. final RowHeaderSortCallback diffCallback = new RowHeaderSortCallback(oldRowHeader, newRowHeader); final DiffUtil.DiffResult diffResult = DiffUtil.calculateDiff(diffCallback); @@ -151,14 +153,14 @@ private void swapItems(List oldRowHeader, } } - private void swapItems(List> oldItems, List> - newItems, int column, List newRowHeader, SortState sortState) { + private void swapItems(@NonNull List> oldItems, @NonNull List> + newItems, int column, @NonNull List newRowHeader, @NonNull SortState sortState) { // Set new items without calling notifyCellDataSetChanged method of CellRecyclerViewAdapter mCellRecyclerViewAdapter.setItems(newItems, !mEnableAnimation); mRowHeaderRecyclerViewAdapter.setItems(newRowHeader, !mEnableAnimation); - if(mEnableAnimation) { + if (mEnableAnimation) { // Find the differences between old cell items and new items. final ColumnSortCallback diffCallback = new ColumnSortCallback(oldItems, newItems, column); final DiffUtil.DiffResult diffResult = DiffUtil.calculateDiff(diffCallback); @@ -172,15 +174,14 @@ private void swapItems(List> oldItems, List> newItems, int column) { + public void swapItems(@NonNull List> newItems, int column) { - List> oldItems = (List>) - mCellRecyclerViewAdapter.getItems(); + List> oldItems = mCellRecyclerViewAdapter.getItems(); // Set new items without calling notifyCellDataSetChanged method of CellRecyclerViewAdapter mCellRecyclerViewAdapter.setItems(newItems, !mEnableAnimation); - if(mEnableAnimation) { + if (mEnableAnimation) { // Find the differences between old cell items and new items. final ColumnSortCallback diffCallback = new ColumnSortCallback(oldItems, newItems, column); final DiffUtil.DiffResult diffResult = DiffUtil.calculateDiff(diffCallback); @@ -191,10 +192,12 @@ public void swapItems(List> newItems, int column) { } + @NonNull public SortState getSortingStatus(int column) { return mColumnHeaderRecyclerViewAdapter.getColumnSortHelper().getSortingStatus(column); } + @Nullable public SortState getRowHeaderSortingStatus() { return mRowHeaderRecyclerViewAdapter.getRowHeaderSortHelper().getSortingStatus(); } @@ -204,7 +207,7 @@ public SortState getRowHeaderSortingStatus() { * * @param listener ColumnSortStateChangedListener listener. */ - public void addColumnSortStateChangedListener(ColumnSortStateChangedListener listener) { + public void addColumnSortStateChangedListener(@NonNull ColumnSortStateChangedListener listener) { if (columnSortStateChangedListeners == null) { columnSortStateChangedListeners = new ArrayList<>(); } diff --git a/tableview/src/main/java/com/evrencoskun/tableview/handler/ColumnWidthHandler.java b/tableview/src/main/java/com/evrencoskun/tableview/handler/ColumnWidthHandler.java index 36179eac..a0305a06 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/handler/ColumnWidthHandler.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/handler/ColumnWidthHandler.java @@ -17,6 +17,8 @@ package com.evrencoskun.tableview.handler; +import androidx.annotation.NonNull; + import com.evrencoskun.tableview.ITableView; /** @@ -24,10 +26,10 @@ */ public class ColumnWidthHandler { - + @NonNull private ITableView mTableView; - public ColumnWidthHandler(ITableView tableView) { + public ColumnWidthHandler(@NonNull ITableView tableView) { mTableView = tableView; } @@ -40,5 +42,4 @@ public void setColumnWidth(int columnPosition, int width) { mTableView.getCellLayoutManager().setCacheWidth(columnPosition, width); } - } diff --git a/tableview/src/main/java/com/evrencoskun/tableview/handler/FilterHandler.java b/tableview/src/main/java/com/evrencoskun/tableview/handler/FilterHandler.java index 01da0eb2..7f268abc 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/handler/FilterHandler.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/handler/FilterHandler.java @@ -17,6 +17,8 @@ package com.evrencoskun.tableview.handler; +import androidx.annotation.NonNull; + import com.evrencoskun.tableview.ITableView; import com.evrencoskun.tableview.adapter.AdapterDataSetChangedListener; import com.evrencoskun.tableview.adapter.recyclerview.CellRecyclerViewAdapter; @@ -30,34 +32,33 @@ import java.util.ArrayList; import java.util.List; -public class FilterHandler { +public class FilterHandler { - private CellRecyclerViewAdapter mCellRecyclerViewAdapter; - private RowHeaderRecyclerViewAdapter mRowHeaderRecyclerViewAdapter; - private List> originalCellDataStore, originalCellData, filteredCellList; - private List originalRowDataStore, originalRowData, filteredRowList; + private CellRecyclerViewAdapter> mCellRecyclerViewAdapter; + private RowHeaderRecyclerViewAdapter mRowHeaderRecyclerViewAdapter; + private List> originalCellDataStore; + private List originalRowDataStore; - private List filterChangedListeners; + private List> filterChangedListeners; - public FilterHandler(ITableView tableView) { + public FilterHandler(@NonNull ITableView tableView) { tableView.getAdapter().addAdapterDataSetChangedListener(adapterDataSetChangedListener); - this.mCellRecyclerViewAdapter = (CellRecyclerViewAdapter) tableView + this.mCellRecyclerViewAdapter = (CellRecyclerViewAdapter>) tableView .getCellRecyclerView().getAdapter(); - this.mRowHeaderRecyclerViewAdapter = (RowHeaderRecyclerViewAdapter) tableView + this.mRowHeaderRecyclerViewAdapter = (RowHeaderRecyclerViewAdapter) tableView .getRowHeaderRecyclerView().getAdapter(); } - @SuppressWarnings("unchecked") - public void filter(Filter filter) { + public void filter(@NonNull Filter filter) { if (originalCellDataStore == null || originalRowDataStore == null) { return; } - originalCellData = new ArrayList<>(originalCellDataStore); - originalRowData = new ArrayList<>(originalRowDataStore); - filteredCellList = new ArrayList<>(); - filteredRowList = new ArrayList<>(); + List> originalCellData = new ArrayList<>(originalCellDataStore); + List originalRowData = new ArrayList<>(originalRowDataStore); + List> filteredCellList = new ArrayList<>(); + List filteredRowList = new ArrayList<>(); if (filter.getFilterItems().isEmpty()) { filteredCellList = new ArrayList<>(originalCellDataStore); @@ -67,8 +68,8 @@ public void filter(Filter filter) { for (int x = 0; x < filter.getFilterItems().size(); ) { final FilterItem filterItem = filter.getFilterItems().get(x); if (filterItem.getFilterType().equals(FilterType.ALL)) { - for (List itemsList : originalCellData) { - for (IFilterableModel item : itemsList) { + for (List itemsList : originalCellData) { + for (T item : itemsList) { if (item .getFilterableKeyword() .toLowerCase() @@ -82,7 +83,7 @@ public void filter(Filter filter) { } } } else { - for (List itemsList : originalCellData) { + for (List itemsList : originalCellData) { if (itemsList .get(filterItem .getColumn()) @@ -115,49 +116,44 @@ public void filter(Filter filter) { dispatchFilterChangedToListeners(filteredCellList, filteredRowList); } + @NonNull @SuppressWarnings("unchecked") private AdapterDataSetChangedListener adapterDataSetChangedListener = new AdapterDataSetChangedListener() { @Override - public void onRowHeaderItemsChanged(List rowHeaderItems) { - if (rowHeaderItems != null) { - originalRowDataStore = new ArrayList<>(rowHeaderItems); - } + public void onRowHeaderItemsChanged(@NonNull List rowHeaderItems) { + originalRowDataStore = new ArrayList<>(rowHeaderItems); } @Override - public void onCellItemsChanged(List cellItems) { - if (cellItems != null) { - originalCellDataStore = new ArrayList<>(cellItems); - } + public void onCellItemsChanged(@NonNull List cellItems) { + originalCellDataStore = new ArrayList<>(cellItems); } }; - @SuppressWarnings("unchecked") private void dispatchFilterChangedToListeners( - List> filteredCellItems, - List filteredRowHeaderItems + @NonNull List> filteredCellItems, + @NonNull List filteredRowHeaderItems ) { if (filterChangedListeners != null) { - for (FilterChangedListener listener : filterChangedListeners) { + for (FilterChangedListener listener : filterChangedListeners) { listener.onFilterChanged(filteredCellItems, filteredRowHeaderItems); } } } - @SuppressWarnings("unchecked") private void dispatchFilterClearedToListeners( - List> originalCellItems, - List originalRowHeaderItems + @NonNull List> originalCellItems, + @NonNull List originalRowHeaderItems ) { if (filterChangedListeners != null) { - for (FilterChangedListener listener : filterChangedListeners) { + for (FilterChangedListener listener : filterChangedListeners) { listener.onFilterCleared(originalCellItems, originalRowHeaderItems); } } } - public void addFilterChangedListener(FilterChangedListener listener) { + public void addFilterChangedListener(@NonNull FilterChangedListener listener) { if (filterChangedListeners == null) { filterChangedListeners = new ArrayList<>(); } diff --git a/tableview/src/main/java/com/evrencoskun/tableview/handler/PreferencesHandler.java b/tableview/src/main/java/com/evrencoskun/tableview/handler/PreferencesHandler.java index 214b0a29..5ad557ff 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/handler/PreferencesHandler.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/handler/PreferencesHandler.java @@ -17,6 +17,8 @@ package com.evrencoskun.tableview.handler; +import androidx.annotation.NonNull; + import com.evrencoskun.tableview.TableView; import com.evrencoskun.tableview.preference.Preferences; @@ -25,19 +27,18 @@ */ public class PreferencesHandler { - - private TableView tableView; + @NonNull private ScrollHandler scrollHandler; + @NonNull private SelectionHandler selectionHandler; - public PreferencesHandler(TableView tableView) { - this.tableView = tableView; + public PreferencesHandler(@NonNull TableView tableView) { this.scrollHandler = tableView.getScrollHandler(); this.selectionHandler = tableView.getSelectionHandler(); } - - public Preferences savePreferences(){ + @NonNull + public Preferences savePreferences() { Preferences preferences = new Preferences(); preferences.columnPosition = scrollHandler.getColumnPosition(); preferences.columnPositionOffset = scrollHandler.getColumnPositionOffset(); @@ -48,8 +49,7 @@ public Preferences savePreferences(){ return preferences; } - - public void loadPreferences(Preferences preferences){ + public void loadPreferences(@NonNull Preferences preferences) { scrollHandler.scrollToColumnPosition(preferences.columnPosition, preferences.columnPositionOffset); scrollHandler.scrollToRowPosition(preferences.rowPosition, preferences.rowPositionOffset); selectionHandler.setSelectedColumnPosition(preferences.selectedColumnPosition); diff --git a/tableview/src/main/java/com/evrencoskun/tableview/handler/ScrollHandler.java b/tableview/src/main/java/com/evrencoskun/tableview/handler/ScrollHandler.java index c54ce71a..3ba2f24f 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/handler/ScrollHandler.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/handler/ScrollHandler.java @@ -19,6 +19,7 @@ import android.view.View; +import androidx.annotation.NonNull; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; @@ -32,12 +33,16 @@ */ public class ScrollHandler { + @NonNull private ITableView mTableView; + @NonNull private CellLayoutManager mCellLayoutManager; + @NonNull private LinearLayoutManager mRowHeaderLayoutManager; + @NonNull private ColumnHeaderLayoutManager mColumnHeaderLayoutManager; - public ScrollHandler(ITableView tableView) { + public ScrollHandler(@NonNull ITableView tableView) { this.mTableView = tableView; this.mCellLayoutManager = tableView.getCellLayoutManager(); this.mRowHeaderLayoutManager = tableView.getRowHeaderLayoutManager(); @@ -110,7 +115,7 @@ public int getColumnPosition() { public int getColumnPositionOffset() { View child = mColumnHeaderLayoutManager.findViewByPosition(mColumnHeaderLayoutManager .findFirstVisibleItemPosition()); - if(child != null) { + if (child != null) { return child.getLeft(); } return 0; @@ -123,7 +128,7 @@ public int getRowPosition() { public int getRowPositionOffset() { View child = mRowHeaderLayoutManager.findViewByPosition(mRowHeaderLayoutManager .findFirstVisibleItemPosition()); - if(child != null) { + if (child != null) { return child.getLeft(); } return 0; diff --git a/tableview/src/main/java/com/evrencoskun/tableview/handler/SelectionHandler.java b/tableview/src/main/java/com/evrencoskun/tableview/handler/SelectionHandler.java index 791ff59d..7ab574ff 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/handler/SelectionHandler.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/handler/SelectionHandler.java @@ -18,6 +18,8 @@ package com.evrencoskun.tableview.handler; import androidx.annotation.ColorInt; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import androidx.recyclerview.widget.LinearLayoutManager; import com.evrencoskun.tableview.ITableView; @@ -38,14 +40,17 @@ public class SelectionHandler { private boolean shadowEnabled = true; - + @NonNull private ITableView mTableView; private AbstractViewHolder mPreviousSelectedViewHolder; + @NonNull private CellRecyclerView mColumnHeaderRecyclerView; + @NonNull private CellRecyclerView mRowHeaderRecyclerView; + @NonNull private CellLayoutManager mCellLayoutManager; - public SelectionHandler(ITableView tableView) { + public SelectionHandler(@NonNull ITableView tableView) { this.mTableView = tableView; this.mColumnHeaderRecyclerView = mTableView.getColumnHeaderRecyclerView(); this.mRowHeaderRecyclerView = mTableView.getRowHeaderRecyclerView(); @@ -60,7 +65,7 @@ public void setShadowEnabled(boolean shadowEnabled) { this.shadowEnabled = shadowEnabled; } - public void setSelectedCellPositions(AbstractViewHolder selectedViewHolder, int column, int + public void setSelectedCellPositions(@Nullable AbstractViewHolder selectedViewHolder, int column, int row) { this.setPreviousSelectedView(selectedViewHolder); @@ -72,8 +77,7 @@ public void setSelectedCellPositions(AbstractViewHolder selectedViewHolder, int } } - - public void setSelectedColumnPosition(AbstractViewHolder selectedViewHolder, int column) { + public void setSelectedColumnPosition(@Nullable AbstractViewHolder selectedViewHolder, int column) { this.setPreviousSelectedView(selectedViewHolder); this.mSelectedColumnPosition = column; @@ -88,7 +92,7 @@ public int getSelectedColumnPosition() { return mSelectedColumnPosition; } - public void setSelectedRowPosition(AbstractViewHolder selectedViewHolder, int row) { + public void setSelectedRowPosition(@Nullable AbstractViewHolder selectedViewHolder, int row) { this.setPreviousSelectedView(selectedViewHolder); this.mSelectedRowPosition = row; @@ -103,8 +107,7 @@ public int getSelectedRowPosition() { return mSelectedRowPosition; } - - public void setPreviousSelectedView(AbstractViewHolder viewHolder) { + public void setPreviousSelectedView(@Nullable AbstractViewHolder viewHolder) { restorePreviousSelectedView(); if (mPreviousSelectedViewHolder != null) { @@ -132,7 +135,6 @@ public void setPreviousSelectedView(AbstractViewHolder viewHolder) { mPreviousSelectedViewHolder.setSelected(SelectionState.SELECTED); } - private void restorePreviousSelectedView() { if (mSelectedColumnPosition != UNSELECTED_POSITION && mSelectedRowPosition != UNSELECTED_POSITION) { @@ -166,7 +168,6 @@ private void unselectedRowHeader() { private void selectedCellView() { int shadowColor = mTableView.getShadowColor(); - // Change background color of the row header which is located on Y Position of the cell // view. AbstractViewHolder rowHeader = (AbstractViewHolder) mRowHeaderRecyclerView @@ -242,6 +243,7 @@ public boolean isCellSelected(int column, int row) { isColumnSelected(column) || isRowSelected(row); } + @NonNull public SelectionState getCellSelectionState(int column, int row) { if (isCellSelected(column, row)) { return SelectionState.SELECTED; @@ -265,6 +267,7 @@ public boolean isAnyColumnSelected() { getSelectedRowPosition() == SelectionHandler.UNSELECTED_POSITION); } + @NonNull public SelectionState getColumnSelectionState(int column) { if (isColumnShadowed(column)) { @@ -289,6 +292,7 @@ public boolean isRowShadowed(int row) { getSelectedColumnPosition() != UNSELECTED_POSITION); } + @NonNull public SelectionState getRowSelectionState(int row) { if (isRowShadowed(row)) { @@ -351,8 +355,8 @@ private void changeVisibleCellViewsBackgroundForColumn(int column, boolean isSel } } - public void changeRowBackgroundColorBySelectionStatus(AbstractViewHolder viewHolder, - SelectionState selectionState) { + public void changeRowBackgroundColorBySelectionStatus(@NonNull AbstractViewHolder viewHolder, + @NonNull SelectionState selectionState) { if (shadowEnabled && selectionState == SelectionState.SHADOWED) { viewHolder.setBackgroundColor(mTableView.getShadowColor()); @@ -364,8 +368,8 @@ public void changeRowBackgroundColorBySelectionStatus(AbstractViewHolder viewHol } } - public void changeColumnBackgroundColorBySelectionStatus(AbstractViewHolder viewHolder, - SelectionState selectionState) { + public void changeColumnBackgroundColorBySelectionStatus(@NonNull AbstractViewHolder viewHolder, + @NonNull SelectionState selectionState) { if (shadowEnabled && selectionState == SelectionState.SHADOWED) { viewHolder.setBackgroundColor(mTableView.getShadowColor()); @@ -377,7 +381,7 @@ public void changeColumnBackgroundColorBySelectionStatus(AbstractViewHolder view } } - public void changeSelectionOfRecyclerView(CellRecyclerView recyclerView, AbstractViewHolder + public void changeSelectionOfRecyclerView(CellRecyclerView recyclerView, @NonNull AbstractViewHolder .SelectionState selectionState, @ColorInt int backgroundColor) { LinearLayoutManager linearLayoutManager = (LinearLayoutManager) recyclerView diff --git a/tableview/src/main/java/com/evrencoskun/tableview/handler/VisibilityHandler.java b/tableview/src/main/java/com/evrencoskun/tableview/handler/VisibilityHandler.java index bce5835b..7264b233 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/handler/VisibilityHandler.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/handler/VisibilityHandler.java @@ -20,6 +20,9 @@ import android.util.Log; import android.util.SparseArray; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + import com.evrencoskun.tableview.ITableView; import java.util.List; @@ -31,12 +34,14 @@ public class VisibilityHandler { private static final String LOG_TAG = VisibilityHandler.class.getSimpleName(); + @NonNull private ITableView mTableView; + @NonNull private SparseArray mHideRowList = new SparseArray<>(); + @NonNull private SparseArray mHideColumnList = new SparseArray<>(); - - public VisibilityHandler(ITableView tableView) { + public VisibilityHandler(@NonNull ITableView tableView) { this.mTableView = tableView; } @@ -72,7 +77,6 @@ public void clearHideRowList() { mHideRowList.clear(); } - public void showAllHiddenRows() { for (int i = 0; i < mHideRowList.size(); i++) { int row = mHideRowList.keyAt(i); @@ -86,7 +90,6 @@ public boolean isRowVisible(int row) { return mHideRowList.get(row) == null; } - public void hideColumn(int column) { // add column the list mHideColumnList.put(column, getColumnValueFromPosition(column)); @@ -132,13 +135,14 @@ public boolean isColumnVisible(int column) { return mHideColumnList.get(column) == null; } - class Row { private int mYPosition; + @Nullable private Object mRowHeaderModel; + @Nullable private List mCellModelList; - public Row(int row, Object rowHeaderModel, List cellModelList) { + public Row(int row, @Nullable Object rowHeaderModel, @Nullable List cellModelList) { this.mYPosition = row; this.mRowHeaderModel = rowHeaderModel; this.mCellModelList = cellModelList; @@ -148,10 +152,12 @@ public int getYPosition() { return mYPosition; } + @Nullable public Object getRowHeaderModel() { return mRowHeaderModel; } + @Nullable public List getCellModelList() { return mCellModelList; } @@ -160,10 +166,12 @@ public List getCellModelList() { class Column { private int mYPosition; + @Nullable private Object mColumnHeaderModel; + @NonNull private List mCellModelList; - public Column(int yPosition, Object columnHeaderModel, List cellModelList) { + public Column(int yPosition, @Nullable Object columnHeaderModel, @NonNull List cellModelList) { this.mYPosition = yPosition; this.mColumnHeaderModel = columnHeaderModel; this.mCellModelList = cellModelList; @@ -173,17 +181,19 @@ public int getYPosition() { return mYPosition; } + @Nullable public Object getColumnHeaderModel() { return mColumnHeaderModel; } + @NonNull public List getCellModelList() { return mCellModelList; } } - + @NonNull private Row getRowValueFromPosition(int row) { Object rowHeaderModel = mTableView.getAdapter().getRowHeaderItem(row); @@ -192,6 +202,7 @@ private Row getRowValueFromPosition(int row) { return new Row(row, rowHeaderModel, cellModelList); } + @NonNull private Column getColumnValueFromPosition(int column) { Object columnHeaderModel = mTableView.getAdapter().getColumnHeaderItem(column); List cellModelList = (List) mTableView.getAdapter().getCellColumnItems @@ -200,19 +211,21 @@ private Column getColumnValueFromPosition(int column) { return new Column(column, columnHeaderModel, cellModelList); } + @NonNull public SparseArray getHideRowList() { return mHideRowList; } + @NonNull public SparseArray getHideColumnList() { return mHideColumnList; } - public void setHideRowList(SparseArray rowList) { + public void setHideRowList(@NonNull SparseArray rowList) { this.mHideRowList = rowList; } - public void setHideColumnList(SparseArray columnList) { + public void setHideColumnList(@NonNull SparseArray columnList) { this.mHideColumnList = columnList; } } diff --git a/tableview/src/main/java/com/evrencoskun/tableview/layoutmanager/CellLayoutManager.java b/tableview/src/main/java/com/evrencoskun/tableview/layoutmanager/CellLayoutManager.java index ffb738d2..ba29c6be 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/layoutmanager/CellLayoutManager.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/layoutmanager/CellLayoutManager.java @@ -20,8 +20,12 @@ import android.content.Context; import android.os.Handler; import android.util.Log; +import android.util.SparseArray; +import android.util.SparseIntArray; import android.view.View; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; @@ -31,9 +35,6 @@ import com.evrencoskun.tableview.listener.scroll.HorizontalRecyclerViewListener; import com.evrencoskun.tableview.util.TableViewUtils; -import java.util.HashMap; -import java.util.Map; - import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT; /** @@ -44,23 +45,29 @@ public class CellLayoutManager extends LinearLayoutManager { private static final String LOG_TAG = CellLayoutManager.class.getSimpleName(); private static final int IGNORE_LEFT = -99999; + @NonNull private ColumnHeaderLayoutManager mColumnHeaderLayoutManager; + @NonNull private LinearLayoutManager mRowHeaderLayoutManager; + @NonNull private CellRecyclerView mRowHeaderRecyclerView; + @NonNull private CellRecyclerView mCellRecyclerView; private HorizontalRecyclerViewListener mHorizontalListener; + @NonNull private ITableView mTableView; - private final Map> mCachedWidthList = new HashMap(); + @NonNull + private final SparseArray mCachedWidthList = new SparseArray<>(); //TODO: Store a single instance for both cell and column cache width values. private int mLastDy = 0; private boolean mNeedSetLeft; private boolean mNeedFit; - public CellLayoutManager(Context context, ITableView tableView) { + public CellLayoutManager(@NonNull Context context, @NonNull ITableView tableView) { super(context); this.mTableView = tableView; this.mCellRecyclerView = tableView.getCellRecyclerView(); @@ -71,7 +78,6 @@ public CellLayoutManager(Context context, ITableView tableView) { initialize(); } - private void initialize() { this.setOrientation(VERTICAL); // Add new one @@ -82,10 +88,6 @@ public void onAttachedToWindow(RecyclerView view) { super.onAttachedToWindow(view); // initialize the instances - if (mCellRecyclerView == null) { - mCellRecyclerView = mTableView.getCellRecyclerView(); - } - if (mHorizontalListener == null) { mHorizontalListener = mTableView.getHorizontalRecyclerViewListener(); } @@ -117,7 +119,6 @@ public void onScrollStateChanged(int state) { } } - /** * This method helps to fit all columns which are displayed on screen. * Especially it will be called when TableView is scrolled on vertically. @@ -151,7 +152,6 @@ public void run() { } } - private int fitSize(int position, int left, boolean scrollingUp) { int cellRight = -1; @@ -252,7 +252,6 @@ private int fit(int xPosition, int yPosition, int left, int right, int columnCac return right; } - /** * Alternative method of fitWidthSize(). * The main difference is this method works after main thread draw the ui components. @@ -279,7 +278,6 @@ public void fitWidthSize2(boolean scrollingLeft) { mNeedSetLeft = false; } - /** * Alternative method of fitWidthSize(). * The main difference is this method works after main thread draw the ui components. @@ -308,7 +306,6 @@ private void fitSize2(int position, boolean scrollingLeft, int columnHeaderScrol int columnCacheWidth = mColumnHeaderLayoutManager.getCacheWidth(position); View column = mColumnHeaderLayoutManager.findViewByPosition(position); - if (column != null) { // Loop for all rows which are visible. for (int j = findFirstVisibleItemPosition(); j < findLastVisibleItemPosition() + 1; @@ -331,14 +328,16 @@ private void fitSize2(int position, boolean scrollingLeft, int columnHeaderScrol columnHeaderOffset); } - fit2(position, j, columnCacheWidth, column, childLayoutManager); + if (childLayoutManager != null) { + fit2(position, j, columnCacheWidth, column, childLayoutManager); + } } } } } - private void fit2(int xPosition, int yPosition, int columnCachedWidth, View column, - ColumnLayoutManager childLayoutManager) { + private void fit2(int xPosition, int yPosition, int columnCachedWidth, @NonNull View column, + @NonNull ColumnLayoutManager childLayoutManager) { int cellCacheWidth = getCacheWidth(yPosition, xPosition); View cell = childLayoutManager.findViewByPosition(xPosition); @@ -373,7 +372,6 @@ private void fit2(int xPosition, int yPosition, int columnCachedWidth, View colu } } - public boolean shouldFitColumns(int yPosition) { // Scrolling horizontally @@ -395,9 +393,8 @@ public boolean shouldFitColumns(int yPosition) { return false; } - @Override - public void measureChildWithMargins(View child, int widthUsed, int heightUsed) { + public void measureChildWithMargins(@NonNull View child, int widthUsed, int heightUsed) { super.measureChildWithMargins(child, widthUsed, heightUsed); // If has fixed width is true, than calculation of the column width is not necessary. @@ -456,6 +453,7 @@ public void measureChildWithMargins(View child, int widthUsed, int heightUsed) { } } + @NonNull public AbstractViewHolder[] getVisibleCellViewsByColumnPosition(int xPosition) { int visibleChildCount = findLastVisibleItemPosition() - findFirstVisibleItemPosition() + 1; int index = 0; @@ -473,6 +471,7 @@ public AbstractViewHolder[] getVisibleCellViewsByColumnPosition(int xPosition) { return viewHolders; } + @Nullable public AbstractViewHolder getCellViewHolder(int xPosition, int yPosition) { CellRecyclerView cellRowRecyclerView = (CellRecyclerView) findViewByPosition(yPosition); @@ -499,9 +498,9 @@ public void remeasureAllChild() { * Allows to set cache width value for single cell item. */ public void setCacheWidth(int row, int column, int width) { - Map cellRowCache = mCachedWidthList.get(row); + SparseIntArray cellRowCache = mCachedWidthList.get(row); if (cellRowCache == null) { - cellRowCache = new HashMap<>(); + cellRowCache = new SparseIntArray(); } cellRowCache.put(column, width); @@ -519,12 +518,9 @@ public void setCacheWidth(int column, int width) { } public int getCacheWidth(int row, int column) { - Map cellRowCaches = mCachedWidthList.get(row); + SparseIntArray cellRowCaches = mCachedWidthList.get(row); if (cellRowCaches != null) { - Integer cachedWidth = cellRowCaches.get(column); - if (cachedWidth != null) { - return cellRowCaches.get(column); - } + return cellRowCaches.get(column); } return -1; } @@ -536,6 +532,7 @@ public void clearCachedWidths() { mCachedWidthList.clear(); } + @Nullable public CellRecyclerView[] getVisibleCellRowRecyclerViews() { int length = findLastVisibleItemPosition() - findFirstVisibleItemPosition() + 1; CellRecyclerView[] recyclerViews = new CellRecyclerView[length]; diff --git a/tableview/src/main/java/com/evrencoskun/tableview/layoutmanager/ColumnHeaderLayoutManager.java b/tableview/src/main/java/com/evrencoskun/tableview/layoutmanager/ColumnHeaderLayoutManager.java index 21531825..7801674d 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/layoutmanager/ColumnHeaderLayoutManager.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/layoutmanager/ColumnHeaderLayoutManager.java @@ -18,27 +18,29 @@ package com.evrencoskun.tableview.layoutmanager; import android.content.Context; +import android.util.SparseIntArray; import android.view.View; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import androidx.recyclerview.widget.LinearLayoutManager; import com.evrencoskun.tableview.ITableView; import com.evrencoskun.tableview.adapter.recyclerview.holder.AbstractViewHolder; import com.evrencoskun.tableview.util.TableViewUtils; -import java.util.HashMap; -import java.util.Map; - /** * Created by evrencoskun on 30/07/2017. */ public class ColumnHeaderLayoutManager extends LinearLayoutManager { //private SparseArray mCachedWidthList; - private Map mCachedWidthList = new HashMap<>(); + @NonNull + private SparseIntArray mCachedWidthList = new SparseIntArray(); + @NonNull private ITableView mTableView; - public ColumnHeaderLayoutManager(Context context, ITableView tableView) { + public ColumnHeaderLayoutManager(@NonNull Context context, @NonNull ITableView tableView) { super(context); mTableView = tableView; @@ -46,7 +48,7 @@ public ColumnHeaderLayoutManager(Context context, ITableView tableView) { } @Override - public void measureChildWithMargins(View child, int widthUsed, int heightUsed) { + public void measureChildWithMargins(@NonNull View child, int widthUsed, int heightUsed) { super.measureChildWithMargins(child, widthUsed, heightUsed); // If has fixed width is true, than calculation of the column width is not necessary. @@ -58,7 +60,7 @@ public void measureChildWithMargins(View child, int widthUsed, int heightUsed) { } @Override - public void measureChild(View child, int widthUsed, int heightUsed) { + public void measureChild(@NonNull View child, int widthUsed, int heightUsed) { // If has fixed width is true, than calculation of the column width is not necessary. if (mTableView.hasFixedWidth()) { super.measureChild(child, widthUsed, heightUsed); @@ -76,17 +78,12 @@ public void measureChild(View child, int widthUsed, int heightUsed) { } } - public void setCacheWidth(int position, int width) { mCachedWidthList.put(position, width); } public int getCacheWidth(int position) { - Integer cachedWidth = mCachedWidthList.get(position); - if (cachedWidth == null) { - return -1; - } - return cachedWidth; + return mCachedWidthList.get(position); } public int getFirstItemLeft() { @@ -98,7 +95,7 @@ public int getFirstItemLeft() { * Helps to recalculate the width value of the cell that is located in given position. */ public void removeCachedWidth(int position) { - mCachedWidthList.remove(position); + mCachedWidthList.removeAt(position); } /** @@ -128,6 +125,7 @@ public void customRequestLayout() { } } + @NonNull public AbstractViewHolder[] getVisibleViewHolders() { int visibleChildCount = findLastVisibleItemPosition() - findFirstVisibleItemPosition() + 1; int index = 0; @@ -143,6 +141,7 @@ public AbstractViewHolder[] getVisibleViewHolders() { return views; } + @Nullable public AbstractViewHolder getViewHolder(int xPosition) { return (AbstractViewHolder) mTableView.getColumnHeaderRecyclerView() .findViewHolderForAdapterPosition(xPosition); diff --git a/tableview/src/main/java/com/evrencoskun/tableview/layoutmanager/ColumnLayoutManager.java b/tableview/src/main/java/com/evrencoskun/tableview/layoutmanager/ColumnLayoutManager.java index 9c6784eb..c91e1024 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/layoutmanager/ColumnLayoutManager.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/layoutmanager/ColumnLayoutManager.java @@ -21,6 +21,7 @@ import android.util.Log; import android.view.View; +import androidx.annotation.NonNull; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; @@ -36,17 +37,21 @@ public class ColumnLayoutManager extends LinearLayoutManager { private static final String LOG_TAG = ColumnLayoutManager.class.getSimpleName(); + @NonNull private ITableView mTableView; - private CellRecyclerView mCellRowRecyclerView, mColumnHeaderRecyclerView; + private CellRecyclerView mCellRowRecyclerView; + @NonNull + private CellRecyclerView mColumnHeaderRecyclerView; + @NonNull private ColumnHeaderLayoutManager mColumnHeaderLayoutManager; + @NonNull private CellLayoutManager mCellLayoutManager; private boolean mNeedFitForVerticalScroll, mNeedFitForHorizontalScroll; private int mLastDx = 0; private int mYPosition; - - public ColumnLayoutManager(Context context, ITableView tableView) { + public ColumnLayoutManager(@NonNull Context context, @NonNull ITableView tableView) { super(context); this.mTableView = tableView; this.mColumnHeaderRecyclerView = mTableView.getColumnHeaderRecyclerView(); @@ -68,9 +73,8 @@ public void onAttachedToWindow(RecyclerView view) { mYPosition = getRowPosition(); } - @Override - public void measureChildWithMargins(View child, int widthUsed, int heightUsed) { + public void measureChildWithMargins(@NonNull View child, int widthUsed, int heightUsed) { super.measureChildWithMargins(child, widthUsed, heightUsed); // If has fixed width is true, than calculation of the column width is not necessary. @@ -82,7 +86,7 @@ public void measureChildWithMargins(View child, int widthUsed, int heightUsed) { } @Override - public void measureChild(View child, int widthUsed, int heightUsed) { + public void measureChild(@NonNull View child, int widthUsed, int heightUsed) { int columnPosition = getPosition(child); @@ -125,8 +129,8 @@ public void measureChild(View child, int widthUsed, int heightUsed) { mNeedFitForHorizontalScroll = false; } - private void fitWidthSize(View child, int row, int column, int cellWidth, int - columnHeaderWidth, View columnHeaderChild) { + private void fitWidthSize(@NonNull View child, int row, int column, int cellWidth, int + columnHeaderWidth, @NonNull View columnHeaderChild) { if (cellWidth == -1) { // Alternatively, TableViewUtils.getWidth(child); @@ -220,6 +224,7 @@ public void clearNeedFit() { mNeedFitForVerticalScroll = false; } + @NonNull public AbstractViewHolder[] getVisibleViewHolders() { int visibleChildCount = findLastVisibleItemPosition() - findFirstVisibleItemPosition() + 1; int index = 0; diff --git a/tableview/src/main/java/com/evrencoskun/tableview/listener/ITableViewListener.java b/tableview/src/main/java/com/evrencoskun/tableview/listener/ITableViewListener.java index bc99ee67..d834aa04 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/listener/ITableViewListener.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/listener/ITableViewListener.java @@ -43,5 +43,4 @@ void onColumnHeaderLongPressed(@NonNull RecyclerView.ViewHolder columnHeaderView void onRowHeaderLongPressed(@NonNull RecyclerView.ViewHolder rowHeaderView, int row); - } diff --git a/tableview/src/main/java/com/evrencoskun/tableview/listener/TableViewLayoutChangeListener.java b/tableview/src/main/java/com/evrencoskun/tableview/listener/TableViewLayoutChangeListener.java index 5bb84f66..0b1ed57f 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/listener/TableViewLayoutChangeListener.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/listener/TableViewLayoutChangeListener.java @@ -19,6 +19,8 @@ import android.view.View; +import androidx.annotation.NonNull; + import com.evrencoskun.tableview.ITableView; import com.evrencoskun.tableview.adapter.recyclerview.CellRecyclerView; import com.evrencoskun.tableview.layoutmanager.CellLayoutManager; @@ -30,18 +32,19 @@ */ public class TableViewLayoutChangeListener implements View.OnLayoutChangeListener { - + @NonNull private CellRecyclerView mCellRecyclerView; + @NonNull private CellRecyclerView mColumnHeaderRecyclerView; + @NonNull private CellLayoutManager mCellLayoutManager; - public TableViewLayoutChangeListener(ITableView tableView) { + public TableViewLayoutChangeListener(@NonNull ITableView tableView) { this.mCellRecyclerView = tableView.getCellRecyclerView(); this.mColumnHeaderRecyclerView = tableView.getColumnHeaderRecyclerView(); this.mCellLayoutManager = tableView.getCellLayoutManager(); } - @Override public void onLayoutChange(View v, int left, int top, int right, int bottom, int oldLeft, int oldTop, int oldRight, int oldBottom) { diff --git a/tableview/src/main/java/com/evrencoskun/tableview/listener/itemclick/AbstractItemClickListener.java b/tableview/src/main/java/com/evrencoskun/tableview/listener/itemclick/AbstractItemClickListener.java index 6fe58d3e..6b37bdb9 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/listener/itemclick/AbstractItemClickListener.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/listener/itemclick/AbstractItemClickListener.java @@ -20,6 +20,8 @@ import android.view.GestureDetector; import android.view.MotionEvent; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import androidx.recyclerview.widget.RecyclerView; import com.evrencoskun.tableview.ITableView; @@ -33,12 +35,16 @@ public abstract class AbstractItemClickListener implements RecyclerView.OnItemTouchListener { private ITableViewListener mListener; + @NonNull protected GestureDetector mGestureDetector; + @NonNull protected CellRecyclerView mRecyclerView; + @NonNull protected SelectionHandler mSelectionHandler; + @NonNull protected ITableView mTableView; - public AbstractItemClickListener(CellRecyclerView recyclerView, ITableView tableView) { + public AbstractItemClickListener(@NonNull CellRecyclerView recyclerView, @NonNull ITableView tableView) { this.mRecyclerView = recyclerView; this.mTableView = tableView; this.mSelectionHandler = tableView.getSelectionHandler(); @@ -46,6 +52,7 @@ public AbstractItemClickListener(CellRecyclerView recyclerView, ITableView table mGestureDetector = new GestureDetector(mRecyclerView.getContext(), new GestureDetector .SimpleOnGestureListener() { + @Nullable MotionEvent start; @Override @@ -76,17 +83,19 @@ public void onLongPress(MotionEvent e) { } @Override - public boolean onInterceptTouchEvent(RecyclerView view, MotionEvent e) { + public boolean onInterceptTouchEvent(@NonNull RecyclerView view, @NonNull MotionEvent e) { return mGestureDetector.onTouchEvent(e); } @Override - public void onTouchEvent(RecyclerView view, MotionEvent motionEvent) { } + public void onTouchEvent(@NonNull RecyclerView view, @NonNull MotionEvent motionEvent) { + } @Override - public void onRequestDisallowInterceptTouchEvent(boolean disallowIntercept) {} - + public void onRequestDisallowInterceptTouchEvent(boolean disallowIntercept) { + } + @NonNull protected ITableViewListener getTableViewListener() { if (mListener == null) { mListener = mTableView.getTableViewListener(); @@ -94,7 +103,7 @@ protected ITableViewListener getTableViewListener() { return mListener; } - abstract protected boolean clickAction(RecyclerView view, MotionEvent e); + abstract protected boolean clickAction(@NonNull RecyclerView view, @NonNull MotionEvent e); - abstract protected void longPressAction(MotionEvent e); + abstract protected void longPressAction(@NonNull MotionEvent e); } diff --git a/tableview/src/main/java/com/evrencoskun/tableview/listener/itemclick/CellRecyclerViewItemClickListener.java b/tableview/src/main/java/com/evrencoskun/tableview/listener/itemclick/CellRecyclerViewItemClickListener.java index 4dfeeb02..d6d7eb8f 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/listener/itemclick/CellRecyclerViewItemClickListener.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/listener/itemclick/CellRecyclerViewItemClickListener.java @@ -20,6 +20,7 @@ import android.view.MotionEvent; import android.view.View; +import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; import com.evrencoskun.tableview.ITableView; @@ -32,17 +33,16 @@ */ public class CellRecyclerViewItemClickListener extends AbstractItemClickListener { - private static final String LOG_TAG = CellRecyclerViewItemClickListener.class.getSimpleName(); - + @NonNull private CellRecyclerView mCellRecyclerView; - public CellRecyclerViewItemClickListener(CellRecyclerView recyclerView, ITableView tableView) { + public CellRecyclerViewItemClickListener(@NonNull CellRecyclerView recyclerView, @NonNull ITableView tableView) { super(recyclerView, tableView); this.mCellRecyclerView = tableView.getCellRecyclerView(); } @Override - protected boolean clickAction(RecyclerView view, MotionEvent e) { + protected boolean clickAction(@NonNull RecyclerView view, @NonNull MotionEvent e) { // Get interacted view from x,y coordinate. View childView = view.findChildViewUnder(e.getX(), e.getY()); @@ -63,17 +63,15 @@ protected boolean clickAction(RecyclerView view, MotionEvent e) { mSelectionHandler.setSelectedCellPositions(holder, column, row); } - if (getTableViewListener() != null) { - // Call ITableView listener for item click - getTableViewListener().onCellClicked(holder, column, row); - } + // Call ITableView listener for item click + getTableViewListener().onCellClicked(holder, column, row); return true; } return false; } - protected void longPressAction(MotionEvent e) { + protected void longPressAction(@NonNull MotionEvent e) { // Consume the action for the time when either the cell row recyclerView or // the cell recyclerView is scrolling. if ((mRecyclerView.getScrollState() != RecyclerView.SCROLL_STATE_IDLE) || @@ -84,7 +82,8 @@ protected void longPressAction(MotionEvent e) { // Get interacted view from x,y coordinate. View child = mRecyclerView.findChildViewUnder(e.getX(), e.getY()); - if (child != null && getTableViewListener() != null) { + if (child != null) { + getTableViewListener(); // Find the view holder RecyclerView.ViewHolder holder = mRecyclerView.getChildViewHolder(child); @@ -97,4 +96,4 @@ protected void longPressAction(MotionEvent e) { .getYPosition()); } } -} \ No newline at end of file +} diff --git a/tableview/src/main/java/com/evrencoskun/tableview/listener/itemclick/ColumnHeaderRecyclerViewItemClickListener.java b/tableview/src/main/java/com/evrencoskun/tableview/listener/itemclick/ColumnHeaderRecyclerViewItemClickListener.java index aeb3a9df..b6c26ddf 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/listener/itemclick/ColumnHeaderRecyclerViewItemClickListener.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/listener/itemclick/ColumnHeaderRecyclerViewItemClickListener.java @@ -20,6 +20,7 @@ import android.view.MotionEvent; import android.view.View; +import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; import com.evrencoskun.tableview.ITableView; @@ -32,14 +33,14 @@ public class ColumnHeaderRecyclerViewItemClickListener extends AbstractItemClickListener { - public ColumnHeaderRecyclerViewItemClickListener(CellRecyclerView recyclerView, ITableView + public ColumnHeaderRecyclerViewItemClickListener(@NonNull CellRecyclerView recyclerView, @NonNull ITableView tableView) { super(recyclerView, tableView); } @Override - protected boolean clickAction(RecyclerView view, MotionEvent e) { + protected boolean clickAction(@NonNull RecyclerView view, @NonNull MotionEvent e) { // Get interacted view from x,y coordinate. View childView = view.findChildViewUnder(e.getX(), e.getY()); @@ -55,17 +56,15 @@ protected boolean clickAction(RecyclerView view, MotionEvent e) { mSelectionHandler.setSelectedColumnPosition(holder, column); } - if (getTableViewListener() != null) { - // Call ITableView listener for item click - getTableViewListener().onColumnHeaderClicked(holder, column); - } + // Call ITableView listener for item click + getTableViewListener().onColumnHeaderClicked(holder, column); return true; } return false; } - protected void longPressAction(MotionEvent e) { + protected void longPressAction(@NonNull MotionEvent e) { // Consume the action for the time when the recyclerView is scrolling. if (mRecyclerView.getScrollState() != RecyclerView.SCROLL_STATE_IDLE) { return; @@ -74,7 +73,8 @@ protected void longPressAction(MotionEvent e) { // Get interacted view from x,y coordinate. View child = mRecyclerView.findChildViewUnder(e.getX(), e.getY()); - if (child != null && getTableViewListener() != null) { + if (child != null) { + getTableViewListener(); // Find the view holder RecyclerView.ViewHolder holder = mRecyclerView.getChildViewHolder(child); @@ -82,4 +82,4 @@ protected void longPressAction(MotionEvent e) { getTableViewListener().onColumnHeaderLongPressed(holder, holder.getAdapterPosition()); } } -} \ No newline at end of file +} diff --git a/tableview/src/main/java/com/evrencoskun/tableview/listener/itemclick/RowHeaderRecyclerViewItemClickListener.java b/tableview/src/main/java/com/evrencoskun/tableview/listener/itemclick/RowHeaderRecyclerViewItemClickListener.java index b161e97a..cd55201b 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/listener/itemclick/RowHeaderRecyclerViewItemClickListener.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/listener/itemclick/RowHeaderRecyclerViewItemClickListener.java @@ -20,6 +20,7 @@ import android.view.MotionEvent; import android.view.View; +import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; import com.evrencoskun.tableview.ITableView; @@ -32,13 +33,13 @@ public class RowHeaderRecyclerViewItemClickListener extends AbstractItemClickListener { - public RowHeaderRecyclerViewItemClickListener(CellRecyclerView recyclerView, ITableView + public RowHeaderRecyclerViewItemClickListener(@NonNull CellRecyclerView recyclerView, @NonNull ITableView tableView) { super(recyclerView, tableView); } @Override - protected boolean clickAction(RecyclerView view, MotionEvent e) { + protected boolean clickAction(@NonNull RecyclerView view, @NonNull MotionEvent e) { // Get interacted view from x,y coordinate. View childView = view.findChildViewUnder(e.getX(), e.getY()); @@ -54,16 +55,14 @@ protected boolean clickAction(RecyclerView view, MotionEvent e) { mSelectionHandler.setSelectedRowPosition(holder, row); } - if (getTableViewListener() != null) { - // Call ITableView listener for item click - getTableViewListener().onRowHeaderClicked(holder, row); - } + // Call ITableView listener for item click + getTableViewListener().onRowHeaderClicked(holder, row); return true; } return false; } - protected void longPressAction(MotionEvent e) { + protected void longPressAction(@NonNull MotionEvent e) { // Consume the action for the time when the recyclerView is scrolling. if (mRecyclerView.getScrollState() != RecyclerView.SCROLL_STATE_IDLE) { return; @@ -72,7 +71,8 @@ protected void longPressAction(MotionEvent e) { // Get interacted view from x,y coordinate. View child = mRecyclerView.findChildViewUnder(e.getX(), e.getY()); - if (child != null && getTableViewListener() != null) { + if (child != null) { + getTableViewListener(); // Find the view holder RecyclerView.ViewHolder holder = mRecyclerView.getChildViewHolder(child); diff --git a/tableview/src/main/java/com/evrencoskun/tableview/listener/scroll/HorizontalRecyclerViewListener.java b/tableview/src/main/java/com/evrencoskun/tableview/listener/scroll/HorizontalRecyclerViewListener.java index a11838e5..515945f5 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/listener/scroll/HorizontalRecyclerViewListener.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/listener/scroll/HorizontalRecyclerViewListener.java @@ -20,6 +20,8 @@ import android.util.Log; import android.view.MotionEvent; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; @@ -35,8 +37,11 @@ public class HorizontalRecyclerViewListener extends RecyclerView.OnScrollListene private static final String LOG_TAG = HorizontalRecyclerViewListener.class.getSimpleName(); + @NonNull private CellRecyclerView mColumnHeaderRecyclerView; + @Nullable private RecyclerView.LayoutManager mCellLayoutManager; + @Nullable private RecyclerView mLastTouchedRecyclerView; // X position means column position @@ -46,22 +51,24 @@ public class HorizontalRecyclerViewListener extends RecyclerView.OnScrollListene private int mScrollPosition; private int mScrollPositionOffset = 0; + @Nullable private RecyclerView mCurrentRVTouched = null; + @NonNull private VerticalRecyclerViewListener mVerticalRecyclerViewListener; - public HorizontalRecyclerViewListener(ITableView tableView) { + public HorizontalRecyclerViewListener(@NonNull ITableView tableView) { this.mColumnHeaderRecyclerView = tableView.getColumnHeaderRecyclerView(); this.mCellLayoutManager = tableView.getCellRecyclerView().getLayoutManager(); this.mVerticalRecyclerViewListener = tableView.getVerticalRecyclerViewListener(); } @Override - public boolean onInterceptTouchEvent(RecyclerView rv, MotionEvent e) { + public boolean onInterceptTouchEvent(@NonNull RecyclerView rv, @NonNull MotionEvent e) { // Prevent multitouch, once we start to listen with a RV, // we ignore any other RV until the touch is released (UP) - if(mCurrentRVTouched != null && rv != mCurrentRVTouched) { + if (mCurrentRVTouched != null && rv != mCurrentRVTouched) { return true; } @@ -156,7 +163,7 @@ public boolean onInterceptTouchEvent(RecyclerView rv, MotionEvent e) { } @Override - public void onTouchEvent(RecyclerView rv, MotionEvent e) { + public void onTouchEvent(@NonNull RecyclerView rv, @NonNull MotionEvent e) { } @Override @@ -164,7 +171,7 @@ public void onRequestDisallowInterceptTouchEvent(boolean disallowIntercept) { } @Override - public void onScrolled(RecyclerView recyclerView, int dx, int dy) { + public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) { // Column Header should be scrolled firstly. Because it is the compared recyclerView to // make column width fit. @@ -195,7 +202,7 @@ public void onScrolled(RecyclerView recyclerView, int dx, int dy) { } @Override - public void onScrollStateChanged(RecyclerView recyclerView, int newState) { + public void onScrollStateChanged(@NonNull RecyclerView recyclerView, int newState) { super.onScrollStateChanged(recyclerView, newState); if (newState == RecyclerView.SCROLL_STATE_IDLE) { @@ -216,7 +223,7 @@ public void onScrollStateChanged(RecyclerView recyclerView, int newState) { } } - private int getIndex(RecyclerView rv) { + private int getIndex(@NonNull RecyclerView rv) { for (int i = 0; i < mCellLayoutManager.getChildCount(); i++) { if (mCellLayoutManager.getChildAt(i) == rv) { return i; @@ -225,7 +232,6 @@ private int getIndex(RecyclerView rv) { return -1; } - /** * This method calculates the current scroll position and its offset to help new attached * recyclerView on window at that position and offset @@ -233,7 +239,7 @@ private int getIndex(RecyclerView rv) { * @see #getScrollPosition() * @see #getScrollPositionOffset() */ - private void renewScrollPosition(RecyclerView recyclerView) { + private void renewScrollPosition(@NonNull RecyclerView recyclerView) { LinearLayoutManager layoutManager = (LinearLayoutManager) recyclerView.getLayoutManager(); mScrollPosition = layoutManager.findFirstCompletelyVisibleItemPosition(); diff --git a/tableview/src/main/java/com/evrencoskun/tableview/listener/scroll/VerticalRecyclerViewListener.java b/tableview/src/main/java/com/evrencoskun/tableview/listener/scroll/VerticalRecyclerViewListener.java index d610c144..2451662f 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/listener/scroll/VerticalRecyclerViewListener.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/listener/scroll/VerticalRecyclerViewListener.java @@ -20,6 +20,8 @@ import android.util.Log; import android.view.MotionEvent; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import androidx.recyclerview.widget.RecyclerView; import com.evrencoskun.tableview.ITableView; @@ -34,6 +36,7 @@ public class VerticalRecyclerViewListener extends RecyclerView.OnScrollListener private static final String LOG_TAG = VerticalRecyclerViewListener.class.getSimpleName(); + @NonNull private CellRecyclerView mRowHeaderRecyclerView, mCellRecyclerView; private RecyclerView mLastTouchedRecyclerView; @@ -41,21 +44,23 @@ public class VerticalRecyclerViewListener extends RecyclerView.OnScrollListener private int mYPosition; private boolean mIsMoved; + @Nullable private RecyclerView mCurrentRVTouched = null; - public VerticalRecyclerViewListener(ITableView tableView) { + public VerticalRecyclerViewListener(@NonNull ITableView tableView) { this.mRowHeaderRecyclerView = tableView.getRowHeaderRecyclerView(); this.mCellRecyclerView = tableView.getCellRecyclerView(); } - private float dx=0, dy=0; + private float dx = 0, dy = 0; /** * check which direction the user is scrolling + * * @param ev * @return */ - private boolean verticalDirection(MotionEvent ev) { + private boolean verticalDirection(@NonNull MotionEvent ev) { if (ev.getAction() == MotionEvent.ACTION_MOVE) { if (dx == 0) { dx = ev.getX(); @@ -78,16 +83,16 @@ private boolean verticalDirection(MotionEvent ev) { } @Override - public boolean onInterceptTouchEvent(RecyclerView rv, MotionEvent e) { + public boolean onInterceptTouchEvent(@NonNull RecyclerView rv, @NonNull MotionEvent e) { // Prevent multitouch, once we start to listen with a RV, // we ignore any other RV until the touch is released (UP) - if((mCurrentRVTouched != null && rv != mCurrentRVTouched)) { + if ((mCurrentRVTouched != null && rv != mCurrentRVTouched)) { return true; } - + // If scroll direction is not Vertical, then ignore and reset last RV touched - if(!verticalDirection(e)) { + if (!verticalDirection(e)) { mCurrentRVTouched = null; return false; } @@ -146,7 +151,7 @@ public boolean onInterceptTouchEvent(RecyclerView rv, MotionEvent e) { } @Override - public void onTouchEvent(RecyclerView rv, MotionEvent e) { + public void onTouchEvent(@NonNull RecyclerView rv, @NonNull MotionEvent e) { } @Override @@ -154,7 +159,7 @@ public void onRequestDisallowInterceptTouchEvent(boolean disallowIntercept) { } @Override - public void onScrolled(RecyclerView recyclerView, int dx, int dy) { + public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) { // CellRecyclerViews should be scrolled after the RowHeaderRecyclerView. // Because it is one of the main compared criterion to make each columns fit. @@ -171,7 +176,7 @@ public void onScrolled(RecyclerView recyclerView, int dx, int dy) { } @Override - public void onScrollStateChanged(RecyclerView recyclerView, int newState) { + public void onScrollStateChanged(@NonNull RecyclerView recyclerView, int newState) { super.onScrollStateChanged(recyclerView, newState); if (newState == RecyclerView.SCROLL_STATE_IDLE) { diff --git a/tableview/src/main/java/com/evrencoskun/tableview/pagination/IPagination.java b/tableview/src/main/java/com/evrencoskun/tableview/pagination/IPagination.java index 99561ff5..144020ac 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/pagination/IPagination.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/pagination/IPagination.java @@ -17,6 +17,8 @@ package com.evrencoskun.tableview.pagination; +import androidx.annotation.Nullable; + public interface IPagination { /** @@ -48,7 +50,7 @@ public interface IPagination { * * @param onTableViewPageTurnedListener The OnTableViewPageTurnedListener. */ - void setOnTableViewPageTurnedListener(Pagination.OnTableViewPageTurnedListener onTableViewPageTurnedListener); + void setOnTableViewPageTurnedListener(@Nullable Pagination.OnTableViewPageTurnedListener onTableViewPageTurnedListener); /** * Removes the OnTableViewPageTurnedListener for this Pagination. diff --git a/tableview/src/main/java/com/evrencoskun/tableview/pagination/Pagination.java b/tableview/src/main/java/com/evrencoskun/tableview/pagination/Pagination.java index c5c3bbc8..75667f2d 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/pagination/Pagination.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/pagination/Pagination.java @@ -17,6 +17,9 @@ package com.evrencoskun.tableview.pagination; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + import com.evrencoskun.tableview.ITableView; import com.evrencoskun.tableview.adapter.AdapterDataSetChangedListener; import com.evrencoskun.tableview.adapter.recyclerview.CellRecyclerViewAdapter; @@ -34,19 +37,21 @@ import java.util.Collections; import java.util.List; -public class Pagination implements IPagination { +public class Pagination implements IPagination { private static final int DEFAULT_ITEMS_PER_PAGE = 10; private int itemsPerPage; private int currentPage; private int pageCount; - private List> originalCellData, currentPageCellData; - private List originalRowData, currentPageRowData; - - private RowHeaderRecyclerViewAdapter mRowHeaderRecyclerViewAdapter; - private CellRecyclerViewAdapter mCellRecyclerViewAdapter; - private ITableView tableView; - + @NonNull + private List> originalCellData; + @NonNull + private List originalRowData; + @Nullable + private RowHeaderRecyclerViewAdapter mRowHeaderRecyclerViewAdapter; + @Nullable + private CellRecyclerViewAdapter> mCellRecyclerViewAdapter; + @Nullable private OnTableViewPageTurnedListener onTableViewPageTurnedListener; /** @@ -54,7 +59,7 @@ public class Pagination implements IPagination { * * @param tableView The TableView to be paginated. */ - public Pagination(ITableView tableView) { + public Pagination(@NonNull ITableView tableView) { this(tableView, DEFAULT_ITEMS_PER_PAGE, null); } @@ -64,7 +69,7 @@ public Pagination(ITableView tableView) { * @param tableView The TableView to be paginated. * @param itemsPerPage The number of items per page. */ - public Pagination(ITableView tableView, int itemsPerPage) { + public Pagination(@NonNull ITableView tableView, int itemsPerPage) { this(tableView, itemsPerPage, null); } @@ -76,41 +81,36 @@ public Pagination(ITableView tableView, int itemsPerPage) { * @param itemsPerPage The number of items per page. * @param listener The OnTableViewPageTurnedListener for the TableView. */ - public Pagination(ITableView tableView, int itemsPerPage, OnTableViewPageTurnedListener listener) { + public Pagination(@NonNull ITableView tableView, int itemsPerPage, @Nullable OnTableViewPageTurnedListener listener) { initialize(tableView, itemsPerPage, listener); } @SuppressWarnings("unchecked") - private void initialize(ITableView tableView, int itemsPerPage, OnTableViewPageTurnedListener listener) { + private void initialize(@NonNull ITableView tableView, int itemsPerPage, @Nullable OnTableViewPageTurnedListener listener) { this.onTableViewPageTurnedListener = listener; this.itemsPerPage = itemsPerPage; - this.tableView = tableView; this.mRowHeaderRecyclerViewAdapter = (RowHeaderRecyclerViewAdapter) tableView .getRowHeaderRecyclerView().getAdapter(); this.mCellRecyclerViewAdapter = (CellRecyclerViewAdapter) tableView.getCellRecyclerView() .getAdapter(); - this.tableView.getColumnSortHandler().addColumnSortStateChangedListener(columnSortStateChangedListener); - this.tableView.getAdapter().addAdapterDataSetChangedListener(adapterDataSetChangedListener); - this.tableView.getFilterHandler().addFilterChangedListener(filterChangedListener); + tableView.getColumnSortHandler().addColumnSortStateChangedListener(columnSortStateChangedListener); + tableView.getAdapter().addAdapterDataSetChangedListener(adapterDataSetChangedListener); + tableView.getFilterHandler().addFilterChangedListener(filterChangedListener); this.originalCellData = tableView.getAdapter().getCellRecyclerViewAdapter().getItems(); this.originalRowData = tableView.getAdapter().getRowHeaderRecyclerViewAdapter().getItems(); this.currentPage = 1; reloadPages(); } - @SuppressWarnings("unchecked") private void reloadPages() { - if (originalCellData != null && originalRowData != null) { - paginateData(); - goToPage(currentPage); - } + paginateData(); + goToPage(currentPage); } - @SuppressWarnings("unchecked") private void paginateData() { int start, end; - currentPageCellData = new ArrayList<>(); - currentPageRowData = new ArrayList<>(); + List> currentPageCellData = new ArrayList<>(); + List currentPageRowData = new ArrayList<>(); // No pagination if itemsPerPage is 0, all data will be loaded into the TableView. if (itemsPerPage == 0) { currentPageCellData.addAll(originalCellData); @@ -169,7 +169,7 @@ public void setItemsPerPage(int numItems) { } @Override - public void setOnTableViewPageTurnedListener(OnTableViewPageTurnedListener onTableViewPageTurnedListener) { + public void setOnTableViewPageTurnedListener(@Nullable OnTableViewPageTurnedListener onTableViewPageTurnedListener) { this.onTableViewPageTurnedListener = onTableViewPageTurnedListener; } @@ -198,59 +198,56 @@ public boolean isPaginated() { return itemsPerPage > 0; } + @NonNull @SuppressWarnings("unchecked") private AdapterDataSetChangedListener adapterDataSetChangedListener = new AdapterDataSetChangedListener() { @Override - public void onRowHeaderItemsChanged(List rowHeaderItems) { - if (rowHeaderItems != null) { - originalRowData = new ArrayList<>(rowHeaderItems); - reloadPages(); - } + public void onRowHeaderItemsChanged(@NonNull List rowHeaderItems) { + originalRowData = new ArrayList<>(rowHeaderItems); + reloadPages(); } @Override - public void onCellItemsChanged(List cellItems) { - if (cellItems != null) { - originalCellData = new ArrayList<>(cellItems); - reloadPages(); - } + public void onCellItemsChanged(@NonNull List cellItems) { + originalCellData = new ArrayList<>(cellItems); + reloadPages(); } }; - @SuppressWarnings("unchecked") - private FilterChangedListener filterChangedListener = - new FilterChangedListener() { + @NonNull + private FilterChangedListener filterChangedListener = + new FilterChangedListener() { @Override - public void onFilterChanged(List filteredCellItems, List filteredRowHeaderItems) { + public void onFilterChanged(@NonNull List> filteredCellItems, @NonNull List filteredRowHeaderItems) { originalCellData = new ArrayList<>(filteredCellItems); originalRowData = new ArrayList<>(filteredRowHeaderItems); reloadPages(); } @Override - public void onFilterCleared(List originalCellItems, List originalRowHeaderItems) { + public void onFilterCleared(@NonNull List> originalCellItems, @NonNull List originalRowHeaderItems) { originalCellData = new ArrayList<>(originalCellItems); originalRowData = new ArrayList<>(originalRowHeaderItems); reloadPages(); } }; + @NonNull private ColumnSortStateChangedListener columnSortStateChangedListener = new ColumnSortStateChangedListener() { @Override - public void onColumnSortStatusChanged(int column, SortState sortState) { + public void onColumnSortStatusChanged(int column, @NonNull SortState sortState) { paginateOnColumnSort(column, sortState); } @Override - public void onRowHeaderSortStatusChanged(SortState sortState) { + public void onRowHeaderSortStatusChanged(@NonNull SortState sortState) { paginateOnColumnSort(-1, sortState); } }; - @SuppressWarnings("unchecked") - private void paginateOnColumnSort(int column, SortState sortState) { + private void paginateOnColumnSort(int column, @NonNull SortState sortState) { List sortedRowHeaderList = new ArrayList<>(originalRowData); List> sortedList = new ArrayList<>(originalCellData); if (sortState != SortState.UNSORTED) { diff --git a/tableview/src/main/java/com/evrencoskun/tableview/preference/Preferences.java b/tableview/src/main/java/com/evrencoskun/tableview/preference/Preferences.java index 95a4cf43..d0090982 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/preference/Preferences.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/preference/Preferences.java @@ -20,6 +20,8 @@ import android.os.Parcel; import android.os.Parcelable; +import androidx.annotation.NonNull; + /** * Created by evrencoskun on 4.03.2018. */ @@ -45,12 +47,15 @@ protected Preferences(Parcel in) { selectedColumnPosition = in.readInt(); } + @NonNull public static final Creator CREATOR = new Creator() { + @NonNull @Override public Preferences createFromParcel(Parcel in) { return new Preferences(in); } + @NonNull @Override public Preferences[] newArray(int size) { return new Preferences[size]; diff --git a/tableview/src/main/java/com/evrencoskun/tableview/preference/SavedState.java b/tableview/src/main/java/com/evrencoskun/tableview/preference/SavedState.java index 434cacbe..e3e6a004 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/preference/SavedState.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/preference/SavedState.java @@ -21,6 +21,8 @@ import android.os.Parcelable; import android.view.View; +import androidx.annotation.NonNull; + /** * Created by evrencoskun on 4.03.2018. */ @@ -44,10 +46,17 @@ public void writeToParcel(Parcel out, int flags) { out.writeParcelable(preferences, flags); } + @NonNull public static final Parcelable.Creator CREATOR = new Parcelable .Creator() { - public SavedState createFromParcel(Parcel in) { return new SavedState(in); } - - public SavedState[] newArray(int size) { return new SavedState[size]; } + @NonNull + public SavedState createFromParcel(Parcel in) { + return new SavedState(in); + } + + @NonNull + public SavedState[] newArray(int size) { + return new SavedState[size]; + } }; } diff --git a/tableview/src/main/java/com/evrencoskun/tableview/sort/AbstractSortComparator.java b/tableview/src/main/java/com/evrencoskun/tableview/sort/AbstractSortComparator.java index dcf61454..da44f27d 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/sort/AbstractSortComparator.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/sort/AbstractSortComparator.java @@ -1,5 +1,8 @@ package com.evrencoskun.tableview.sort; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + import java.util.Date; /** @@ -7,10 +10,10 @@ */ public abstract class AbstractSortComparator { - + @NonNull protected SortState mSortState; - protected int compareContent(Object o1, Object o2) { + protected int compareContent(@Nullable Object o1, @Nullable Object o2) { if (o1 == null && o2 == null) { return 0; } else if (o1 == null) { diff --git a/tableview/src/main/java/com/evrencoskun/tableview/sort/ColumnForRowHeaderSortComparator.java b/tableview/src/main/java/com/evrencoskun/tableview/sort/ColumnForRowHeaderSortComparator.java index bec045e7..6082221f 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/sort/ColumnForRowHeaderSortComparator.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/sort/ColumnForRowHeaderSortComparator.java @@ -4,6 +4,8 @@ * Created by cedricferry on 7/2/18. */ +import androidx.annotation.NonNull; + import java.util.Comparator; import java.util.List; @@ -14,30 +16,33 @@ * To accomplish that we need to set a comparator that use MainDataSet * in order to sort RowHeader. */ -public class ColumnForRowHeaderSortComparator implements Comparator { - +public class ColumnForRowHeaderSortComparator implements Comparator { + @NonNull private List mRowHeaderList; + @NonNull private List> mReferenceList; private int column; - private SortState mRortState; + @NonNull + private SortState mSortState; + @NonNull private ColumnSortComparator mColumnSortComparator; - public ColumnForRowHeaderSortComparator(List rowHeader, - List> referenceList, + public ColumnForRowHeaderSortComparator(@NonNull List rowHeader, + @NonNull List> referenceList, int column, - SortState sortState) { + @NonNull SortState sortState) { this.mRowHeaderList = rowHeader; this.mReferenceList = referenceList; this.column = column; - this.mRortState = sortState; + this.mSortState = sortState; this.mColumnSortComparator = new ColumnSortComparator(column, sortState); } @Override - public int compare(Object o, Object t1) { + public int compare(ISortableModel o, ISortableModel t1) { Object o1 = mReferenceList.get(this.mRowHeaderList.indexOf(o)).get(column).getContent(); Object o2 = mReferenceList.get(this.mRowHeaderList.indexOf(t1)).get(column).getContent(); - if (mRortState == SortState.DESCENDING) { + if (mSortState == SortState.DESCENDING) { return mColumnSortComparator.compareContent(o2, o1); } else { return mColumnSortComparator.compareContent(o1, o2); diff --git a/tableview/src/main/java/com/evrencoskun/tableview/sort/ColumnSortCallback.java b/tableview/src/main/java/com/evrencoskun/tableview/sort/ColumnSortCallback.java index 4c1a394a..43f2e0a0 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/sort/ColumnSortCallback.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/sort/ColumnSortCallback.java @@ -17,6 +17,7 @@ package com.evrencoskun.tableview.sort; +import androidx.annotation.NonNull; import androidx.core.util.ObjectsCompat; import androidx.recyclerview.widget.DiffUtil; @@ -27,14 +28,13 @@ */ public class ColumnSortCallback extends DiffUtil.Callback { - - private static final String LOG_TAG = ColumnSortCallback.class.getSimpleName(); - + @NonNull private List> mOldCellItems; + @NonNull private List> mNewCellItems; private int mColumnPosition; - public ColumnSortCallback(List> oldCellItems, List> + public ColumnSortCallback(@NonNull List> oldCellItems, @NonNull List> newCellItems, int column) { this.mOldCellItems = oldCellItems; this.mNewCellItems = newCellItems; diff --git a/tableview/src/main/java/com/evrencoskun/tableview/sort/ColumnSortComparator.java b/tableview/src/main/java/com/evrencoskun/tableview/sort/ColumnSortComparator.java index 8911a7da..9c2d89bd 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/sort/ColumnSortComparator.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/sort/ColumnSortComparator.java @@ -17,8 +17,9 @@ package com.evrencoskun.tableview.sort; +import androidx.annotation.NonNull; + import java.util.Comparator; -import java.util.Date; import java.util.List; /** @@ -29,7 +30,7 @@ public class ColumnSortComparator extends AbstractSortComparator implements Comp private int mXPosition; - public ColumnSortComparator(int xPosition, SortState sortState) { + public ColumnSortComparator(int xPosition, @NonNull SortState sortState) { this.mXPosition = xPosition; this.mSortState = sortState; } @@ -47,4 +48,4 @@ public int compare(List t1, List t2) { } } -} \ No newline at end of file +} diff --git a/tableview/src/main/java/com/evrencoskun/tableview/sort/ColumnSortHelper.java b/tableview/src/main/java/com/evrencoskun/tableview/sort/ColumnSortHelper.java index e326bcd6..caf8bed5 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/sort/ColumnSortHelper.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/sort/ColumnSortHelper.java @@ -17,6 +17,8 @@ package com.evrencoskun.tableview.sort; +import androidx.annotation.NonNull; + import com.evrencoskun.tableview.adapter.recyclerview.holder.AbstractSorterViewHolder; import com.evrencoskun.tableview.adapter.recyclerview.holder.AbstractViewHolder; import com.evrencoskun.tableview.layoutmanager.ColumnHeaderLayoutManager; @@ -29,15 +31,16 @@ */ public class ColumnSortHelper { - + @NonNull private List mSortingColumns = new ArrayList<>(); + @NonNull private ColumnHeaderLayoutManager mColumnHeaderLayoutManager; - public ColumnSortHelper(ColumnHeaderLayoutManager columnHeaderLayoutManager) { + public ColumnSortHelper(@NonNull ColumnHeaderLayoutManager columnHeaderLayoutManager) { this.mColumnHeaderLayoutManager = columnHeaderLayoutManager; } - private void sortingStatusChanged(int column, SortState sortState) { + private void sortingStatusChanged(int column, @NonNull SortState sortState) { AbstractViewHolder holder = mColumnHeaderLayoutManager.getViewHolder(column); if (holder != null) { @@ -51,8 +54,7 @@ private void sortingStatusChanged(int column, SortState sortState) { } } - - public void setSortingStatus(int column, SortState status) { + public void setSortingStatus(int column, @NonNull SortState status) { Directive directive = getDirective(column); if (directive != EMPTY_DIRECTIVE) { mSortingColumns.remove(directive); @@ -72,11 +74,12 @@ public boolean isSorting() { return mSortingColumns.size() != 0; } + @NonNull public SortState getSortingStatus(int column) { return getDirective(column).direction; } - + @NonNull private Directive getDirective(int column) { for (int i = 0; i < mSortingColumns.size(); i++) { Directive directive = mSortingColumns.get(i); @@ -89,13 +92,15 @@ private Directive getDirective(int column) { private static class Directive { private int column; + @NonNull private SortState direction; - public Directive(int column, SortState direction) { + public Directive(int column, @NonNull SortState direction) { this.column = column; this.direction = direction; } } + @NonNull private static Directive EMPTY_DIRECTIVE = new Directive(-1, SortState.UNSORTED); } diff --git a/tableview/src/main/java/com/evrencoskun/tableview/sort/ColumnSortStateChangedListener.java b/tableview/src/main/java/com/evrencoskun/tableview/sort/ColumnSortStateChangedListener.java index 33a455aa..63b1ea17 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/sort/ColumnSortStateChangedListener.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/sort/ColumnSortStateChangedListener.java @@ -17,6 +17,8 @@ package com.evrencoskun.tableview.sort; +import androidx.annotation.NonNull; + public abstract class ColumnSortStateChangedListener { /** @@ -25,7 +27,7 @@ public abstract class ColumnSortStateChangedListener { * @param column Column to be sorted. * @param sortState SortState of the column to be sorted. */ - public void onColumnSortStatusChanged(int column, SortState sortState) { + public void onColumnSortStatusChanged(int column, @NonNull SortState sortState) { } /** @@ -33,6 +35,6 @@ public void onColumnSortStatusChanged(int column, SortState sortState) { * * @param sortState SortState of the row header column. */ - public void onRowHeaderSortStatusChanged(SortState sortState) { + public void onRowHeaderSortStatusChanged(@NonNull SortState sortState) { } } diff --git a/tableview/src/main/java/com/evrencoskun/tableview/sort/ISortableModel.java b/tableview/src/main/java/com/evrencoskun/tableview/sort/ISortableModel.java index b42b7a3e..70e19c68 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/sort/ISortableModel.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/sort/ISortableModel.java @@ -17,13 +17,17 @@ package com.evrencoskun.tableview.sort; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + /** * Created by evrencoskun on 24.11.2017. */ public interface ISortableModel { - + @NonNull String getId(); + @Nullable Object getContent(); } diff --git a/tableview/src/main/java/com/evrencoskun/tableview/sort/RowHeaderForCellSortComparator.java b/tableview/src/main/java/com/evrencoskun/tableview/sort/RowHeaderForCellSortComparator.java index 79c265be..a56b9a3c 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/sort/RowHeaderForCellSortComparator.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/sort/RowHeaderForCellSortComparator.java @@ -1,5 +1,7 @@ package com.evrencoskun.tableview.sort; +import androidx.annotation.NonNull; + import java.util.Comparator; import java.util.List; @@ -7,28 +9,30 @@ * Created by cedricferry on 14/2/18. */ -public class RowHeaderForCellSortComparator implements Comparator { - +public class RowHeaderForCellSortComparator implements Comparator> { + @NonNull private List mReferenceList; + @NonNull private List> mColumnList; - - private SortState mRortState; + @NonNull + private SortState mSortState; + @NonNull private RowHeaderSortComparator mRowHeaderSortComparator; - public RowHeaderForCellSortComparator(List referenceList, - List> columnList, - SortState sortState) { + public RowHeaderForCellSortComparator(@NonNull List referenceList, + @NonNull List> columnList, + @NonNull SortState sortState) { this.mReferenceList = referenceList; this.mColumnList = columnList; - this.mRortState = sortState; + this.mSortState = sortState; this.mRowHeaderSortComparator = new RowHeaderSortComparator(sortState); } @Override - public int compare(Object o, Object t1) { + public int compare(List o, List t1) { Object o1 = mReferenceList.get(this.mColumnList.indexOf(o)).getContent(); Object o2 = mReferenceList.get(this.mColumnList.indexOf(t1)).getContent(); - if (mRortState == SortState.DESCENDING) { + if (mSortState == SortState.DESCENDING) { return mRowHeaderSortComparator.compareContent(o2, o1); } else { return mRowHeaderSortComparator.compareContent(o1, o2); diff --git a/tableview/src/main/java/com/evrencoskun/tableview/sort/RowHeaderSortCallback.java b/tableview/src/main/java/com/evrencoskun/tableview/sort/RowHeaderSortCallback.java index 8cead0ff..461ebd1e 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/sort/RowHeaderSortCallback.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/sort/RowHeaderSortCallback.java @@ -1,5 +1,6 @@ package com.evrencoskun.tableview.sort; +import androidx.annotation.NonNull; import androidx.recyclerview.widget.DiffUtil; import java.util.List; @@ -8,14 +9,13 @@ * Created by cedricferry on 6/2/18. */ -public class RowHeaderSortCallback extends DiffUtil.Callback { - - private static final String LOG_TAG = RowHeaderSortCallback.class.getSimpleName(); - +public class RowHeaderSortCallback extends DiffUtil.Callback { + @NonNull private List mOldCellItems; + @NonNull private List mNewCellItems; - public RowHeaderSortCallback(List oldCellItems, List + public RowHeaderSortCallback(@NonNull List oldCellItems, @NonNull List newCellItems) { this.mOldCellItems = oldCellItems; this.mNewCellItems = newCellItems; diff --git a/tableview/src/main/java/com/evrencoskun/tableview/sort/RowHeaderSortComparator.java b/tableview/src/main/java/com/evrencoskun/tableview/sort/RowHeaderSortComparator.java index 06f5aabe..17383622 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/sort/RowHeaderSortComparator.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/sort/RowHeaderSortComparator.java @@ -1,5 +1,7 @@ package com.evrencoskun.tableview.sort; +import androidx.annotation.NonNull; + import java.util.Comparator; /** @@ -8,10 +10,7 @@ public class RowHeaderSortComparator extends AbstractSortComparator implements Comparator { - private static final String LOG_TAG = RowHeaderSortComparator.class.getSimpleName(); - - - public RowHeaderSortComparator(SortState sortState) { + public RowHeaderSortComparator(@NonNull SortState sortState) { this.mSortState = sortState; } diff --git a/tableview/src/main/java/com/evrencoskun/tableview/sort/RowHeaderSortHelper.java b/tableview/src/main/java/com/evrencoskun/tableview/sort/RowHeaderSortHelper.java index 3c65b3df..ec4c1f2f 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/sort/RowHeaderSortHelper.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/sort/RowHeaderSortHelper.java @@ -1,28 +1,24 @@ package com.evrencoskun.tableview.sort; -import android.util.Log; -import android.view.View; - +import androidx.annotation.Nullable; /** * Created by cedricferry on 6/2/18. */ public class RowHeaderSortHelper { - - private static final String LOG_TAG = RowHeaderSortHelper.class.getSimpleName(); - + @Nullable private SortState mSortState; public RowHeaderSortHelper() { } - private void sortingStatusChanged(SortState sortState) { + private void sortingStatusChanged(@Nullable SortState sortState) { mSortState = sortState; - // TODO: Should we add an interface and listner and call listner when it is sorted? + // TODO: Should we add an interface and listener and call listener when it is sorted? } - public void setSortingStatus(SortState status) { + public void setSortingStatus(@Nullable SortState status) { mSortState = status; sortingStatusChanged(status); } @@ -35,11 +31,11 @@ public boolean isSorting() { return mSortState != SortState.UNSORTED; } + @Nullable public SortState getSortingStatus() { return mSortState; } - public class TableViewSorterException extends Exception { public TableViewSorterException() { diff --git a/tableview/src/main/java/com/evrencoskun/tableview/sort/SortState.java b/tableview/src/main/java/com/evrencoskun/tableview/sort/SortState.java index 28cd6ea4..bb4ab291 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/sort/SortState.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/sort/SortState.java @@ -28,7 +28,7 @@ public enum SortState { * For example, the set 1, 4, 0 sorted in * ASCENDING order is 0, 1, 4. */ - ASCENDING, + ASCENDING, /** * Enumeration value indicating the items are sorted in decreasing order. @@ -42,6 +42,6 @@ public enum SortState { * For example, the set 1, 4, 0 in * UNSORTED order is 1, 4, 0. */ - UNSORTED + UNSORTED } diff --git a/tableview/src/main/java/com/evrencoskun/tableview/util/TableViewUtils.java b/tableview/src/main/java/com/evrencoskun/tableview/util/TableViewUtils.java index 21a2e3aa..8941d783 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/util/TableViewUtils.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/util/TableViewUtils.java @@ -20,6 +20,7 @@ import android.view.View; import android.widget.LinearLayout; +import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; /** @@ -28,11 +29,10 @@ public class TableViewUtils { - /** * Helps to force width value before calling requestLayout by the system. */ - public static void setWidth(View view, int width) { + public static void setWidth(@NonNull View view, int width) { // Change width value from params ((RecyclerView.LayoutParams) view.getLayoutParams()).width = width; @@ -47,7 +47,7 @@ public static void setWidth(View view, int width) { /** * Gets the exact width value before the view drawing by main thread. */ - public static int getWidth(View view) { + public static int getWidth(@NonNull View view) { view.measure(LinearLayout.LayoutParams.WRAP_CONTENT, View.MeasureSpec.makeMeasureSpec (view.getMeasuredHeight(), View.MeasureSpec.EXACTLY)); return view.getMeasuredWidth(); From 5b2da948e76c9a14488566a4f2e26b1c131ff975 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gae=CC=88tan=20Muller?= Date: Sun, 9 Jun 2019 19:05:44 +0200 Subject: [PATCH 23/64] Annotate the 'app' module with `@NonNull` and `@Nullable` --- app/build.gradle | 1 - .../tableviewsample/MainActivity.java | 3 +- .../tableviewsample/MainFragment.java | 103 +++++----- .../tableview/TableViewAdapter.java | 25 ++- .../tableview/TableViewListener.java | 13 +- .../tableview/TableViewModel.java | 192 +++--------------- .../tableview/holder/CellViewHolder.java | 22 +- .../holder/ColumnHeaderViewHolder.java | 41 ++-- .../holder/GenderCellViewHolder.java | 10 +- .../tableview/holder/MoodCellViewHolder.java | 18 +- .../tableview/holder/RowHeaderViewHolder.java | 17 +- .../tableviewsample/tableview/model/Cell.java | 13 +- .../tableview/model/ColumnHeader.java | 5 - .../tableview/model/RowHeader.java | 5 - .../popup/ColumnHeaderLongPressPopup.java | 35 ++-- .../popup/RowHeaderLongPressPopup.java | 16 +- 16 files changed, 164 insertions(+), 355 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 6ffc99d0..967f4f24 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -48,7 +48,6 @@ dependencies { implementation 'androidx.annotation:annotation:1.1.0' implementation 'androidx.appcompat:appcompat:1.0.2' - implementation 'androidx.core:core:1.0.2' implementation 'androidx.fragment:fragment:1.0.0' implementation 'androidx.recyclerview:recyclerview:1.0.0' } diff --git a/app/src/main/java/com/evrencoskun/tableviewsample/MainActivity.java b/app/src/main/java/com/evrencoskun/tableviewsample/MainActivity.java index 0c4b64bf..0409088e 100644 --- a/app/src/main/java/com/evrencoskun/tableviewsample/MainActivity.java +++ b/app/src/main/java/com/evrencoskun/tableviewsample/MainActivity.java @@ -19,12 +19,13 @@ import android.os.Bundle; +import androidx.annotation.Nullable; import androidx.appcompat.app.AppCompatActivity; public class MainActivity extends AppCompatActivity { @Override - protected void onCreate(Bundle savedInstanceState) { + protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); diff --git a/app/src/main/java/com/evrencoskun/tableviewsample/MainFragment.java b/app/src/main/java/com/evrencoskun/tableviewsample/MainFragment.java index 351074db..b1bbe05f 100644 --- a/app/src/main/java/com/evrencoskun/tableviewsample/MainFragment.java +++ b/app/src/main/java/com/evrencoskun/tableviewsample/MainFragment.java @@ -17,7 +17,6 @@ package com.evrencoskun.tableviewsample; - import android.os.Bundle; import android.text.Editable; import android.text.TextUtils; @@ -31,48 +30,41 @@ import android.widget.Spinner; import android.widget.TextView; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import androidx.fragment.app.Fragment; import com.evrencoskun.tableview.TableView; -import com.evrencoskun.tableview.adapter.AbstractTableAdapter; import com.evrencoskun.tableview.filter.Filter; import com.evrencoskun.tableview.pagination.Pagination; import com.evrencoskun.tableviewsample.tableview.TableViewAdapter; import com.evrencoskun.tableviewsample.tableview.TableViewListener; import com.evrencoskun.tableviewsample.tableview.TableViewModel; - /** * A simple {@link Fragment} subclass. */ public class MainFragment extends Fragment { - - private EditText searchField; - private Spinner moodFilter, genderFilter, itemsPerPage; - public ImageButton previousButton, nextButton; - public EditText pageNumberField; - public TextView tablePaginationDetails; - - private AbstractTableAdapter mTableViewAdapter; + private Spinner moodFilter, genderFilter; + private ImageButton previousButton, nextButton; + private TextView tablePaginationDetails; private TableView mTableView; private Filter mTableFilter; // This is used for filtering the table. private Pagination mPagination; // This is used for paginating the table. - // This is a sample class that provides the cell value objects and other configurations. - private TableViewModel mTableViewModel; - private boolean mPaginationEnabled = false; public MainFragment() { // Required empty public constructor } + @Nullable @Override - public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle + public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View layout = inflater.inflate(R.layout.fragment_main, container, false); - searchField = layout.findViewById(R.id.query_string); + EditText searchField = layout.findViewById(R.id.query_string); searchField.addTextChangedListener(mSearchTextWatcher); moodFilter = layout.findViewById(R.id.mood_spinner); @@ -81,13 +73,13 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle genderFilter = layout.findViewById(R.id.gender_spinner); genderFilter.setOnItemSelectedListener(mItemSelectionListener); - itemsPerPage = layout.findViewById(R.id.items_per_page_spinner); + Spinner itemsPerPage = layout.findViewById(R.id.items_per_page_spinner); View tableTestContainer = layout.findViewById(R.id.table_test_container); previousButton = layout.findViewById(R.id.previous_button); nextButton = layout.findViewById(R.id.next_button); - pageNumberField = layout.findViewById(R.id.page_number_text); + EditText pageNumberField = layout.findViewById(R.id.page_number_text); tablePaginationDetails = layout.findViewById(R.id.table_details); if (mPaginationEnabled) { @@ -124,21 +116,20 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle private void initializeTableView() { // Create TableView View model class to group view models of TableView - mTableViewModel = new TableViewModel(getContext()); + TableViewModel tableViewModel = new TableViewModel(); // Create TableView Adapter - mTableViewAdapter = new TableViewAdapter(getContext(), mTableViewModel); + TableViewAdapter tableViewAdapter = new TableViewAdapter(requireContext(), tableViewModel); - mTableView.setAdapter(mTableViewAdapter); + mTableView.setAdapter(tableViewAdapter); mTableView.setTableViewListener(new TableViewListener(mTableView)); // Create an instance of a Filter and pass the TableView. //mTableFilter = new Filter(mTableView); // Load the dummy data to the TableView - mTableViewAdapter.setAllItems(mTableViewModel.getColumnHeaderList(), mTableViewModel - .getRowHeaderList(), mTableViewModel.getCellList()); - + tableViewAdapter.setAllItems(tableViewModel.getColumnHeaderList(), tableViewModel + .getRowHeaderList(), tableViewModel.getCellList()); //mTableView.setHasFixedWidth(true); @@ -156,18 +147,18 @@ private void initializeTableView() { } - public void filterTable(String filter) { + public void filterTable(@NonNull String filter) { // Sets a filter to the table, this will filter ALL the columns. mTableFilter.set(filter); } - public void filterTableForMood(String filter) { + public void filterTableForMood(@NonNull String filter) { // Sets a filter to the table, this will only filter a specific column. // In the example data, this will filter the mood column. mTableFilter.set(TableViewModel.MOOD_COLUMN_INDEX, filter); } - public void filterTableForGender(String filter) { + public void filterTableForGender(@NonNull String filter) { // Sets a filter to the table, this will only filter a specific column. // In the example data, this will filter the gender column. mTableFilter.set(TableViewModel.GENDER_COLUMN_INDEX, filter); @@ -193,35 +184,36 @@ public void setTableItemsPerPage(int itemsPerPage) { } // Handler for the changing of pages in the paginated TableView. + @NonNull private Pagination.OnTableViewPageTurnedListener onTableViewPageTurnedListener = new Pagination.OnTableViewPageTurnedListener() { - @Override - public void onPageTurned(int numItems, int itemsStart, int itemsEnd) { - int currentPage = mPagination.getCurrentPage(); - int pageCount = mPagination.getPageCount(); - previousButton.setVisibility(View.VISIBLE); - nextButton.setVisibility(View.VISIBLE); - - if (currentPage == 1 && pageCount == 1) { - previousButton.setVisibility(View.INVISIBLE); - nextButton.setVisibility(View.INVISIBLE); - } + @Override + public void onPageTurned(int numItems, int itemsStart, int itemsEnd) { + int currentPage = mPagination.getCurrentPage(); + int pageCount = mPagination.getPageCount(); + previousButton.setVisibility(View.VISIBLE); + nextButton.setVisibility(View.VISIBLE); - if (currentPage == 1) { - previousButton.setVisibility(View.INVISIBLE); - } + if (currentPage == 1 && pageCount == 1) { + previousButton.setVisibility(View.INVISIBLE); + nextButton.setVisibility(View.INVISIBLE); + } - if (currentPage == pageCount) { - nextButton.setVisibility(View.INVISIBLE); - } + if (currentPage == 1) { + previousButton.setVisibility(View.INVISIBLE); + } - tablePaginationDetails.setText(getString(R.string.table_pagination_details, String - .valueOf(currentPage), String.valueOf(itemsStart), String.valueOf(itemsEnd))); + if (currentPage == pageCount) { + nextButton.setVisibility(View.INVISIBLE); + } - } - }; + tablePaginationDetails.setText(getString(R.string.table_pagination_details, String + .valueOf(currentPage), String.valueOf(itemsStart), String.valueOf(itemsEnd))); + } + }; + @NonNull private AdapterView.OnItemSelectedListener mItemSelectionListener = new AdapterView .OnItemSelectedListener() { @Override @@ -245,6 +237,7 @@ public void onNothingSelected(AdapterView parent) { } }; + @NonNull private TextWatcher mSearchTextWatcher = new TextWatcher() { @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { @@ -262,18 +255,16 @@ public void afterTextChanged(Editable s) { } }; - + @NonNull private AdapterView.OnItemSelectedListener onItemsPerPageSelectedListener = new AdapterView .OnItemSelectedListener() { @Override public void onItemSelected(AdapterView parent, View view, int position, long id) { int itemsPerPage; - switch (parent.getItemAtPosition(position).toString()) { - case "All": - itemsPerPage = 0; - break; - default: - itemsPerPage = Integer.valueOf(parent.getItemAtPosition(position).toString()); + if ("All".equals(parent.getItemAtPosition(position).toString())) { + itemsPerPage = 0; + } else { + itemsPerPage = Integer.valueOf(parent.getItemAtPosition(position).toString()); } setTableItemsPerPage(itemsPerPage); @@ -285,6 +276,7 @@ public void onNothingSelected(AdapterView parent) { } }; + @NonNull private View.OnClickListener mClickListener = new View.OnClickListener() { @Override public void onClick(View v) { @@ -296,6 +288,7 @@ public void onClick(View v) { } }; + @NonNull private TextWatcher onPageTextChanged = new TextWatcher() { @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { diff --git a/app/src/main/java/com/evrencoskun/tableviewsample/tableview/TableViewAdapter.java b/app/src/main/java/com/evrencoskun/tableviewsample/tableview/TableViewAdapter.java index 4a7bbf23..2b44fa16 100644 --- a/app/src/main/java/com/evrencoskun/tableviewsample/tableview/TableViewAdapter.java +++ b/app/src/main/java/com/evrencoskun/tableviewsample/tableview/TableViewAdapter.java @@ -54,13 +54,12 @@ public class TableViewAdapter extends AbstractTableAdapter getSimpleRowHeaderList() { List list = new ArrayList<>(); for (int i = 0; i < ROW_SIZE; i++) { @@ -82,39 +81,7 @@ private List getSimpleRowHeaderList() { /** * This is a dummy model list test some cases. */ - public static List getSimpleRowHeaderList(int startIndex) { - List list = new ArrayList<>(); - for (int i = 0; i < ROW_SIZE; i++) { - RowHeader header = new RowHeader(String.valueOf(i), "row " + (startIndex + i)); - list.add(header); - } - - return list; - } - - - private List getSimpleColumnHeaderList() { - List list = new ArrayList<>(); - - for (int i = 0; i < COLUMN_SIZE; i++) { - String title = "column " + i; - if (i % 6 == 2) { - title = "large column " + i; - } else if (i == MOOD_COLUMN_INDEX) { - title = "mood"; - } else if (i == GENDER_COLUMN_INDEX) { - title = "gender"; - } - ColumnHeader header = new ColumnHeader(String.valueOf(i), title); - list.add(header); - } - - return list; - } - - /** - * This is a dummy model list test some cases. - */ + @NonNull private List getRandomColumnHeaderList() { List list = new ArrayList<>(); @@ -132,30 +99,10 @@ private List getRandomColumnHeaderList() { return list; } - private List> getSimpleCellList() { - List> list = new ArrayList<>(); - for (int i = 0; i < ROW_SIZE; i++) { - List cellList = new ArrayList<>(); - - for (int j = 0; j < COLUMN_SIZE; j++) { - String text = "cell " + j + " " + i; - if (j % 4 == 0 && i % 5 == 0) { - text = "large cell " + j + " " + i + "."; - } - String id = j + "-" + i; - - Cell cell = new Cell(id, text); - cellList.add(cell); - } - list.add(cellList); - } - - return list; - } - /** * This is a dummy model list test some cases. */ + @NonNull private List> getCellListForSortingTest() { List> list = new ArrayList<>(); for (int i = 0; i < ROW_SIZE; i++) { @@ -195,100 +142,8 @@ private List> getCellListForSortingTest() { return list; } - /** - * This is a dummy model list test some cases. - */ - private List> getRandomCellList() { - List> list = new ArrayList<>(); - for (int i = 0; i < ROW_SIZE; i++) { - List cellList = new ArrayList<>(); - list.add(cellList); - for (int j = 0; j < COLUMN_SIZE; j++) { - String text = "cell " + j + " " + i; - int random = new Random().nextInt(); - if (random % 2 == 0 || random % 5 == 0 || random == j) { - text = "large cell " + j + " " + i + getRandomString() + "."; - } - - // Create dummy id. - String id = j + "-" + i; - - Cell cell = new Cell(id, text); - cellList.add(cell); - } - } - - return list; - } - - /** - * This is a dummy model list test some cases. - */ - private List> getEmptyCellList() { - List> list = new ArrayList<>(); - for (int i = 0; i < ROW_SIZE; i++) { - List cellList = new ArrayList<>(); - list.add(cellList); - for (int j = 0; j < COLUMN_SIZE; j++) { - - // Create dummy id. - String id = j + "-" + i; - - Cell cell = new Cell(id, ""); - cellList.add(cell); - } - } - - return list; - } - - private List getEmptyRowHeaderList() { - List list = new ArrayList<>(); - for (int i = 0; i < ROW_SIZE; i++) { - RowHeader header = new RowHeader(String.valueOf(i), ""); - list.add(header); - } - - return list; - } - - /** - * This is a dummy model list test some cases. - */ - public static List> getRandomCellList(int startIndex) { - List> list = new ArrayList<>(); - for (int i = 0; i < ROW_SIZE; i++) { - List cellList = new ArrayList<>(); - list.add(cellList); - for (int j = 0; j < COLUMN_SIZE; j++) { - String text = "cell " + j + " " + (i + startIndex); - int random = new Random().nextInt(); - if (random % 2 == 0 || random % 5 == 0 || random == j) { - text = "large cell " + j + " " + (i + startIndex) + getRandomString() + "."; - } - - String id = j + "-" + (i + startIndex); - - Cell cell = new Cell(id, text); - cellList.add(cell); - } - } - - return list; - } - - - private static String getRandomString() { - Random r = new Random(); - String str = " a "; - for (int i = 0; i < r.nextInt(); i++) { - str = str + " a "; - } - - return str; - } - - public Drawable getDrawable(int value, boolean isGender) { + @DrawableRes + public int getDrawable(int value, boolean isGender) { if (isGender) { return value == BOY ? mBoyDrawable : mGirlDrawable; } else { @@ -296,17 +151,18 @@ public Drawable getDrawable(int value, boolean isGender) { } } + @NonNull public List> getCellList() { return getCellListForSortingTest(); } + @NonNull public List getRowHeaderList() { return getSimpleRowHeaderList(); } + @NonNull public List getColumnHeaderList() { return getRandomColumnHeaderList(); } - - } diff --git a/app/src/main/java/com/evrencoskun/tableviewsample/tableview/holder/CellViewHolder.java b/app/src/main/java/com/evrencoskun/tableviewsample/tableview/holder/CellViewHolder.java index 3e0a5f1c..c0ca465e 100644 --- a/app/src/main/java/com/evrencoskun/tableviewsample/tableview/holder/CellViewHolder.java +++ b/app/src/main/java/com/evrencoskun/tableviewsample/tableview/holder/CellViewHolder.java @@ -21,6 +21,9 @@ import android.widget.LinearLayout; import android.widget.TextView; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + import com.evrencoskun.tableview.adapter.recyclerview.holder.AbstractViewHolder; import com.evrencoskun.tableviewsample.R; import com.evrencoskun.tableviewsample.tableview.model.Cell; @@ -30,19 +33,18 @@ */ public class CellViewHolder extends AbstractViewHolder { + @NonNull + private final TextView cell_textview; + @NonNull + private final LinearLayout cell_container; - public final TextView cell_textview; - public final LinearLayout cell_container; - private Cell cell; - - public CellViewHolder(View itemView) { + public CellViewHolder(@NonNull View itemView) { super(itemView); - cell_textview = (TextView) itemView.findViewById(R.id.cell_data); - cell_container = (LinearLayout) itemView.findViewById(R.id.cell_container); + cell_textview = itemView.findViewById(R.id.cell_data); + cell_container = itemView.findViewById(R.id.cell_container); } - public void setCell(Cell cell) { - this.cell = cell; + public void setCell(@Nullable Cell cell) { cell_textview.setText(String.valueOf(cell.getData())); // If your TableView should have auto resize for cells & columns. @@ -52,4 +54,4 @@ public void setCell(Cell cell) { cell_container.getLayoutParams().width = LinearLayout.LayoutParams.WRAP_CONTENT; cell_textview.requestLayout(); } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/evrencoskun/tableviewsample/tableview/holder/ColumnHeaderViewHolder.java b/app/src/main/java/com/evrencoskun/tableviewsample/tableview/holder/ColumnHeaderViewHolder.java index 2770261d..93d851e5 100644 --- a/app/src/main/java/com/evrencoskun/tableviewsample/tableview/holder/ColumnHeaderViewHolder.java +++ b/app/src/main/java/com/evrencoskun/tableviewsample/tableview/holder/ColumnHeaderViewHolder.java @@ -17,7 +17,6 @@ package com.evrencoskun.tableviewsample.tableview.holder; -import android.graphics.drawable.Drawable; import android.util.Log; import android.view.View; import android.widget.ImageButton; @@ -25,7 +24,7 @@ import android.widget.TextView; import androidx.annotation.NonNull; -import androidx.core.content.ContextCompat; +import androidx.annotation.Nullable; import com.evrencoskun.tableview.ITableView; import com.evrencoskun.tableview.adapter.recyclerview.holder.AbstractSorterViewHolder; @@ -41,35 +40,30 @@ public class ColumnHeaderViewHolder extends AbstractSorterViewHolder { private static final String LOG_TAG = ColumnHeaderViewHolder.class.getSimpleName(); - public final LinearLayout column_header_container; - public final TextView column_header_textview; - public final ImageButton column_header_sortButton; - public final ITableView tableView; + @NonNull + private final LinearLayout column_header_container; + @NonNull + private final TextView column_header_textview; + @NonNull + private final ImageButton column_header_sortButton; + @Nullable + private final ITableView tableView; - public final Drawable arrow_up, arrow_down; - - public ColumnHeaderViewHolder(View itemView, ITableView tableView) { + public ColumnHeaderViewHolder(@NonNull View itemView, @Nullable ITableView tableView) { super(itemView); this.tableView = tableView; - column_header_textview = (TextView) itemView.findViewById(R.id.column_header_textView); - column_header_container = (LinearLayout) itemView.findViewById(R.id - .column_header_container); - column_header_sortButton = (ImageButton) itemView.findViewById(R.id - .column_header_sortButton); - - // initialize drawables - arrow_up = ContextCompat.getDrawable(itemView.getContext(), R.drawable.ic_up); - arrow_down = ContextCompat.getDrawable(itemView.getContext(), R.drawable.ic_down); + column_header_textview = itemView.findViewById(R.id.column_header_textView); + column_header_container = itemView.findViewById(R.id.column_header_container); + column_header_sortButton = itemView.findViewById(R.id.column_header_sortButton); // Set click listener to the sort button column_header_sortButton.setOnClickListener(mSortButtonClickListener); } - /** * This method is calling from onBindColumnHeaderHolder on TableViewAdapter */ - public void setColumnHeader(ColumnHeader columnHeader) { + public void setColumnHeader(@Nullable ColumnHeader columnHeader) { column_header_textview.setText(String.valueOf(columnHeader.getData())); // If your TableView should have auto resize for cells & columns. @@ -80,6 +74,7 @@ public void setColumnHeader(ColumnHeader columnHeader) { column_header_textview.requestLayout(); } + @NonNull private View.OnClickListener mSortButtonClickListener = new View.OnClickListener() { @Override public void onClick(View view) { @@ -118,14 +113,14 @@ public void onSortingStatusChanged(@NonNull SortState sortState) { itemView.requestLayout(); } - private void controlSortState(SortState sortState) { + private void controlSortState(@NonNull SortState sortState) { if (sortState == SortState.ASCENDING) { column_header_sortButton.setVisibility(View.VISIBLE); - column_header_sortButton.setImageDrawable(arrow_down); + column_header_sortButton.setImageResource(R.drawable.ic_down); } else if (sortState == SortState.DESCENDING) { column_header_sortButton.setVisibility(View.VISIBLE); - column_header_sortButton.setImageDrawable(arrow_up); + column_header_sortButton.setImageResource(R.drawable.ic_up); } else { column_header_sortButton.setVisibility(View.INVISIBLE); } diff --git a/app/src/main/java/com/evrencoskun/tableviewsample/tableview/holder/GenderCellViewHolder.java b/app/src/main/java/com/evrencoskun/tableviewsample/tableview/holder/GenderCellViewHolder.java index d913fb11..84210f96 100644 --- a/app/src/main/java/com/evrencoskun/tableviewsample/tableview/holder/GenderCellViewHolder.java +++ b/app/src/main/java/com/evrencoskun/tableviewsample/tableview/holder/GenderCellViewHolder.java @@ -17,10 +17,9 @@ package com.evrencoskun.tableviewsample.tableview.holder; -import android.graphics.drawable.Drawable; import android.view.View; -import androidx.core.content.ContextCompat; +import androidx.annotation.NonNull; import com.evrencoskun.tableviewsample.R; import com.evrencoskun.tableviewsample.tableview.TableViewModel; @@ -31,16 +30,15 @@ public class GenderCellViewHolder extends MoodCellViewHolder { - public GenderCellViewHolder(View itemView) { + public GenderCellViewHolder(@NonNull View itemView) { super(itemView); } @Override public void setData(Object data) { int gender = (int) data; - Drawable genderDrawable = ContextCompat.getDrawable(itemView.getContext(), gender == - TableViewModel.BOY ? R.drawable.ic_male : R.drawable.ic_female); + int genderDrawable = gender == TableViewModel.BOY ? R.drawable.ic_male : R.drawable.ic_female; - cell_image.setImageDrawable(genderDrawable); + cell_image.setImageResource(genderDrawable); } } diff --git a/app/src/main/java/com/evrencoskun/tableviewsample/tableview/holder/MoodCellViewHolder.java b/app/src/main/java/com/evrencoskun/tableviewsample/tableview/holder/MoodCellViewHolder.java index 088fd12a..64d6f638 100644 --- a/app/src/main/java/com/evrencoskun/tableviewsample/tableview/holder/MoodCellViewHolder.java +++ b/app/src/main/java/com/evrencoskun/tableviewsample/tableview/holder/MoodCellViewHolder.java @@ -17,12 +17,10 @@ package com.evrencoskun.tableviewsample.tableview.holder; -import android.graphics.drawable.Drawable; import android.view.View; import android.widget.ImageView; -import android.widget.LinearLayout; -import androidx.core.content.ContextCompat; +import androidx.annotation.NonNull; import com.evrencoskun.tableview.adapter.recyclerview.holder.AbstractViewHolder; import com.evrencoskun.tableviewsample.R; @@ -33,22 +31,18 @@ */ public class MoodCellViewHolder extends AbstractViewHolder { - - public final LinearLayout cell_container; + @NonNull public final ImageView cell_image; - public MoodCellViewHolder(View itemView) { + public MoodCellViewHolder(@NonNull View itemView) { super(itemView); - cell_container = (LinearLayout) itemView.findViewById(R.id.cell_container); - cell_image = (ImageView) itemView.findViewById(R.id.cell_image); + cell_image = itemView.findViewById(R.id.cell_image); } - public void setData(Object data) { int mood = (int) data; - Drawable moodDrawable = ContextCompat.getDrawable(itemView.getContext(), mood == - TableViewModel.HAPPY ? R.drawable.ic_happy : R.drawable.ic_sad); + int moodDrawable = mood == TableViewModel.HAPPY ? R.drawable.ic_happy : R.drawable.ic_sad; - cell_image.setImageDrawable(moodDrawable); + cell_image.setImageResource(moodDrawable); } } \ No newline at end of file diff --git a/app/src/main/java/com/evrencoskun/tableviewsample/tableview/holder/RowHeaderViewHolder.java b/app/src/main/java/com/evrencoskun/tableviewsample/tableview/holder/RowHeaderViewHolder.java index 88adc9f2..6864ddd7 100644 --- a/app/src/main/java/com/evrencoskun/tableviewsample/tableview/holder/RowHeaderViewHolder.java +++ b/app/src/main/java/com/evrencoskun/tableviewsample/tableview/holder/RowHeaderViewHolder.java @@ -17,21 +17,24 @@ package com.evrencoskun.tableviewsample.tableview.holder; -/** - * Created by evrencoskun on 23/10/2017. - */ - import android.view.View; import android.widget.TextView; +import androidx.annotation.NonNull; + import com.evrencoskun.tableview.adapter.recyclerview.holder.AbstractViewHolder; import com.evrencoskun.tableviewsample.R; +/** + * Created by evrencoskun on 23/10/2017. + */ + public class RowHeaderViewHolder extends AbstractViewHolder { + @NonNull public final TextView row_header_textview; - public RowHeaderViewHolder(View itemView) { + public RowHeaderViewHolder(@NonNull View itemView) { super(itemView); - row_header_textview = (TextView) itemView.findViewById(R.id.row_header_textview); + row_header_textview = itemView.findViewById(R.id.row_header_textview); } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/evrencoskun/tableviewsample/tableview/model/Cell.java b/app/src/main/java/com/evrencoskun/tableviewsample/tableview/model/Cell.java index 8bd9b7f1..341b493b 100644 --- a/app/src/main/java/com/evrencoskun/tableviewsample/tableview/model/Cell.java +++ b/app/src/main/java/com/evrencoskun/tableviewsample/tableview/model/Cell.java @@ -32,12 +32,9 @@ public class Cell implements ISortableModel, IFilterableModel { private String mId; @Nullable private Object mData; + @NonNull private String mFilterKeyword; - public Cell(@NonNull String id) { - this.mId = id; - } - public Cell(@NonNull String id, @Nullable Object data) { this.mId = id; this.mData = data; @@ -73,14 +70,6 @@ public void setData(@Nullable String data) { mData = data; } - public String getFilterKeyword() { - return mFilterKeyword; - } - - public void setFilterKeyword(String filterKeyword) { - this.mFilterKeyword = filterKeyword; - } - @NonNull @Override public String getFilterableKeyword() { diff --git a/app/src/main/java/com/evrencoskun/tableviewsample/tableview/model/ColumnHeader.java b/app/src/main/java/com/evrencoskun/tableviewsample/tableview/model/ColumnHeader.java index aeb8c97d..7fee9555 100644 --- a/app/src/main/java/com/evrencoskun/tableviewsample/tableview/model/ColumnHeader.java +++ b/app/src/main/java/com/evrencoskun/tableviewsample/tableview/model/ColumnHeader.java @@ -25,11 +25,6 @@ */ public class ColumnHeader extends Cell { - - public ColumnHeader(@NonNull String id) { - super(id); - } - public ColumnHeader(@NonNull String id, @Nullable String data) { super(id, data); } diff --git a/app/src/main/java/com/evrencoskun/tableviewsample/tableview/model/RowHeader.java b/app/src/main/java/com/evrencoskun/tableviewsample/tableview/model/RowHeader.java index 787a0cf1..4e5143ee 100644 --- a/app/src/main/java/com/evrencoskun/tableviewsample/tableview/model/RowHeader.java +++ b/app/src/main/java/com/evrencoskun/tableviewsample/tableview/model/RowHeader.java @@ -25,11 +25,6 @@ */ public class RowHeader extends Cell { - - public RowHeader(@NonNull String id) { - super(id); - } - public RowHeader(@NonNull String id, @Nullable String data) { super(id, data); } diff --git a/app/src/main/java/com/evrencoskun/tableviewsample/tableview/popup/ColumnHeaderLongPressPopup.java b/app/src/main/java/com/evrencoskun/tableviewsample/tableview/popup/ColumnHeaderLongPressPopup.java index ccaf074b..0d18b349 100644 --- a/app/src/main/java/com/evrencoskun/tableviewsample/tableview/popup/ColumnHeaderLongPressPopup.java +++ b/app/src/main/java/com/evrencoskun/tableviewsample/tableview/popup/ColumnHeaderLongPressPopup.java @@ -22,7 +22,9 @@ import android.view.MenuItem; import android.widget.PopupMenu; -import com.evrencoskun.tableview.ITableView; +import androidx.annotation.NonNull; + +import com.evrencoskun.tableview.TableView; import com.evrencoskun.tableview.sort.SortState; import com.evrencoskun.tableviewsample.R; import com.evrencoskun.tableviewsample.tableview.holder.ColumnHeaderViewHolder; @@ -33,8 +35,6 @@ public class ColumnHeaderLongPressPopup extends PopupMenu implements PopupMenu .OnMenuItemClickListener { - private static final String LOG_TAG = ColumnHeaderLongPressPopup.class.getSimpleName(); - // Menu Item constants private static final int ASCENDING = 1; private static final int DESCENDING = 2; @@ -42,22 +42,14 @@ public class ColumnHeaderLongPressPopup extends PopupMenu implements PopupMenu private static final int SHOW_ROW = 4; private static final int SCROLL_ROW = 5; - - private ColumnHeaderViewHolder mViewHolder; - private ITableView mTableView; - private Context mContext; + @NonNull + private TableView mTableView; private int mXPosition; - public ColumnHeaderLongPressPopup(ColumnHeaderViewHolder viewHolder, ITableView tableView) { + public ColumnHeaderLongPressPopup(@NonNull ColumnHeaderViewHolder viewHolder, @NonNull TableView tableView) { super(viewHolder.itemView.getContext(), viewHolder.itemView); - this.mViewHolder = viewHolder; this.mTableView = tableView; - this.mContext = viewHolder.itemView.getContext(); - this.mXPosition = mViewHolder.getAdapterPosition(); - - // find the view holder - mViewHolder = (ColumnHeaderViewHolder) mTableView.getColumnHeaderRecyclerView() - .findViewHolderForAdapterPosition(mXPosition); + this.mXPosition = viewHolder.getAdapterPosition(); initialize(); } @@ -70,12 +62,12 @@ private void initialize() { } private void createMenuItem() { - this.getMenu().add(Menu.NONE, ASCENDING, 0, mContext.getString(R.string.sort_ascending)); - this.getMenu().add(Menu.NONE, DESCENDING, 1, mContext.getString(R.string.sort_descending)); - this.getMenu().add(Menu.NONE, HIDE_ROW, 2, mContext.getString(R.string.hiding_row_sample)); - this.getMenu().add(Menu.NONE, SHOW_ROW, 3, mContext.getString(R.string.showing_row_sample)); - this.getMenu().add(Menu.NONE, SCROLL_ROW, 4, mContext.getString(R.string - .scroll_to_row_position)); + Context context = mTableView.getContext(); + this.getMenu().add(Menu.NONE, ASCENDING, 0, context.getString(R.string.sort_ascending)); + this.getMenu().add(Menu.NONE, DESCENDING, 1, context.getString(R.string.sort_descending)); + this.getMenu().add(Menu.NONE, HIDE_ROW, 2, context.getString(R.string.hiding_row_sample)); + this.getMenu().add(Menu.NONE, SHOW_ROW, 3, context.getString(R.string.showing_row_sample)); + this.getMenu().add(Menu.NONE, SCROLL_ROW, 4, context.getString(R.string.scroll_to_row_position)); this.getMenu().add(Menu.NONE, SCROLL_ROW, 0, "change width"); // add new one ... @@ -95,7 +87,6 @@ private void changeMenuItemVisibility() { } } - @Override public boolean onMenuItemClick(MenuItem menuItem) { // Note: item id is index of menu item.. diff --git a/app/src/main/java/com/evrencoskun/tableviewsample/tableview/popup/RowHeaderLongPressPopup.java b/app/src/main/java/com/evrencoskun/tableviewsample/tableview/popup/RowHeaderLongPressPopup.java index c8201445..cfac981f 100644 --- a/app/src/main/java/com/evrencoskun/tableviewsample/tableview/popup/RowHeaderLongPressPopup.java +++ b/app/src/main/java/com/evrencoskun/tableviewsample/tableview/popup/RowHeaderLongPressPopup.java @@ -22,9 +22,10 @@ import android.view.MenuItem; import android.widget.PopupMenu; +import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; -import com.evrencoskun.tableview.ITableView; +import com.evrencoskun.tableview.TableView; import com.evrencoskun.tableviewsample.R; /** @@ -39,15 +40,14 @@ public class RowHeaderLongPressPopup extends PopupMenu implements PopupMenu private static final int SHOWHIDE_COLUMN = 2; private static final int REMOVE_ROW = 3; - private ITableView mTableView; - private Context mContext; + @NonNull + private TableView mTableView; private int mRowPosition; - public RowHeaderLongPressPopup(RecyclerView.ViewHolder viewHolder, ITableView tableView) { + public RowHeaderLongPressPopup(@NonNull RecyclerView.ViewHolder viewHolder, @NonNull TableView tableView) { super(viewHolder.itemView.getContext(), viewHolder.itemView); this.mTableView = tableView; - this.mContext = viewHolder.itemView.getContext(); this.mRowPosition = viewHolder.getAdapterPosition(); initialize(); @@ -60,16 +60,16 @@ private void initialize() { } private void createMenuItem() { - this.getMenu().add(Menu.NONE, SCROLL_COLUMN, 0, mContext.getString(R.string + Context context = mTableView.getContext(); + this.getMenu().add(Menu.NONE, SCROLL_COLUMN, 0, context.getString(R.string .scroll_to_column_position)); - this.getMenu().add(Menu.NONE, SHOWHIDE_COLUMN, 1, mContext.getString(R.string + this.getMenu().add(Menu.NONE, SHOWHIDE_COLUMN, 1, context.getString(R.string .show_hide_the_column)); this.getMenu().add(Menu.NONE, REMOVE_ROW, 2, "Remove " + mRowPosition + " position"); // add new one ... } - @Override public boolean onMenuItemClick(MenuItem menuItem) { // Note: item id is index of menu item.. From 17a979c4a8051349c1e17bb135ef9f9d298a76d2 Mon Sep 17 00:00:00 2001 From: Gaetan Muller Date: Thu, 29 Aug 2019 08:09:06 +0200 Subject: [PATCH 24/64] Remove unnecessary attributes in the manifest --- tableview/src/main/AndroidManifest.xml | 11 +---------- tableview/src/main/res/values/strings.xml | 20 -------------------- 2 files changed, 1 insertion(+), 30 deletions(-) delete mode 100644 tableview/src/main/res/values/strings.xml diff --git a/tableview/src/main/AndroidManifest.xml b/tableview/src/main/AndroidManifest.xml index cc36a2f7..445df564 100644 --- a/tableview/src/main/AndroidManifest.xml +++ b/tableview/src/main/AndroidManifest.xml @@ -15,13 +15,4 @@ ~ --> - - - - - - + diff --git a/tableview/src/main/res/values/strings.xml b/tableview/src/main/res/values/strings.xml deleted file mode 100644 index b5f96bcf..00000000 --- a/tableview/src/main/res/values/strings.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - TableView - From 953bcdb3f36adf2e87ad507011c1ca6ed6e9776f Mon Sep 17 00:00:00 2001 From: Gaetan Muller Date: Thu, 29 Aug 2019 08:10:39 +0200 Subject: [PATCH 25/64] Disable BuildConfig generation as they were not used --- app/build.gradle | 6 ++++++ tableview/build.gradle | 8 +++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/app/build.gradle b/app/build.gradle index 967f4f24..8ff790aa 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -38,6 +38,12 @@ android { } } + applicationVariants.all { + it.getGenerateBuildConfigProvider().configure { + it.enabled = false + } + } + lintOptions { abortOnError false } diff --git a/tableview/build.gradle b/tableview/build.gradle index 966e9f65..faf573ef 100644 --- a/tableview/build.gradle +++ b/tableview/build.gradle @@ -20,6 +20,12 @@ android { } } + libraryVariants.all { + it.getGenerateBuildConfigProvider().configure { + it.enabled = false + } + } + lintOptions { abortOnError false } @@ -43,5 +49,5 @@ publish { artifactId = 'tableview' //project name publishVersion = '0.8.8' //version code desc = 'TableView is a powerful Android library for displaying complex data structures and rendering tabular data composed of rows, columns and cells.' - website = 'https://github.com/evrencoskun/TableView '//website + website = 'https://github.com/evrencoskun/TableView' //website } From 3b38b45ef7a10b421dc8df4024842637f5076d11 Mon Sep 17 00:00:00 2001 From: Gaetan Muller Date: Thu, 29 Aug 2019 08:15:33 +0200 Subject: [PATCH 26/64] Update dependencies --- app/build.gradle | 5 ++--- build.gradle | 2 +- gradle/wrapper/gradle-wrapper.properties | 3 +-- gradlew | 6 +++--- gradlew.bat | 2 +- tableview/build.gradle | 5 ++--- 6 files changed, 10 insertions(+), 13 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 8ff790aa..8b926ba1 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -18,13 +18,12 @@ apply plugin: 'com.android.application' android { - compileSdkVersion 28 - buildToolsVersion '28.0.3' + compileSdkVersion 29 defaultConfig { applicationId "com.evrencoskun.tableviewsample" minSdkVersion 15 - targetSdkVersion 28 + targetSdkVersion 29 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" diff --git a/build.gradle b/build.gradle index 6ec12496..84b2db0b 100644 --- a/build.gradle +++ b/build.gradle @@ -24,7 +24,7 @@ buildscript { } dependencies { - classpath 'com.android.tools.build:gradle:3.4.1' + classpath 'com.android.tools.build:gradle:3.5.0' classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.8.4' classpath 'com.github.dcendents:android-maven-gradle-plugin:2.1' classpath 'com.novoda:bintray-release:0.9.1' diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index fe9259c3..428e8c39 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -15,9 +15,8 @@ # # -#Wed Jun 05 22:25:57 CEST 2019 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.1-all.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip diff --git a/gradlew b/gradlew index b0d6d0ab..83f2acfd 100755 --- a/gradlew +++ b/gradlew @@ -7,7 +7,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, @@ -125,8 +125,8 @@ if $darwin; then GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" fi -# For Cygwin, switch paths to Windows format before running java -if $cygwin ; then +# For Cygwin or MSYS, switch paths to Windows format before running java +if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then APP_HOME=`cygpath --path --mixed "$APP_HOME"` CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` JAVACMD=`cygpath --unix "$JAVACMD"` diff --git a/gradlew.bat b/gradlew.bat index 9991c503..9618d8d9 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -5,7 +5,7 @@ @rem you may not use this file except in compliance with the License. @rem You may obtain a copy of the License at @rem -@rem http://www.apache.org/licenses/LICENSE-2.0 +@rem https://www.apache.org/licenses/LICENSE-2.0 @rem @rem Unless required by applicable law or agreed to in writing, software @rem distributed under the License is distributed on an "AS IS" BASIS, diff --git a/tableview/build.gradle b/tableview/build.gradle index faf573ef..c7c268eb 100644 --- a/tableview/build.gradle +++ b/tableview/build.gradle @@ -2,12 +2,11 @@ apply plugin: 'com.android.library' apply plugin: 'com.novoda.bintray-release' android { - compileSdkVersion 28 - buildToolsVersion '28.0.3' + compileSdkVersion 29 defaultConfig { minSdkVersion 14 - targetSdkVersion 28 + targetSdkVersion 29 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" From 52f82d37b01df24b1984e13ac3ca2eca80b18162 Mon Sep 17 00:00:00 2001 From: Gaetan Muller Date: Thu, 29 Aug 2019 08:30:02 +0200 Subject: [PATCH 27/64] Fix crash in sample app --- .../layoutmanager/CellLayoutManager.java | 21 ++++++++----------- 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/tableview/src/main/java/com/evrencoskun/tableview/layoutmanager/CellLayoutManager.java b/tableview/src/main/java/com/evrencoskun/tableview/layoutmanager/CellLayoutManager.java index ba29c6be..8371bffb 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/layoutmanager/CellLayoutManager.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/layoutmanager/CellLayoutManager.java @@ -47,13 +47,9 @@ public class CellLayoutManager extends LinearLayoutManager { @NonNull private ColumnHeaderLayoutManager mColumnHeaderLayoutManager; - @NonNull - private LinearLayoutManager mRowHeaderLayoutManager; @NonNull private CellRecyclerView mRowHeaderRecyclerView; - @NonNull - private CellRecyclerView mCellRecyclerView; private HorizontalRecyclerViewListener mHorizontalListener; @NonNull @@ -70,9 +66,7 @@ public class CellLayoutManager extends LinearLayoutManager { public CellLayoutManager(@NonNull Context context, @NonNull ITableView tableView) { super(context); this.mTableView = tableView; - this.mCellRecyclerView = tableView.getCellRecyclerView(); this.mColumnHeaderLayoutManager = tableView.getColumnHeaderLayoutManager(); - this.mRowHeaderLayoutManager = tableView.getRowHeaderLayoutManager(); this.mRowHeaderRecyclerView = tableView.getRowHeaderRecyclerView(); initialize(); @@ -219,8 +213,7 @@ private int fit(int xPosition, int yPosition, int left, int right, int columnCac // It shouldn't be scroll horizontally and the problem is gotten just for // first visible item. if (offset > 0 && xPosition == childLayoutManager - .findFirstVisibleItemPosition() && mCellRecyclerView - .getScrollState() != RecyclerView.SCROLL_STATE_IDLE) { + .findFirstVisibleItemPosition() && getCellRecyclerViewScrollState() != RecyclerView.SCROLL_STATE_IDLE) { int scrollPosition = mHorizontalListener.getScrollPosition(); offset = mHorizontalListener.getScrollPositionOffset() + scrollX; @@ -375,7 +368,7 @@ private void fit2(int xPosition, int yPosition, int columnCachedWidth, @NonNull public boolean shouldFitColumns(int yPosition) { // Scrolling horizontally - if (mCellRecyclerView.getScrollState() == RecyclerView.SCROLL_STATE_IDLE) { + if (getCellRecyclerViewScrollState() == RecyclerView.SCROLL_STATE_IDLE) { int lastVisiblePosition = findLastVisibleItemPosition(); CellRecyclerView lastCellRecyclerView = (CellRecyclerView) findViewByPosition @@ -408,7 +401,7 @@ public void measureChildWithMargins(@NonNull View child, int widthUsed, int heig .getLayoutManager(); // the below codes should be worked when it is scrolling vertically - if (mCellRecyclerView.getScrollState() != RecyclerView.SCROLL_STATE_IDLE) { + if (getCellRecyclerViewScrollState() != RecyclerView.SCROLL_STATE_IDLE) { if (childLayoutManager.isNeedFit()) { // Scrolling up @@ -430,7 +423,7 @@ public void measureChildWithMargins(@NonNull View child, int widthUsed, int heig // That means,populating for the first time like fetching all data to display. // It shouldn't be worked when it is scrolling horizontally ."getLastDx() == 0" // control for it. - } else if (childLayoutManager.getLastDx() == 0 && mCellRecyclerView.getScrollState() == + } else if (childLayoutManager.getLastDx() == 0 && getCellRecyclerViewScrollState() == RecyclerView.SCROLL_STATE_IDLE) { if (childLayoutManager.isNeedFit()) { @@ -442,7 +435,7 @@ public void measureChildWithMargins(@NonNull View child, int widthUsed, int heig if (mNeedFit) { // for the first time to populate adapter - if (mRowHeaderLayoutManager.findLastVisibleItemPosition() == position) { + if (mTableView.getRowHeaderLayoutManager().findLastVisibleItemPosition() == position) { fitWidthSize2(false); Log.e(LOG_TAG, position + " fitWidthSize populating data for the first time"); @@ -545,4 +538,8 @@ public CellRecyclerView[] getVisibleCellRowRecyclerViews() { return recyclerViews; } + + private int getCellRecyclerViewScrollState() { + return mTableView.getCellRecyclerView().getScrollState(); + } } From 789732185a09590c6f30badc1387db06d743d4d4 Mon Sep 17 00:00:00 2001 From: Gaetan Muller Date: Thu, 29 Aug 2019 09:06:33 +0200 Subject: [PATCH 28/64] Remove `Context` parameter from the `AbstractTableAdapter` constructor --- .../tableviewsample/MainFragment.java | 6 +++--- .../tableview/TableViewAdapter.java | 7 +++---- .../com/evrencoskun/tableview/ITableView.java | 4 ++++ .../tableview/adapter/AbstractTableAdapter.java | 17 ++++++----------- 4 files changed, 16 insertions(+), 18 deletions(-) diff --git a/app/src/main/java/com/evrencoskun/tableviewsample/MainFragment.java b/app/src/main/java/com/evrencoskun/tableviewsample/MainFragment.java index b1bbe05f..efb25eda 100644 --- a/app/src/main/java/com/evrencoskun/tableviewsample/MainFragment.java +++ b/app/src/main/java/com/evrencoskun/tableviewsample/MainFragment.java @@ -119,7 +119,7 @@ private void initializeTableView() { TableViewModel tableViewModel = new TableViewModel(); // Create TableView Adapter - TableViewAdapter tableViewAdapter = new TableViewAdapter(requireContext(), tableViewModel); + TableViewAdapter tableViewAdapter = new TableViewAdapter(tableViewModel); mTableView.setAdapter(tableViewAdapter); mTableView.setTableViewListener(new TableViewListener(mTableView)); @@ -264,7 +264,7 @@ public void onItemSelected(AdapterView parent, View view, int position, long if ("All".equals(parent.getItemAtPosition(position).toString())) { itemsPerPage = 0; } else { - itemsPerPage = Integer.valueOf(parent.getItemAtPosition(position).toString()); + itemsPerPage = Integer.parseInt(parent.getItemAtPosition(position).toString()); } setTableItemsPerPage(itemsPerPage); @@ -301,7 +301,7 @@ public void onTextChanged(CharSequence s, int start, int before, int count) { if (TextUtils.isEmpty(s)) { page = 1; } else { - page = Integer.valueOf(String.valueOf(s)); + page = Integer.parseInt(String.valueOf(s)); } goToTablePage(page); diff --git a/app/src/main/java/com/evrencoskun/tableviewsample/tableview/TableViewAdapter.java b/app/src/main/java/com/evrencoskun/tableviewsample/tableview/TableViewAdapter.java index 2b44fa16..ac3a09ad 100644 --- a/app/src/main/java/com/evrencoskun/tableviewsample/tableview/TableViewAdapter.java +++ b/app/src/main/java/com/evrencoskun/tableviewsample/tableview/TableViewAdapter.java @@ -17,7 +17,6 @@ package com.evrencoskun.tableviewsample.tableview; -import android.content.Context; import android.util.Log; import android.view.LayoutInflater; import android.view.View; @@ -57,8 +56,8 @@ public class TableViewAdapter extends AbstractTableAdapter implements ITableAdapter mColumnHeaderRecyclerViewAdapter; private RowHeaderRecyclerViewAdapter mRowHeaderRecyclerViewAdapter; private CellRecyclerViewAdapter mCellRecyclerViewAdapter; @@ -57,26 +54,24 @@ public abstract class AbstractTableAdapter implements ITableAdapter> dataSetChangedListeners; - public AbstractTableAdapter(@NonNull Context context) { - mContext = context; - } - - public void setTableView(@NonNull TableView tableView) { + public void setTableView(@NonNull ITableView tableView) { mTableView = tableView; initialize(); } private void initialize() { + Context context = mTableView.getContext(); + // Create Column header RecyclerView Adapter - mColumnHeaderRecyclerViewAdapter = new ColumnHeaderRecyclerViewAdapter<>(mContext, + mColumnHeaderRecyclerViewAdapter = new ColumnHeaderRecyclerViewAdapter<>(context, mColumnHeaderItems, this); // Create Row Header RecyclerView Adapter - mRowHeaderRecyclerViewAdapter = new RowHeaderRecyclerViewAdapter<>(mContext, + mRowHeaderRecyclerViewAdapter = new RowHeaderRecyclerViewAdapter<>(context, mRowHeaderItems, this); // Create Cell RecyclerView Adapter - mCellRecyclerViewAdapter = new CellRecyclerViewAdapter<>(mContext, mCellItems, mTableView); + mCellRecyclerViewAdapter = new CellRecyclerViewAdapter<>(context, mCellItems, mTableView); } public void setColumnHeaderItems(@Nullable List columnHeaderItems) { From 144735df02c8eed83a2890c8cb22dd059ba5ff91 Mon Sep 17 00:00:00 2001 From: Gaetan Muller Date: Thu, 29 Aug 2019 10:16:59 +0200 Subject: [PATCH 29/64] Add a `ViewGroup parent` parameter to `ITableAdapter#onCreateCornerView` --- README.md | 27 ++++++++----------- .../tableview/TableViewAdapter.java | 6 ++--- .../adapter/AbstractTableAdapter.java | 2 +- .../tableview/adapter/ITableAdapter.java | 2 +- 4 files changed, 16 insertions(+), 21 deletions(-) diff --git a/README.md b/README.md index 13cc48fd..e5441a43 100644 --- a/README.md +++ b/README.md @@ -123,12 +123,7 @@ Firstly, you must create your custom TableView Adapter which extends from ```Ab ```java public class MyTableViewAdapter extends AbstractTableAdapter { - - public MyTableViewAdapter(Context context) { - super(context); - - } - + /** * This is sample CellViewHolder class * This viewHolder must be extended from AbstractViewHolder class instead of RecyclerView.ViewHolder. @@ -157,8 +152,8 @@ Firstly, you must create your custom TableView Adapter which extends from ```Ab @Override public AbstractViewHolder onCreateCellViewHolder(ViewGroup parent, int viewType) { // Get cell xml layout - View layout = LayoutInflater.from(context).inflate(R.layout.my_cell_layout, - parent, false); + View layout = LayoutInflater.from(parent.getContext()) + .inflate(R.layout.my_cell_layout, parent, false); // Create a Custom ViewHolder for a Cell item. return new MyCellViewHolder(layout); } @@ -224,8 +219,8 @@ Firstly, you must create your custom TableView Adapter which extends from ```Ab public AbstractViewHolder onCreateColumnHeaderViewHolder(ViewGroup parent, int viewType) { // Get Column Header xml Layout - View layout = LayoutInflater.from(context).inflate(R.layout - .table_view_column_header_layout, parent, false); + View layout = LayoutInflater.from(parent.getContext()) + .inflate(R.layout.table_view_column_header_layout, parent, false); // Create a ColumnHeader ViewHolder return new MyColumnHeaderViewHolder(layout); @@ -293,8 +288,8 @@ Firstly, you must create your custom TableView Adapter which extends from ```Ab public AbstractViewHolder onCreateRowHeaderViewHolder(ViewGroup parent, int viewType) { // Get Row Header xml Layout - View layout = LayoutInflater.from(context).inflate(R.layout - .table_view_row_header_layout, parent, false); + View layout = LayoutInflater.from(parent.getContext()) + .inflate(R.layout.table_view_row_header_layout, parent, false); // Create a Row Header ViewHolder return new MyRowHeaderViewHolder(layout); @@ -324,12 +319,12 @@ Firstly, you must create your custom TableView Adapter which extends from ```Ab MyRowHeaderViewHolder rowHeaderViewHolder = (MyRowHeaderViewHolder) holder; rowHeaderViewHolder.row_header_textview.setText(rowHeader.getData()); } - - + @Override - public View onCreateCornerView() { + public View onCreateCornerView(ViewGroup parent) { // Get Corner xml layout - return LayoutInflater.from(context).inflate(R.layout.table_view_corner_layout, null); + return LayoutInflater.from(parent.getContext()) + .inflate(R.layout.table_view_corner_layout, null); } @Override diff --git a/app/src/main/java/com/evrencoskun/tableviewsample/tableview/TableViewAdapter.java b/app/src/main/java/com/evrencoskun/tableviewsample/tableview/TableViewAdapter.java index ac3a09ad..ac03e196 100644 --- a/app/src/main/java/com/evrencoskun/tableviewsample/tableview/TableViewAdapter.java +++ b/app/src/main/java/com/evrencoskun/tableviewsample/tableview/TableViewAdapter.java @@ -230,10 +230,10 @@ public void onBindRowHeaderViewHolder(@NonNull AbstractViewHolder holder, @Nulla @NonNull @Override - public View onCreateCornerView() { + public View onCreateCornerView(@NonNull ViewGroup parent) { // Get Corner xml layout - View corner = LayoutInflater.from(getTableView().getContext()) - .inflate(R.layout.table_view_corner_layout, null); + View corner = LayoutInflater.from(parent.getContext()) + .inflate(R.layout.table_view_corner_layout, parent, false); corner.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { diff --git a/tableview/src/main/java/com/evrencoskun/tableview/adapter/AbstractTableAdapter.java b/tableview/src/main/java/com/evrencoskun/tableview/adapter/AbstractTableAdapter.java index 3f5151b6..b72260a2 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/adapter/AbstractTableAdapter.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/adapter/AbstractTableAdapter.java @@ -127,7 +127,7 @@ public void setAllItems(@Nullable List columnHeaderItems, @Nullable List && mTableView != null && mCornerView == null) { // Create corner view - mCornerView = onCreateCornerView(); + mCornerView = onCreateCornerView((ViewGroup) mTableView); mTableView.addView(mCornerView, new FrameLayout.LayoutParams(mRowHeaderWidth, mColumnHeaderHeight)); } else if (mCornerView != null) { diff --git a/tableview/src/main/java/com/evrencoskun/tableview/adapter/ITableAdapter.java b/tableview/src/main/java/com/evrencoskun/tableview/adapter/ITableAdapter.java index fe1aea56..1209d1b2 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/adapter/ITableAdapter.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/adapter/ITableAdapter.java @@ -59,7 +59,7 @@ void onBindRowHeaderViewHolder(@NonNull AbstractViewHolder holder, @Nullable Obj rowPosition); @NonNull - View onCreateCornerView(); + View onCreateCornerView(@NonNull ViewGroup parent); ITableView getTableView(); From 2aa73c25e900167558bd44cea391d9b9e134c38b Mon Sep 17 00:00:00 2001 From: Gaetan Muller Date: Thu, 29 Aug 2019 14:34:10 +0200 Subject: [PATCH 30/64] Use dp instead of px --- app/src/main/res/layout/table_view_column_header_layout.xml | 2 +- app/src/main/res/layout/table_view_corner_layout.xml | 4 ++-- app/src/main/res/layout/table_view_row_header_layout.xml | 2 +- tableview/src/main/res/drawable/cell_line_divider.xml | 4 ++-- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/app/src/main/res/layout/table_view_column_header_layout.xml b/app/src/main/res/layout/table_view_column_header_layout.xml index 6189b3f8..08edd947 100644 --- a/app/src/main/res/layout/table_view_column_header_layout.xml +++ b/app/src/main/res/layout/table_view_column_header_layout.xml @@ -65,7 +65,7 @@ diff --git a/app/src/main/res/layout/table_view_corner_layout.xml b/app/src/main/res/layout/table_view_corner_layout.xml index 3a15a0b9..069ff4e7 100644 --- a/app/src/main/res/layout/table_view_corner_layout.xml +++ b/app/src/main/res/layout/table_view_corner_layout.xml @@ -31,14 +31,14 @@ android:textSize="@dimen/text_size"/> diff --git a/app/src/main/res/layout/table_view_row_header_layout.xml b/app/src/main/res/layout/table_view_row_header_layout.xml index 9eb7765e..2013bdfc 100644 --- a/app/src/main/res/layout/table_view_row_header_layout.xml +++ b/app/src/main/res/layout/table_view_row_header_layout.xml @@ -44,7 +44,7 @@ diff --git a/tableview/src/main/res/drawable/cell_line_divider.xml b/tableview/src/main/res/drawable/cell_line_divider.xml index 80d11b8a..ddeadf71 100644 --- a/tableview/src/main/res/drawable/cell_line_divider.xml +++ b/tableview/src/main/res/drawable/cell_line_divider.xml @@ -19,7 +19,7 @@ + android:width="1dp" + android:height="1dp"/> From d040d9e71fcafa68d220fd6468204422b0be0410 Mon Sep 17 00:00:00 2001 From: Gaetan Muller Date: Mon, 2 Sep 2019 09:11:29 +0200 Subject: [PATCH 31/64] Add a no-op implementation of `ITableViewListener` --- .../listener/SimpleTableViewListener.java | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 tableview/src/main/java/com/evrencoskun/tableview/listener/SimpleTableViewListener.java diff --git a/tableview/src/main/java/com/evrencoskun/tableview/listener/SimpleTableViewListener.java b/tableview/src/main/java/com/evrencoskun/tableview/listener/SimpleTableViewListener.java new file mode 100644 index 00000000..2785ccd1 --- /dev/null +++ b/tableview/src/main/java/com/evrencoskun/tableview/listener/SimpleTableViewListener.java @@ -0,0 +1,33 @@ +package com.evrencoskun.tableview.listener; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; + +/** + * Convenience class to extend when you are only interested in a subset of events of {@link ITableViewListener}. + */ +public abstract class SimpleTableViewListener implements ITableViewListener { + @Override + public void onCellClicked(@NonNull RecyclerView.ViewHolder cellView, int column, int row) { + } + + @Override + public void onCellLongPressed(@NonNull RecyclerView.ViewHolder cellView, int column, int row) { + } + + @Override + public void onColumnHeaderClicked(@NonNull RecyclerView.ViewHolder columnHeaderView, int column) { + } + + @Override + public void onColumnHeaderLongPressed(@NonNull RecyclerView.ViewHolder columnHeaderView, int column) { + } + + @Override + public void onRowHeaderClicked(@NonNull RecyclerView.ViewHolder rowHeaderView, int row) { + } + + @Override + public void onRowHeaderLongPressed(@NonNull RecyclerView.ViewHolder rowHeaderView, int row) { + } +} From bfa7bddc303e533ba1e6fe2ad8b061229ac6a4bf Mon Sep 17 00:00:00 2001 From: Gaetan Muller Date: Tue, 3 Sep 2019 08:15:54 +0200 Subject: [PATCH 32/64] Remove unused method in `TableViewUtils` --- .../com/evrencoskun/tableview/util/TableViewUtils.java | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/tableview/src/main/java/com/evrencoskun/tableview/util/TableViewUtils.java b/tableview/src/main/java/com/evrencoskun/tableview/util/TableViewUtils.java index 8941d783..001e4adb 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/util/TableViewUtils.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/util/TableViewUtils.java @@ -18,7 +18,6 @@ package com.evrencoskun.tableview.util; import android.view.View; -import android.widget.LinearLayout; import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; @@ -44,13 +43,4 @@ public static void setWidth(@NonNull View view, int width) { view.requestLayout(); } - /** - * Gets the exact width value before the view drawing by main thread. - */ - public static int getWidth(@NonNull View view) { - view.measure(LinearLayout.LayoutParams.WRAP_CONTENT, View.MeasureSpec.makeMeasureSpec - (view.getMeasuredHeight(), View.MeasureSpec.EXACTLY)); - return view.getMeasuredWidth(); - } - } From 96891c7acff05dcc54976ad0e70d357fae152e21 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastia=CC=81n=20Gallego?= Date: Wed, 18 Sep 2019 15:42:10 +0200 Subject: [PATCH 33/64] Allow click inside cells. Configurable by xml attrs. --- .../com/evrencoskun/tableview/ITableView.java | 2 ++ .../com/evrencoskun/tableview/TableView.java | 36 ++++++++++++++----- .../recyclerview/CellRecyclerViewAdapter.java | 6 ++-- tableview/src/main/res/values/attrs.xml | 3 ++ 4 files changed, 37 insertions(+), 10 deletions(-) diff --git a/tableview/src/main/java/com/evrencoskun/tableview/ITableView.java b/tableview/src/main/java/com/evrencoskun/tableview/ITableView.java index 5f510598..f0722b2d 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/ITableView.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/ITableView.java @@ -56,6 +56,8 @@ public interface ITableView { boolean isShowVerticalSeparators(); + boolean isAllowClickInsideCell(); + boolean isSortable(); @NonNull diff --git a/tableview/src/main/java/com/evrencoskun/tableview/TableView.java b/tableview/src/main/java/com/evrencoskun/tableview/TableView.java index 60fd5a28..3833ef49 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/TableView.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/TableView.java @@ -112,6 +112,9 @@ public class TableView extends FrameLayout implements ITableView { private boolean mIgnoreSelectionColors; private boolean mShowHorizontalSeparators = true; private boolean mShowVerticalSeparators = true; + private boolean mAllowClickInsideCell = false; + private boolean mAllowClickInsideRowHeader = false; + private boolean mAllowClickInsideColumnHeader = false; private boolean mIsSortable; public TableView(@NonNull Context context) { @@ -174,6 +177,12 @@ private void initialDefaultValues(@Nullable AttributeSet attrs) { mShowVerticalSeparators); mShowHorizontalSeparators = a.getBoolean(R.styleable .TableView_show_horizontal_separator, mShowHorizontalSeparators); + mAllowClickInsideCell = a.getBoolean(R.styleable.TableView_allow_click_inside_cell, + mAllowClickInsideCell); + mAllowClickInsideRowHeader = a.getBoolean(R.styleable.TableView_allow_click_inside_row_header, + mAllowClickInsideRowHeader); + mAllowClickInsideColumnHeader = a.getBoolean(R.styleable.TableView_allow_click_inside_column_header, + mAllowClickInsideColumnHeader); } finally { a.recycle(); @@ -220,15 +229,21 @@ protected void initializeListeners() { // --- Listeners to help item clicks --- // Create item click listeners - ColumnHeaderRecyclerViewItemClickListener columnHeaderRecyclerViewItemClickListener = new - ColumnHeaderRecyclerViewItemClickListener(mColumnHeaderRecyclerView, this); - RowHeaderRecyclerViewItemClickListener rowHeaderRecyclerViewItemClickListener = new RowHeaderRecyclerViewItemClickListener - (mRowHeaderRecyclerView, this); - // Add item click listeners for both column header & row header recyclerView - mColumnHeaderRecyclerView.addOnItemTouchListener - (columnHeaderRecyclerViewItemClickListener); - mRowHeaderRecyclerView.addOnItemTouchListener(rowHeaderRecyclerViewItemClickListener); + // Add item click listener for column header recyclerView + if(!mAllowClickInsideColumnHeader){ + ColumnHeaderRecyclerViewItemClickListener columnHeaderRecyclerViewItemClickListener = new + ColumnHeaderRecyclerViewItemClickListener(mColumnHeaderRecyclerView, this); + mColumnHeaderRecyclerView.addOnItemTouchListener + (columnHeaderRecyclerViewItemClickListener); + } + + // Add item click listener for row header recyclerView + if(!mAllowClickInsideRowHeader) { + RowHeaderRecyclerViewItemClickListener rowHeaderRecyclerViewItemClickListener = new RowHeaderRecyclerViewItemClickListener + (mRowHeaderRecyclerView, this); + mRowHeaderRecyclerView.addOnItemTouchListener(rowHeaderRecyclerViewItemClickListener); + } // Add Layout change listener both of Column Header & Cell recyclerView to detect @@ -354,6 +369,11 @@ public boolean isShowHorizontalSeparators() { return mShowHorizontalSeparators; } + @Override + public boolean isAllowClickInsideCell(){ + return mAllowClickInsideCell; + } + @Override public boolean isSortable() { return mIsSortable; diff --git a/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/CellRecyclerViewAdapter.java b/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/CellRecyclerViewAdapter.java index dc66cc79..7bb20bf5 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/CellRecyclerViewAdapter.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/adapter/recyclerview/CellRecyclerViewAdapter.java @@ -83,8 +83,10 @@ public AbstractViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int view recyclerView.addOnItemTouchListener(mTableView.getHorizontalRecyclerViewListener()); // Add Item click listener for cell views - recyclerView.addOnItemTouchListener(new CellRecyclerViewItemClickListener(recyclerView, - mTableView)); + if(!mTableView.isAllowClickInsideCell()) { + recyclerView.addOnItemTouchListener(new CellRecyclerViewItemClickListener(recyclerView, + mTableView)); + } // Set the Column layout manager that helps the fit width of the cell and column header // and it also helps to locate the scroll position of the horizontal recyclerView diff --git a/tableview/src/main/res/values/attrs.xml b/tableview/src/main/res/values/attrs.xml index 475908db..f1075008 100644 --- a/tableview/src/main/res/values/attrs.xml +++ b/tableview/src/main/res/values/attrs.xml @@ -26,5 +26,8 @@ + + + From b4fdb2a5da624851b0258b8fb6e488f68fe8690e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gae=CC=88tan=20Muller?= Date: Sat, 12 Oct 2019 21:51:21 +0200 Subject: [PATCH 34/64] Update dependencies and minor improvements --- app/build.gradle | 8 ++++---- build.gradle | 2 +- gradle/wrapper/gradle-wrapper.properties | 3 +-- tableview/build.gradle | 6 +++--- 4 files changed, 9 insertions(+), 10 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 8b926ba1..ef0bf783 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -26,7 +26,7 @@ android { targetSdkVersion 29 versionCode 1 versionName "1.0" - testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" vectorDrawables.useSupportLibrary = true } @@ -38,7 +38,7 @@ android { } applicationVariants.all { - it.getGenerateBuildConfigProvider().configure { + it.generateBuildConfigProvider.configure { it.enabled = false } } @@ -52,7 +52,7 @@ dependencies { implementation project(path: ':tableview') implementation 'androidx.annotation:annotation:1.1.0' - implementation 'androidx.appcompat:appcompat:1.0.2' - implementation 'androidx.fragment:fragment:1.0.0' + implementation 'androidx.appcompat:appcompat:1.1.0' + implementation 'androidx.fragment:fragment:1.1.0' implementation 'androidx.recyclerview:recyclerview:1.0.0' } diff --git a/build.gradle b/build.gradle index 84b2db0b..1be0ed84 100644 --- a/build.gradle +++ b/build.gradle @@ -24,7 +24,7 @@ buildscript { } dependencies { - classpath 'com.android.tools.build:gradle:3.5.0' + classpath 'com.android.tools.build:gradle:3.5.1' classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.8.4' classpath 'com.github.dcendents:android-maven-gradle-plugin:2.1' classpath 'com.novoda:bintray-release:0.9.1' diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 428e8c39..6549ddb1 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -14,9 +14,8 @@ # limitations under the License. # # - distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.2-all.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/tableview/build.gradle b/tableview/build.gradle index c7c268eb..bd2b578a 100644 --- a/tableview/build.gradle +++ b/tableview/build.gradle @@ -9,7 +9,7 @@ android { targetSdkVersion 29 versionCode 1 versionName "1.0" - testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } buildTypes { @@ -20,7 +20,7 @@ android { } libraryVariants.all { - it.getGenerateBuildConfigProvider().configure { + it.generateBuildConfigProvider.configure { it.enabled = false } } @@ -38,7 +38,7 @@ android { dependencies { implementation 'androidx.annotation:annotation:1.1.0' - implementation 'androidx.core:core:1.0.2' + implementation 'androidx.core:core:1.1.0' implementation 'androidx.recyclerview:recyclerview:1.0.0' } From 018adab83ee1a36dbd0adf75abfda78fc2fb4c48 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gae=CC=88tan=20Muller?= Date: Sat, 12 Oct 2019 21:56:59 +0200 Subject: [PATCH 35/64] Fix Readme --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e5441a43..ef8a2f2e 100644 --- a/README.md +++ b/README.md @@ -324,7 +324,7 @@ Firstly, you must create your custom TableView Adapter which extends from ```Ab public View onCreateCornerView(ViewGroup parent) { // Get Corner xml layout return LayoutInflater.from(parent.getContext()) - .inflate(R.layout.table_view_corner_layout, null); + .inflate(R.layout.table_view_corner_layout, parent, false); } @Override From 4d0f21c70e153c4bdecb5ab45e0923b3103ec215 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gae=CC=88tan=20Muller?= Date: Sat, 12 Oct 2019 22:32:57 +0200 Subject: [PATCH 36/64] Remove unused resources --- app/src/main/res/values/colors.xml | 16 +--------------- app/src/main/res/values/dimens.xml | 7 ------- app/src/main/res/values/strings.xml | 10 ++++++---- app/src/main/res/values/styles.xml | 1 + tableview/src/main/res/values/colors.xml | 1 - tableview/src/main/res/values/dimens.xml | 1 - tableview/src/main/res/values/integers.xml | 21 +++++++++++++++++++++ 7 files changed, 29 insertions(+), 28 deletions(-) create mode 100644 tableview/src/main/res/values/integers.xml diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index 36379989..ce31c89b 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -21,23 +21,9 @@ #303F9F #FF4081 #E7E7E7 - #FF99DCD7 #ffffff - #1f1f1f @android:color/holo_red_light - - - #1f1f1f - #696969 - #EEEEEE - #F5F5F5 - #dbdbdb - - - - - @color/cell_background_color + #0a0a0a - diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml index 5a397fcb..649b9b18 100644 --- a/app/src/main/res/values/dimens.xml +++ b/app/src/main/res/values/dimens.xml @@ -21,13 +21,6 @@ 55dp 12sp - - 40dp - 13sp - 13sp - 28dp - - 55dp 40dp diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index a7d0b9ab..df64daab 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1,3 +1,4 @@ + - Hello blank fragment Sort Ascending Sort Descending - Clear Hiding 3. Row Sample Showing 3. Row Sample Scroll to 15. column position Scroll to 5. row position Showing / Hiding 1. column Page %s, showing items %s - %s. + - + Happy Sad + - + Male Female + 10 20 diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 295d6fd5..63818207 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -1,3 +1,4 @@ + - #0a0a0a #E7E7E7 #ffffff #fada65 diff --git a/tableview/src/main/res/values/dimens.xml b/tableview/src/main/res/values/dimens.xml index 0f12b880..bdf75f27 100644 --- a/tableview/src/main/res/values/dimens.xml +++ b/tableview/src/main/res/values/dimens.xml @@ -19,5 +19,4 @@ 55dp 55dp - 10 diff --git a/tableview/src/main/res/values/integers.xml b/tableview/src/main/res/values/integers.xml new file mode 100644 index 00000000..ab39286f --- /dev/null +++ b/tableview/src/main/res/values/integers.xml @@ -0,0 +1,21 @@ + + + + + 10 + From 1418049dc2de99c286b33e22151547f44f50571e Mon Sep 17 00:00:00 2001 From: Gaetan Muller Date: Thu, 5 Dec 2019 10:10:29 +0100 Subject: [PATCH 37/64] Fix width computation --- .../evrencoskun/tableview/layoutmanager/CellLayoutManager.java | 2 +- .../tableview/layoutmanager/ColumnHeaderLayoutManager.java | 2 +- .../listener/itemclick/CellRecyclerViewItemClickListener.java | 1 - .../itemclick/ColumnHeaderRecyclerViewItemClickListener.java | 1 - .../itemclick/RowHeaderRecyclerViewItemClickListener.java | 1 - 5 files changed, 2 insertions(+), 5 deletions(-) diff --git a/tableview/src/main/java/com/evrencoskun/tableview/layoutmanager/CellLayoutManager.java b/tableview/src/main/java/com/evrencoskun/tableview/layoutmanager/CellLayoutManager.java index 8371bffb..8c33abb0 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/layoutmanager/CellLayoutManager.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/layoutmanager/CellLayoutManager.java @@ -513,7 +513,7 @@ public void setCacheWidth(int column, int width) { public int getCacheWidth(int row, int column) { SparseIntArray cellRowCaches = mCachedWidthList.get(row); if (cellRowCaches != null) { - return cellRowCaches.get(column); + return cellRowCaches.get(column, -1); } return -1; } diff --git a/tableview/src/main/java/com/evrencoskun/tableview/layoutmanager/ColumnHeaderLayoutManager.java b/tableview/src/main/java/com/evrencoskun/tableview/layoutmanager/ColumnHeaderLayoutManager.java index 7801674d..b31bf0b2 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/layoutmanager/ColumnHeaderLayoutManager.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/layoutmanager/ColumnHeaderLayoutManager.java @@ -83,7 +83,7 @@ public void setCacheWidth(int position, int width) { } public int getCacheWidth(int position) { - return mCachedWidthList.get(position); + return mCachedWidthList.get(position, -1); } public int getFirstItemLeft() { diff --git a/tableview/src/main/java/com/evrencoskun/tableview/listener/itemclick/CellRecyclerViewItemClickListener.java b/tableview/src/main/java/com/evrencoskun/tableview/listener/itemclick/CellRecyclerViewItemClickListener.java index d6d7eb8f..2cbf4bff 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/listener/itemclick/CellRecyclerViewItemClickListener.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/listener/itemclick/CellRecyclerViewItemClickListener.java @@ -83,7 +83,6 @@ protected void longPressAction(@NonNull MotionEvent e) { View child = mRecyclerView.findChildViewUnder(e.getX(), e.getY()); if (child != null) { - getTableViewListener(); // Find the view holder RecyclerView.ViewHolder holder = mRecyclerView.getChildViewHolder(child); diff --git a/tableview/src/main/java/com/evrencoskun/tableview/listener/itemclick/ColumnHeaderRecyclerViewItemClickListener.java b/tableview/src/main/java/com/evrencoskun/tableview/listener/itemclick/ColumnHeaderRecyclerViewItemClickListener.java index b6c26ddf..cdac9ad7 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/listener/itemclick/ColumnHeaderRecyclerViewItemClickListener.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/listener/itemclick/ColumnHeaderRecyclerViewItemClickListener.java @@ -74,7 +74,6 @@ protected void longPressAction(@NonNull MotionEvent e) { View child = mRecyclerView.findChildViewUnder(e.getX(), e.getY()); if (child != null) { - getTableViewListener(); // Find the view holder RecyclerView.ViewHolder holder = mRecyclerView.getChildViewHolder(child); diff --git a/tableview/src/main/java/com/evrencoskun/tableview/listener/itemclick/RowHeaderRecyclerViewItemClickListener.java b/tableview/src/main/java/com/evrencoskun/tableview/listener/itemclick/RowHeaderRecyclerViewItemClickListener.java index cd55201b..2955fdc8 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/listener/itemclick/RowHeaderRecyclerViewItemClickListener.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/listener/itemclick/RowHeaderRecyclerViewItemClickListener.java @@ -72,7 +72,6 @@ protected void longPressAction(@NonNull MotionEvent e) { View child = mRecyclerView.findChildViewUnder(e.getX(), e.getY()); if (child != null) { - getTableViewListener(); // Find the view holder RecyclerView.ViewHolder holder = mRecyclerView.getChildViewHolder(child); From 0d0941801bc1aaaada015a2fbcd601698a4d8792 Mon Sep 17 00:00:00 2001 From: Gaetan Muller Date: Thu, 5 Dec 2019 16:17:53 +0100 Subject: [PATCH 38/64] Update dependencies --- app/build.gradle | 20 ++++++++++---------- build.gradle | 11 ++++++++++- gradle/wrapper/gradle-wrapper.properties | 2 +- tableview/build.gradle | 16 ++++++++-------- 4 files changed, 29 insertions(+), 20 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index ef0bf783..f4db0d5f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -18,15 +18,15 @@ apply plugin: 'com.android.application' android { - compileSdkVersion 29 + compileSdkVersion compile_sdk_version defaultConfig { - applicationId "com.evrencoskun.tableviewsample" - minSdkVersion 15 - targetSdkVersion 29 + applicationId 'com.evrencoskun.tableviewsample' + minSdkVersion min_sdk_version + targetSdkVersion target_sdk_version versionCode 1 - versionName "1.0" - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + versionName '1.0' + testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner' vectorDrawables.useSupportLibrary = true } @@ -51,8 +51,8 @@ android { dependencies { implementation project(path: ':tableview') - implementation 'androidx.annotation:annotation:1.1.0' - implementation 'androidx.appcompat:appcompat:1.1.0' - implementation 'androidx.fragment:fragment:1.1.0' - implementation 'androidx.recyclerview:recyclerview:1.0.0' + implementation "androidx.annotation:annotation:$androidx_annotation_version" + implementation "androidx.appcompat:appcompat:$androidx_appcompat_version" + implementation "androidx.fragment:fragment:$androidx_fragment_version" + implementation "androidx.recyclerview:recyclerview:$androidx_recyclerview_version" } diff --git a/build.gradle b/build.gradle index 1be0ed84..43f5ac38 100644 --- a/build.gradle +++ b/build.gradle @@ -18,13 +18,22 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { + ext.androidx_annotation_version = '1.1.0' + ext.androidx_appcompat_version = '1.1.0' + ext.androidx_core_version = '1.1.0' + ext.androidx_fragment_version = '1.1.0' + ext.androidx_recyclerview_version = '1.1.0' + ext.compile_sdk_version = 29 + ext.min_sdk_version = 14 + ext.target_sdk_version = 29 + repositories { jcenter() google() } dependencies { - classpath 'com.android.tools.build:gradle:3.5.1' + classpath 'com.android.tools.build:gradle:3.5.2' classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.8.4' classpath 'com.github.dcendents:android-maven-gradle-plugin:2.1' classpath 'com.novoda:bintray-release:0.9.1' diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 6549ddb1..e534a3bf 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -16,6 +16,6 @@ # distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.2-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-all.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/tableview/build.gradle b/tableview/build.gradle index bd2b578a..e9eb8565 100644 --- a/tableview/build.gradle +++ b/tableview/build.gradle @@ -2,14 +2,14 @@ apply plugin: 'com.android.library' apply plugin: 'com.novoda.bintray-release' android { - compileSdkVersion 29 + compileSdkVersion compile_sdk_version defaultConfig { - minSdkVersion 14 - targetSdkVersion 29 + minSdkVersion min_sdk_version + targetSdkVersion target_sdk_version versionCode 1 - versionName "1.0" - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + versionName '1.0' + testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner' } buildTypes { @@ -37,9 +37,9 @@ android { } dependencies { - implementation 'androidx.annotation:annotation:1.1.0' - implementation 'androidx.core:core:1.1.0' - implementation 'androidx.recyclerview:recyclerview:1.0.0' + implementation "androidx.annotation:annotation:$androidx_annotation_version" + implementation "androidx.core:core:$androidx_core_version" + implementation "androidx.recyclerview:recyclerview:$androidx_recyclerview_version" } publish { From 2020576dcb279e7bf865345fa7c68da95f97494d Mon Sep 17 00:00:00 2001 From: Gaetan Muller Date: Thu, 5 Dec 2019 16:43:12 +0100 Subject: [PATCH 39/64] Target Java 8 --- app/build.gradle | 5 ++++ .../tableview/TableViewAdapter.java | 21 ++++++-------- build.gradle | 1 + tableview/build.gradle | 5 ++++ .../tableview/handler/VisibilityHandler.java | 4 +-- .../layoutmanager/CellLayoutManager.java | 10 ++----- .../sort/AbstractSortComparator.java | 28 ++++--------------- .../ColumnForRowHeaderSortComparator.java | 5 +--- .../tableview/sort/ColumnSortHelper.java | 2 +- 9 files changed, 31 insertions(+), 50 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index f4db0d5f..37947bd5 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -37,6 +37,11 @@ android { } } + compileOptions { + sourceCompatibility = java_version + targetCompatibility = java_version + } + applicationVariants.all { it.generateBuildConfigProvider.configure { it.enabled = false diff --git a/app/src/main/java/com/evrencoskun/tableviewsample/tableview/TableViewAdapter.java b/app/src/main/java/com/evrencoskun/tableviewsample/tableview/TableViewAdapter.java index ac03e196..a09a2a8e 100644 --- a/app/src/main/java/com/evrencoskun/tableviewsample/tableview/TableViewAdapter.java +++ b/app/src/main/java/com/evrencoskun/tableviewsample/tableview/TableViewAdapter.java @@ -234,18 +234,15 @@ public View onCreateCornerView(@NonNull ViewGroup parent) { // Get Corner xml layout View corner = LayoutInflater.from(parent.getContext()) .inflate(R.layout.table_view_corner_layout, parent, false); - corner.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View view) { - SortState sortState = TableViewAdapter.this.getTableView() - .getRowHeaderSortingStatus(); - if (sortState != SortState.ASCENDING) { - Log.d("TableViewAdapter", "Order Ascending"); - TableViewAdapter.this.getTableView().sortRowHeader(SortState.ASCENDING); - } else { - Log.d("TableViewAdapter", "Order Descending"); - TableViewAdapter.this.getTableView().sortRowHeader(SortState.DESCENDING); - } + corner.setOnClickListener(view -> { + SortState sortState = TableViewAdapter.this.getTableView() + .getRowHeaderSortingStatus(); + if (sortState != SortState.ASCENDING) { + Log.d("TableViewAdapter", "Order Ascending"); + TableViewAdapter.this.getTableView().sortRowHeader(SortState.ASCENDING); + } else { + Log.d("TableViewAdapter", "Order Descending"); + TableViewAdapter.this.getTableView().sortRowHeader(SortState.DESCENDING); } }); return corner; diff --git a/build.gradle b/build.gradle index 43f5ac38..88110848 100644 --- a/build.gradle +++ b/build.gradle @@ -24,6 +24,7 @@ buildscript { ext.androidx_fragment_version = '1.1.0' ext.androidx_recyclerview_version = '1.1.0' ext.compile_sdk_version = 29 + ext.java_version = '1.8' ext.min_sdk_version = 14 ext.target_sdk_version = 29 diff --git a/tableview/build.gradle b/tableview/build.gradle index e9eb8565..3ae88205 100644 --- a/tableview/build.gradle +++ b/tableview/build.gradle @@ -19,6 +19,11 @@ android { } } + compileOptions { + sourceCompatibility = java_version + targetCompatibility = java_version + } + libraryVariants.all { it.generateBuildConfigProvider.configure { it.enabled = false diff --git a/tableview/src/main/java/com/evrencoskun/tableview/handler/VisibilityHandler.java b/tableview/src/main/java/com/evrencoskun/tableview/handler/VisibilityHandler.java index 7264b233..b2ddc2b0 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/handler/VisibilityHandler.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/handler/VisibilityHandler.java @@ -135,7 +135,7 @@ public boolean isColumnVisible(int column) { return mHideColumnList.get(column) == null; } - class Row { + static class Row { private int mYPosition; @Nullable private Object mRowHeaderModel; @@ -164,7 +164,7 @@ public List getCellModelList() { } - class Column { + static class Column { private int mYPosition; @Nullable private Object mColumnHeaderModel; diff --git a/tableview/src/main/java/com/evrencoskun/tableview/layoutmanager/CellLayoutManager.java b/tableview/src/main/java/com/evrencoskun/tableview/layoutmanager/CellLayoutManager.java index 8c33abb0..b443405d 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/layoutmanager/CellLayoutManager.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/layoutmanager/CellLayoutManager.java @@ -137,12 +137,7 @@ public void fitWidthSize(int position, boolean scrollingLeft) { if (mNeedSetLeft & scrollingLeft) { // Works just like invoke later of swing utils. Handler handler = new Handler(); - handler.post(new Runnable() { - @Override - public void run() { - fitWidthSize2(true); - } - }); + handler.post(() -> fitWidthSize2(true)); } } @@ -476,8 +471,7 @@ public AbstractViewHolder getCellViewHolder(int xPosition, int yPosition) { } public void remeasureAllChild() { - // TODO: the below code causes requestLayout() improperly called by com.evrencoskun - // TODO: .tableview.adapter + // TODO: the below code causes requestLayout() improperly called by com.evrencoskun.tableview.adapter for (int j = 0; j < getChildCount(); j++) { CellRecyclerView recyclerView = (CellRecyclerView) getChildAt(j); diff --git a/tableview/src/main/java/com/evrencoskun/tableview/sort/AbstractSortComparator.java b/tableview/src/main/java/com/evrencoskun/tableview/sort/AbstractSortComparator.java index da44f27d..47849f6a 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/sort/AbstractSortComparator.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/sort/AbstractSortComparator.java @@ -41,36 +41,18 @@ protected int compareContent(@Nullable Object o1, @Nullable Object o2) { public int compare(Number o1, Number o2) { double n1 = o1.doubleValue(); double n2 = o2.doubleValue(); - if (n1 < n2) { - return -1; - } else if (n1 > n2) { - return 1; - } else { - return 0; - } + + return Double.compare(n1, n2); } public int compare(Date o1, Date o2) { long n1 = o1.getTime(); long n2 = o2.getTime(); - if (n1 < n2) { - return -1; - } else if (n1 > n2) { - return 1; - } else { - return 0; - } + + return Long.compare(n1, n2); } public int compare(Boolean o1, Boolean o2) { - boolean b1 = o1.booleanValue(); - boolean b2 = o2.booleanValue(); - if (b1 == b2) { - return 0; - } else if (b1) { - return 1; - } else { - return -1; - } + return Boolean.compare(o1, o2); } } diff --git a/tableview/src/main/java/com/evrencoskun/tableview/sort/ColumnForRowHeaderSortComparator.java b/tableview/src/main/java/com/evrencoskun/tableview/sort/ColumnForRowHeaderSortComparator.java index 6082221f..c1a5a88b 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/sort/ColumnForRowHeaderSortComparator.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/sort/ColumnForRowHeaderSortComparator.java @@ -1,9 +1,5 @@ package com.evrencoskun.tableview.sort; -/** - * Created by cedricferry on 7/2/18. - */ - import androidx.annotation.NonNull; import java.util.Comparator; @@ -15,6 +11,7 @@ * So if MainDataSet row 1 moved to position 10, RowHeader 1 move to position 10 too. * To accomplish that we need to set a comparator that use MainDataSet * in order to sort RowHeader. + * Created by cedricferry on 7/2/18. */ public class ColumnForRowHeaderSortComparator implements Comparator { @NonNull diff --git a/tableview/src/main/java/com/evrencoskun/tableview/sort/ColumnSortHelper.java b/tableview/src/main/java/com/evrencoskun/tableview/sort/ColumnSortHelper.java index caf8bed5..6e69ebe8 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/sort/ColumnSortHelper.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/sort/ColumnSortHelper.java @@ -95,7 +95,7 @@ private static class Directive { @NonNull private SortState direction; - public Directive(int column, @NonNull SortState direction) { + Directive(int column, @NonNull SortState direction) { this.column = column; this.direction = direction; } From 4b327cf33fa1c7eb4155a0f650b61a8ae3c43a2f Mon Sep 17 00:00:00 2001 From: Gaetan Muller Date: Thu, 5 Dec 2019 16:43:34 +0100 Subject: [PATCH 40/64] Remove unused exceptions --- .../tableview/filter/FilterException.java | 30 ------------------- .../tableview/sort/RowHeaderSortHelper.java | 9 ------ 2 files changed, 39 deletions(-) delete mode 100644 tableview/src/main/java/com/evrencoskun/tableview/filter/FilterException.java diff --git a/tableview/src/main/java/com/evrencoskun/tableview/filter/FilterException.java b/tableview/src/main/java/com/evrencoskun/tableview/filter/FilterException.java deleted file mode 100644 index 6be664e8..00000000 --- a/tableview/src/main/java/com/evrencoskun/tableview/filter/FilterException.java +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Copyright (c) 2018. Evren CoÅŸkun - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -package com.evrencoskun.tableview.filter; - -public class FilterException extends Exception { - - public FilterException() { - super("Error in searching from table."); - } - - public FilterException(String column, String query) { - super("Error searching " + query + " in column " + column + " of table. Column contents " - + "are not of class " + String.class.getCanonicalName()); - } -} diff --git a/tableview/src/main/java/com/evrencoskun/tableview/sort/RowHeaderSortHelper.java b/tableview/src/main/java/com/evrencoskun/tableview/sort/RowHeaderSortHelper.java index ec4c1f2f..c271130b 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/sort/RowHeaderSortHelper.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/sort/RowHeaderSortHelper.java @@ -35,13 +35,4 @@ public boolean isSorting() { public SortState getSortingStatus() { return mSortState; } - - public class TableViewSorterException extends Exception { - - public TableViewSorterException() { - super("For sorting process, column header view holders must be " + "extended from " + - "AbstractSorterViewHolder class"); - } - - } } From e11508d991a05f80d3c79948cd1fce312bcd0d67 Mon Sep 17 00:00:00 2001 From: evrencoskun Date: Mon, 6 Jan 2020 08:42:41 +0000 Subject: [PATCH 41/64] Listener used to ignore click action and calling the long press action. This problem has been fixed. --- .../itemclick/AbstractItemClickListener.java | 12 +++++++----- .../itemclick/CellRecyclerViewItemClickListener.java | 9 +++++---- .../ColumnHeaderRecyclerViewItemClickListener.java | 8 ++++---- .../RowHeaderRecyclerViewItemClickListener.java | 8 ++++---- 4 files changed, 20 insertions(+), 17 deletions(-) diff --git a/tableview/src/main/java/com/evrencoskun/tableview/listener/itemclick/AbstractItemClickListener.java b/tableview/src/main/java/com/evrencoskun/tableview/listener/itemclick/AbstractItemClickListener.java index 6b37bdb9..26dfb5de 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/listener/itemclick/AbstractItemClickListener.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/listener/itemclick/AbstractItemClickListener.java @@ -20,15 +20,15 @@ import android.view.GestureDetector; import android.view.MotionEvent; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; -import androidx.recyclerview.widget.RecyclerView; - import com.evrencoskun.tableview.ITableView; import com.evrencoskun.tableview.adapter.recyclerview.CellRecyclerView; import com.evrencoskun.tableview.handler.SelectionHandler; import com.evrencoskun.tableview.listener.ITableViewListener; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.recyclerview.widget.RecyclerView; + /** * Created by evrencoskun on 22.11.2017. */ @@ -84,7 +84,9 @@ public void onLongPress(MotionEvent e) { @Override public boolean onInterceptTouchEvent(@NonNull RecyclerView view, @NonNull MotionEvent e) { - return mGestureDetector.onTouchEvent(e); + mGestureDetector.onTouchEvent(e); + // Return false intentionally + return false; } @Override diff --git a/tableview/src/main/java/com/evrencoskun/tableview/listener/itemclick/CellRecyclerViewItemClickListener.java b/tableview/src/main/java/com/evrencoskun/tableview/listener/itemclick/CellRecyclerViewItemClickListener.java index 2cbf4bff..bc8e0221 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/listener/itemclick/CellRecyclerViewItemClickListener.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/listener/itemclick/CellRecyclerViewItemClickListener.java @@ -20,14 +20,14 @@ import android.view.MotionEvent; import android.view.View; -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; - import com.evrencoskun.tableview.ITableView; import com.evrencoskun.tableview.adapter.recyclerview.CellRecyclerView; import com.evrencoskun.tableview.adapter.recyclerview.CellRowRecyclerViewAdapter; import com.evrencoskun.tableview.adapter.recyclerview.holder.AbstractViewHolder; +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; + /** * Created by evrencoskun on 26/09/2017. */ @@ -46,7 +46,7 @@ protected boolean clickAction(@NonNull RecyclerView view, @NonNull MotionEvent e // Get interacted view from x,y coordinate. View childView = view.findChildViewUnder(e.getX(), e.getY()); - if (childView != null && mGestureDetector.onTouchEvent(e)) { + if (childView != null) { // Find the view holder AbstractViewHolder holder = (AbstractViewHolder) mRecyclerView.getChildViewHolder (childView); @@ -71,6 +71,7 @@ protected boolean clickAction(@NonNull RecyclerView view, @NonNull MotionEvent e return false; } + @Override protected void longPressAction(@NonNull MotionEvent e) { // Consume the action for the time when either the cell row recyclerView or // the cell recyclerView is scrolling. diff --git a/tableview/src/main/java/com/evrencoskun/tableview/listener/itemclick/ColumnHeaderRecyclerViewItemClickListener.java b/tableview/src/main/java/com/evrencoskun/tableview/listener/itemclick/ColumnHeaderRecyclerViewItemClickListener.java index cdac9ad7..83769b86 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/listener/itemclick/ColumnHeaderRecyclerViewItemClickListener.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/listener/itemclick/ColumnHeaderRecyclerViewItemClickListener.java @@ -20,13 +20,13 @@ import android.view.MotionEvent; import android.view.View; -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; - import com.evrencoskun.tableview.ITableView; import com.evrencoskun.tableview.adapter.recyclerview.CellRecyclerView; import com.evrencoskun.tableview.adapter.recyclerview.holder.AbstractViewHolder; +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; + /** * Created by evrencoskun on 26/09/2017. */ @@ -44,7 +44,7 @@ protected boolean clickAction(@NonNull RecyclerView view, @NonNull MotionEvent e // Get interacted view from x,y coordinate. View childView = view.findChildViewUnder(e.getX(), e.getY()); - if (childView != null && mGestureDetector.onTouchEvent(e)) { + if (childView != null) { // Find the view holder AbstractViewHolder holder = (AbstractViewHolder) mRecyclerView.getChildViewHolder (childView); diff --git a/tableview/src/main/java/com/evrencoskun/tableview/listener/itemclick/RowHeaderRecyclerViewItemClickListener.java b/tableview/src/main/java/com/evrencoskun/tableview/listener/itemclick/RowHeaderRecyclerViewItemClickListener.java index 2955fdc8..4f972d3c 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/listener/itemclick/RowHeaderRecyclerViewItemClickListener.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/listener/itemclick/RowHeaderRecyclerViewItemClickListener.java @@ -20,13 +20,13 @@ import android.view.MotionEvent; import android.view.View; -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; - import com.evrencoskun.tableview.ITableView; import com.evrencoskun.tableview.adapter.recyclerview.CellRecyclerView; import com.evrencoskun.tableview.adapter.recyclerview.holder.AbstractViewHolder; +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; + /** * Created by evrencoskun on 26/09/2017. */ @@ -43,7 +43,7 @@ protected boolean clickAction(@NonNull RecyclerView view, @NonNull MotionEvent e // Get interacted view from x,y coordinate. View childView = view.findChildViewUnder(e.getX(), e.getY()); - if (childView != null && mGestureDetector.onTouchEvent(e)) { + if (childView != null) { // Find the view holder AbstractViewHolder holder = (AbstractViewHolder) mRecyclerView.getChildViewHolder (childView); From 004aab94fad4ccebdbd602397511fb49bfedbd74 Mon Sep 17 00:00:00 2001 From: evrencoskun Date: Mon, 6 Jan 2020 08:50:40 +0000 Subject: [PATCH 42/64] Use generics types in ITableAdapter contract --- .../tableview/TableViewAdapter.java | 25 ++++++++----------- .../tableview/adapter/ITableAdapter.java | 15 +++++------ 2 files changed, 17 insertions(+), 23 deletions(-) diff --git a/app/src/main/java/com/evrencoskun/tableviewsample/tableview/TableViewAdapter.java b/app/src/main/java/com/evrencoskun/tableviewsample/tableview/TableViewAdapter.java index a09a2a8e..4932b071 100644 --- a/app/src/main/java/com/evrencoskun/tableviewsample/tableview/TableViewAdapter.java +++ b/app/src/main/java/com/evrencoskun/tableviewsample/tableview/TableViewAdapter.java @@ -22,9 +22,6 @@ import android.view.View; import android.view.ViewGroup; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - import com.evrencoskun.tableview.adapter.AbstractTableAdapter; import com.evrencoskun.tableview.adapter.recyclerview.holder.AbstractViewHolder; import com.evrencoskun.tableview.sort.SortState; @@ -38,6 +35,9 @@ import com.evrencoskun.tableviewsample.tableview.model.ColumnHeader; import com.evrencoskun.tableviewsample.tableview.model.RowHeader; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + /** * Created by evrencoskun on 11/06/2017. *

@@ -113,27 +113,26 @@ public AbstractViewHolder onCreateCellViewHolder(@NonNull ViewGroup parent, int * @see #onCreateCellViewHolder(ViewGroup, int) ; */ @Override - public void onBindCellViewHolder(@NonNull AbstractViewHolder holder, @Nullable Object cellItemModel, int + public void onBindCellViewHolder(@NonNull AbstractViewHolder holder, @Nullable Cell cellItemModel, int columnPosition, int rowPosition) { - Cell cell = (Cell) cellItemModel; switch (holder.getItemViewType()) { case MOOD_CELL_TYPE: MoodCellViewHolder moodViewHolder = (MoodCellViewHolder) holder; - moodViewHolder.cell_image.setImageResource(mTableViewModel.getDrawable((int) cell + moodViewHolder.cell_image.setImageResource(mTableViewModel.getDrawable((int) cellItemModel .getData(), false)); break; case GENDER_CELL_TYPE: GenderCellViewHolder genderViewHolder = (GenderCellViewHolder) holder; genderViewHolder.cell_image.setImageResource(mTableViewModel.getDrawable((int) - cell.getData(), true)); + cellItemModel.getData(), true)); break; default: // Get the holder to update cell item text CellViewHolder viewHolder = (CellViewHolder) holder; - viewHolder.setCell(cell); + viewHolder.setCell(cellItemModel); break; } } @@ -175,13 +174,12 @@ public AbstractViewHolder onCreateColumnHeaderViewHolder(@NonNull ViewGroup pare * @see #onCreateColumnHeaderViewHolder(ViewGroup, int) ; */ @Override - public void onBindColumnHeaderViewHolder(@NonNull AbstractViewHolder holder, @Nullable Object + public void onBindColumnHeaderViewHolder(@NonNull AbstractViewHolder holder, @Nullable ColumnHeader columnHeaderItemModel, int columnPosition) { - ColumnHeader columnHeader = (ColumnHeader) columnHeaderItemModel; // Get the holder to update cell item text ColumnHeaderViewHolder columnHeaderViewHolder = (ColumnHeaderViewHolder) holder; - columnHeaderViewHolder.setColumnHeader(columnHeader); + columnHeaderViewHolder.setColumnHeader(columnHeaderItemModel); } /** @@ -219,13 +217,12 @@ public AbstractViewHolder onCreateRowHeaderViewHolder(@NonNull ViewGroup parent, * @see #onCreateRowHeaderViewHolder(ViewGroup, int) ; */ @Override - public void onBindRowHeaderViewHolder(@NonNull AbstractViewHolder holder, @Nullable Object rowHeaderItemModel, + public void onBindRowHeaderViewHolder(@NonNull AbstractViewHolder holder, @Nullable RowHeader rowHeaderItemModel, int rowPosition) { - RowHeader rowHeader = (RowHeader) rowHeaderItemModel; // Get the holder to update row header item text RowHeaderViewHolder rowHeaderViewHolder = (RowHeaderViewHolder) holder; - rowHeaderViewHolder.row_header_textview.setText(String.valueOf(rowHeader.getData())); + rowHeaderViewHolder.row_header_textview.setText(String.valueOf(rowHeaderItemModel.getData())); } @NonNull diff --git a/tableview/src/main/java/com/evrencoskun/tableview/adapter/ITableAdapter.java b/tableview/src/main/java/com/evrencoskun/tableview/adapter/ITableAdapter.java index 1209d1b2..6e414d3a 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/adapter/ITableAdapter.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/adapter/ITableAdapter.java @@ -20,12 +20,12 @@ import android.view.View; import android.view.ViewGroup; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - import com.evrencoskun.tableview.ITableView; import com.evrencoskun.tableview.adapter.recyclerview.holder.AbstractViewHolder; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + /** * Created by evrencoskun on 10/06/2017. */ @@ -43,20 +43,17 @@ public interface ITableAdapter { @NonNull AbstractViewHolder onCreateCellViewHolder(@NonNull ViewGroup parent, int viewType); - void onBindCellViewHolder(@NonNull AbstractViewHolder holder, @Nullable Object cellItemModel, int - columnPosition, int rowPosition); + void onBindCellViewHolder(@NonNull AbstractViewHolder holder, @Nullable C cellItemModel, int columnPosition, int rowPosition); @NonNull AbstractViewHolder onCreateColumnHeaderViewHolder(@NonNull ViewGroup parent, int viewType); - void onBindColumnHeaderViewHolder(@NonNull AbstractViewHolder holder, @Nullable Object columnHeaderItemModel, - int columnPosition); + void onBindColumnHeaderViewHolder(@NonNull AbstractViewHolder holder, @Nullable CH columnHeaderItemModel, int columnPosition); @NonNull AbstractViewHolder onCreateRowHeaderViewHolder(@NonNull ViewGroup parent, int viewType); - void onBindRowHeaderViewHolder(@NonNull AbstractViewHolder holder, @Nullable Object rowHeaderItemModel, int - rowPosition); + void onBindRowHeaderViewHolder(@NonNull AbstractViewHolder holder, @Nullable RH rowHeaderItemModel, int rowPosition); @NonNull View onCreateCornerView(@NonNull ViewGroup parent); From 5c3b986863432d399387452db47c8546047feaa5 Mon Sep 17 00:00:00 2001 From: evrencoskun Date: Tue, 7 Jan 2020 00:35:07 +0000 Subject: [PATCH 43/64] Updating Contributors --- CONTRIBUTORS.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md index ff2640ea..3ad97b69 100644 --- a/CONTRIBUTORS.md +++ b/CONTRIBUTORS.md @@ -6,6 +6,11 @@ TableView contributors (sorted alphabetically) * Add a new functionality that is filtering. * Add a new functionality that is pagination. +* **[MGaetan89](https://github.com/MGaetan89)** + + * Add `@NonNull` and `@Nullable` annotations where possible + * Migrate to AndroidX + * **[sonique6784](https://github.com/sonique6784)** * Add an option to disable shadow From 07d5a338a6091165ad8d235306404c6421bf223a Mon Sep 17 00:00:00 2001 From: evrencoskun Date: Tue, 7 Jan 2020 01:13:43 +0000 Subject: [PATCH 44/64] 0.8.9 version has been released. --- README.md | 2 +- build.gradle | 2 +- tableview/build.gradle | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index ef8a2f2e..aa34f412 100644 --- a/README.md +++ b/README.md @@ -69,7 +69,7 @@ To use this library in your android project, just simply add the following depen ``` dependencies { - compile 'com.evrencoskun.library:tableview:0.8.8' + compile 'com.evrencoskun.library:tableview:0.8.9' } ``` diff --git a/build.gradle b/build.gradle index 88110848..4477161a 100644 --- a/build.gradle +++ b/build.gradle @@ -34,7 +34,7 @@ buildscript { } dependencies { - classpath 'com.android.tools.build:gradle:3.5.2' + classpath 'com.android.tools.build:gradle:3.5.3' classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.8.4' classpath 'com.github.dcendents:android-maven-gradle-plugin:2.1' classpath 'com.novoda:bintray-release:0.9.1' diff --git a/tableview/build.gradle b/tableview/build.gradle index 3ae88205..1e799667 100644 --- a/tableview/build.gradle +++ b/tableview/build.gradle @@ -51,7 +51,7 @@ publish { userOrg = 'evrencoskun' //user name of bintray.com groupId = 'com.evrencoskun.library' //jcenter's url artifactId = 'tableview' //project name - publishVersion = '0.8.8' //version code + publishVersion = '0.8.9' //version code desc = 'TableView is a powerful Android library for displaying complex data structures and rendering tabular data composed of rows, columns and cells.' website = 'https://github.com/evrencoskun/TableView' //website } From f17cfb077cb52d909e51e6e0b9c2ef849e38c15c Mon Sep 17 00:00:00 2001 From: evrencoskun Date: Tue, 7 Jan 2020 01:15:18 +0000 Subject: [PATCH 45/64] 0.8.9 version has been released. --- .github/FUNDING.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index 779dc525..1ece59df 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -1,6 +1,6 @@ # These are supported funding model platforms -github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] +github: [evrencoskun] # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] patreon: # Replace with a single Patreon username open_collective: # Replace with a single Open Collective username ko_fi: # Replace with a single Ko-fi username From fc4b49786b16f2227c7c283adca383779ccd5c1a Mon Sep 17 00:00:00 2001 From: evrencoskun Date: Fri, 10 Jan 2020 20:16:00 +0000 Subject: [PATCH 46/64] Bug fix of #276 --- .../tableview/handler/VisibilityHandler.java | 73 +++++++++++++++---- 1 file changed, 57 insertions(+), 16 deletions(-) diff --git a/tableview/src/main/java/com/evrencoskun/tableview/handler/VisibilityHandler.java b/tableview/src/main/java/com/evrencoskun/tableview/handler/VisibilityHandler.java index b2ddc2b0..16fce4ae 100644 --- a/tableview/src/main/java/com/evrencoskun/tableview/handler/VisibilityHandler.java +++ b/tableview/src/main/java/com/evrencoskun/tableview/handler/VisibilityHandler.java @@ -20,13 +20,13 @@ import android.util.Log; import android.util.SparseArray; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - import com.evrencoskun.tableview.ITableView; import java.util.List; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + /** * Created by evrencoskun on 24.12.2017. */ @@ -46,11 +46,17 @@ public VisibilityHandler(@NonNull ITableView tableView) { } public void hideRow(int row) { - // add row the list - mHideRowList.put(row, getRowValueFromPosition(row)); + int viewRow = convertIndexToViewIndex(row, mHideRowList); + + if (mHideRowList.get(row) == null) { + // add row the list + mHideRowList.put(row, getRowValueFromPosition(row)); - // remove row model from adapter - mTableView.getAdapter().removeRow(row); + // remove row model from adapter + mTableView.getAdapter().removeRow(viewRow); + } else { + Log.e(LOG_TAG, "This row is already hidden."); + } } public void showRow(int row) { @@ -62,8 +68,8 @@ private void showRow(int row, boolean removeFromList) { if (hiddenRow != null) { // add row model to the adapter - mTableView.getAdapter().addRow(row, hiddenRow.getRowHeaderModel(), hiddenRow - .getCellModelList()); + mTableView.getAdapter().addRow(row, hiddenRow.getRowHeaderModel(), + hiddenRow.getCellModelList()); } else { Log.e(LOG_TAG, "This row is already visible."); } @@ -91,11 +97,17 @@ public boolean isRowVisible(int row) { } public void hideColumn(int column) { - // add column the list - mHideColumnList.put(column, getColumnValueFromPosition(column)); + int viewColumn = convertIndexToViewIndex(column, mHideColumnList); - // remove row model from adapter - mTableView.getAdapter().removeColumn(column); + if (mHideColumnList.get(column) == null) { + // add column the list + mHideColumnList.put(column, getColumnValueFromPosition(column)); + + // remove row model from adapter + mTableView.getAdapter().removeColumn(viewColumn); + } else { + Log.e(LOG_TAG, "This column is already hidden."); + } } public void showColumn(int column) { @@ -135,6 +147,34 @@ public boolean isColumnVisible(int column) { return mHideColumnList.get(column) == null; } + + /** + * Hiding row and column process needs to consider the hidden rows or columns with a smaller + * index to be able hide the correct index. + * + * @param index, stands for column or row index. + * @param list, stands for HideRowList or HideColumnList + */ + private int getSmallerHiddenCount(int index, SparseArray list) { + int count = 0; + for (int i = 0; i < index; i++) { + int key = list.keyAt(i); + // get the object by the key. + if (list.get(key) != null) { + count++; + } + } + return count; + } + + /** + * It converts model index to View index considering the previous hidden rows or columns. So, + * when we add or remove any item of RecyclerView, we need to view index. + */ + private int convertIndexToViewIndex(int index, SparseArray list) { + return index - getSmallerHiddenCount(index, list); + } + static class Row { private int mYPosition; @Nullable @@ -171,7 +211,8 @@ static class Column { @NonNull private List mCellModelList; - public Column(int yPosition, @Nullable Object columnHeaderModel, @NonNull List cellModelList) { + public Column(int yPosition, @Nullable Object columnHeaderModel, + @NonNull List cellModelList) { this.mYPosition = yPosition; this.mColumnHeaderModel = columnHeaderModel; this.mCellModelList = cellModelList; @@ -205,8 +246,8 @@ private Row getRowValueFromPosition(int row) { @NonNull private Column getColumnValueFromPosition(int column) { Object columnHeaderModel = mTableView.getAdapter().getColumnHeaderItem(column); - List cellModelList = (List) mTableView.getAdapter().getCellColumnItems - (column); + List cellModelList = + (List) mTableView.getAdapter().getCellColumnItems(column); return new Column(column, columnHeaderModel, cellModelList); } From 55c41d15fa3a2b9df598a790401b49ad88f32d91 Mon Sep 17 00:00:00 2001 From: evrencoskun Date: Wed, 15 Jan 2020 00:11:14 +0000 Subject: [PATCH 47/64] A sponsorship URL has been inserted. --- .github/FUNDING.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index 1ece59df..542703d2 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -6,4 +6,4 @@ open_collective: # Replace with a single Open Collective username ko_fi: # Replace with a single Ko-fi username tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry -custom: # Replace with a single custom sponsorship URL +custom: ['https://www.paypal.me/evrencoskun'] From 03c086481c9f2fdd056c06d19908102adcd23b52 Mon Sep 17 00:00:00 2001 From: evrencoskun Date: Wed, 15 Jan 2020 00:12:41 +0000 Subject: [PATCH 48/64] A sponsorship URL has been inserted. --- .github/FUNDING.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index 542703d2..ff6ca66b 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -1,6 +1,6 @@ # These are supported funding model platforms -github: [evrencoskun] # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] +github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] patreon: # Replace with a single Patreon username open_collective: # Replace with a single Open Collective username ko_fi: # Replace with a single Ko-fi username From 52f89ae9823d2cd3310fff615e719741c45727f9 Mon Sep 17 00:00:00 2001 From: evrencoskun Date: Wed, 15 Jan 2020 21:00:26 +0000 Subject: [PATCH 49/64] Documentation has been moved to the wiki page. --- .github/FUNDING.yml | 4 +- README.md | 917 +----------------- TableView-0_8_5_1.gif | Bin 7957410 -> 0 bytes TableView-landscape-static.gif | Bin 6877116 -> 0 bytes Logo-5.png => art/Logo-5.png | Bin .../TableView-0_8_5_1_2.gif | Bin art/structure.png | Bin 0 -> 860287 bytes 7 files changed, 20 insertions(+), 901 deletions(-) delete mode 100644 TableView-0_8_5_1.gif delete mode 100644 TableView-landscape-static.gif rename Logo-5.png => art/Logo-5.png (100%) rename TableView-0_8_5_1_2.gif => art/TableView-0_8_5_1_2.gif (100%) create mode 100644 art/structure.png diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index ff6ca66b..ad95dc9b 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -1,9 +1,9 @@ # These are supported funding model platforms github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] -patreon: # Replace with a single Patreon username +patreon: [evrencoskun] # Replace with a single Patreon username open_collective: # Replace with a single Open Collective username ko_fi: # Replace with a single Ko-fi username tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry -custom: ['https://www.paypal.me/evrencoskun'] +custom: ['https://www.paypal.me/evrencoshkun'] diff --git a/README.md b/README.md index aa34f412..89ccd44a 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@
- +

TableView For Android

TableView is a powerful Android library for displaying complex data structures and rendering tabular data composed of rows, columns and cells. @@ -14,7 +14,7 @@

- +

@@ -34,31 +34,10 @@ You can check new implementations of TableView on the [release page](https://git ## Table of Contents - [Installation](#installation) - - [Implement your item on TableView](#implement-your-item-on-tableview) - - [1. Create your TableView](#1-create-your-tableview) - - [XML](#xml) - - [Programmatically](#programmatically) - - [2. Create your TableViewAdapter](#2-create-your-tableviewadapter) - - [3. Set the Adapter to the TableView](#3-set-the-adapter-to-the-tableview) - - [4. Set Click listener to the TableView](#4-set-click-listener-to-the-tableview) - - [Sorting](#sorting) - - [1. ISortableModel to your Cell Model](#1-isortablemodel-to-your-cell-model) - - [2. AbstractSorterViewHolder to your Column Header ViewHolder](#2-abstractsorterviewholder-to-your-column-header-viewholder) - - [3. Helper methods for sorting process](#3-helper-methods-for-sorting-process) - - [Filtering](#filtering) - - [Steps to implement filtering functionality into TableView](#steps-to-implement-filtering-functionality-into-tableview) - - [Filtering notes](#filtering-notes) - - [Pagination](#pagination) - - [Steps to implement pagination functionality into TableView](#steps-to-implement-pagination-functionality-into-tableview) - - [Creating views to control the Pagination](#creating-views-to-control-the-pagination) - - [Implementation of the pagination](#implementation-of-the-pagination) - - [Pagination notes](#pagination-notes) - - [Change your TableView model](#change-your-tableview-model) - - [Hiding & Showing the Row](#hiding--showing-the-row) - - [Hiding & Showing the Column](#hiding--showing-the-column) + - [Documentation](#documentation) - [Advanced Usage](#advanced-usage) - [Sample Apps](#sample-apps) - - [Articles](#Articles) + - [Donations](#donations) - [Communication](#communication) - [Contributors](#contributors) - [License](#license) @@ -73,891 +52,31 @@ dependencies { } ``` -## Implement your item on TableView +## Documentation -### 1. Create your TableView +Please check out [wiki page](https://github.com/evrencoskun/TableView/wiki). -#### XML -``` - -``` - -As default constants can be set programmatically, it can be set by also using xml attributes of TableView like this: - -``` - -``` - -**Note:** To be able use these attributes on xml side, the **xmlns:** namespace below line should be added on layout root view. Otherwise, Android Studio gives you compile error. - -``` -xmlns:app="http://schemas.android.com/apk/res-auto" -``` - -#### Programmatically - -``` -TableView tableView = new TableView(getContext()); -``` - -### 2. Create your TableViewAdapter - -Firstly, you must create your custom TableView Adapter which extends from ```AbstractTableAdapter``` class. - ```AbstractTableAdapter``` class requires 3 different lists which represent respectively; **ColumnHeader**, **RowHeader** and **Cell** ViewModels. - -**For example:** - -```java - public class MyTableViewAdapter extends AbstractTableAdapter { - - /** - * This is sample CellViewHolder class - * This viewHolder must be extended from AbstractViewHolder class instead of RecyclerView.ViewHolder. - */ - class MyCellViewHolder extends AbstractViewHolder { - - public final TextView cell_textview; - - public MyCellViewHolder(View itemView) { - super(itemView); - cell_textview = (TextView) itemView.findViewById(R.id.cell_data); - } - } - - - /** - * This is where you create your custom Cell ViewHolder. This method is called when Cell - * RecyclerView of the TableView needs a new RecyclerView.ViewHolder of the given type to - * represent an item. - * - * @param viewType : This value comes from #getCellItemViewType method to support different type - * of viewHolder as a Cell item. - * - * @see #getCellItemViewType(int); - */ - @Override - public AbstractViewHolder onCreateCellViewHolder(ViewGroup parent, int viewType) { - // Get cell xml layout - View layout = LayoutInflater.from(parent.getContext()) - .inflate(R.layout.my_cell_layout, parent, false); - // Create a Custom ViewHolder for a Cell item. - return new MyCellViewHolder(layout); - } - - /** - * That is where you set Cell View Model data to your custom Cell ViewHolder. This method is - * Called by Cell RecyclerView of the TableView to display the data at the specified position. - * This method gives you everything you need about a cell item. - * - * @param holder : This is one of your cell ViewHolders that was created on - * ```onCreateCellViewHolder``` method. In this example we have created - * "MyCellViewHolder" holder. - * @param cellItemModel : This is the cell view model located on this X and Y position. In this - * example, the model class is "Cell". - * @param columnPosition : This is the X (Column) position of the cell item. - * @param rowPosition : This is the Y (Row) position of the cell item. - * - * @see #onCreateCellViewHolder(ViewGroup, int); - */ - @Override - public void onBindCellViewHolder(AbstractViewHolder holder, Object cellItemModel, int - columnPosition, int rowPosition) { - Cell cell = (Cell) cellItemModel; - - // Get the holder to update cell item text - MyCellViewHolder viewHolder = (MyCellViewHolder) holder; - viewHolder.cell_textview.setText(cell.getData()); - - // If your TableView should have auto resize for cells & columns. - // Then you should consider the below lines. Otherwise, you can ignore them. - - // It is necessary to remeasure itself. - viewHolder.ItemView.getLayoutParams().width = LinearLayout.LayoutParams.WRAP_CONTENT; - viewHolder.cell_textview.requestLayout(); - } - - - /** - * This is sample CellViewHolder class. - * This viewHolder must be extended from AbstractViewHolder class instead of RecyclerView.ViewHolder. - */ - class MyColumnHeaderViewHolder extends AbstractViewHolder { - - public final TextView cell_textview; - - public MyColumnHeaderViewHolder(View itemView) { - super(itemView); - cell_textview = (TextView) itemView.findViewById(R.id.cell_data); - } - } - - /** - * This is where you create your custom Column Header ViewHolder. This method is called when - * Column Header RecyclerView of the TableView needs a new RecyclerView.ViewHolder of the given - * type to represent an item. - * - * @param viewType : This value comes from "getColumnHeaderItemViewType" method to support - * different type of viewHolder as a Column Header item. - * - * @see #getColumnHeaderItemViewType(int); - */ - @Override - public AbstractViewHolder onCreateColumnHeaderViewHolder(ViewGroup parent, int viewType) { - - // Get Column Header xml Layout - View layout = LayoutInflater.from(parent.getContext()) - .inflate(R.layout.table_view_column_header_layout, parent, false); - - // Create a ColumnHeader ViewHolder - return new MyColumnHeaderViewHolder(layout); - } - - /** - * That is where you set Column Header View Model data to your custom Column Header ViewHolder. - * This method is Called by ColumnHeader RecyclerView of the TableView to display the data at - * the specified position. This method gives you everything you need about a column header - * item. - * - * @param holder : This is one of your column header ViewHolders that was created on - * ```onCreateColumnHeaderViewHolder``` method. In this example we have created - * "MyColumnHeaderViewHolder" holder. - * @param columnHeaderItemModel : This is the column header view model located on this X position. In this - * example, the model class is "ColumnHeader". - * @param position : This is the X (Column) position of the column header item. - * - * @see #onCreateColumnHeaderViewHolder(ViewGroup, int) ; - */ - @Override - public void onBindColumnHeaderViewHolder(AbstractViewHolder holder, Object columnHeaderItemModel, int - position) { - ColumnHeader columnHeader = (ColumnHeader) columnHeaderItemModel; - - // Get the holder to update cell item text - MyColumnHeaderViewHolder columnHeaderViewHolder = (MyColumnHeaderViewHolder) holder; - columnHeaderViewHolder.column_header_textview.setText(columnHeader.getData()); - - // If your TableView should have auto resize for cells & columns. - // Then you should consider the below lines. Otherwise, you can ignore them. - - // It is necessary to remeasure itself. - columnHeaderViewHolder.column_header_container.getLayoutParams().width = LinearLayout - .LayoutParams.WRAP_CONTENT; - columnHeaderViewHolder.column_header_textview.requestLayout(); - } - - /** - * This is sample CellViewHolder class. - * This viewHolder must be extended from AbstractViewHolder class instead of RecyclerView.ViewHolder. - */ - class MyRowHeaderViewHolder extends AbstractViewHolder { - - public final TextView cell_textview; - - public MyRowHeaderViewHolder(View itemView) { - super(itemView); - cell_textview = (TextView) itemView.findViewById(R.id.cell_data); - } - } - - - /** - * This is where you create your custom Row Header ViewHolder. This method is called when - * Row Header RecyclerView of the TableView needs a new RecyclerView.ViewHolder of the given - * type to represent an item. - * - * @param viewType : This value comes from "getRowHeaderItemViewType" method to support - * different type of viewHolder as a row Header item. - * - * @see #getRowHeaderItemViewType(int); - */ - @Override - public AbstractViewHolder onCreateRowHeaderViewHolder(ViewGroup parent, int viewType) { - - // Get Row Header xml Layout - View layout = LayoutInflater.from(parent.getContext()) - .inflate(R.layout.table_view_row_header_layout, parent, false); - - // Create a Row Header ViewHolder - return new MyRowHeaderViewHolder(layout); - } - - - /** - * That is where you set Row Header View Model data to your custom Row Header ViewHolder. This - * method is Called by RowHeader RecyclerView of the TableView to display the data at the - * specified position. This method gives you everything you need about a row header item. - * - * @param holder : This is one of your row header ViewHolders that was created on - * ```onCreateRowHeaderViewHolder``` method. In this example we have created - * "MyRowHeaderViewHolder" holder. - * @param rowHeaderItemModel : This is the row header view model located on this Y position. In this - * example, the model class is "RowHeader". - * @param position : This is the Y (row) position of the row header item. - * - * @see #onCreateRowHeaderViewHolder(ViewGroup, int) ; - */ - @Override - public void onBindRowHeaderViewHolder(AbstractViewHolder holder, Object rowHeaderItemModel, int - position) { - RowHeader rowHeader = (RowHeader) rowHeaderItemModel; - - // Get the holder to update row header item text - MyRowHeaderViewHolder rowHeaderViewHolder = (MyRowHeaderViewHolder) holder; - rowHeaderViewHolder.row_header_textview.setText(rowHeader.getData()); - } - - @Override - public View onCreateCornerView(ViewGroup parent) { - // Get Corner xml layout - return LayoutInflater.from(parent.getContext()) - .inflate(R.layout.table_view_corner_layout, parent, false); - } - - @Override - public int getColumnHeaderItemViewType(int columnPosition) { - // The unique ID for this type of column header item - // If you have different items for Cell View by X (Column) position, - // then you should fill this method to be able create different - // type of CellViewHolder on "onCreateCellViewHolder" - return 0; - } - - @Override - public int getRowHeaderItemViewType(int rowPosition) { - // The unique ID for this type of row header item - // If you have different items for Row Header View by Y (Row) position, - // then you should fill this method to be able create different - // type of RowHeaderViewHolder on "onCreateRowHeaderViewHolder" - return 0; - } - - @Override - public int getCellItemViewType(int columnPosition) { - // The unique ID for this type of cell item - // If you have different items for Cell View by X (Column) position, - // then you should fill this method to be able create different - // type of CellViewHolder on "onCreateCellViewHolder" - return 0; - } - } -``` - -### 3. Set the Adapter to the TableView - - > ```AbstractTableAdapter``` class requires 3 different lists which represent respectively; **ColumnHeader**, **RowHeader** and **Cell** ViewModels. - - Assuming that we have the 3 item lists below: - - ```java - private List mRowHeaderList; - private List mColumnHeaderList; - private List> mCellList; - ``` -Setting data using our TableView adapter like this: - - ```java - TableView tableView = new TableView(getContext()); - - // Create our custom TableView Adapter - MyTableViewAdapter adapter = new MyTableViewAdapter(getContext()); - - // Set this adapter to the our TableView - tableView.setAdapter(adapter); - - // Let's set datas of the TableView on the Adapter - adapter.setAllItems(mColumnHeaderList, mRowHeaderList, mCellList); - ``` - - ### 4. Set Click listener to the TableView - - ```java - public class MyTableViewListener implements ITableViewListener { - - /** - * Called when user click any cell item. - * - * @param cellView : Clicked Cell ViewHolder. - * @param columnPosition : X (Column) position of Clicked Cell item. - * @param rowPosition : Y (Row) position of Clicked Cell item. - */ - @Override - public void onCellClicked(@NonNull RecyclerView.ViewHolder cellView, int columnPosition, int - rowPosition) { - // Do what you want. - } - - /** - * Called when user long press any cell item. - * - * @param cellView : Long Pressed Cell ViewHolder. - * @param column : X (Column) position of Long Pressed Cell item. - * @param row : Y (Row) position of Long Pressed Cell item. - */ - @Override - public void onCellLongPressed(@NonNull RecyclerView.ViewHolder cellView, int column, int row) { - // Do What you want - } - - /** - * Called when user click any column header item. - * - * @param columnHeaderView : Clicked Column Header ViewHolder. - * @param columnPosition : X (Column) position of Clicked Column Header item. - */ - @Override - public void onColumnHeaderClicked(@NonNull RecyclerView.ViewHolder columnHeaderView, int - columnPosition) { - // Do what you want. - } - - /** - * Called when user click any column header item. - * - * @param columnHeaderView : Long pressed Column Header ViewHolder. - * @param columnPosition : X (Column) position of Clicked Column Header item. - * @version 0.8.5.1 - */ - @Override - public void onColumnHeaderLongPressed(@NonNull RecyclerView.ViewHolder columnHeaderView, int - columnPosition) { - // Do what you want. - } - - /** - * Called when user click any Row Header item. - * - * @param rowHeaderView : Clicked Row Header ViewHolder. - * @param rowPosition : Y (Row) position of Clicked Row Header item. - */ - @Override - public void onRowHeaderClicked(@NonNull RecyclerView.ViewHolder rowHeaderView, int - rowPosition) { - // Do what you want. - - } - - /** - * Called when user click any Row Header item. - * - * @param rowHeaderView : Long pressed Row Header ViewHolder. - * @param rowPosition : Y (Row) position of Clicked Row Header item. - * @version 0.8.5.1 - */ - @Override - public void onRowHeaderLongPressed(@NonNull RecyclerView.ViewHolder rowHeaderView, int - rowPosition) { - // Do what you want. - - } - } -``` - -Setting the listener to the TableView - -```java - tableView.setTableViewListener(new MyTableViewListener()); -``` - -## Sorting - -TableView has a sorting functionality with 0.8.5.1 version. TableView does not store or copy the data in its TableModel; -instead it maintains a map from the row indexes of the view to the row indexes of the model. - -### 1. ISortableModel to your Cell Model - -To be able use this feature on your TableView. You have to implement **ISortableModel** to your Cell Model. This interface -wants two methods from your cell model. These are: - -- To compare sorted items ordered by normal items in terms of "**are _items_ the same**": -```java - String getId() -``` - -- To compare sorted items ordered by normal items in terms of "**are _contents_ the same**": -```java - Object getContent() -``` - -As you seen getContent value returns Object. TableView controls the type of the object. And It sorts by considering to the type of class. -So you can sort any type of value. Such as; - -- **Number** -- **String** -- **Date** -- **Boolean** -- **Comparable** - -### 2. AbstractSorterViewHolder to your Column Header ViewHolder - -AbstractSorterViewHolder helps to listen to change of sorting actions. So you can do whatever you want on any sorting state. - -- This interface method will be called after each sorting process. *Note* : It will be also called every recycling process. -```java - onSortingStatusChanged(SortState sortState) -``` -- This method gives current Sorting state: -```java - SortState getSortState() -``` - -#### Sorting States - -```java - /** - * Enumeration value indicating the items are sorted in increasing order. - * For example, the set 1, 4, 0 sorted in - * ASCENDING order is 0, 1, 4. - */ - ASCENDING, - - /** - * Enumeration value indicating the items are sorted in decreasing order. - * For example, the set 1, 4, 0 sorted in - * DESCENDING order is 4, 1, 0. - */ - DESCENDING, - - /** - * Enumeration value indicating the items are unordered. - * For example, the set 1, 4, 0 in - * UNSORTED order is 1, 4, 0. - */ - UNSORTED -``` - -### 3. Helper methods for sorting process - -Several helper methods have been inserted on TableView. These are: -- To **sort the TableView according to a specified column**: -```java - sortColumn(int column, SortState sortState) -``` -- To **get the current sorting state of a column**: -```java - SortState getSortingStatus(int column) -``` - -## Filtering - -As of version **0.8.6**, a **filtering** functionality has been added. ->Filtering, by definition and usage in this context, is displaying a subset of data into the TableView based on a given filter globally. on a specified column or combination. - -### Steps to implement filtering functionality into TableView - -1. Implement the **IFilterableModel** interface to your Cell Item Model. This interface would require you to implement the method ```getFilterableKeyword()```. -2. The ```getFilterableKeyword()``` requires a **String** value to be returned. Make sure that this item is unique for a specific filter and without conflict to other filter Strings. -3. Create a **Filter** instance passing the created TableView: -```java - ... - private TableView tableView; - private Filter tableViewFilter; - ... - @Override - protected void onCreate(Bundle savedInstanceState) { - ... - tableView = setUpTableView(); - tableViewFilter = new Filter(tableView); - ... - } - ... -``` -4. Filtering can be done for the whole table (global), for a specified column or combination. The filtering call is very easy to use once the **Filter** object is created: -```java - ... - public void filterWholeTable(String filterKeyword) { - tableViewFilter.set(filterKeyword); - } - - // assuming that Gender column is the 4th column in the TableView - public void filterTableForGender(String genderFilterKeyword) { - tableViewFilter.set(3, genderFilterKeyword); - } - - public void filterTableColumnForKeyword(int column, String keyword) { - tableViewFilter.set(column, keyword); - } - ... -``` - -#### Filtering notes - -1. For clearing a filter, just pass an **empty** String ("" **AND NOT ```null```**) to the ```set``` method. -```java - ... - public void clearWholeTableFilter() { - tableViewFilter.set(""); - } - - // assuming that Gender column is the 4th column in the TableView - public void clearFilterForGender() { - tableViewFilter.set(3, ""); - } - ... -``` -2. Multiple filtering combinations are supported such as COLUMN + WHOLE TABLE filter or MULTIPLE COLUMNS filter: e.g. "Happy" + "Boy" + all strings with a '-' character. -3. Based on step 2 of the implementation steps above, **FilterableKeyword** for different types of filters must be unique Strings **AND** no common substring. For instance, "**_male_**" and "**_female_**" should not be used together as filter keywords, since the method for processing filters uses ```String.contains(CharSequence s)```, the filtering process will return all data with **male** keyword, thus, **female** is also included in the filtered data set. Better use "boy" and "girl" or the _hashed_ values of your keyword Strings. -4. Advanced usage: **FilterChangedListener** is also available and can be implemented if you want to do something whenever the TableView is filtered. Public listener methods include: -```java - // FilterChangedListener implementation: - ... - tableView.getFilterHandler().addFilterChangedListener(filterChangedListener); - ... - - // The filterChangedListener variable: - private FilterChangedListener filterChangedListener = - new FilterChangedListener() { - /** - * Called when a filter has been changed. - * - * @param filteredCellItems The list of filtered cell items. - * @param filteredRowHeaderItems The list of filtered row items. - */ - @Override - public void onFilterChanged(List> filteredCellItems, List filteredRowHeaderItems) { - // do something here... - } - - /** - * Called when the TableView filters are cleared. - * - * @param originalCellItems The unfiltered cell item list. - * @param originalRowHeaderItems The unfiltered row header list. - */ - @Override - public void onFilterCleared(List> originalCellItems, List originalRowHeaderItems) { - // do something here... - } - }; -``` - -## Pagination - -As of version **0.8.6**, a **pagination** functionality has been added. ->Pagination, by definition and usage in this context, is the division of the whole set of data into subsets called pages and loading the data into the TableView page-by-page and not the whole data directly. This is useful if you have a large amount of data to be displayed. - -### Steps to implement pagination functionality into TableView - -##### Creating views to control the Pagination - -_Depending on your preference, you may not follow the following and create your own implementation._ -1. Create a layout with the following components: Two **Button** views to control next and previous page, a **Spinner** if you want to have a customized number of pagination (e.g. 10, 20, 50, All), an **EditText** to have a user input on which page s/he wants to go to, a **TextView** to display details (e.g. _Showing page X, items Y-Z_) -2. Asign the views with the controls and methods which are discussed below. - -##### Implementation of the pagination - -1. Create a **Pagination** instance passing the created TableView. -```java - ... - private TableView tableView; - private Pagination mPagination; - ... - @Override - protected void onCreate(Bundle savedInstanceState) { - ... - tableView = setUpTableView(); - mPagination = new Pagination(mTableView); - ... - } - ... - -``` - -- The Pagination class has three possible constructors: (1) passing the TableView instance only, (2) TableView and the initial ITEMS_PER_PAGE and (3) TableView, initial ITEMS_PER_PAGE and the OnTableViewPageTurnedListener. By default, if no ITEMS_PER_PAGE specified, the TableView will be paginated into **10** items per page. -```java - /** - * Basic constructor, TableView instance is required. - * - * @param tableView The TableView to be paginated. - */ - public Pagination(ITableView tableView) { ... } - - /** - * Applies pagination to the supplied TableView with number of items per page. - * - * @param tableView The TableView to be paginated. - * @param itemsPerPage The number of items per page. - */ - public Pagination(ITableView tableView, int itemsPerPage) { ... } - - /** - * Applies pagination to the supplied TableView with number of items per page and an - * OnTableViewPageTurnedListener for handling changes in the TableView pagination. - * - * @param tableView The TableView to be paginated. - * @param itemsPerPage The number of items per page. - * @param listener The OnTableViewPageTurnedListener for the TableView. - */ - public Pagination(ITableView tableView, int itemsPerPage, OnTableViewPageTurnedListener listener) { ... } -``` -2. **Loading the next page of items** into the TableView using the ```nextPage()``` method. You can assign this to your implementation of nextPageButton onClick action: -```java - ... - public void nextTablePage() { - mPagination.nextPage(); - } - ... -``` - -2. **Loading the previous page of items** into the TableView using the ```previousPage()``` method. You can assign this to your implementation of previousPageButton onClick action: -```java - ... - public void previousTablePage() { - mPagination.previousPage(); - } - ... -``` - -3. You can navigate through the pages by **going to a specific page directly** using the ```goToPage(int page)``` method. You can assign this to the EditText field TextChanged action (using TextWatcher): -```java - ... - public void goToTablePage(int page) { - mPagination.goToPage(page); - } - ... -``` - -4. You can customize and **set the number of items to be displayed per page** of the TableView using the ```setItemsPerPage(int itemsPerPage)``` method. You can assign this to your Spinner with the number of items per page list: -```java - ... - public void setTableItemsPerPage(int itemsPerPage) { - mPagination.setItemsPerPage(itemsPerPage); - } - ... -``` - -5. Advanced usage: A listener interface (**Pagination.OnTableViewPageTurnedListener**) can also be implemented if you want to do something everytime _a page is turned_ (e.g. previous, next, goToPage or change items per page action is called): -```java - ... - mPagination = new Pagination(mTableView); - mPagination.setOnTableViewPageTurnedListener(onTableViewPageTurnedListener); - ... - - private Pagination.OnTableViewPageTurnedListener onTableViewPageTurnedListener = - new Pagination.OnTableViewPageTurnedListener() { - /** - * Called when the page is changed in the TableView. - * - * @param numItems The number of items currently being displayed in the TableView. - * @param itemsStart The starting item currently being displayed in the TableView. - * @param itemsEnd The ending item currently being displayed in the TableView. - */ - @Override - public void onPageTurned(int numItems, int itemsStart, int itemsEnd) { - // Do something here... - // You can update a TextView to display details (e.g. Showing page X, items Y-Z) - } - }; - ... -``` - -#### Pagination notes -1. Other methods which can be used from Pagination: -```java - /** - * Removes the OnTableViewPageTurnedListener for this Pagination. - */ - void removeOnTableViewPageTurnedListener(); - - /** - * @return The current page loaded to the table view. - */ - int getCurrentPage(); - - /** - * @return The number of items per page loaded to the table view. - */ - int getItemsPerPage(); - - /** - * @return The number of pages in the pagination. - */ - int getPageCount(); - - /** - * @return Current pagination state of the table view. - */ - boolean isPaginated(); -``` - -2. Pagination and Filtering works seamlessly: Filter action <---> Paginate action, e.g. You filter for all "Boy" then paginate by 50 items per page OR You paginate by 25 items per page and go to a specific page and then filter all "Sad", etc. - -## Change your TableView model - -As of version **0.8.5.1**, TableView has some helper functions to change desired cell item model easily. These are the following: - -- To **add a row**: -```java - addRow(int rowPosition, YourRowHeaderModel rowHeaderItem, List cellItems) -``` - -- To **add a multiple rows**: -```java - addRowRange(int rowPositionStart, List rowHeaderItem, List> cellItems) -``` - -- To **remove a row**: -```java - removeRow(int rowPosition) -``` - -- To **remove multiple rows**: -```java - removeRowRange(int rowPositionStart, int itemCount) -``` - -- To **update a row header**: -```java - changeRowHeaderItem(int rowPosition, YourRowHeaderModel rowHeaderModel) -``` - -- To **update multiple row headers**: -```java - changeRowHeaderItemRange(int rowPositionStart, List rowHeaderModelList) -``` - -- To **update a cell item**: -```java - changeCellItem(int columnPosition, int rowPosition, YourCellItemModel cellModel) -``` - -- To **update a column header**: -```java - changeColumnHeader(int columnPosition, YourColumnHeaderModel columnHeaderModel) -``` - -- To **update multiple column headers**: -```java - changeColumnHeaderRange(int columnPositionStart, List columnHeaderModelList) -``` - -*Note:*[TableViewSample 2 app](https://github.com/evrencoskun/TableViewSample2) also shows usage of these helper methods. - -## Hiding & Showing the Row - -With 0.8.5.1 version, hiding and showing any of row is pretty easy for TableView. For that several helper methods have been inserted on TableView. - -- To **show** a row: -```java - showRow(int row) -``` - -- To **hide** the row: -```java - hideRow(int row) -``` - -- To **show all hidden** rows: -```java - showAllHiddenRows() -``` - -- TableView store a map that contains all hidden rows. This method for the time that is necessary to **clear the list of hidden** rows. -```java - clearHiddenRowList() -``` - -- To **check the visibility state** of a row: -```java - isRowVisible(int row) -``` - -## Hiding & Showing the Column - -With 0.8.5.5 version, hiding and showing any of column is pretty easy for TableView. For that several helper methods have been inserted on TableView. - -- To **show** a column: -```java - showColumn(int column) -``` - -- To **hide** a column: -```java - hideColumn(int column) -``` - -- To **show all hidden** columns -```java - showAllHiddenColumns() -``` - -- TableView store a map that contains all hidden columns. This method for the time that is necessary to **clear the list of hidden columns**. -```java - clearHiddenColumnList() -``` - -- To **check the visibility state** of a column: -```java - isColumnVisible(int column) -``` -## Advanced Usage - -- To recalculate the desired column. Sample app shows also its usage as well. - -```java - remeasureColumnWidth(int column); -``` - -- To ignore column width calculation for better performance, the below line can be used. - -```java - tableView.setHasFixedWidth(false); -``` - -- To ignore setting selection colors that are displayed by user interaction, the below line can be used. - -```java - tableView.setIgnoreSelectionColors(false); -``` - -- To show or hide separators of the TableView, you can simply use these helper methods. - -```java - setShowHorizontalSeparators(boolean showSeparators) -``` - -```java - setShowVerticalSeparators(boolean showSeparators) -``` +## Sample Apps -- There are 2 new helper methods to scroll desired column or row position programmatically. +- This repository has an Sample Application of TableView. +- [TableViewSample 2](https://github.com/evrencoskun/TableViewSample2) +- (contact me to mention your app on this page) -```java - scrollToColumnPosition(int column) -``` +## Donations -```java - scrollToRowPosition(int row) -``` +**This project needs you!** If you would like to support this project's further development, the creator of this project or the continuous maintenance of this project, **feel free to donate**. Your donation is highly appreciated (and I love food, coffee and beer). Thank you! -- With 0.8.8 version, Column width values can be set programatically using the below function. - -```java - setColumnWidth(int columnPosition, int width) -``` -## Sample Apps +**PayPal** -- This repository has an Sample Application of TableView. -- [TableViewSample 2](https://github.com/evrencoskun/TableViewSample2) -- (contact me to mention your app on this page) +- [**Donate 5 $**](https://www.paypal.me/evrencoshkun): Thank's for creating this project, here's a coffee (or some beer) for you! +- [**Donate 10 $**](https://www.paypal.me/evrencoshkun): Wow, I am stunned. Let me take you to the movies! +- [**Donate 15 $**](https://www.paypal.me/evrencoshkun): I really appreciate your work, let's grab some lunch! +- [**Donate 25 $**](https://www.paypal.me/evrencoshkun): That's some awesome stuff you did right there, dinner is on me! +- Or you can also [**choose what you want to donate**](https://www.paypal.me/evrencoshkun), all donations are awesome! -## Article -- Coming soon. ## Communication diff --git a/TableView-0_8_5_1.gif b/TableView-0_8_5_1.gif deleted file mode 100644 index bf9e9d43e6d6232f32938d7569781bd41a793246..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7957410 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 z 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ɖ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
_sU3`Ul4TzP_{Fhh2+5JUS2jJv zhdDgFofT7`W&X;T5z0L(xJ8)U5N#z`LjA5piQb~(c`_#ns$US|EJZ19!`&4S?PQ1= zn9Nl(-49N>aIyz@vaOd__(;(b7|R)AJdkDY4@Xp~ZE*%$Y9)j?;D~@NwRukr;T1bL zEj)O^+!!m5a9=&Qs>ko-=$jNb`KnHA=`CqdJ%r1EMVlljb(mBGw$%H1mXz#>1fA2D zH~MG1$y<)rl%eWgp{k_#h$qPrGAu7u)(>{9uOR>_u^Pr<8H90`+e)M6BRsj=w_aaR zZxy%QS^B5jjKN|nYr+Vz6sZJ={j3?90y>dLP!;TS<{^^QH*b_>YY3)XI2dh~of2DB z9VTC3%}At6Xk!8XRvBVIYNB)ha}a}4z&e@$>ztS6NfinZ+arQ9qOJ6GqM!l@-58^l)gklHe$gCrZsPzn|=-QX6^`|uuP>j^-40EhL$ zl!MZnobb)4m!Ho$GPkxCZ%x(w791-6fUC|g zcG2701on#F;&(|Av>BD^Gr3ibe)SB(Vl$=F07_{frU|OU=NiJK-gUQ3zYT_WZnN~3 zo=@bV

;Cj{V~Bp?~Q%Be|^)HBUTsvc}dPEtitV1qupmCG%Jf-bhbd;VU?@>Y>lF zL7~c|SYb+n;q%_4$hOg*wMtK$_W0S}`eiyBc}(NyN$C|_P;LZz(sbPMsBO`ck!?61 zp3I|p#fX&9amFd53}dba^gms~StQ~un7kdGCW^pZv0!Koyq2uAzT0o`?NWOqx;1T} z*z{xguJ328X1ng|nJsSjsQJU+dv$9X@B5lnxYWy6_FToGe>Y;HBpXCWk3KulaP_Qj zM)yr;v#mT_T0z&<6)pRMsNId!bCMLn^2<806xB&nXd%4wb9fQ!q^T@@f*CRLCfw&q z&yF9iJ2(=`4T{2yo1;)CF6jJnjkS00z;(hhS|3GWm0V7}avgVN%=tgftFDa0XB*ez zWCDvUi5*9R*kmReQt(M%ytUgaJvbL1C-8F|w&$d-=?{0hOuC#ZyE3^9E1O-NyB#Ztp2}5G>EtS~}s)JIi)B zb2YE83=^sO`|6<+k^8o4*^Kr4bh&Zguq~NQby{5L0XUAYZPS2nf1X*$xuKUm8$Bny zmAD_LdTwPdK6o8`8|ApoC;r|t>e$V^wcAx6rP7Y>-7yqdeCK#icTCd}j%4_P^V-I_ ztI5|UDi$9t`&%rzGqgcx?4k3cJGAoEmb^EECv8Vr z3U8fgSwihEzv0E`S45Fct59`POjWr5sf5*#xpPNKXr9l}v7<*1C>%O_dHb~clUk*o zx$zy>c6_?IL3Vn(T^GVlmVb5Qi>K`e);?La$OvLIrsr2*wr|yTxWjhpS*f=)^TIX4 zqw9deuHBg4mwj)wyw727DV+H9cQ#NrV){3ul=okFFL^p;F_!`f**)=y82Y2 z*i?Bn{a=NFx<7m~T_;2H5A==b67UTn0I}ff9gw)VgaW6i0faf>#ld0 zW3uvftyN3U*nTT-y@bDjVH|34c^Tf01Cgfxy#H3JzUDW?TQZpgMnQ7Q7JT^;t9AI_0bW=zthy zq$?gzc@mZOF8*v(=jIn92M!<1Sa)^%=kBt#YW($mxl8>jN#A1Q#CuiVEv3DOE`%R0 zH+fw>^|eLOCMjg`d*mqTfL*q_QG?2GSZn07!S)@l`*g0XKg}tuLhm2bw6;zEy-0EC zT9_HwtF?09)KAu3@d32}H~sE!^O1XwEdSXj`tf1v>W-z6zc=|Olz?cKADOG1=@rvCfSk|IxlRPf;mvASZJz$ih=%U5v2#}+6B`NS5gt`o-= zX=V(@?$OdUzqOvyp-AncZciPxkE!XLJbA3|J3;%fNWm|uzG$m$XhV3O&`T?wDe_^I`EZg? zbc9a&m6r}a!fG}wC#JNx*HVp7H5jBApFVk-m~#3|w=u1?VfgK7jn3)Z)Yj0s6yx(( zCx5>?-_-ouqy3hu^J8Uq*m;yZ;zmmEco1Y_1|rt&P4Aq{xRZW)dKW39Yj&Uixoj}V z$7pWk-+HR?v6r-|=gWxyrfWZ@_ipO_c;U{b>;L|d_)?@|0KX5rtd!qRw7AQ^K{#Jo zq_J@N&nLCyrmNWG9CVymPj~m?XS#5dy+>Q&cxl!!`TX891Ak6WeOkR_b$==}G@kJL z74%wnc=LU?75W@(7`HNd%xhVh%>xYe`{sv1D=C*)A46zI*j9rql)^emrPr;DE;eo= zYcTkNc6!bXW|NI?>}a6xb;`D>tR+YLOq&;GUmIMnYixP3D>dw(^14TXIWxZJw^YoO zX#L&xavy0xgOW^nbc1a-!MdRk>@#DbmDD!ls2$#x=}8Saa*X?5`PaJ#J(H+W8JBaF zHT&OozBtCkD;!zAeQocOLf%5Z;;OvQw-haYv2R=4&-*&?Qeo%)&O{c<-Epq%hJvSu z@W=SNCatia>+nL<<}t0wHJ`iyZ{YX4GaAm9gYq(O-h2I`d}X+BeW?4=(!V7|seDWp zpiLzRMX?lcigpv^$*^TU(nVh=@Zs7qj=V34nmmF}YV23(ws)hKe%h)0UIUnA70^zP z<_$R=B(2B0tFP-LKCROLS2p&lV!<(0;GU~J_fY#S>pG$Cq! zs;M}2HnTjZbo$7JmYWP_rd8mt@#pnJcrDRzj z-G0;{^L6Lth`H>hgtaQiAJ$lTu;DY&gO?JUFP=zC4Gxz)f1I&og!+!3+lFM9OD0f2 zGfzfOzfx{lUVQhPVaT>{AJNxignLPD*4wd;>#9x@T+;kjo9%wqY=50F@=~QqlzdwE zU+GDg7nXC?)qi6CO#Ak4O|-z7F9>P66#@)-0HqtT+?kMNCX`p2qaFQ2S|6WXkrykk zmFT;u?S%UNQ-;U43yFgaLpb`Ii~9TH#Owx9nZf2J{hg~0a{gP$IbX0Mw! zFDkGox*0Vufi=%sE^n?zB1Dv7{m`O`HaPLxNIiF|t z@Z!jU2Z!zSPqr)uzC7K0^W?qYs?q~mu_wL4`#9*9Rhy5p3MxX$tukfg436!^hUhvT z2c1#}p~U%u`A4O@oL1|*x3D6LqRr6p+MI~2UniocJ%|k&VznmT*i^SF-3U&L`;Y|5 zD@QTLZEXCMKB|=Yc{>ePpG+pd$Q7q;4?e~^TuaVC)k1DR#Qw?-RU z_wJvli-nE<-lLB1XwgjI!RpDayI-%Nidb9A7Gk2(gjv{$<^#RTfrF}V{DZ%lQ?3(| z7dGpYLAYxU-S{Sxjm)do0TPUv9Jzu0QtVv1q^JEu>g|9f0v(6Pa8o*-8sdD>A}@A@ zvbdF#xI^VkL}BN}qlV9ZysRBg{uXfAV=(b9_hztPY%liI^9Uy2buy)zs8Y|~OwbD- zzLaze*>^7Ie(5WlGqqPc%o-#29hoi+RoXuorpsv#sOXF6guQ><&0_L`+%5-hDT-01 zIK-ic{%#w~TzjX|F|w%$9R=H-nyoz1)<7#&0_y4=uB(|sUPB-(xg}jm5DC|)Ha*12 z0bvN1AGzx{9Ky4u>>|D9>3NL1?NXRk!d0pUJl6UVks*gbBON3N-35@2ixX6&5(?=Y zR(faBe8G%WlN>cq*xq^OnDJI;+7ggEujQ!dQmX=$l6lLLt)nQ5QGvn}DT1hI9& z3Uw2!@NPV`uXg_c;<$@9&Md{p_jg zs*fS?!ViuMj`N?(8O-$iDFoq7#f*wk9BdsV;_M24%&S{HS|OHflih7*y2}64 zgYa*~R%_*NV>7yw2Rlx}EXh25wMrDXnp3RP_=$0jdWnY-l{LQ>4t?w|9T zXTzL&g4g_O_-~>IKExdIY^#HF+V0UqMz=Cx(G=jnZP~#qU;&s`CO<(+Glv4Tk)H{c z`M0)z$rRE0@SFwt^N+Xlsa`^~sv*V=9VhHZffwNBgAS5aek7EDp6LBS-ke1VgyYl| zHSU`gn;w(x7WkQV7a5P9D~mF9l>6VMVPw6+;WtR2+=VZBUyO7CECrJZDXXX!aWhp1 zZw0q1GG)kd(p;{F6qG3N4iiE>Fb`FF|9&c8T70*AY4OwbrD9XmvNq?9Cn25JcB-L{ zhwRy>S9|&$a&^4C(cThqT7Wm=VXG{6qBD19vQdAnA>X$3$a>-g6p#oJyJdL5Cnr&N z;;49a2`UQ-Xmm`bP(8FEBp{TUjM#K)zpH1KG7iYgsWJ5iamU)-6!Dv!WxM=avi~fp z@Z95K7W>@%k_yAcg^?|VYX=Ksk_zAFXC(^sNL2i}iahI1ERs&>W|6HYP+1bvI84Zr zx@AcybrAkMmvpRQwOquW1fYyh`GWveK#Z*4Nf1(U;5g=1iiSAa`ZnXqXoe9)e9YYZ zgoO*bWJ32b0!)If160KnJGZH4Ic#o)p*>uRQ)UXf-j%}#GcdG`god+6npo|1ZRTK!n#-$IS1zC| zN6P_(oxY460>Ie-N`-JJI_@d}_AF?V6y+mDZ31Al8M{V`$l{YHFC*lyqEU4Dc|>N(Ak@7Oj1!7wm)MDyM+-QB^FOicFrs)(<4r>ht88l52^O7=TO6;F%{S zm&x~(``8Ca z@I)A`@(T6lwdrMy;C`5MhJca*5DX>`HFg|BC*0n%u2`;k$~B5nGGO9nyU14|(u9OK zI%ucB!s*u>JB0(qFm#cBtZX#-ZxQJ#tGa?kAhXcr5UIDVI&Z1NN6y_1qXwtgc>m9a z(9S3J0Z_|FjyaI>)rl$GIP?s$GLnXPwQk>L6dT5t%SdNt{-4}B#3P~*WKcoc&O3RC z1>J=qCoUd2Ljp4VbPj0~7opUKZ<7K5lVV4YmqSDouGn)1V51=T7paR+%wN|zks{Q!YZ+#`h|noOp1{hWWc10Z4LTN zs1^YImSZ-*d_T_aLjQn-(*02ta;W~v04`+*C<_D|4U(ZA7_Y-ZZW<+LNIl$S@riAS z92rRk!jfe8t2`u9NI)*dQZRJfSqHS<0&ZOCKxPG2X#o#pAW}jS0(AAn%1k3%CXIp% z_6Jf@4inYGBoKLs45|9w|FY;30Jv$}q$q2FQ%|?T8vs<9NC#FTDmWhZ8Q;Q10`5g@ zFeXeA^)-IKb0%mW#pC%Q2VX|By>_|(*l{HR$Y%?{BpnjS>t0b6fP}9Eds)y)c%S{R zdKcp(_HXeeqj;C7GZ-fRItwaOBlbuzN-Vi;9hCD41SY;0#&QAZ9=*7V2twZaB(+z1 zEdV4PPbUI~pkbU&>Vc52PZgOUeYbQv-L*u+F#g_x{5QqlgRmZOT_h7-wj?8^gY@B1 zbS6Z}=OGg+8Z24Zr!Z99MgcHFBs;LFf}Gg~NNxCwqljD?DW&adxx5>JN6S7zM#Ww& zmXYG6pj^5iv{5$01nB}+XQ4xhi!jkl!B9z#8lr6*Yu za+ySsg)ZBY=TIKB&(dA(37`G8M4EB2Yk=}C_&egg89lqDd~PEXyXwHOk9_Q z*u|$DkwS_9IXevWCD{Cu6mtg>mxY|uID!twKM|lUw95WCpmz!=o1|zZ?y<3__zWh> zCOHM0i=9}&#S}xnEcDwq%k||leK4&Ct-Y|6=(PYtYe~Rh^!hcMI2=7avj8oOYTL`C zpe?x^OPz`4bcHee6tC^qnqWI-rL0+Z86RYDDIW=>(Kb9;dS<5+t{jk@_*wZdl)!?D zu40`aQU!Mno`t&ylY$~oA~PG3{2?nJD98Q&~DvKsJ|6>X8-nkbjY2F+F3yfFiv$M1tzH)Ld3)PyQA2^ zQSy=#HXeX2+|w2O2EauumtZV=5ceR`rZ!xVKeCKKieJF>!lY>&NP?jkIZ%ZZ#QY}3 z^BY{A-s^S2{#!EKL9!(2OLEd{!G8YzcYkn}Y5VKjwgCzGustNKAS(b20mAi3Fv!nX zI$W?195=nGG4>WptwaZHg1*8qk>!C+RCYaa&DG&)L9x(ciMm=f_oA0o`^9)4i`r8;G zCr0rEo>zBgkT=f76Gl%W@JNJ$feiSJqH#QSDZsmHOE8&cj)za7gk&H&fwJT}I_nT` za-GIDDLQpvsUb8?v$u4lhB4&9M4tD@D=|rM59uz9E3P1E3TknP!BtCS@botdBkV#3 zw{4e^%6uW#2hw#JDaMbWBEcLcQTFrA<6GTzyS(o!IV4%K%ggxGn+df4R^E6Q?D?Hs=!CVUmFq zy@}V_#3V@s!!zEhL9%01MBtsa7wlknTXHV`OixyY`=giiwRH zMWccsG86l>4X?BWVI>d|$J~seHe8qgMUP@omLwvKzi=7XE5mY`?a6&sX8_TQO++R z7XRah>K=-{U-hLJ)qDL0lW&g$D`S5I2pWlNrci&4%2iVTd8Y zuwrmbUq~C?;YtBJVMH~HK;pJ3a>3@d25Xkr&biAPZSi5<>-i>7+q0Uw$d80E;E~_# z_zlID+#dXm9bLfwm+|b;2x){|SwCH4zS@Ow_TIbTYZ}u{fx|h~x<>FjBT(jpc@srpSlQcda)vn*g`5C~%qEK^DE? zR<)_J#{h3_M{H3mR|{x=70&qI&`{+4sxrm{YQd_dY9Jnrtw)(mD5ZMGU7e`<87KXdPX~9iCek-mVZCP{n8R4KQX=i5C#GJ=|0}t`fe_7uXZ^YlW zp%CcE!7cBt5}2*Kb{1`cZ4OYJo7JU|UUQDn&+eVC_BwnZeX(>Q*ouqIqy_UnI2-N(KzxI?asLsua~e*a$GAZLoe z*I@=Bums|KA(2|52<*>gz9hoX(pn#R{RmBozAQyAkOlyXaI0epp6W#ec%|IosLgZsJ>LbJgK~J&B z_7w?3I&~~*uI8ZrY6LxIuG&|PL)Gl7OwIN^Rb;W>5>F>+P9_R5z|abHPhB$>i`}5< zr53i2pkETarQTY@wWW)r>TQtZesFDouR%rfb6!h%T}if`r;5Kn70|%~ay{_6;;jQ@ zf*UA{C~Fmx$Kjx&=d&M8HHKE(z9ZPkhkT+z8>U%th>WH!h@6VkwGr3s7*w6jLd z|Epba(1#qSJbeo2$jrH>1F9FKl)LjNS(Af!)SYA|-!kb-c|T|NnEqqlDAMJ+cF=37 z!<9-*p*J( zpJ3TVB^79g=7MQ^(PkF>T5~dA$j+;0OdgW(4Ec?*PN&NA_SYn%R|H)Meb?8xG%7Ci zTY7$~*-*8LLsT!S$ls?O!bOT<_1t{A2P+R%Zo?G+H7KU$zPBt|Oz<)Ov)T$t@ud02 z5NWXrAYI)5XL3}eDMuStN%HZgOq7cD2lwF3YcVEW744=4%a%rKF)mDmA`cWe8}=(~ z6;u?R;Nzw2!P>Y6?V|th0|HbGe(oY9Z-{aZW#ix8sL()XVxO?ZtMV>D*42IZ5RIHV`AS*&AHamX5xDDjN@{oBLYTB8aJ@F(eMavMmXxU+{1=SC`roOF zM5I98wwEtw5&|v2hSa_Q=fc;<@+FL-AP^P}nBx?3if{3hygwGe`6Rk%`k##C5m!a` zWooR-9O&QDCR-+W|DiHyqAYf zJhB5v4-b(ye=S(SyL*tM6glLFRn}+Ma<%VeKSPGq9He64(}=PRt! zos=sZ0@G2Kc$Fh|qGUp_?XJCgoJ2mVX*%?jQRWhZxcUpKZb5+aVfFh(mdMXOF=y=Y zB9#o*o?iia%h}9YrMpqeo9aRg3@W6$ahCGz)f_?XS(%EvjVQqUaq}a0@%K{4{hj}T z6c+Kmccb?M#mBU|ghu1Ad=MsI$CK^wqR9ND2SXkwz^5%VDDcSJ2Q| zup)cjeP?5x@tlHzW4lNt_hPd}G}})LQ|awWR9-+^5{7rYKH2iKUQ%IzGZ(C7fBzlb zUTKKh#|XUUmp^1!!g7B0{9H`E$+g*Gn_Tvgc1#5`>|34vwXm2|^w5$})ifSz&0mP( zaRsdeSY%5>cHnw@^rh*cpcl*eflHj56-T1a@53Z61RQ*&emfh+G8YU$!~%-2>ah)* zQ?_OQ8CN5jpdK%DN6=(K+IxMBNf4V9u@`#MyEQx9(7h~u3NomvCtgn9H{o~C>aOvK zv#e5=b=-X&XllJ8dRMVq%e0eXy$i7M2?#K+r7!1RY_g&@#9-dj&CguAbCmeF<;Vut6ylKOmzR1# zTX~NCVh-;uU=|<%svx@Sf!4>b93Q;$_77t>8iIz>3S@{~yCj%Pr^*QHOF1f5rVWWq z_w?($!sOTZdhfimg!t15aCi-kq4B2`5dYAIJ(r3pK=WbMCCX6Tjly&r7aO36|@6s~bf5j~1ugIIBta`1}tK-oTB%C__b#t!wE{y1; zz5Dz%_aTP<=i^b6>WnGjJ!e;gL*c@m%U5ms^HG2`Fpb2q&Ldkl){QU)eZ({#ni2gh z67FaBs=ti`(%y1rab{`!#MeR|f<(RaOT}tDHU7`!<%h?6&r>g0RW?L_%SV0T5#CPG zlTV5su5l4()!Fg)IRBm2-S%rm61(qd%)c#9dVhS~nGXj=r}t4FFrCQqZtXniSdA3Ht(wXY3vg~%#GVftnEPS;r*R*X9zM$eL zWuU;D2J@b0*Md`5F7GIQ+kKAyzWUe2tMC+O8J_h zOuxF%Y|8bcvT5E|W;;Po#mL<_fn#LiY;yI2UNML9a-hi2F!))U$+v3X)SGMO`r$|R zN*&h!o~^X(@r?eq(#l1O|0WDc?%_5KD8{-MZ@%GOdJMN0L24y5z3ruRAU3{dJ)6Iw z9--;fpXDeu*tN{*7i5pY;!xz-+N26_tsGF)5>-m?g({9o&Wf` zUTbtZ{cc6eL+@QSx3{HvpMB_b`k`}p>S4pLW)~b?gmKUzxNcBCGH`JF;=)B`|T;O{+L0F|R zw6}CHzsdFZqOXMPSFi2YVCvWCGAw!2y*1jeInD26o?lDa$+zr$^2E@NInWZ|eU{{x zyVmyXyWy5OpnT!>?xybHwfHCRuHJuE-`<4C8yHsQ`l>=c?Nh?b3I5l<5}rJx|B3Ut z(&YM#p}lmp!{^*pe-(9~@QW6kN^SqEVQ02p(a>Z!p^)C$1J$(whbQEL76l`c9$j5{ zpBy-P1VNVtj0Ds^yoyCQ}Kb%rvj(n2fkPgls&rV zdxN3CJ*?j$`4D-1d#p1&u{yMd86Y2u4f;+tQPpK15M zUtHmS1OE6Z=#z`6#!$3a`~%hQ%o;{5y(=a?`Ft~mPh_)L;dbO(&y_1Jq}g5RC6IyAdKt`FUtp57`#U$aRkLg2G&#`jgHLBu;JW`}*1bw!_j>2L`LcCyj!wVc0uw8gRG$@Jj*a>FVcjR4OWehE zpLN!MFm+qwQ{+4^5c*Z;nB{#GO6w5!VEiKsvSy;%IPUKJ%% z*=xJ%ih50wal3EhvfuS5(|JC>OKr1|HZ|TvFLC5G9(jaEndT|n3IX#xNFkQ08!I;& zD!awf++vpiuSabQPtDG8tmVc3mh)Dz-3|#CgTGwls}N|9jVEHh;3*7>Gx@isy6 z)vH;y8S(bJ;vM$IJ05$nn;X1d znWepYwli@lDd<04!ws7A)6ZH_NWGnkUwP1|BUS7lg^yJh=26dom29l~STI{7BtB;Nk z6bj_%*y2dhtZ9Du@l_$Te8ywNE!HHV< zGwpcH!nIrRKZG@ZF7Be65q_cpKJ7PO)UsC0-IDf;0j^0oK{?p$GEJl-BcZZMW^ zQPOz3Gux;9+w1?%rN6V=boKh;RbkEVmud%RwtNRF8#UM7#`d(|LTFik!ko^8y~ zV)zIN5&QLl9iwfwDl@y`@3*i+olcj8b`^3CeCn|a7GrI2%(9mAsXS83{Dq?H7QRUF zko^(`k8%NkkcxN2Yu)qLaZGagKZ?#huEq9`L3-S>T6*XR5B zygxv!;eJD`2`6T1KtqnDqY6EXXKl$xQTU+jADMHrjH>z~xik3B7f7K+Pq(o9k{o*_ z$Sq^lrGFOf*Q`Jr@yS;F3}+!)_I3S%_iyG#E3gt|(Fox^+(56)Qf;<4^+~y^h{gDZ zS{R61p*XaMRQlqFr|r`@7oM;$ti3W)N4!Ah;F*x^M&PH!;=>SMO_m42fa;U|G&%5f zgFHq>ldHFKDxsq7P|%^Bm4!PUICG6%=Gr;(p3e1Pj_tfy2*HA$cgjL9=4-ieg3&QE zRAtJX0h#AIk$M_u2=uY_-&crfoQU+P5wj2f?OyW7sHjb+PjxPN?eOe8 z)Tzu|?orIHKzzStHUY$5Vf!aley0}%dEi!yDdT|+EHxMl%8D67XZ}Zg>>5R;hY~amWX5W+OB5MYy3^Il!~d8WI`Tk-0n{Si zm8DD7sF4X87HPyubo*pDBhJMAwd~fcdD$kcTAd05{6HiuliJ-m2bZiFJ#9Aavm*tAuFF z{t_XDJDfo@r(lfyqw3mOjB9d?p`uAs$1w3Nm}oQqJJJOM9Cl3HvJ_dM1&~O}S7NDY zd6X#x1>c9}%zYuE&FTj7O2L3iBzF9!TtRRvM-Drk#h~QIQIzryC#+7^!KQUaqC7{`JU52ovh|?k1WN_V*9Na#3PRDf!_`LkasBytrpv$6@ zxUO9s5a}8~5tNq)@lZMa1Wuj2FMwu3fk+~JV@a1_!@_7f{s52TbBY~#f1iDwM}8*Z z4vt9z2bxQWw{9`g2u`&?kwlZpN~_oCvjLU%D6pHtV(U&0X^$;tLupbRFifz*T%8OH_Xl+V*|-bO~l z=~j;$KgdYGH$-cP_Ppc z$$-}aJBR|Af^``QGQON+%_jcL|7%HR4hkuGe06Lcy|)^GbE$GT8X^-tN-aeLk?=v4 z^0J}sLgW^B-eUx9E>*1qV;T2Vf_-Q&foU_pc>kb;vV?~+c^sHw921qxrDCA;xGV>p zkQhJ4rSn;VAFD$rb6$jJ&~R~bVNC7qbq^EGWIRosrNl50B>*4({l_)K3Ussl;3f>1 z&AVTo5vhiX(E<+cBVmI3oQjVlaxC*G#-^d9l2v9QbX69WGivHkg)%M2Us>MbdbBoq zSdeBYi7%J1KbKAgX-YF%KZd|b1tPvIJDW#i9~zT00Us?65kYoE_5>$Cd11E}WfXDO zvZgkmN(}EIcp!EO5QbKtV8(>Cs1PWdOTiG52K=m}#j?M?jjWE*8RiVb`7@i-X+Ca& zw)7R2-6kLQZMF);w!b2JCAJxxsvdm(xDEvh5M$hZk)wU6%!$t~XJ@v2kCm`&COfJP zGXdR-8@ha4$O3{#VDPGl2ZtNfSp0$&hl6YGsnK_@!|Ps_w!q#dj1A#G>#DqQ~6j2M^Sog8wAcOl@20sPuAkDaBHOSAICw3 z9%|~*;}*C2vjfS^BHHf2+vc4k99%AAIi)Dm&OMQO!n)jSjYfdZeu!jLXe|=>71*OM zFlSc4^c4@+ks@-L@@Nl_F9tCS%4i4$Dj1gVVoJclH<^do| z3B~bkGMvEEKokhLgCn$WEJ6%ET8@gEb8XPHSIDeaWyQx#;v-7vE|371YiN;X@_hNA zcV3{cAPWR$U|jR|(+s)Zjg2n_3c6v<8vcI`jm=Tyz;LII^fw`cZiygCg7BotZnLBzlp3D44p5f(v+VN0RH)yluZWIJ$? z%Vea+r&TT10wyv_Fj2F`@gO9pjxPG(B)Ah0hq{$Bi{JvpIm<12V5dPN*K$t^hKgU zAS&-*8uo-;8`ZD+n?(n(3PlgMuV_b+VhxJzQDc+}rGqHn&~72RRb$aUW|zWVSh~)m zuLDtcikD69iY^NBwku~YYNB%RrUDUSK#)&-Ru)yvg0G!ny2;@jMafZ@o z)}VfvJ|~LSZP7k?3V%H3fQN3-X-Hv2+DgyF#NquELdt+tIk)Jf-HyR_)4}&&8ti<{ zlzaz}1pRA&LIW=xnEUUckgo^TeuQvI{4eVNau!=lGY2=vjKq5fTF{gZ zAY6vtvef;!N4g~f+OHv~+YDety1U71~3-dSZ5YS}1iNc4qFG|WCBEJd5rCjq1qu%3pQ>e{B~BF3tA zQ$y@i5(M$UqBQ(Wy@mKpN!5U$K4bwg=($^1Swk9`w7<*zglwWhZr^1pc`xStQAz$E7=WA2}UGdl#dj>r6pB zV)GV-;c6TLgE?ZDp7w?(s+ z5b@W^;5YzyLVC4;Ybm!>$l%`4N1DkN>lTd|0`&4ArXk#t%RQ9WmU$%fh`LnbT_*Hu*wU;R52AMxbvMMrwuOCL#~*IxiW! zVKoP(A#i&c-&(O?}^n3Khc5Xfd?yBY~@>$E) zre?oNJ*9N;A2d}#Roi@V27Fx{Y63!x14ZuEGV3@WyK-=o@0LqNB#O>YH%}P@5OlM4)FvfCpMRm}mYcGzyly%fg@KBuq%NSG`@jW521< zgkPDPh^N6En$l*%$j63v9-k4=mApRI0@y_O*oC~JOa!=kh-}-_9jgUrQhi0W^e2r< zBNG`dT(fpaI}ZSBjSQcP92|5IS&y)nX;(WIrCIu##^4)fL>X|-|L({543r4_Cq*+T zzJi^;i@n#-bp7G43zj>iJ2tjVZ$wR3i*Pgc-*9g^Bgy6#wM_R&XY?-1mm^!#0LP;x z#-6yyqUUY5SrQzuE$HE!jx|@0Z(5pod$oQPUq)Il7t!U6J#tP} z%%x&XGxF zdN0&;NhraiN;Tt7jz*4m3c9iA^$gYvr27arK8O;v%F0QDOP)l6+tQ~~+K#{&r#R7J zP8$gWm8JSxY2Hec8Hd_fLvmr$rwWG zefgK+M4F5~DB}j?R8?(YK;A6qz{sAExt+cK3NY1RxV?|fN zvBYC%?gLzMX=E&7v<_e!10pF)SES`A!`snu$La}p`0pY%5%yi!z}ls5U*?JE53)*6 zzL^Nyvf6tk$5`evvD%E0<+S1B+-_0NoXPyJQU=Ins&#~|Z0 z=wBBo$n$U@LHxtUo^*s%h4EWF(1lx7XY`Ov3d*UMuQ(U~aoX08-cm=;@Krg%|+>6sbikoitqV<@p2boz)(WtB|3u*7WZR!E zDG^^{&(%-OPgr8~c|0(eF_oo{UGN8UnIhe~@lwjB$8MA5y{1Jn5qz0?A}7lH-!l&3 z0Iv^A=5OL84!X5Dzh*w3;l8ASO7^QV;yII?oJlGT?%b!y);>`)f1qdEOtwkFtA-=d z8;<@UM{WI@IyY(JZ5TOq{A_2z-UQzlO<#Al&KYYN-}42jvB|scD$MFx?$tn=4UPN|{l=Tn3E;@4chH8gf)0ai(KCT?tUcRa+HJyCuKU~Rz8K-ysIJe&6T+R7% zUop8Obqglf+_v;uQ^~o>i94Z{_J_V4EB9uKg}PntEkN1G;pKiWF)!QMG5Z>A39{2n;G`wY>)&#`dayJUt<=bLMP z-n8y{+x6$|gFWw_{CW3$&-*tw-WAKtzuow6!5+QUo>%z$uWWszT95qsl{jAb$B^E^ zkGX!@()N16-p}Z(+go>i*);iOPNULi?o-WI!G?yPuJxbG{)ER|{C189__o|*kM_HDr2qx z0jp_QDk+v4kY^Wk)NKcIUGS0VD;BwJwf7+%o3-Il{SM>xi%!nn@nzz>am6BAlA+=$ z(PTr|nFYse+?ytX!Yh|lF1zgYxw9~9#?_S1KTNBI4BLAkF54}B<>gKPG;AyWNa;3l zAA59pm-&`8*LQvY^7*H^RHEIrFWM39#lAcx8*ipLr%XJ^p*u|{HN%z#hBka+*;bN?U-BRZI!BTIPv#Bvl%DW#*cO# zD_irdX~)DUeUmK)HQLUQ`yEP8@nEH;et6!IGx^S4p8R>T$j3v9GGIKue~P+zWo&TI zp5Kl=MfbP*wg>6Agu*h45$aK=|vTp_WG-!=pH$U}`bzXp3to(in< zd^3LJ1hp}bEnu*lD3(ze;9DU`&+sC&WR>P7jb+>Ho(NUhPO+LEU#zw(%d(H%?X%bXY+h5 zP+)e8Cmu-w7B6T4a&DqWC$K!@0ap>m+e|-vUOR)(|G33bRi&e&$^}#I*2FBB*P!h?aJ|zxV_#1Q;mW0E^kBr( z;8NH9+~nDc?6Z|B=E{9fkML@%jDz2@Z&eK)f74cXX~)AY)2o)1vBJ&-Zj#q8KmoYA z*!A^Tg$HLtg=v+rR8^d9gxC!z(a#e6T?i*8w*x@{ij$-&xhC&KBY$HrHHr>gpy!uT zGFrOEN%m7nY&=U&U|;77%;(9C^6An0rcg#SIBTgcJjFTa<~;d8vqyUvJ4>xW;XNAL zx7kVKpzlWW#fwV1`er%ct)!<<{TRP+)8^;f%l{5_eic*H4 zVY)fV_Se_fWr{4Qwwt*dG)sR2K>MZ(-cW)LY8GprLCDVNviAL9$~-izTI!i`HOdmqy=`Mj!K@d9zO6C&!P4opouF1mAQ#{G{lL!85KqYzDDFxeApbA4Us`LZI4Mvzv;zsBJ>C z-u|qjs)ZfIS>Y%;bC%GZGVHbVQkk!4gR-vt76s>^VixdQGd_HDKN&6&S$He}h6#e3 zvIBPcNb>5w1q;OKB~{6eAg%@e@+rzc1VY?&9dL7FCT#wZw4UY5F#2bT*OcL`bMx-O zE5@EouJ`sek9d!rJ(n;dY=#hWxCZ6N6Jkw9WK(+AiT>*2fiWpL!vh7D)3sKjlG%

fYn(z2JmLARo{4un3d%lcoCh0<(%e$SH2Luob?hfjJV(ZRgoS2tVZ^FUHyr1b$q$fp1eJ!5!r(J*snjs69|UM^u?T}UkB(i*gkt5MXv^HY5w z;XhAWK$7H!r^R<2cke6G)hxLs57D!GvY~`>9xWY>RwO-ZrOpP!Ls^`|1`VmX`9+xLctO~GeGIw*vK&`K+#*CO;YXt6Uhod* zN&24W;f)bm*W1*pX&<;2qjKVl0KE_vAVOJAD3Se;5zEcW3?uh;={b`xrGZI#8L-rb zT%!)3g9c!w?A3B=LxRVoEpB;&N$&`0hEZHJiJdg2uf#s0=J_j|; zl7u3wJ7+6Z8+-7p^izVbNEsJDSSlz31_ip~uT4GvT5U1SDPkP{S)w7fF67U~5Rqo> zss#kLPLQkvvo)l9Um%eVNQXnHN;_am6zP&Yhp7#6;t*zLt5~1RHJhdbZ26{7xtnZY z#7#%U{B`v!q9OrO`N(sQ2FhEF{Vrv4c*t}F)BxnW;BK!dYxN3)S~aDNi%5mmms?|x zc-lPd5wr%y#XyNGZow14atw%tHBe_S^#CLPE(27kW=pq|-PH67iD{$6n4{x!B+M|y zx~U5SSYbJ?(-Q&`=~Egw4k2>5vRO(5ez3M@4_U8vgJ)(Qy!aJ3kfDVsa+5M%fXRd3 zZ6qQ70Fu@wZv{%Ry~*t`Rd+wvbjCWiAybm=*=|?>D3`N8=kSpmh5w;$$5!(+CslphO@sZ&a+tRxr#NP z;G-mrqo$Qipkab-a+53wFslCpYC2&r^fZPqex`rNFft@n5Jt2erdBclDk0i)8B(5E z71waAslr-LJS;ca=1r5SjrH&xu|^=3n8#HI+9*%?)j<8b4pz%q#+6<+Qi~jSqVrt+ zGMak~8>VuDk`qjfG}JJj%mzAEOqjOH=`~tIO<%wi>o-velf&IOA8PbbMu%zX*P5U* zKB+`*e@#C9Y{K^Ie9DgJ0x?R@Sx*pI1d?|fotheU+$E=0D2!5c5Jh1gz+H7t2ShQ< z-VG*08p(uC@aHFLPKYro$4y}74O|?DM>7KJr-CIk2x9JyK2`pNP@A&rv~3sw-8`$= z!$$LTVf|`2T+Qf(mi;%P3gs)*81Vp?33Lou0-f+?_h}8eII&PvrXUy|4Y8j?l0VZKF-z4EgvbOSqgl<1U(_6a^n~<}I zje{}s-~{~~((;QOnm%(+X#(+{h9#|@by-V2YtHfGN~G!`CPqwE%LXu@*t==gL+Y{~~W*f(iY6g7o(qh;We!q0D9s z`lVyHVvxT4>-pH1K`Bzm0u$;AhzrSi451tu(eK^?+buMXSKqIW`gf4!Mc>8%JLCAa z)g3l97Vwby0SJ82nKVM+zyTA!T7LF2{k+7KtYL&HAS+#>gW8z67;hqpkqkq1A06k# z7z-u6MQRIM9<)(mwm8~SeTcOeBV`Y>HuthlNz4w!S`NyQ3Qu}YB$Iua55V7c!^TVw zSS&|SJ+EFX{|_*;B=AhsT)2#Wm}`;2qcI^%DG#pUCf09w{Qiny<4(kAaj^9ipoc+- z6JXdYfR&aJ4M<)ZhOL6TQDV*+q^0Nx85kbLNYl6{H+u7=7_8U*$8>Ry=a3YDyXU*U z$)Dt=I{~R5oRS#n&xvp~d-_rKQ!dQXXp=S6BrUB%7i1wP3~73P!`98>!a!{?h{4Q< zU|qG#TtLPRLfHv)FBI-mTTFmIR^wT7vV^|ot|O41S^`i1|8$WHxYN!rUBwps>kaG4 z<8)^Q`{_5b`XTACJmV#9<=1Zepj=^?f^qMforN5S$^o)EbFB2~Aj)J)V0~WGx!M%y zsMs)-1=xC{DH){!E}X3}K?9J#UsRb-4KsdB;(&aYKyJ?ELG}sEbk|i!xYUbGz);gw z2O$$K(>vki^Q+)B`XNMZVWPL>$W3rd_cx&C2Ne9*1LmVS#w`kxi5%+pA>@?V%o<_p z_6aJyj2LP#62~WUYaO_PAEPJCdItXiuE7#mnkD?v{%mj9oX`>B1;ZT0P2t&t zKMw2$*nGM&KRY|Q=vgstcTB(w)bJbt4#A{}E?DC@AMpWVmdtxQgasO#fR+~{8uJXk zb=slw)jM%hK*a!^!p{L-z!;5YY2WBe&t*A3Uy*A;_SAi9cKa1#g_YQiv ziE=_7-qg~#XwucRxxeLG6iC8UDwG6@rcckoEp9=orRijA-Q@y;v6ovg<0HGKwZPcp z0UV;@9*^PJ-UU&G-0xJ3?I|0B8xwG(qfnOnVvX&&;F2z)EzS#*o>czk#R3)u?Do;)dHz{ly;bQ?wWgua$yM zzla0z5Y3R}j;Z>KZ0APzL*z5VozBNx5nx*h#6y;35qwvqO4S0>qVXCT)2IZXd7I;o zs$8yC${^AT5$>*lB>T7n&um#cpJn8|?yh4gy8F20To~)Jp$Bt29sX<|39b5&riMTx zxAB=C!Y~rdqS}C4UX{w;E(dxl1f0QSb72&S)^uBgL(+MoyQ*f);m3!>LcDvS{@JO{ zmmYCVup#jeaxK?I-LOrm20;5sAMgdgePCRf&G{>njoM_`#hT+9u3@CX&vwVT}W z`rTKI;8#sH2jOkSG(#IdpEAgRIZKw0+c){y`Rc0zr!W15Tc^d4-AMo9~!HPA{;0ozIr{Wq>OFWeDm$1o`l70KxuTHYm$M=+@c3_y45@`x%HmZW6Ru~r*@GMH(by5vq^d83E<(bLNl^~eS6{` zlYuN@qsa|oDB;~{W}?*sr3v7&wnU?LZo`+nlLVCE-dxwaw~KzM3Il~TMz$)=Dywl2n2FHM8FD=5GKTX|nv+>t^Tu;nmFMY==+aJ+mzL&~ zlN{F4pNpH`T^{6ZBeYcET)gxy*|%$vf`D4zmqpHm2Rc2rLo-IXf6?TY94F{*vu>st zuJ2GIoBRFQ8$WEvc}S>csql+z32cjz4SC&EFrl;L`e~@Q^i5nf-27+J33$WcyubQ9 z=9r%!W-BVO74omWK3Q_yR$aK|DaeYTe-i{`GtC+lL_(B~+MOLS<&Qz9g!ZFmWqMLm zY%Q_MrUo&qTQ<#0epo;5miC;c`Libw+AA>ai!9ii@o`rcz(9cgZkjJm$*3y!>f}Zi zbQ=K6C-y;x0}FPI&X{B7DmS%@p_JDovt}mQnbxnoZ7XiVaMu*L{dICE@&nP-J}KZT zyNf*=HOKc2i?Tv+r1_n|RW6{cX~7}HMw(O73JShZBlT`7qCa0nu~miA?4V+#Q%-av z=I&2VEYshmEnA#4q%e(HK5jnmxU4LpCAl_9#>WY0@Nevz<08W`Ui{UIy){8&gm(HMcCrF@!^OFU5S<= zjb~>Ahc7k?Kj80NYH?lZs0ax1*e#DrRk&xdsp!5P(~u?X;0XnC&yqm-O&ER znDNa2f+L!To!VL|7490m&^C4NoE-gv<29;UCYdyW5$@9)_g;#V|IoQ3laj9YNegOB z={$&_ieV+{IS=Y@^t*Bxd7&$2*>hnvHy;*`KQ&77FubKpea1$&Cq>WYId-DfiF5<} z)k}@| z@4ZH3ET3wgIXE>#28j3E#S^w!tRMZl{@G&K7-$MNj<#9n()CPSE^ho}A!&v84HxN0 z!yt;5v<gxAS z7Z=CSq>dkb^7o%FBd&4}pgd-^Gs6S#td{X3k``lZz%9^w6`8q(rB*4r;!hdgp+GfP zvyD#un7qQ-um!g#Pt(GapWsEUfEzYn7J;Y_ir*k$lT=Of%v@1A`)ivZ<->GPQE$A8 z#H_tb#OPhh&fL+Vgn)7Nj|($gyEFkjuid5T^pWr@Lj*=^W9iyGj)&up+bPU%b+%kg;jV{ zhm`w_p05dkF|^wTsI*3kUqILk)DZy$)zQ8OkNE_lH*;Nh36 zpfZ}fvW94(K@K#oR*lmP#mI3QQSY7XZ``!`(TwG8tnzLmzzn9^-H7MpWZMy%N=3Y` zA_)QPs9O|o#%q7L)ljmSbd(kdh?(8Suel5L$=b|Jd>;Y)t#o#h`d2j)8LhM5oD;mc zza(6q;RZM;0H5ZvB4ufdY2p(=|3t5OeZlsbL68^9vY`{coii|OBA)Ri#Wq4=Smr$~ zm`^i#xrk*gMjqdHn)}J%8V(eyiTZ^x!@^v1pNG^WLUlSgHfS;|vRz-YiL)--JG+ zJdZ{k&ZX$-J8A<~i<&sUKy0}^imY^U*5%OL%DplF=zCn28@ z6Jnc)W|mFBae#)A6@~wOB+j_FWPZ{@PY=>@-D&{R0%!)jQ92Nl z1Y(5KLvruK(P@8p zxS8iBM%ItJmUiQ&jU$F5i zEjfyFmqTd_N@g@3U+D(Z#zEF#yhz1#Y^GW29PWHMipHMIPw;B=uco*jj#-S*P9gKS z)q2jXzIw9sByA1`Q@K_4;)2}W@aQe)uMh~rpzR9ahA&uY8qpK7;rwgl+sQgfW_pi9 zwF9?`g+;s%KBC$UQ8CC0LyD6err0WI<9AQ3S94u__Yh)YuXz!+B?3 zuC&}VjtDh8ufd`!wc(Y)S5@wf%U2(4JYl)1R14`Po-FmHgoViTnNAzGG`2dHH`Ae7Z0E zcy<?{`lxHmMC3>^e($7K?3n|+t^P7CRCP!qKT$t) z`;0HE-r>~$X(T_84BtEFhiFZrQzz;JI!@l2cZ;i!Di>2WX>z(s5;{`Dcn3DqCJ$(x zxYbi+I(~s1C&ey%XQpoqJG7K=cFWsCpGOhvAKHI>wnY?njpbZvc69Ow_wql)mp_JQ zsjDjESVJXUZxU$%gBR}?w|l8F$dK@PXC3Y?{Jb|lw;0{NUjNFwvtd=o%D*0_KY5t(^PxWazs~Pb#xi7{9REB`)3K#( z>di_`|H)p_lipmLIsKQS-)!hFtm@zKSAWTq{+&PjRnrE_{01th1C9r-?x`9$@Yg`u zJDi(FAN(9V1*mgFSh5ewHEiz4^lKxcr%#svT>X;*r`gXumOt~__RRb6vyQui4W+{~e?3F3Mmwgh zS(Z$T1cN!PgY&M9hCLk(ZMf{G99p|?L3nh^pIe_tAAWxP=YEYAiv9Jx{3otTYnKDR zNZIxx_3(>b^Iwd7#T(YW$h3Mnc=B)6@bl=|tcd?nbnbC2zW*P;?wwj|TidF2RQEcg z!#ao5y-wEoh?NfOAd@8L_=J0>tRzWDd{{{;$|MTOmXMs1Q(qsl5+V{pPW9XGpFJM? zYkO?>b>G+fdcWS!=L9}M@wQ;_?LW0Jujh*jL558}ney=beYw;aB zHjT?>;|@iRUFsa`7#v%$Zd5?~umUBlL`QFI|Il;vL+{ZKN#Aj4WrP`zmeEe%kB?G5 zKH2{9RHrmP8vp9a$HD23YV+}7-|>-@@i)HXsT0G8w~v1q93P(^pD_RQ#rM->%BOG5 z?+`U^CI8c(!B5lEpGH#fi%~*W^u&rhf=BrT>FNae-!ImwUmU1rtQmMJ^r^$kFHROu|Ewak`+Rjz{pz{ntM{?5^RIsO zdHL0M<||?`>F<0ytBeqgoC-KL8G3ax{L|N!FG_QNe_8uijd^30UH^)ugzCp%M-F~V znfb=I_@3_fJu~%t){gHk=9pAk{j)=u+3=%0iy!O!er!nnvB}~G;1g!{CcP_o`9o%n z7pNZ$%%75^P8IH$k{z2WzB*O%a%y+f?xRVHa=)JysXq_A{PDwcXgd4Lk(WP@?iu_; z!lkltEX9|jAAS@)FiMGbjD7j5dFGeG;&+SRZ-p*EKcTJ1eqXx!d(8`47L1p?{DB$w z8;&`gh!kXIH0q zv=3dizP?BK_UiN;*PevvOW$r!7qM1;Nu9YB^*3teOi*$q;q(lE5H%vg>l70|FXs~J zmSkUvQOs~)v4LYscV*10V8F_{(}Ph;DW+x-M+4`bE!G_I=(a!(&V&` z_=vRE;eWNWo_0!2+Zrf_Avv`nH8p}|ohDbfpIJd{@b5P5agQUs&%-4teYLa!O}Mpu zzvI$ivddSb=3gnM$Kj$}a2MmX-g9BxTeUKUOe&=O?xD}-)`AH}P)M0Qs0l2ZW#$=S zxAds!_3T#-kLvNqi}88gH^0(6(IXX++tP^^i`+4g?ub>I@R?2{a;!5r?S}Eg<90<) z@qORFaj=RSNdR?njH2_Ah3ww&%f4gmLjYS<(kCBkEh^{MAQLm0dDZ?p&ZqmX3ZEQr zzV`Og8`LYaWzmhb`_gTbjH2RYWT-X zTs2`;l+32p%U*8Pi}9{1G_u@fXZ9roCpGF~G@Zv`x(H1sy)12^NsEkNVy$zI zUd{iM`k#&)=R~uR3xKPGnoZvk)(Q*b`ZQLArn%Z3@wC?H>lZdWd{E47Sx?a14U zOujxXr&fI{){w47>zT!DSG;G}yqy*r)wmL?yEW{ranrORpI1jZX;T&wltWD>*^JOit3xDxYWjA&Bzy6boqx zo~~>)sqyC~6mJ@+mNL2Z0NwD%xc=CVd)EF$Q2BVYsHCx@#bvjN$-yvjtEe<`A{wWT zDBjA8D`xMqIo~?Z8Iw-b{@k%OO2qwjE(XNPRqz2PC&9R=Kr!&Lgo@Yi3i{hAn<%nN z%$<9EW%|1>JGq!Wp>wp0+nY?_!%6+c&X+cJU786x|4)2Fyq4u+7h&IfD~W9dN82WH ziDd`ty#ciOMcm0`0{px+{?r8jt7`u1<%mYldsNGF;M5vZ*`{|Zcbc^_cJF%*pBO5$ zIwo}D$@NA46A|l+sQNucMMtKFNoO41L!V3P5+fZHp-CjrOEVIB2a|fzQiBSV*1nu5 z+_vF;oNVOqKYMLs@zq^)lx8qW;mm(M)Vswfh+$A>XE~cEUIV8S+{wM}v23hnD81?+ zFBqSe82`@5Q_o`3*>ODV7CB8^@(?=iri zyjI-KEhIDUuACmmn)J~?h#Da>yP%oZkPu7dAOB+HinGW>ZGJAhPj&z}yF9p*B?tTS zDmW5_iw_$AiX6O%2G^^h_+O#KenA^8ybPY*11uhn8c=cNNw&BMQlQnLZ+Ys?E8|Co zOpFX((OfJSokj6JE@h-7IW7zpYXNjmjBdK#W!Tow-TYNH9-q zoqhIdug8jQnmK5al~twkMGf7U`yciplb(lx4R4l7wtw&LY_)fruOE&D6OuY7gKq6Q zcA-P2N+&~7L!3RO_mPY-zXz#^?t*I`AX;L=k17P-5~M~mT3eQjsZxiN5{-!Zm1k{? ze(ft5J$HfCGDE>P13>CB!q=Kb@*MHex@ER>t9%z*{{-sIyo#%Z$q~C2bVR)YngiMR zct&$i68d~;rAeQXNUh{p*|KQ!Gm(ZL4ezMUQ*nLXt@d{?WX?Jc?P+FK9d_Q>>e3eR zaqor`oGT`V7GJDX3LK?bLZoo*v_ELtgJ;^Mv%!RrHUi^Tur3!7m7NR3XjHwtFRAw7l@ zCVP2|K#YN!V|*b`7^@C2I%WiEqx0zZx8%a>jksoatoO2f(vo`i68R(1lmvHwDy5R! z&{gO8>_9DLpgx#suEg3Z5KSq1Qsa4sS}tnO1xiHIy3`g%dttr$l-T$`sKp=tc~iyV zVlM>-hT&FIpd@Rmc;EoEeb_y*fn?OzC_v#^36bMZX9!EwkO^NEYYs#jL|&(u$0wHxw^G29N#C1OtC8Db-iL}|7XAr(Z&17$iqi?*3#vQj{b{;kE~scLu7 z1VMIkh{^QQEsb7%(InHezq-qq`-7&`q&Sw^7BcR@Rbd@zjJx^Q>YvMX62dXMZUaDH z;Zo!kJ*Z!SQ-GZXE)wZ9HKtK3EVRe}M?rxBlRsm6t8VCmb+ z@W4S~A#R_I>mAPCR}5qD#7zCo0KwzdV;uD*IPd&bf$zg?ENKup2M6tmK&*)x7$L-7OTGwpCykfEiOcg)-9?9ySarXmeE2g;L}xx zJr>U=v^X6q+&@5R-ily6+yivUe5EM^LcQ5SNF*q<1!&hQk%lB@Z9;tLIz#mTr|6ra z3^lG46%mdjb z0grmIhd`oVgS|l#>Z*a4`s(juKSrJp$P-h%ulUMrTF0<>E;>J_EszVW`yktat6l@B z3qbSd$h^4{U$v54BKFG1X^321dPHql=w+m7bfa)ZNeGJ9vxf-EGYk15kxWPp$1Q|~ zRKDoTDv2K-V=LvPXrQvNE)Aptlq!Q_ zD{)vZpvZ)H8ZI~FhXw|3~J9>F(n0Qqgc7AtvDF7Y{G}(wabz4LMg&a**qpwrQ#bSy0I5rUW5J3B) z9c}?O)jDKW)#X)nnyZX}X#Gnf9Xy zzaA@;iCHKHlpQ-zCekP3a{9ze^~I!7r7W8L;Bqm`Oy)Hq4Xc#u2^In+K3pwXt51xZ zn88PIk2ew_ooH;1Tui7GlKMn`uu%OKzxi6B_dq}nSAy@srOGAAGCV+W86`g2a!J-G zE~#B|f36IK`r&0jJ0F)rlZ6k=2e7mUi-vPOLB52Pj}`P`pM90~tRj%jh>Qt*&xTt< zHlC(DtJEV3h`7Z%7W)L|ruKS4w|0#e$$W`-<0_@zqskC2>YR^H0Mb>Jjlqh-s3b`i zTbeL%+Y1nQsFbJqxn-!W63_RR#sdu;3=Ko23pYrU`FKE-MxK)OJ}AD!@94RWOX-o! z0q9b1!cwETJvhKu;$8SC2PFV+ykJUHGns? zFnIKGFq_a?av9Ty;lk2Dnb2zhZ!KTQW8-6$g?>^B zaLLgq)E)? zMHeQ^#3qkoq9>#wGGJZSs*Q-U5nRBjtH=IL(X2&3-UFgqNRhLt0>Hp7WZP3aCweKQ z6PFfz?mu#Wffmw^lI$^_Y~hRn@#d0(o;(x0PT|f+|$FA@eM!?clcmk-zGBnM+deWIZ;8u&(sf5^)~|Z5=GqGnU|l; zQ{wGM6Bd?%<|GL(3-uEeUa7q<;w4fCfQIsv)ED!(9@5cnu&&h2K5<8+K}6Q02}H-a zt5Md(V*Y59uxBu#UBa%9WZnoQw2z2*;LGbkLB6+T9&!6?S$R)`WOfPA$R1#kUymwF zDb`ZNYUQEqf3qeHi2JQ25dbwB5N8Rn)-vc}P_o}H{9scbr{`7bK!|`Qc^2V-+(15N z082E5(1TmZ6KCZIaey?7C?=tjK5I-JOSq61m}(@!4d6oCmjD@Ip)K^%U`9hliV(u7 zcRExYBgx(5IMWjn60+)#B|c7*1?)qE)Y5d@M1p!nu$k=f>7XTI$f!N&znUfQqQRne z{7yB>H5gskL-@E1O>UQz9q+woqrp&yZ{8)&KyX?>81V5f9%U085EPhoON{BXk$Qu>U zZ_hNfCT5sn?Nvhco{#4;J064W)yL_s3D}!ib zD&`eR!W056ML$!3{{1~F?og$UO2YC32e2rnJJ5rHVdaAe1m9|leJjEJ$*Bsge{s_a zZAe5H$#D#sI6-|sY*bvcUx<`fG8TB~*fDJ7sNt^FP;F>Yco}%ZG(_2wzk`8!wO~ z*q=7DzZx0+ee$<-u>^f39gDTS8;FX6dQ=`0wlPbv+$@yD!!4JL)jim}kcZLn28-1A z7^X~XYO{tA5>|ZDiwMEK%jZSgFU0s+=1qyzm?1Z4C3k)P_F3MRB^rm9)=vypJNFNnb zaqBsX*wj=&pkY(F>pLa*XJg-P#eKrt^8y0_e524qez}6JBWbWUp?fZ>#1rgM=3_CT z9pCtLD0AS=yAxM}>_PZp>00t#TNxUXFU6k#aQme4)O#EtVv_2wG|colJP=|^OX%_u zuIj`hoxwY#YasrZ=l_NsU=@lhGCrFHg(Bjsp~j6`VvRDm2#woM+3;NzCo9AVI$?a9$1^SWaR(z6Q^3Rw^Z#o)KqKt`&s z1}K&(N5;OQCq!CnT8D;!QmSJxM|stNKHNK#)VgqMK^vbHNIClF3pBdOf@)$OR6L+i z4f~-P3teDgq{6-1)M2-amiw*^=pee(h^W*H=v%(TViJ1?6XE!;t}J{Xl| z+Rwt>q*&gACbYsj06Wm)E{+jkmNg5K%xPS*8yhHUTe-_Ag}Y=&^|P`722#5>uwVma zuk>J|08+wMABKCNa_bqlozhOWDpt#3VND^kLQN+ev9gyJIcPf!hs|fl326sF=cl8_(7ByzupzaYV4bA~4W0mCvp>zjt>)%X1t5ISbm;<9dydfZ{dL zSTF%(|7BnCcsi%bZYgQiPo&vtZY+cYYyYTpYz)ex&)CMKT#Iwd=drasi~4*d3{(4> z64O-0OrU6eS~n-eRr?;hn;c>dDU)y1=XKNLJJLfn=Mx`-l0P)07we_ZZMIk?eAA-%yUHGcH`6mL#1E)N<*y zekCLO^P%&C+kx$2bdbYlT0G(lZVAL#8GBb?JWNmkptI?E`KoXcezoQ-A-W9nBS{PB zE(;)z0`$+>K)MELbg^7j9@5U00!5meIRSOH7u&geUvmMpKrrfWyjnSfSOKIYL(;XO zL$PlaucpbMQE072#Cdi|ngfgi^42K}S#>wd^`nJ$0~53Mddq{U?om53==(`1U+kVQ zTzG7&Sd#+}@R5M|dNScnfa)9|raRoK#9#ej9dJP4Z$Lr(?G(aYahXy(QeKyJ=I9C6 zOZ4~!ficBP^qX4*88V-kz`Tkcp}w`ssMs65yj4J2F1T$3^39?ql$7~Ks2xk7c~@N& z^u=1%#zx?BgPjRwI9s2!P*}y!b<@DOr&wCEaKzEH}Cq!1R9V zSe`~cwGDtjnIk_md%|z_(Yt(9`x27WVyh83R15&c`=(yHV#H`QtjQCWEjp0N!kLv_ zbIeukiq7O{(nvR0v@*itlIs{tE_TCKB3?_Q&7;(dn!bB6mwP*qnS#CbiGek3Nkcjw zMmC8BYV7Plp;it+yv9`w?|gYv?rIhF-e%wPK4}iwm006&CC=8H<3E)#bm7A&*05

`fBVzePE(`3t&8s5X9Vo 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

0As~`S&9)-il}quS)rO+mFYg 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®TDpA$P5KWp z9bkJYU6yOAx2C5&v-f3C4;;bT3rc9jLQwi8gP`vf zRoSPWzS@x|@dvx|8VB#!UfHoY^kc{STN&49GCC#r5-AY>_~5ChLD>(xlF&9^yJI38=6-KUI;z?<*tP|k@|Aq?$k*q6t9W=FU`ltTE(S-{fyih*t&{3f}%(!?* znYQJPJqx*OPaO;BIp3}e^hk**@pC1vbg1+aT$Uc1BNZ9f)7i4fh`7Ijsm?p50Yr?g z6-_72iO}9c3HFg*-0+r6tGi9}%+`HWJ%2t6FE-Fs5-J$K)wXTzY{o}2 zsXv;avdSX1a*j?2V|!(-pjrI}M5S^mV7rD%-j=Pldb(#XoKgSeZ}j>J6>&W1m@vjS z+v`JRMNiOna*c_)?|&ZQr$@1FEnnG4b6^$_&Bj^QP!;0<#IL?TVFOi5%am@mwHbiw zdg|ed1+*eF@?X-NS4`jmdig*^P**h9M@0l#txy5V0tV^#kn2H%0+|>#2PTG-118oW zWJ~rL<&nKwY5)S>3MfXF4${`q?)yhjt

PAw^AhjFezke4-a(eG(Vs9k?*94UEmC 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�zR+oR`LTmIwwbbQYNWr3~s7Bwn> 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 z

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 }XLs9q%LOox>Wz_SelQ&8(uQ=z3f;2S2Ezsa z3TM@joVkP)9r{RLBMD+o2^sAu_%7}jx1ZF5&mKX1BSBWYBaCn?Muwe)7bK+NZHxQwLg zC%ABaOTj8B;pW3Ael4i>5R%rRVQZz`Zqum^TADZ4JwRs$G(1nfZ=#Kiu3<=r5t9*U z0=4|EFB+Ziwo4VlE_C_U;XI2^isMqYO@Kc5&DFUc+jn{dw%YWTd@PfPxIc58ESn