Adding keyboard shortcuts for column resizing in slickgrid (#21100)

* Adding column resize keyboard shortcuts in slickgrid

* Switching to standard keyboard evt

* Adding comment for the functionality

* Cleaning up code and adding more comments

* Using quick input to get column resize width

* Adding check for negative sizes

* Fixing some stuff
This commit is contained in:
Aasim Khan
2022-11-04 16:15:04 -07:00
committed by GitHub
parent e98f2e2745
commit 00b797b4f3
33 changed files with 192 additions and 62 deletions

View File

@@ -25,6 +25,7 @@ import { IDashboardService } from 'sql/platform/dashboard/browser/dashboardServi
import { AlertsCacheObject } from 'sql/workbench/services/jobManagement/common/jobManagementService';
import { RowDetailView } from 'sql/base/browser/ui/table/plugins/rowDetailView';
import { IAccessibilityService } from 'vs/platform/accessibility/common/accessibility';
import { IQuickInputService } from 'vs/platform/quickinput/common/quickInput';
export const VIEW_SELECTOR: string = 'jobalertsview-component';
export const ROW_HEIGHT: number = 45;
@@ -78,7 +79,8 @@ export class AlertsViewComponent extends JobManagementView implements OnInit, On
@Inject(IContextMenuService) contextMenuService: IContextMenuService,
@Inject(IKeybindingService) keybindingService: IKeybindingService,
@Inject(IDashboardService) _dashboardService: IDashboardService,
@Inject(IAccessibilityService) private _accessibilityService: IAccessibilityService) {
@Inject(IAccessibilityService) private _accessibilityService: IAccessibilityService,
@Inject(IQuickInputService) private _quickInputService: IQuickInputService) {
super(commonService, _dashboardService, contextMenuService, keybindingService, instantiationService, _agentViewComponent);
this._didTabChange = false;
this._isCloud = commonService.connectionManagementService.connectionInfo.serverInfo.isCloud;
@@ -145,7 +147,7 @@ export class AlertsViewComponent extends JobManagementView implements OnInit, On
jQuery(this.actionBarContainer.nativeElement).empty();
this.initActionBar();
this._table = new Table(this._gridEl.nativeElement, this._accessibilityService, { columns }, this.options);
this._table = new Table(this._gridEl.nativeElement, this._accessibilityService, this._quickInputService, { columns }, this.options);
this._table.grid.setData(this.dataView, true);
this._register(this._table.onContextMenu(e => {
self.openContextMenu(e);

View File

@@ -35,6 +35,7 @@ import { onUnexpectedError } from 'vs/base/common/errors';
import { IAdsTelemetryService } from 'sql/platform/telemetry/common/telemetry';
import { attachTableFilterStyler } from 'sql/platform/theme/common/styler';
import { IAccessibilityService } from 'vs/platform/accessibility/common/accessibility';
import { IQuickInputService } from 'vs/platform/quickinput/common/quickInput';
export const JOBSVIEW_SELECTOR: string = 'jobsview-component';
export const ROW_HEIGHT: number = 45;
@@ -110,7 +111,8 @@ export class JobsViewComponent extends JobManagementView implements OnInit, OnDe
@Inject(IDashboardService) _dashboardService: IDashboardService,
@Inject(IAdsTelemetryService) private _telemetryService: IAdsTelemetryService,
@Inject(IContextViewService) private _contextViewService: IContextViewService,
@Inject(IAccessibilityService) private _accessibilityService: IAccessibilityService
@Inject(IAccessibilityService) private _accessibilityService: IAccessibilityService,
@Inject(IQuickInputService) private _quickInputService: IQuickInputService
) {
super(commonService, _dashboardService, contextMenuService, keybindingService, instantiationService, _agentViewComponent);
let jobCacheObjectMap = this._jobManagementService.jobCacheObjectMap;
@@ -190,7 +192,7 @@ export class JobsViewComponent extends JobManagementView implements OnInit, OnDe
jQuery(this._gridEl.nativeElement).empty();
jQuery(this.actionBarContainer.nativeElement).empty();
this.initActionBar();
this._table = new Table(this._gridEl.nativeElement, this._accessibilityService, { columns }, options);
this._table = new Table(this._gridEl.nativeElement, this._accessibilityService, this._quickInputService, { columns }, options);
this._table.grid.setData(this.dataView, true);
this._table.grid.onClick.subscribe((e, args) => {
let job = self.getJob(args);

View File

@@ -36,6 +36,7 @@ import { IColorTheme } from 'vs/platform/theme/common/themeService';
import { IAdsTelemetryService } from 'sql/platform/telemetry/common/telemetry';
import { attachTableFilterStyler } from 'sql/platform/theme/common/styler';
import { IAccessibilityService } from 'vs/platform/accessibility/common/accessibility';
import { IQuickInputService } from 'vs/platform/quickinput/common/quickInput';
export const NOTEBOOKSVIEW_SELECTOR: string = 'notebooksview-component';
@@ -109,7 +110,8 @@ export class NotebooksViewComponent extends JobManagementView implements OnInit,
@Inject(IDashboardService) _dashboardService: IDashboardService,
@Inject(IAdsTelemetryService) private _telemetryService: IAdsTelemetryService,
@Inject(IContextViewService) private _contextViewService: IContextViewService,
@Inject(IAccessibilityService) private _accessibilityService: IAccessibilityService
@Inject(IAccessibilityService) private _accessibilityService: IAccessibilityService,
@Inject(IQuickInputService) private _quickInputService: IQuickInputService
) {
super(commonService, _dashboardService, contextMenuService, keybindingService, instantiationService, _agentViewComponent);
let notebookCacheObjectMap = this._jobManagementService.notebookCacheObjectMap;
@@ -189,7 +191,7 @@ export class NotebooksViewComponent extends JobManagementView implements OnInit,
jQuery(this._gridEl.nativeElement).empty();
jQuery(this.actionBarContainer.nativeElement).empty();
this.initActionBar();
this._table = this._register(new Table(this._gridEl.nativeElement, this._accessibilityService, { columns }, options));
this._table = this._register(new Table(this._gridEl.nativeElement, this._accessibilityService, this._quickInputService, { columns }, options));
this._table.grid.setData(this.dataView, true);
this._table.grid.onClick.subscribe((e, args) => {
let notebook = self.getNotebook(args);

View File

@@ -25,6 +25,7 @@ import { IDashboardService } from 'sql/platform/dashboard/browser/dashboardServi
import { OperatorsCacheObject } from 'sql/workbench/services/jobManagement/common/jobManagementService';
import { RowDetailView } from 'sql/base/browser/ui/table/plugins/rowDetailView';
import { IAccessibilityService } from 'vs/platform/accessibility/common/accessibility';
import { IQuickInputService } from 'vs/platform/quickinput/common/quickInput';
export const VIEW_SELECTOR: string = 'joboperatorsview-component';
export const ROW_HEIGHT: number = 45;
@@ -77,7 +78,8 @@ export class OperatorsViewComponent extends JobManagementView implements OnInit,
@Inject(IContextMenuService) contextMenuService: IContextMenuService,
@Inject(IKeybindingService) keybindingService: IKeybindingService,
@Inject(IDashboardService) _dashboardService: IDashboardService,
@Inject(IAccessibilityService) private _accessibilityService: IAccessibilityService
@Inject(IAccessibilityService) private _accessibilityService: IAccessibilityService,
@Inject(IQuickInputService) private _quickInputService: IQuickInputService
) {
super(commonService, _dashboardService, contextMenuService, keybindingService, instantiationService, _agentViewComponent);
this._isCloud = commonService.connectionManagementService.connectionInfo.serverInfo.isCloud;
@@ -145,7 +147,7 @@ export class OperatorsViewComponent extends JobManagementView implements OnInit,
jQuery(this._gridEl.nativeElement).empty();
jQuery(this.actionBarContainer.nativeElement).empty();
this.initActionBar();
this._table = new Table(this._gridEl.nativeElement, this._accessibilityService, { columns }, this.options);
this._table = new Table(this._gridEl.nativeElement, this._accessibilityService, this._quickInputService, { columns }, this.options);
this._table.grid.setData(this.dataView, true);
this._register(this._table.onContextMenu(e => {

View File

@@ -25,6 +25,7 @@ import { IDashboardService } from 'sql/platform/dashboard/browser/dashboardServi
import { ProxiesCacheObject } from 'sql/workbench/services/jobManagement/common/jobManagementService';
import { RowDetailView } from 'sql/base/browser/ui/table/plugins/rowDetailView';
import { IAccessibilityService } from 'vs/platform/accessibility/common/accessibility';
import { IQuickInputService } from 'vs/platform/quickinput/common/quickInput';
export const VIEW_SELECTOR: string = 'jobproxiesview-component';
export const ROW_HEIGHT: number = 45;
@@ -78,7 +79,8 @@ export class ProxiesViewComponent extends JobManagementView implements OnInit, O
@Inject(IContextMenuService) contextMenuService: IContextMenuService,
@Inject(IKeybindingService) keybindingService: IKeybindingService,
@Inject(IDashboardService) _dashboardService: IDashboardService,
@Inject(IAccessibilityService) private _accessibilityService: IAccessibilityService
@Inject(IAccessibilityService) private _accessibilityService: IAccessibilityService,
@Inject(IQuickInputService) private _quickInputService: IQuickInputService
) {
super(commonService, _dashboardService, contextMenuService, keybindingService, instantiationService, _agentViewComponent);
this._isCloud = commonService.connectionManagementService.connectionInfo.serverInfo.isCloud;
@@ -145,7 +147,7 @@ export class ProxiesViewComponent extends JobManagementView implements OnInit, O
jQuery(this._gridEl.nativeElement).empty();
jQuery(this.actionBarContainer.nativeElement).empty();
this.initActionBar();
this._table = new Table(this._gridEl.nativeElement, this._accessibilityService, { columns }, this.options);
this._table = new Table(this._gridEl.nativeElement, this._accessibilityService, this._quickInputService, { columns }, this.options);
this._table.grid.setData(this.dataView, true);
this._register(this._table.onContextMenu(e => {