提交 c2274d3d 编写于 作者: M Matt Bierner

Strict null check panelViewlet

Also trying to align cases of `getKeyBinding`. Somtimes it returns null and sometimes it returns undefined. Prefer using undefined for all cases
上级 ac8cdbb2
......@@ -547,6 +547,7 @@
"./vs/workbench/browser/parts/quickopen/quickopen.ts",
"./vs/workbench/browser/parts/statusbar/statusbar.ts",
"./vs/workbench/browser/parts/statusbar/statusbarPart.ts",
"./vs/workbench/browser/parts/views/panelViewlet.ts",
"./vs/workbench/browser/parts/views/views.ts",
"./vs/workbench/browser/viewlet.ts",
"./vs/workbench/common/actions.ts",
......
......@@ -27,7 +27,7 @@ export interface IContextMenuDelegate {
getActions(): Array<IAction | ContextSubMenu>;
getActionItem?(action: IAction): IActionItem | null;
getActionsContext?(event?: IContextMenuEvent): any;
getKeyBinding?(action: IAction): ResolvedKeybinding | null;
getKeyBinding?(action: IAction): ResolvedKeybinding | undefined;
getMenuClassName?(): string;
onHide?(didCancel: boolean): void;
actionRunner?: IActionRunner;
......
......@@ -248,7 +248,7 @@ export class DropdownMenu extends BaseDropdown {
getActions: () => this.actions,
getActionsContext: () => this.menuOptions ? this.menuOptions.context : null,
getActionItem: action => this.menuOptions && this.menuOptions.actionItemProvider ? this.menuOptions.actionItemProvider(action) : null,
getKeyBinding: action => this.menuOptions && this.menuOptions.getKeyBinding ? this.menuOptions.getKeyBinding(action) : null,
getKeyBinding: action => this.menuOptions && this.menuOptions.getKeyBinding ? this.menuOptions.getKeyBinding(action) : undefined,
getMenuClassName: () => this.menuClassName,
onHide: () => this.onHide(),
actionRunner: this.menuOptions ? this.menuOptions.actionRunner : undefined,
......@@ -271,13 +271,13 @@ export class DropdownMenuActionItem extends BaseActionItem {
private dropdownMenu: DropdownMenu;
private contextMenuProvider: IContextMenuProvider;
private actionItemProvider?: IActionItemProvider;
private keybindings?: (action: IAction) => ResolvedKeybinding;
private keybindings?: (action: IAction) => ResolvedKeybinding | undefined;
private clazz: string;
private anchorAlignmentProvider: (() => AnchorAlignment) | undefined;
constructor(action: IAction, menuActions: IAction[], contextMenuProvider: IContextMenuProvider, actionItemProvider: IActionItemProvider | undefined, actionRunner: IActionRunner, keybindings: ((action: IAction) => ResolvedKeybinding) | undefined, clazz: string, anchorAlignmentProvider?: () => AnchorAlignment);
constructor(action: IAction, menuActions: IAction[], contextMenuProvider: IContextMenuProvider, actionItemProvider: IActionItemProvider | undefined, actionRunner: IActionRunner, keybindings: ((action: IAction) => ResolvedKeybinding | undefined) | undefined, clazz: string, anchorAlignmentProvider?: () => AnchorAlignment);
constructor(action: IAction, actionProvider: IActionProvider, contextMenuProvider: IContextMenuProvider, actionItemProvider: IActionItemProvider | undefined, actionRunner: IActionRunner, keybindings: (action: IAction) => ResolvedKeybinding, clazz: string, anchorAlignmentProvider?: () => AnchorAlignment);
constructor(action: IAction, menuActionsOrProvider: any, contextMenuProvider: IContextMenuProvider, actionItemProvider: IActionItemProvider | undefined, actionRunner: IActionRunner, keybindings: (action: IAction) => ResolvedKeybinding, clazz: string, anchorAlignmentProvider?: () => AnchorAlignment) {
constructor(action: IAction, menuActionsOrProvider: any, contextMenuProvider: IContextMenuProvider, actionItemProvider: IActionItemProvider | undefined, actionRunner: IActionRunner, keybindings: (action: IAction) => ResolvedKeybinding | undefined, clazz: string, anchorAlignmentProvider?: () => AnchorAlignment) {
super(null, action);
this.menuActionsOrProvider = menuActionsOrProvider;
......
......@@ -27,7 +27,7 @@ export interface IMenuOptions {
context?: any;
actionItemProvider?: IActionItemProvider;
actionRunner?: IActionRunner;
getKeyBinding?: (action: IAction) => ResolvedKeybinding | null;
getKeyBinding?: (action: IAction) => ResolvedKeybinding | undefined;
ariaLabel?: string;
enableMnemonics?: boolean;
anchorAlignment?: AnchorAlignment;
......
......@@ -18,7 +18,7 @@ export interface IToolBarOptions {
orientation?: ActionsOrientation;
actionItemProvider?: IActionItemProvider;
ariaLabel?: string;
getKeyBinding?: (action: IAction) => ResolvedKeybinding;
getKeyBinding?: (action: IAction) => ResolvedKeybinding | undefined;
actionRunner?: IActionRunner;
toggleMenuTitle?: string;
anchorAlignmentProvider?: () => AnchorAlignment;
......
......@@ -189,8 +189,8 @@ export class ContextMenuController implements IEditorContribution {
return new ActionItem(action, action, { icon: true, label: true, isMenu: true });
},
getKeyBinding: (action): ResolvedKeybinding | null => {
return this._keybindingFor(action);
getKeyBinding: (action): ResolvedKeybinding | undefined => {
return this._keybindingFor(action) || undefined;
},
onHide: (wasCancelled: boolean) => {
......@@ -203,7 +203,7 @@ export class ContextMenuController implements IEditorContribution {
});
}
private _keybindingFor(action: IAction): ResolvedKeybinding | null {
private _keybindingFor(action: IAction): ResolvedKeybinding | undefined {
return this._keybindingService.lookupKeybinding(action.id);
}
......
......@@ -93,12 +93,12 @@ export abstract class AbstractKeybindingService extends Disposable implements IK
);
}
public lookupKeybinding(commandId: string): ResolvedKeybinding | null {
public lookupKeybinding(commandId: string): ResolvedKeybinding | undefined {
let result = this._getResolver().lookupPrimaryKeybinding(commandId);
if (!result) {
return null;
return undefined;
}
return result.resolvedKeybinding;
return result.resolvedKeybinding || undefined;
}
public dispatchEvent(e: IKeyboardEvent, target: IContextKeyServiceTarget): boolean {
......
......@@ -74,7 +74,7 @@ export interface IKeybindingService {
* Look up the preferred (last defined) keybinding for a command.
* @returns The preferred keybinding or null if the command is not bound.
*/
lookupKeybinding(commandId: string): ResolvedKeybinding | null;
lookupKeybinding(commandId: string): ResolvedKeybinding | undefined;
getDefaultKeybindingsContent(): string;
......
......@@ -108,8 +108,8 @@ export class MockKeybindingService implements IKeybindingService {
return [];
}
public lookupKeybinding(commandId: string): ResolvedKeybinding | null {
return null;
public lookupKeybinding(commandId: string): ResolvedKeybinding | undefined {
return undefined;
}
public customKeybindingsCount(): number {
......
......@@ -62,7 +62,7 @@ export abstract class ViewletPanel extends Panel implements IView {
readonly id: string;
readonly title: string;
protected actionRunner: IActionRunner;
protected actionRunner?: IActionRunner;
protected toolbar: ToolBar;
private headerContainer: HTMLElement;
......@@ -127,7 +127,7 @@ export abstract class ViewletPanel extends Panel implements IView {
orientation: ActionsOrientation.HORIZONTAL,
actionItemProvider: action => this.getActionItem(action),
ariaLabel: nls.localize('viewToolbarAriaLabel', "{0} actions", this.title),
getKeyBinding: action => this.keybindingService.lookupKeybinding(action.id),
getKeyBinding: action => this.keybindingService.lookupKeybinding(action.id) || undefined,
actionRunner: this.actionRunner
});
......@@ -140,7 +140,7 @@ export abstract class ViewletPanel extends Panel implements IView {
}
protected renderHeaderTitle(container: HTMLElement, title: string): void {
append(container, $('h3.title', null, title));
append(container, $('h3.title', undefined, title));
}
focus(): void {
......@@ -173,7 +173,7 @@ export abstract class ViewletPanel extends Panel implements IView {
return [];
}
getActionItem(action: IAction): IActionItem {
getActionItem(action: IAction): IActionItem | null {
return null;
}
......@@ -281,7 +281,7 @@ export class PanelViewlet extends Viewlet {
return [];
}
getActionItem(action: IAction): IActionItem {
getActionItem(action: IAction): IActionItem | null {
if (this.isSingleView()) {
return this.panelItems[0].panel.getActionItem(action);
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册