本文整理汇总了TypeScript中@phosphor/widgets.SplitPanel类的典型用法代码示例。如果您正苦于以下问题:TypeScript SplitPanel类的具体用法?TypeScript SplitPanel怎么用?TypeScript SplitPanel使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了SplitPanel类的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的TypeScript代码示例。
示例1: createApp
function createApp(manager: ServiceManager.IManager): void {
// Initialize the command registry with the bindings.
let commands = new CommandRegistry();
let useCapture = true;
// Setup the keydown listener for the document.
document.addEventListener('keydown', event => {
commands.processKeydownEvent(event);
}, useCapture);
let rendermime = new RenderMimeRegistry({ initialFactories });
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 editorFactory = editorServices.factoryService.newInlineEditor;
let contentFactory = new NotebookPanel.ContentFactory({ editorFactory });
let wFactory = new NotebookWidgetFactory({
name: 'Notebook',
modelName: 'notebook',
fileTypes: ['notebook'],
defaultFor: ['notebook'],
preferKernel: true,
canStartKernel: true,
rendermime, contentFactory,
mimeTypeService: editorServices.mimeTypeService
});
docRegistry.addModelFactory(mFactory);
docRegistry.addWidgetFactory(wFactory);
let nbWidget = docManager.open(NOTEBOOK) as NotebookPanel;
let palette = new CommandPalette({ commands });
const editor = nbWidget.notebook.activeCell && nbWidget.notebook.activeCell.editor;
const model = new CompleterModel();
const completer = new Completer({ editor, model });
const connector = new KernelConnector({ session: nbWidget.session });
const handler = new CompletionHandler({ completer, connector });
// Set the handler's editor.
handler.editor = editor;
// Listen for active cell changes.
nbWidget.notebook.activeCellChanged.connect((sender, cell) => {
handler.editor = cell && cell.editor;
});
// Hide the widget when it first loads.
completer.hide();
let panel = new SplitPanel();
panel.id = 'main';
panel.orientation = 'horizontal';
panel.spacing = 0;
SplitPanel.setStretch(palette, 0);
SplitPanel.setStretch(nbWidget, 1);
panel.addWidget(completer);
panel.addWidget(palette);
panel.addWidget(nbWidget);
// Attach the panel to the DOM.
Widget.attach(panel, document.body);
// Handle resize events.
window.addEventListener('resize', () => { panel.update(); });
// Add commands.
commands.addCommand(cmdIds.invoke, {
label: 'Completer: Invoke',
execute: () => handler.invoke()
});
commands.addCommand(cmdIds.select, {
label: 'Completer: Select',
execute: () => handler.completer.selectActive()
});
commands.addCommand(cmdIds.invokeNotebook, {
label: 'Invoke Notebook',
execute: () => {
if (nbWidget.notebook.activeCell.model.type === 'code') {
return commands.execute(cmdIds.invoke);
}
}
});
commands.addCommand(cmdIds.selectNotebook, {
label: 'Select Notebook',
execute: () => {
if (nbWidget.notebook.activeCell.model.type === 'code') {
return commands.execute(cmdIds.select);
}
//.........这里部分代码省略.........
开发者ID:7125messi,项目名称:jupyterlab,代码行数:101,代码来源:index.ts
示例2: 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 = {
factoryService: new CodeMirrorEditorFactory(),
mimeTypeService: new CodeMirrorMimeTypeService()
};
let wFactory = new FileEditorFactory({
editorServices,
factoryOptions: {
name: 'Editor',
modelName: 'text',
fileExtensions: ['*'],
defaultFor: ['*'],
preferKernel: false,
canStartKernel: true
}
});
docRegistry.addModelFactory(mFactory);
docRegistry.addWidgetFactory(wFactory);
let commands = new CommandRegistry();
let fbModel = new FileBrowserModel({ manager });
let fbWidget = new FileBrowser({
id: 'filebrowser',
commands,
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',
mnemonic: 0,
//.........这里部分代码省略.........
开发者ID:charnpreetsingh185,项目名称:jupyterlab,代码行数:101,代码来源:index.ts
注:本文中的@phosphor/widgets.SplitPanel类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论