diff --git a/src/sql/workbench/browser/designer/designer.ts b/src/sql/workbench/browser/designer/designer.ts index 06f3f8c4e6..e63d03a702 100644 --- a/src/sql/workbench/browser/designer/designer.ts +++ b/src/sql/workbench/browser/designer/designer.ts @@ -983,7 +983,6 @@ export class Designer extends Disposable implements IThemable { table.onBlur((e) => { currentTableActions.forEach(a => a.updateState()); table.grid.setSelectedRows([]); - table.grid.resetActiveCell(); }); component = table; break; diff --git a/src/sql/workbench/browser/designer/designerIssuesTabPanelView.ts b/src/sql/workbench/browser/designer/designerIssuesTabPanelView.ts index 9693f362cb..7de55af1c4 100644 --- a/src/sql/workbench/browser/designer/designerIssuesTabPanelView.ts +++ b/src/sql/workbench/browser/designer/designerIssuesTabPanelView.ts @@ -15,6 +15,8 @@ import { IColorTheme, ICssStyleCollector, IThemeService, registerThemingParticip import { attachListStyler } from 'vs/platform/theme/common/styler'; import { problemsErrorIconForeground, problemsInfoIconForeground, problemsWarningIconForeground } from 'vs/platform/theme/common/colorRegistry'; import { Codicon } from 'vs/base/common/codicons'; +import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; +import { Link } from 'vs/platform/opener/browser/link'; export class DesignerIssuesTabPanelView extends Disposable implements IPanelView { private _container: HTMLElement; @@ -23,13 +25,16 @@ export class DesignerIssuesTabPanelView extends Disposable implements IPanelView public readonly onIssueSelected: Event = this._onIssueSelected.event; - constructor(@IThemeService private _themeService: IThemeService) { + constructor( + @IThemeService private _themeService: IThemeService, + @IInstantiationService private _instantiationService: IInstantiationService + ) { super(); } render(container: HTMLElement): void { this._container = container.appendChild(DOM.$('.issues-container')); - this._issueList = new List('designerIssueList', this._container, new DesignerIssueListDelegate(), [new TableFilterListRenderer()], { + this._issueList = new List('designerIssueList', this._container, new DesignerIssueListDelegate(), [this._instantiationService.createInstance(TableFilterListRenderer)], { multipleSelectionSupport: false, keyboardSupport: true, mouseSupport: true, @@ -87,14 +92,21 @@ class DesignerIssueListDelegate implements IListVirtualDelegate { interface DesignerIssueListItemTemplate { issueText: HTMLDivElement; issueIcon: HTMLDivElement; + issueMoreInfoLink: HTMLDivElement; } class TableFilterListRenderer implements IListRenderer { + + constructor( + @IInstantiationService private _instantiationService: IInstantiationService + ) { } + renderTemplate(container: HTMLElement): DesignerIssueListItemTemplate { const data: DesignerIssueListItemTemplate = Object.create(null); const issueItem = container.appendChild(DOM.$('.issue-item')); data.issueIcon = issueItem.appendChild(DOM.$('')); data.issueText = issueItem.appendChild(DOM.$('.issue-text')); + data.issueMoreInfoLink = issueItem.appendChild(DOM.$('.issue-more-info')); return data; } @@ -114,6 +126,15 @@ class TableFilterListRenderer implements IListRenderer