Adding top operations to execution plans (#19902)

* Adding top operations to execution plans

* Adding title to links

* Fixing pr comments

* Hiding top operations icon in execution plan editor

* Reducing outline width, adding separator and removing placeholder text

* Registering TopOperationsTabView
This commit is contained in:
Aasim Khan
2022-07-07 12:50:52 -07:00
committed by GitHub
parent 738ea546af
commit 9cfa1436d9
14 changed files with 580 additions and 34 deletions

View File

@@ -77,7 +77,7 @@ export function hyperLinkFormatter(row: number | undefined, cell: any | undefine
cellClasses += ' missing-value';
}
} else if (isHyperlinkCellValue(value)) {
return `<a class="${cellClasses}" href="#" >${escape(value.displayText)}</a>`;
return `<a class="${cellClasses}" href="#" title="${escape(value.displayText)}">${escape(value.displayText)}</a>`;
}
return `<span title="${valueToDisplay}" class="${cellClasses}">${valueToDisplay}</span>`;
}

View File

@@ -31,3 +31,8 @@ export interface FilterableColumn<T> extends Slick.Column<T> {
filterable?: boolean;
filterValues?: Array<string>;
}
export interface ITableKeyboardEvent {
cell?: { row: number, cell: number };
event: KeyboardEvent;
}

View File

@@ -8,7 +8,7 @@ import 'vs/css!./media/slick.grid';
import 'vs/css!./media/slickColorTheme';
import { TableDataView } from './tableDataView';
import { ITableSorter, ITableMouseEvent, ITableConfiguration, ITableStyles } from 'sql/base/browser/ui/table/interfaces';
import { ITableSorter, ITableMouseEvent, ITableConfiguration, ITableStyles, ITableKeyboardEvent } from 'sql/base/browser/ui/table/interfaces';
import * as DOM from 'vs/base/browser/dom';
import { mixin } from 'vs/base/common/objects';
@@ -59,6 +59,9 @@ export class Table<T extends Slick.SlickData> extends Widget implements IDisposa
private _onColumnResize = new Emitter<void>();
public readonly onColumnResize = this._onColumnResize.event;
private _onKeyDown = new Emitter<ITableKeyboardEvent>();
public readonly onKeyDown = this._onKeyDown.event;
private _onBlur = new Emitter<void>();
public readonly onBlur = this._onBlur.event;
@@ -126,6 +129,17 @@ export class Table<T extends Slick.SlickData> extends Widget implements IDisposa
this.mapMouseEvent(this._grid.onHeaderClick, this._onHeaderClick);
this.mapMouseEvent(this._grid.onDblClick, this._onDoubleClick);
this._grid.onColumnsResized.subscribe(() => this._onColumnResize.fire());
this._grid.onKeyDown.subscribe((e, args: Slick.OnKeyDownEventArgs<T>) => {
const evt = (e as JQuery.Event).originalEvent as KeyboardEvent;
this._onKeyDown.fire({
event: evt,
cell: {
row: args.row,
cell: args.cell
}
});
});
}
public rerenderGrid() {