Skip to content

Grid Selection General

Nadia Robakova edited this page Aug 6, 2019 · 10 revisions

General Selection Specification

Contents

  1. References
  2. Overview
  3. Functionality
    3.1. End User Experience
    3.2. API
  4. User Stories
  5. ARIA support
  6. Assumptions and Limitations

Revision History

Version User Date Notes
0.1 Zdravko Kolev July 15, 2019 Initial Draft
1.0 Zdravko Kolev July 25, 2019 Use two inputs for cell and row selection
1.1 Nadia Robakova July 31, 2019 Add test plan

References

Row Selection

Multi-cell Selection

Overview

Different selection scenarios should be supported by the igxGrid.

Objectives

  1. Each selection type (row/cell) should have the ability to be disabled.
  2. Both selection types should be working simultaneously. ..

Functionality

Provide a way to configure different selection scenarios with the usage of two @Inputs - rowSelection and cellSelection.

rowSelection will accept Enumeration value type:

  1. none - Row selection would be disabled for the Grid
  2. single - Selection of only one row within the grid would be available.
  3. multi - multi-row selection would be available by using a key combination like ctrl+click, or by pressing the space key once a cell is focused

cellSelection will accept Enumeration value type:

  1. none - Cell selection would be disabled for the Grid
  2. single - Selection of only one cell within the grid would be available.
  3. multi - Currently, this is the default state of the selection in the grid. Multi-cell selection is available by mouse dragging over the cells, after a left button mouse click.

Use hideRowSelectors @Input in order to hide the Row selectors on row selection (old property name was rowSelectable), the default value is false, which means that when the user sets selectionMode to single-cell and single-row selection, multi-row selection or multi-row and multi-cell selection Row selectors will be visible (checkboxes). The end user should explicitly set hideRowSelectors to true in order to hide them.

Name Type Description
rowSelection Enumeration Set row selection type - none, single, multi, default value is none
cellSelection Enumeration Set cell selection type - none, single, multi, default value is multi
hideRowSelectors Boolean Hide Row selectors, default value is false

Limitations and concerns

  • Should we expose selected rows as a collection in the Copy Clipboard functionality.
  • Integration of the new Selection with MRL and KB navigation.
  • Consider removing of the focus on a cell - Note: KB navigation will benefit from this.

End User Experience

[To be updated with action images after the design meeting]

Developer experience

User Stories

ARIA support

Assumptions and Limitations

Test plan

Automation

Cell Selection None

  • When click on a cell it should not be selected and event onSelection should not be fired. Methods getSelectedRanges, getSelectedData and get selected cells should return empty arrays
  • When click with Ctrl on a cell it should not be selected and event onSelection should not be fired. Methods getSelectedRanges, getSelectedData and get selected cells should return empty arrays
  • When navigate with the keyboard no cells should be selected and event onSelection should not be fired
  • Cells should not be selected with mouse drag.
  • Verify that cells can be selected form API
  • When change GridSelectionMode to multiple, should be able to select a range

Cell Selection Single

  • When click on a cell it be selected and event onSelection should be fired.
  • When click with Ctrl on a cell it should be selected and previous selected cell should be unselected and event onSelection should be fired.
  • When navigate with the arrow keys the selected cell should be changed, the event should be fired.
  • When navigating with Shift+ arrow keys only one cell should be selected, onRangeSelection event should not be fired
  • It should not be possible to select multiple cells with mouse drag. , onRangeSelection event should not be fired
  • Verify that multiple cells can be selected form API
  • When change GridSelectionMode to multiple, should be able to select a range
  • When GridSelectionMode to none or multiple, the selected cells should be cleared
  • When click on already selected cell, the event onSelection should not be fired

Cell Selection Multi

  • When change GridSelectionMode to none or single, should not be able to select a range
  • When change GridSelectionMode to none or single, previous selected range should be cleared

Row Selection None

  • When change type to multiple row selector checkboxes should be shown.
  • When change type to single row selector checkboxes should be shown.
  • Test that multiple rows can be selected from the API
  • When set hideRowSelectors to true or false, row selector checkboxes should not be shown.

Row Selection Single

  • Test with hideRowSelectors set to true and false.
  • Test that header checkbox is not previewed.
  • Test that only one row can be selected with clicking on the checkbox. onRowSelectionChange event should be fired.
  • Test selecting a row with clicking on a cell. onRowSelectionChange event should be fired.
  • Test Selection a row with Ctrl and click, only one row should be selected. onRowSelectionChange event should be fired.
  • Test selection with Shift+click, only one row should be selected. onRowSelectionChange event should be fired.
  • Test toggle row selection with pressing Space on a cell. onRowSelectionChange event should be fired.
  • Test that multiple rows can be selected from the API
  • Test canceling of onRowSelectionChange event
  • When change type to none row selector checkboxes should be hidden
  • When change type to none or multiple the previous selected rows should be cleared
  • When click on a cell in already selected row, the event onRowSelectionChange should not be fired

Row Selection Multi

  • Test with hideRowSelectors set to true and false
  • Select multiple row with Shift + click, a range of rows should be selected
  • Select multiple row with Ctrl + click
  • Verify that when click on a cell only the current row should be selected
  • Test toggle row selection with pressing Space on a cell. onRowSelectionChange event should be fired.
  • Test canceling of onRowSelectionChange event
  • When change type to none row selector checkboxes should be hidden. And previous selected rows should be cleared
  • When change type to single header row selector checkbox should be hidden. And previous selected rows should be cleared
  • When click on a cell in already selected row, the event onRowSelectionChange should not be fired

Row Selection Integration

  • Verify selected rows when add/delete a row
  • Verify select all does not selects deleted rows
  • Verify selecting rows with Shift+Click when change page
  • Verify selecting rows with Shift+Click when apply a filter
  • Verify selecting rows with Shift+Click when apply grouping
Clone this wiki locally