本文整理汇总了TypeScript中phosphor/lib/ui/commandregistry.CommandRegistry类的典型用法代码示例。如果您正苦于以下问题:TypeScript CommandRegistry类的具体用法?TypeScript CommandRegistry怎么用?TypeScript CommandRegistry使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了CommandRegistry类的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1: it
it('should restore the widgets in a tracker', done => {
let tracker = new InstanceTracker<Widget>({ namespace: 'foo-widget' });
let registry = new CommandRegistry();
let state = new StateDB({ namespace: NAMESPACE });
let ready = new utils.PromiseDelegate<void>();
let restorer = new InstanceRestorer({
first: ready.promise, registry, state
});
let called = false;
let key = `${tracker.namespace}:${tracker.namespace}`;
registry.addCommand(tracker.namespace, {
execute: () => { called = true; }
});
state.save(key, { data: null }).then(() => {
return restorer.restore(tracker, {
args: () => null,
name: () => tracker.namespace,
command: tracker.namespace
});
}).catch(done);
ready.resolve(void 0);
restorer.restored.then(() => { expect(called).to.be(true); })
.then(() => state.remove(key))
.then(() => { done(); })
.catch(done);
});
示例2: it
it('should disconnect a node from a command', () => {
let called = false;
let command = 'commandlinker:disconnect-node';
let commands =new CommandRegistry();
let linker = new CommandLinker({ commands });
let node = document.createElement('div');
let disposable = commands.addCommand(command, {
execute: () => { called = true; }
});
document.body.appendChild(node);
linker.connectNode(node, command, null);
// Make sure connection is working.
expect(called).to.be(false);
simulate(node, 'click');
expect(called).to.be(true);
// Reset flag.
called = false;
// Make sure disconnection is working.
linker.disconnectNode(node);
expect(called).to.be(false);
simulate(node, 'click');
expect(called).to.be(false);
document.body.removeChild(node);
linker.dispose();
disposable.dispose();
});
示例3: startApp
function startApp(session: ISession) {
// Initialize the keymap manager with the bindings.
let commands = new CommandRegistry();
let keymap = new Keymap({ commands });
// Setup the keydown listener for the document.
document.addEventListener('keydown', event => {
keymap.processKeydownEvent(event);
});
const transformers = [
new JavascriptRenderer(),
new MarkdownRenderer(),
new HTMLRenderer(),
new ImageRenderer(),
new SVGRenderer(),
new LatexRenderer(),
new TextRenderer()
];
let renderers: RenderMime.MimeMap<RenderMime.IRenderer> = {};
let order: string[] = [];
for (let t of transformers) {
for (let m of t.mimetypes) {
renderers[m] = t;
order.push(m);
}
}
let sanitizer = defaultSanitizer;
let rendermime = new RenderMime({ renderers, order, sanitizer });
let consolePanel = new ConsolePanel({ session, rendermime });
consolePanel.title.label = TITLE;
let palette = new CommandPalette({ commands, keymap });
let panel = new SplitPanel();
panel.id = 'main';
panel.orientation = 'horizontal';
panel.spacing = 0;
SplitPanel.setStretch(palette, 0);
SplitPanel.setStretch(consolePanel, 1);
Widget.attach(panel, document.body);
panel.addWidget(palette);
panel.addWidget(consolePanel);
window.onresize = () => { panel.update(); };
commands.addCommand('console-clear', {
label: 'Clear',
execute: () => { consolePanel.content.clear(); }
});
commands.addCommand('console-execute', {
label: 'Execute Prompt',
execute: () => { consolePanel.content.execute(); }
});
commands.addCommand('console-dismiss-completion', {
execute: () => { consolePanel.content.dismissCompletion(); }
});
palette.addItem({ command: 'console-clear', category: 'Console' });
palette.addItem({ command: 'console-execute', category: 'Console' });
let bindings = [
{
selector: '.jp-ConsolePanel',
keys: ['Accel R'],
command: 'console-clear'
},
{
selector: '.jp-ConsolePanel',
keys: ['Shift Enter'],
command: 'console-execute'
},
{
selector: 'body',
keys: ['Escape'],
command: 'console-dismiss-completion'
}
];
bindings.forEach(binding => keymap.addBinding(binding));
}
示例4: startApp
function startApp(session: Session.ISession) {
// Initialize the keymap manager with the bindings.
let commands = new CommandRegistry();
let keymap = new Keymap({ commands });
// Setup the keydown listener for the document.
document.addEventListener('keydown', event => {
keymap.processKeydownEvent(event);
});
const transformers = [
new JavascriptRenderer(),
new MarkdownRenderer(),
new HTMLRenderer(),
new ImageRenderer(),
new SVGRenderer(),
new LatexRenderer(),
new TextRenderer()
];
let renderers: RenderMime.MimeMap<RenderMime.IRenderer> = {};
let order: string[] = [];
for (let t of transformers) {
for (let m of t.mimetypes) {
renderers[m] = t;
order.push(m);
}
}
let sanitizer = defaultSanitizer;
let rendermime = new RenderMime({ renderers, order, sanitizer });
let renderer = CodeMirrorConsoleRenderer.defaultRenderer;
let consolePanel = new ConsolePanel({ session, renderer, rendermime });
consolePanel.title.label = TITLE;
let palette = new CommandPalette({ commands, keymap });
let panel = new SplitPanel();
panel.id = 'main';
panel.orientation = 'horizontal';
panel.spacing = 0;
SplitPanel.setStretch(palette, 0);
SplitPanel.setStretch(consolePanel, 1);
Widget.attach(panel, document.body);
panel.addWidget(palette);
panel.addWidget(consolePanel);
window.onresize = () => { panel.update(); };
let selector = '.jp-ConsolePanel';
let category = 'Console';
let command: string;
command = 'console:clear';
commands.addCommand(command, {
label: 'Clear',
execute: () => { consolePanel.content.clear(); }
});
palette.addItem({ command, category });
command = 'console:execute';
commands.addCommand(command, {
label: 'Execute Prompt',
execute: () => { consolePanel.content.execute(); }
});
palette.addItem({ command, category });
keymap.addBinding({ command, selector, keys: ['Enter'] });
command = 'console:execute-forced';
commands.addCommand(command, {
label: 'Execute Cell (forced)',
execute: () => { consolePanel.content.execute(true); }
});
palette.addItem({ command, category });
keymap.addBinding({ command, selector, keys: ['Shift Enter'] });
command = 'console:linebreak';
commands.addCommand(command, {
label: 'Insert Line Break',
execute: () => { consolePanel.content.insertLinebreak(); }
});
palette.addItem({ command, category });
keymap.addBinding({ command, selector, keys: ['Ctrl Enter'] });
}
示例5: createApp
function createApp(manager: ServiceManager.IManager): void {
let widgets: Widget[] = [];
let activeWidget: Widget;
let opener = {
open: (widget: Widget) => {
if (widgets.indexOf(widget) === -1) {
dock.addWidget(widget, { mode: 'tab-after' });
widgets.push(widget);
}
dock.activateWidget(widget);
activeWidget = widget;
widget.disposed.connect((w: Widget) => {
let index = widgets.indexOf(w);
widgets.splice(index, 1);
});
}
};
let docRegistry = new DocumentRegistry();
let docManager = new DocumentManager({
registry: docRegistry,
manager,
opener
});
let mFactory = new TextModelFactory();
let editorServices = {
factory: new CodeMirrorEditorFactory(),
mimeTypeService: new CodeMirrorMimeTypeService()
};
let wFactory = new EditorWidgetFactory({
editorServices,
factoryOptions: {
name: 'Editor',
modelName: 'text',
fileExtensions: ['*'],
defaultFor: ['*'],
preferKernel: false,
canStartKernel: true
}
});
docRegistry.addModelFactory(mFactory);
docRegistry.addWidgetFactory(wFactory);
let commands = new CommandRegistry();
let keymap = new Keymap({ commands });
let fbModel = new FileBrowserModel({ manager });
let fbWidget = new FileBrowser({
commands,
keymap,
model: fbModel,
manager: docManager,
});
let panel = new SplitPanel();
panel.id = 'main';
panel.addWidget(fbWidget);
SplitPanel.setStretch(fbWidget, 0);
let dock = new DockPanel();
panel.addWidget(dock);
SplitPanel.setStretch(dock, 1);
dock.spacing = 8;
document.addEventListener('focus', event => {
for (let i = 0; i < widgets.length; i++) {
let widget = widgets[i];
if (widget.node.contains(event.target as HTMLElement)) {
activeWidget = widget;
break;
}
}
});
commands.addCommand('file-open', {
label: 'Open',
icon: 'fa fa-folder-open-o',
mnemonic: 0,
execute: () => { fbWidget.open(); }
});
commands.addCommand('file-rename', {
label: 'Rename',
icon: 'fa fa-edit',
mnemonic: 0,
execute: () => { fbWidget.rename(); }
});
commands.addCommand('file-save', {
execute: () => {
let context = docManager.contextForWidget(activeWidget);
context.save();
}
});
commands.addCommand('file-cut', {
label: 'Cut',
icon: 'fa fa-cut',
execute: () => { fbWidget.cut(); }
});
commands.addCommand('file-copy', {
label: 'Copy',
icon: 'fa fa-copy',
//.........这里部分代码省略.........
示例6: createApp
function createApp(manager: IServiceManager): void {
// Initialize the keymap manager with the bindings.
let commands = new CommandRegistry();
let keymap = new Keymap({ commands });
let useCapture = true;
// Setup the keydown listener for the document.
document.addEventListener('keydown', event => {
keymap.processKeydownEvent(event);
}, useCapture);
const transformers = [
new JavascriptRenderer(),
new MarkdownRenderer(),
new HTMLRenderer(),
new ImageRenderer(),
new SVGRenderer(),
new LatexRenderer(),
new TextRenderer()
];
let renderers: RenderMime.MimeMap<RenderMime.IRenderer> = {};
let order: string[] = [];
for (let t of transformers) {
for (let m of t.mimetypes) {
renderers[m] = t;
order.push(m);
}
}
let sanitizer = defaultSanitizer;
let rendermime = new RenderMime({ renderers, order, sanitizer });
let opener = {
open: (widget: Widget) => {
// Do nothing for sibling widgets for now.
}
};
let docRegistry = new DocumentRegistry();
let docManager = new DocumentManager({
registry: docRegistry,
manager,
opener
});
let mFactory = new NotebookModelFactory();
let clipboard = new MimeData();
let renderer = CodeMirrorNotebookPanelRenderer.defaultRenderer;
let wFactory = new NotebookWidgetFactory(rendermime, clipboard, renderer);
docRegistry.addModelFactory(mFactory);
docRegistry.addWidgetFactory(wFactory, {
displayName: 'Notebook',
modelName: 'notebook',
fileExtensions: ['.ipynb'],
defaultFor: ['.ipynb'],
preferKernel: true,
canStartKernel: true
});
let nbWidget = docManager.open(NOTEBOOK) as NotebookPanel;
let palette = new CommandPalette({ commands, keymap });
let panel = new SplitPanel();
panel.id = 'main';
panel.orientation = 'horizontal';
panel.spacing = 0;
SplitPanel.setStretch(palette, 0);
panel.addWidget(palette);
panel.addWidget(nbWidget);
Widget.attach(panel, document.body);
SplitPanel.setStretch(nbWidget, 1);
window.onresize = () => panel.update();
commands.addCommand(cmdIds.save, {
label: 'Save',
execute: () => nbWidget.context.save()
});
commands.addCommand(cmdIds.interrupt, {
label: 'Interrupt',
execute: () => {
if (nbWidget.context.kernel) {
nbWidget.context.kernel.interrupt();
}
}
});
commands.addCommand(cmdIds.restart, {
label: 'Restart Kernel',
execute: () => restartKernel(nbWidget.kernel, nbWidget.node)
});
commands.addCommand(cmdIds.switchKernel, {
label: 'Switch Kernel',
execute: () => selectKernelForContext(nbWidget.context, nbWidget.node)
});
commands.addCommand(cmdIds.runAndAdvance, {
label: 'Run and Advance',
execute: () => {
NotebookActions.runAndAdvance(nbWidget.content, nbWidget.context.kernel);
}
});
commands.addCommand(cmdIds.editMode, {
label: 'Edit Mode',
//.........这里部分代码省略.........