mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-02-16 18:46:40 -05:00
fix keyboard issues in task and explorer widgets (#1064)
This commit is contained in:
@@ -15,6 +15,7 @@ import {
|
|||||||
import { ICapabilitiesService } from 'sql/services/capabilities/capabilitiesService';
|
import { ICapabilitiesService } from 'sql/services/capabilities/capabilitiesService';
|
||||||
import { ConnectionManagementInfo } from 'sql/parts/connection/common/connectionManagementInfo';
|
import { ConnectionManagementInfo } from 'sql/parts/connection/common/connectionManagementInfo';
|
||||||
import * as Constants from 'sql/parts/connection/common/constants';
|
import * as Constants from 'sql/parts/connection/common/constants';
|
||||||
|
import { OEAction } from 'sql/parts/registeredServer/viewlet/objectExplorerActions';
|
||||||
|
|
||||||
import { ObjectMetadata } from 'sqlops';
|
import { ObjectMetadata } from 'sqlops';
|
||||||
|
|
||||||
@@ -27,7 +28,7 @@ import { IAction } from 'vs/base/common/actions';
|
|||||||
import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation';
|
import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation';
|
||||||
import { generateUuid } from 'vs/base/common/uuid';
|
import { generateUuid } from 'vs/base/common/uuid';
|
||||||
import { $ } from 'vs/base/browser/dom';
|
import { $ } from 'vs/base/browser/dom';
|
||||||
import { OEAction } from 'sql/parts/registeredServer/viewlet/objectExplorerActions';
|
import { IKeyboardEvent } from 'vs/base/browser/keyboardEvent';
|
||||||
|
|
||||||
export class ObjectMetadataWrapper implements ObjectMetadata {
|
export class ObjectMetadataWrapper implements ObjectMetadata {
|
||||||
public metadataType: MetadataType;
|
public metadataType: MetadataType;
|
||||||
@@ -164,6 +165,19 @@ export class ExplorerController extends TreeDefaults.DefaultController {
|
|||||||
this._router.navigate(['database-dashboard']);
|
this._router.navigate(['database-dashboard']);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected onEnter(tree: tree.ITree, event: IKeyboardEvent): boolean {
|
||||||
|
let result = super.onEnter(tree, event);
|
||||||
|
if (result) {
|
||||||
|
const focus = tree.getFocus();
|
||||||
|
if (focus && !(focus instanceof ObjectMetadataWrapper)) {
|
||||||
|
this._connectionService.changeDatabase(focus.databaseName).then(result => {
|
||||||
|
this._router.navigate(['database-dashboard']);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export class ExplorerDataSource implements tree.IDataSource {
|
export class ExplorerDataSource implements tree.IDataSource {
|
||||||
|
|||||||
@@ -31,6 +31,8 @@ import * as DOM from 'vs/base/browser/dom';
|
|||||||
import { CommandsRegistry, ICommand } from 'vs/platform/commands/common/commands';
|
import { CommandsRegistry, ICommand } from 'vs/platform/commands/common/commands';
|
||||||
import { MenuRegistry, ICommandAction } from 'vs/platform/actions/common/actions';
|
import { MenuRegistry, ICommandAction } from 'vs/platform/actions/common/actions';
|
||||||
import { ContextKeyExpr } from 'vs/platform/contextkey/common/contextkey';
|
import { ContextKeyExpr } from 'vs/platform/contextkey/common/contextkey';
|
||||||
|
import { StandardKeyboardEvent } from 'vs/base/browser/keyboardEvent';
|
||||||
|
import { KeyCode } from 'vs/base/common/keyCodes';
|
||||||
|
|
||||||
interface ITask {
|
interface ITask {
|
||||||
name: string;
|
name: string;
|
||||||
@@ -135,7 +137,15 @@ export class TasksWidget extends DashboardWidget implements IDashboardWidget, On
|
|||||||
}
|
}
|
||||||
innerTile.append(label);
|
innerTile.append(label);
|
||||||
tile.append(innerTile);
|
tile.append(innerTile);
|
||||||
|
tile.attr('tabindex', '0');
|
||||||
tile.on(DOM.EventType.CLICK, () => this.runTask(action));
|
tile.on(DOM.EventType.CLICK, () => this.runTask(action));
|
||||||
|
tile.on(DOM.EventType.KEY_DOWN, (e: KeyboardEvent) => {
|
||||||
|
let event = new StandardKeyboardEvent(e);
|
||||||
|
if (event.equals(KeyCode.Enter)) {
|
||||||
|
this.runTask(action);
|
||||||
|
e.stopImmediatePropagation();
|
||||||
|
}
|
||||||
|
});
|
||||||
return tile.getHTMLElement();
|
return tile.getHTMLElement();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user