提交 f1ea69be 编写于 作者: B Benjamin Pasero

notifications - 💄

上级 18c60de9
......@@ -14,6 +14,8 @@ import { INotificationViewItem, isNotificationViewItem } from 'vs/workbench/comm
import { MenuRegistry, MenuId } from 'vs/platform/actions/common/actions';
import { localize } from 'vs/nls';
import { IListService, WorkbenchList } from 'vs/platform/list/browser/listService';
import { Action } from 'vs/base/common/actions';
import { Severity } from 'vs/platform/message/common/message';
// Center
export const SHOW_NOTIFICATIONS_CENTER_COMMAND_ID = 'notifications.showList';
......@@ -199,14 +201,62 @@ export function registerNotificationCommands(center: INotificationsCenterControl
// TODO@notifications remove me
CommandsRegistry.registerCommand('notifications.showInfo', accessor => {
accessor.get(INotificationService).info('This is an information message!' + Date.now());
let handle = accessor.get(INotificationService).notify({
severity: Severity.Info,
message: 'Installing additional dependencies...',
actions: {
primary: [
new Action('id.cancel', 'Cancel', null, true, () => { console.log('OK'); return void 0; }),
]
}
});
handle.progress.total(100);
setTimeout(() => {
handle.updateMessage('Installing: admdefine...');
handle.progress.worked(20);
setTimeout(() => {
handle.updateMessage('Installing: binary-search...');
handle.progress.worked(40);
setTimeout(() => {
handle.updateMessage('Installing: cookie...');
handle.progress.worked(60);
setTimeout(() => {
handle.updateMessage('Installing: editorconfig...');
handle.progress.worked(80);
setTimeout(() => {
handle.updateMessage('Installing: error-ex...');
handle.progress.worked(100);
setTimeout(() => {
handle.updateMessage('Installation complete');
handle.progress.done();
handle.updateActions();
}, 3000);
}, 3000);
}, 3000);
}, 3000);
}, 3000);
}, 1000);
});
CommandsRegistry.registerCommand('notifications.showWarning', accessor => {
accessor.get(INotificationService).warn('This is a warning message!' + Date.now());
accessor.get(INotificationService).warn('This is a warning message!');
});
CommandsRegistry.registerCommand('notifications.showError', accessor => {
accessor.get(INotificationService).error('This is an error message!' + Date.now());
accessor.get(INotificationService).notify({
severity: Severity.Info,
message: 'This is a info message with a [link](https://code.visualstudio.com).',
actions: {
primary: [
new Action('id.reload', 'Yes OK', null, true, () => { console.log('OK'); return void 0; }),
new Action('id.cancel', 'No, not OK!', null, true, () => { console.log('NOT OK'); return void 0; })
],
secondary: [
new Action('id.reload', 'Yes OK', null, true, () => { console.log('OK'); return void 0; }),
new Action('id.cancel', 'No, not OK!', null, true, () => { console.log('NOT OK'); return void 0; })
]
}
});
});
}
\ No newline at end of file
......@@ -7,7 +7,6 @@
import { INotificationService, INotification, INotificationHandle } from 'vs/platform/notification/common/notification';
import { Severity } from 'vs/platform/message/common/message';
import { Action } from 'vs/base/common/actions';
import { INotificationsModel, NotificationsModel } from 'vs/workbench/common/notifications';
import { IDisposable, dispose } from 'vs/base/common/lifecycle';
......@@ -26,86 +25,12 @@ export class NotificationService implements INotificationService {
const model = new NotificationsModel();
this.toDispose.push(model);
this._model = model;
// TODO@notification remove me
this.showFakeNotifications();
}
public get model(): INotificationsModel {
return this._model;
}
private showFakeNotifications(): void {
setTimeout(() => {
this.notify({
severity: Severity.Info,
message: 'This is a info message with a [link](https://code.visualstudio.com). This is a info message with a [link](https://code.visualstudio.com). This is a info message with a [link](https://code.visualstudio.com). This is a info message with a [link](https://code.visualstudio.com).',
source: 'GitLens Extension'
});
let handle = this.notify({
severity: Severity.Warning,
message: 'This is a warning message with a [link](https://code.visualstudio.com).',
actions: {
primary: [
new Action('id.reload', 'Yes OK', null, true, () => { console.log('OK'); return void 0; }),
new Action('id.cancel', 'No, not OK!', null, true, () => { console.log('NOT OK'); return void 0; })
],
secondary: [
new Action('id.reload', 'Yes OK', null, true, () => { console.log('OK'); return void 0; }),
new Action('id.cancel', 'No, not OK!', null, true, () => { console.log('NOT OK'); return void 0; })
]
}
});
handle.progress.total(100);
setTimeout(() => {
handle.updateMessage('First 20% done...');
handle.progress.worked(20);
setTimeout(() => {
handle.updateMessage('First 40% done...');
handle.progress.worked(40);
setTimeout(() => {
handle.updateMessage('First 60% done...');
handle.progress.worked(60);
setTimeout(() => {
handle.updateMessage('First 80% done...');
handle.progress.worked(80);
setTimeout(() => {
handle.updateMessage('First 100% done...');
handle.progress.worked(100);
setTimeout(() => {
handle.updateMessage('Finished!');
handle.progress.done();
}, 3000);
}, 3000);
}, 3000);
}, 3000);
}, 3000);
}, 1000);
let handle2 = this.notify({
severity: Severity.Error,
message: 'Short message'
});
setTimeout(() => {
handle2.progress.infinite();
handle2.updateActions({
primary: [
new Action('id.reload', 'Yes OK', null, true, () => { console.log('OK'); return void 0; }),
new Action('id.cancel', 'No, not OK!', null, true, () => { console.log('NOT OK'); return void 0; })
],
secondary: [
new Action('id.reload', 'Yes OK', null, true, () => { console.log('OK'); return void 0; }),
new Action('id.cancel', 'No, not OK!', null, true, () => { console.log('NOT OK'); return void 0; })
]
});
setTimeout(() => {
handle2.updateMessage('This is a error message with a [link](https://code.visualstudio.com). This is a error message with a [link](https://code.visualstudio.com). This is a error message with a [link](https://code.visualstudio.com). This is a error message with a [link](https://code.visualstudio.com). This is a error message with a [link](https://code.visualstudio.com). This is a error message with a [link](https://code.visualstudio.com). This is a error message with a [link](https://code.visualstudio.com).This is a error message with a [link](https://code.visualstudio.com). This is a error message with a [link](https://code.visualstudio.com). This is a error message with a [link](https://code.visualstudio.com). This is a error message with a [link](https://code.visualstudio.com).');
handle2.progress.done();
}, 1500);
}, 500);
}, 500);
}
public info(message: string): INotificationHandle {
return this.model.notify({ severity: Severity.Info, message });
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册