本文整理汇总了TypeScript中vs/platform/notification/common/notification.INotificationHandle类的典型用法代码示例。如果您正苦于以下问题:TypeScript INotificationHandle类的具体用法?TypeScript INotificationHandle怎么用?TypeScript INotificationHandle使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了INotificationHandle类的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1: prompt
public prompt(severity: Severity, message: string, choices: PromptOption[]): TPromise<number> {
let handle: INotificationHandle;
const promise = new TPromise<number>(c => {
// Complete promise with index of action that was picked
const callback = (index: number, closeNotification: boolean) => () => {
c(index);
if (closeNotification) {
handle.dispose();
}
return TPromise.as(void 0);
};
// Convert choices into primary/secondary actions
const actions: INotificationActions = {
primary: [],
secondary: []
};
choices.forEach((choice, index) => {
let isPrimary = true;
let label: string;
let closeNotification = false;
if (typeof choice === 'string') {
label = choice;
} else {
isPrimary = false;
label = choice.label;
closeNotification = !choice.keepOpen;
}
const action = new Action(`workbench.dialog.choice.${index}`, label, null, true, callback(index, closeNotification));
if (isPrimary) {
actions.primary.push(action);
} else {
actions.secondary.push(action);
}
});
// Show notification with actions
handle = this.notify({ severity, message, actions });
// Cancel promise when notification gets disposed
once(handle.onDidDispose)(() => promise.cancel());
}, () => handle.dispose());
return promise;
}
示例2: prompt
public prompt(severity: Severity, message: string, choices: IPromptChoice[], onCancel?: () => void): INotificationHandle {
let handle: INotificationHandle;
let choiceClicked = false;
// Convert choices into primary/secondary actions
const actions: INotificationActions = { primary: [], secondary: [] };
choices.forEach((choice, index) => {
const action = new Action(`workbench.dialog.choice.${index}`, choice.label, null, true, () => {
choiceClicked = true;
// Pass to runner
choice.run();
// Close notification unless we are told to keep open
if (!choice.keepOpen) {
handle.close();
}
return TPromise.as(void 0);
});
if (!choice.isSecondary) {
actions.primary.push(action);
} else {
actions.secondary.push(action);
}
});
// Show notification with actions
handle = this.notify({ severity, message, actions });
once(handle.onDidClose)(() => {
// Cleanup when notification gets disposed
dispose(...actions.primary, ...actions.secondary);
// Indicate cancellation to the outside if no action was executed
if (!choiceClicked && typeof onCancel === 'function') {
onCancel();
}
});
return handle;
}
示例3:
const callback = (index: number, closeNotification: boolean) => () => {
c(index);
if (closeNotification) {
handle.dispose();
}
return TPromise.as(void 0);
};
示例4: Action
const action = new Action(`workbench.dialog.choice.${index}`, choice.label, null, true, () => {
choiceClicked = true;
// Pass to runner
choice.run();
// Close notification unless we are told to keep open
if (!choice.keepOpen) {
handle.close();
}
return TPromise.as(void 0);
});