diff --git a/src/sql/base/browser/ui/table/table.ts b/src/sql/base/browser/ui/table/table.ts index a3da53007f..0a0c1c6a0a 100644 --- a/src/sql/base/browser/ui/table/table.ts +++ b/src/sql/base/browser/ui/table/table.ts @@ -30,8 +30,8 @@ function getDefaultOptions(): Slick.GridOptions { } export class Table extends Widget implements IDisposable { - private styleElement: HTMLStyleElement; - private idPrefix: string; + protected styleElement: HTMLStyleElement; + protected idPrefix: string; protected _grid: Slick.Grid; protected _columns: Slick.Column[]; diff --git a/src/sql/base/browser/ui/table/treeGrid.ts b/src/sql/base/browser/ui/table/treeGrid.ts index a20d58dcef..f15d78455b 100644 --- a/src/sql/base/browser/ui/table/treeGrid.ts +++ b/src/sql/base/browser/ui/table/treeGrid.ts @@ -5,7 +5,7 @@ import 'vs/css!./media/slick.grid'; -import { FilterableColumn, ITableConfiguration } from 'sql/base/browser/ui/table/interfaces'; +import { FilterableColumn, ITableConfiguration, ITableStyles } from 'sql/base/browser/ui/table/interfaces'; import { Table } from 'sql/base/browser/ui/table/table'; import { IDisposableDataProvider } from 'sql/base/common/dataProvider'; import { generateUuid } from 'vs/base/common/uuid'; @@ -14,6 +14,7 @@ import { AsyncDataProvider } from 'sql/base/browser/ui/table/asyncDataView'; import { StandardKeyboardEvent } from 'vs/base/browser/keyboardEvent'; import { KeyCode } from 'vs/base/common/keyCodes'; import { createTreeGridExpandableColumnFormatter, textFormatter } from 'sql/base/browser/ui/table/formatters'; +import { escape } from 'sql/base/common/strings'; function defaultTreeGridFilter(data: T[], columns: FilterableColumn[], cellValueGetter: CellValueGetter = defaultCellValueGetter): T[] { let filteredData = defaultFilter(data, columns, cellValueGetter); @@ -183,4 +184,21 @@ export class TreeGrid extends Table { } } } + + override style(styles: ITableStyles): void { + super.style(styles); + const content: string[] = []; + + if (styles.listFocusAndSelectionForeground) { + content.push(`.monaco-table.${this.idPrefix}.focused .slick-row .selected.active .codicon.toggle { color: ${styles.listFocusAndSelectionForeground}; }`); + } + + if (styles.listInactiveSelectionForeground) { + content.push(`.monaco-table.${this.idPrefix} .slick-row .selected.active .codicon.toggle { color: ${styles.listInactiveSelectionForeground}; }`); + } + + if (content.length > 0) { + this.styleElement.innerText += escape('\n' + content.join('\n')); + } + } }