(row: TableRowBase, selected: boolean, fireEvent: boolean = false)
| 104 | } |
| 105 | |
| 106 | setSelected(row: TableRowBase, selected: boolean, fireEvent: boolean = false) { |
| 107 | if (this._rangeSelection?.isMouse && this._rangeSelection.shiftPressed) { |
| 108 | return; |
| 109 | } |
| 110 | |
| 111 | const tableRows = row.isHeaderRow() ? this._table!.rows : [row as TableRow]; |
| 112 | const selectedSet = this.getSelectedAsSet(); |
| 113 | const selectionChanged = tableRows.reduce((selectedSetChanged, tableRow) => { |
| 114 | const rowKey = this.getRowKey(tableRow); |
| 115 | if (!rowKey) { |
| 116 | return selectedSetChanged; |
| 117 | } |
| 118 | |
| 119 | const setSize = selectedSet.size; |
| 120 | selectedSet[selected ? "add" : "delete"](rowKey); |
| 121 | return selectedSetChanged || setSize !== selectedSet.size; |
| 122 | }, false); |
| 123 | |
| 124 | if (selectionChanged) { |
| 125 | this.setSelectedAsSet(selectedSet); |
| 126 | fireEvent && this.fireDecoratorEvent("change"); |
| 127 | } |
| 128 | } |
| 129 | |
| 130 | /** |
| 131 | * Returns an array of the selected rows. |
no test coverage detected