| 883 | } |
| 884 | |
| 885 | void UIAbstractTableView::onSortColumn( const size_t& colIndex ) { |
| 886 | Model* model = getModel(); |
| 887 | if ( !model ) |
| 888 | return; |
| 889 | if ( model->isSortable() && model->isColumnSortable( colIndex ) ) { |
| 890 | if ( -1 != model->keyColumn() && (Int64)colIndex != model->keyColumn() && |
| 891 | columnData( model->keyColumn() ).widget ) { |
| 892 | UIImage* image = |
| 893 | columnData( model->keyColumn() ).widget->getExtraInnerWidget()->asType<UIImage>(); |
| 894 | image->setForegroundFillEnabled( false ); |
| 895 | image->setDrawable( nullptr ); |
| 896 | } |
| 897 | SortOrder sortOrder = model->sortOrder() == SortOrder::Ascending ? SortOrder::Descending |
| 898 | : SortOrder::Ascending; |
| 899 | UIPushButton* button = columnData( colIndex ).widget; |
| 900 | UIImage* image = button->getExtraInnerWidget()->asType<UIImage>(); |
| 901 | std::string tag = button->getElementTag() + "::arrow"; |
| 902 | image->setElementTag( sortOrder == SortOrder::Ascending ? tag + "-up" : tag + "-down" ); |
| 903 | image->setForegroundFillEnabled( true ); |
| 904 | image->reloadStyle(); |
| 905 | if ( image->getForeground() ) |
| 906 | image->getForeground()->setAlpha( 255 ); |
| 907 | if ( image && image->getForeground() == nullptr ) { |
| 908 | Drawable* icon = mUISceneNode->findIconDrawable( |
| 909 | sortOrder == SortOrder::Ascending ? "arrow-down" : "arrow-up", mSortIconSize ); |
| 910 | if ( icon ) |
| 911 | image->setDrawable( icon ); |
| 912 | } |
| 913 | model->sort( colIndex, sortOrder ); |
| 914 | } |
| 915 | } |
| 916 | |
| 917 | Uint32 UIAbstractTableView::onTextInput( const TextInputEvent& event ) { |
| 918 | if ( !mRowSearchByName ) |
nothing calls this directly
no test coverage detected