當前位置: 首頁>>代碼示例>>TypeScript>>正文


TypeScript docmanager.DocumentManager類代碼示例

本文整理匯總了TypeScript中jupyter-js-ui/lib/docmanager.DocumentManager的典型用法代碼示例。如果您正苦於以下問題:TypeScript DocumentManager類的具體用法?TypeScript DocumentManager怎麽用?TypeScript DocumentManager使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。


在下文中一共展示了DocumentManager類的5個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的TypeScript代碼示例。

示例1: activateNotebookHandler

/**
 * Activate the notebook handler extension.
 */
function activateNotebookHandler(app: Application, manager: DocumentManager, services: JupyterServices): Promise<void> {
  let handler = new NotebookFileHandler(
    services.contentsManager
  );
  manager.register(handler);
  return Promise.resolve(void 0);
}
開發者ID:ellisonbg,項目名稱:jupyter-js-plugins,代碼行數:10,代碼來源:plugin.ts

示例2: createApp

function createApp(sessionsManager: NotebookSessionManager, specs: IKernelSpecIds): void {
  // Initialize the keymap manager with the bindings.
  let keymap = new KeymapManager();
  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: MimeMap<IRenderer<Widget>> = {};
  let order: string[] = [];
  for (let t of transformers) {
    for (let m of t.mimetypes) {
      renderers[m] = t;
      order.push(m);
    }
  }
  let rendermime = new RenderMime<Widget>(renderers, order);

  let opener = {
    open: (widget: DocumentWidget) => {
      // Do nothing for sibling widgets for now.
    }
  };

  let contentsManager = new ContentsManager();
  let docManager = new DocumentManager(contentsManager, sessionsManager, specs, opener);
  let mFactory = new NotebookModelFactory();
  let clipboard = new MimeData();
  let wFactory = new NotebookWidgetFactory(rendermime, clipboard);
  docManager.registerModelFactory(mFactory, {
    name: 'notebook',
    contentsOptions: { type: 'notebook' }
  });
  docManager.registerWidgetFactory(wFactory, {
    displayName: 'Notebook',
    modelName: 'notebook',
    fileExtensions: ['.ipynb'],
    defaultFor: ['.ipynb'],
    preferKernel: true,
    canStartKernel: true
  });
  let doc = docManager.open(NOTEBOOK);
  let nbWidget: NotebookPanel;
  doc.populated.connect((d, widget) => {
    nbWidget = widget as NotebookPanel;
  });

  let pModel = new StandardPaletteModel();
  let palette = new CommandPalette();
  palette.model = pModel;

  let panel = new SplitPanel();
  panel.id = 'main';
  panel.orientation = SplitPanel.Horizontal;
  panel.spacing = 0;
  SplitPanel.setStretch(palette, 0);
  panel.attach(document.body);
  panel.addChild(palette);
  panel.addChild(doc);
  SplitPanel.setStretch(doc, 1);
  window.onresize = () => { panel.update(); };

  let saveHandler = () => { nbWidget.context.save(); };
  let interruptHandler = () => {
    if (nbWidget.context.kernel) {
      nbWidget.context.kernel.interrupt();
    }
  };
  let restartHandler = () => {  nbWidget.restart(); };
  let switchHandler = () => {
    let context = nbWidget.context;
    if (!context.kernel) {
      return;
    }
    selectKernel(nbWidget.node, context.kernel.name, specs).then(name => {
      if (name) {
        context.changeKernel({ name });
      }
    });
  };
  let runAdvanceHandler = () => {
    NotebookActions.runAndAdvance(nbWidget.content, nbWidget.context.kernel);
  };
  let editHandler = () => { nbWidget.content.mode = 'edit'; };
  let commandHandler = () => { nbWidget.content.mode = 'command'; };
  let codeHandler = () => {
    NotebookActions.changeCellType(nbWidget.content, 'code');
  };
  let markdownHandler = () => {
//.........這裏部分代碼省略.........
開發者ID:tracykteal,項目名稱:jupyter-js-notebook,代碼行數:101,代碼來源:index.ts

示例3: FileHandler

 activate: (app: Application, manager: DocumentManager, services: JupyterServices) => {
   let handler = new FileHandler(services.contentsManager);
   manager.registerDefault(handler);
   return Promise.resolve(void 0);
 }
開發者ID:craigcitro,項目名稱:jupyter-js-plugins,代碼行數:5,代碼來源:plugin.ts

示例4: main

function main(): void {

  let baseUrl = getConfigOption('baseUrl');
  let contentsManager = new ContentsManager(baseUrl);
  let sessionsManager = new NotebookSessionManager({ baseUrl: baseUrl });

  let fbModel = new FileBrowserModel(contentsManager, sessionsManager);
  let fbWidget = new FileBrowserWidget(fbModel)

  let fileHandler = new FileHandler(contentsManager);
  let docManager = new DocumentManager();
  docManager.registerDefault(fileHandler);

  let panel = new SplitPanel();
  panel.id = 'main';
  panel.addChild(fbWidget);
  SplitPanel.setStretch(fbWidget, 0);
  let dock = new DockPanel();
  panel.addChild(dock);
  SplitPanel.setStretch(dock, 1);
  dock.spacing = 8;

  fbWidget.widgetFactory = model => {
    return docManager.open(model);
  };

  fbModel.openRequested.connect((fbModel, model) => {
    let editor = docManager.open(model);
    dock.insertTabAfter(editor);
  });

  fbModel.fileChanged.connect((fbModel, args) => {
    docManager.rename(args.oldValue, args.newValue);
  });

  let keymapManager = new KeymapManager();
  keymapManager.add([{
    sequence: ['Enter'],
    selector: '.jp-DirListing',
    handler: () => {
      fbWidget.open();
      return true;
    }
  }, {
    sequence: ['Ctrl N'], // Add emacs keybinding for select next.
    selector: '.jp-DirListing',
    handler: () => {
      fbWidget.selectNext();
      return true;
    }
  }, {
    sequence: ['Ctrl P'], // Add emacs keybinding for select previous.
    selector: '.jp-DirListing',
    handler: () => {
      fbWidget.selectPrevious();
      return true;
    }
  }, {
    sequence: ['Accel S'],
    selector: '.jp-CodeMirrorWidget',
    handler: () => {
      docManager.save();
      return true;
    }
  }]);

  window.addEventListener('keydown', (event) => {
    keymapManager.processKeydownEvent(event);
  });

  let contextMenu = new Menu([
    new MenuItem({
      text: '&Open',
      icon: 'fa fa-folder-open-o',
      shortcut: 'Ctrl+O',
      handler: () => { fbWidget.open(); }
    }),
    new MenuItem({
      text: '&Rename',
      icon: 'fa fa-edit',
      shortcut: 'Ctrl+R',
      handler: () => { fbWidget.rename(); }
    }),
    new MenuItem({
      text: '&Delete',
      icon: 'fa fa-remove',
      shortcut: 'Ctrl+D',
      handler: () => { fbWidget.delete(); }
    }),
    new MenuItem({
      text: 'Duplicate',
      icon: 'fa fa-copy',
      handler: () => { fbWidget.duplicate(); }
    }),
    new MenuItem({
      text: 'Cut',
      icon: 'fa fa-cut',
      shortcut: 'Ctrl+X',
      handler: () => { fbWidget.cut(); }
    }),
//.........這裏部分代碼省略.........
開發者ID:jasongrout,項目名稱:jupyter-js-ui,代碼行數:101,代碼來源:index.ts

示例5:

 let onOpenRequested = (model: IContentsModel) => {
   let widget = manager.open(model);
   if (!widget.id) widget.id = `document-manager-${++id}`;
   if (!widget.isAttached) app.shell.addToMainArea(widget);
   let stack = widget.parent;
   if (!stack) {
     return;
   }
   let tabs = stack.parent;
   if (tabs instanceof TabPanel) {
     tabs.currentWidget = widget;
   }
 };
開發者ID:craigcitro,項目名稱:jupyter-js-plugins,代碼行數:13,代碼來源:plugin.ts


注:本文中的jupyter-js-ui/lib/docmanager.DocumentManager類示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。