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


TypeScript filehandler.FileHandlerRegistry類代碼示例

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


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

示例1: activateFileHandler

function activateFileHandler(app: Application, registry: FileHandlerRegistry, services: JupyterServices): Promise<void> {
  let contents = services.contentsManager;
  let activeId = '';
  let id = 0;
  let fileHandler = new FileHandler(contents);
  let dirCreator = new FileCreator(contents, 'directory');
  let fileCreator = new FileCreator(contents, 'file');

  registry.addDefaultHandler(fileHandler);
  registry.addCreator(
    'New Directory', dirCreator.createNew.bind(dirCreator));
  registry.addCreator('New File', fileCreator.createNew.bind(fileCreator));

  app.commands.add([
  {
    id: 'text-file:create-new',
    handler: () => {
      fileCreator.createNew('').then(contents => {
        registry.open(contents.path);
      });
    }
  }]);
  return Promise.resolve(void 0);
};
開發者ID:SimonBiggs,項目名稱:jupyter-js-plugins,代碼行數:24,代碼來源:plugin.ts

示例2: 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 registry = new FileHandlerRegistry();
  let fileHandler = new FileHandler(contentsManager);

  registry.addDefaultHandler(fileHandler);

  let fbWidget = new FileBrowserWidget(fbModel, registry);

  let dirCreator = new FileCreator(contentsManager, 'directory');
  let fileCreator = new FileCreator(contentsManager, 'file');
  registry.addCreator(
    'New Directory', dirCreator.createNew.bind(dirCreator));
  registry.addCreator('New File', fileCreator.createNew.bind(fileCreator));

  let widgets: CodeMirrorWidget[] = [];
  registry.opened.connect((r, widget) => {
    dock.insertTabAfter(widget);
    widgets.push(widget as CodeMirrorWidget);
  });

  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;

  let activeWidget: CodeMirrorWidget;

  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;
      }
    }
  });

  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: () => {
      let path = fileHandler.findModel(activeWidget).path;
      fileHandler.save(path);
      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',
//.........這裏部分代碼省略.........
開發者ID:blink1073,項目名稱:jupyter-js-ui,代碼行數:101,代碼來源:index.ts

示例3: activateNotebookHandler

/**
 * Activate the notebook handler extension.
 */
function activateNotebookHandler(app: Application, registry: FileHandlerRegistry, services: JupyterServices, rendermime: RenderMime<Widget>): Promise<void> {
  let handler = new NotebookFileHandler(
    services.contentsManager,
    services.notebookSessionManager,
    rendermime
  );
  registry.addHandler(handler);

  let creator = new NotebookCreator(handler);
  registry.addCreator('New Notebook', creator.createNew.bind(creator));

  // Temporary notebook focus follower.
  document.body.addEventListener('focus', event => {
    for (let widget of Private.widgets) {
      let target = event.target as HTMLElement;
      if (widget.isAttached && widget.isVisible) {
        if (widget.node.contains(target)) {
          Private.activeWidget = widget;
          return;
        }
      }
    }
  }, true);

  // Add opened notebooks to the widget list temporarily
  handler.opened.connect((h, widget) => {
    Private.activeWidget = widget;
    Private.widgets.push(widget);
  });

  app.commands.add([
  {
    id: cmdIds['runAndAdvance'],
    handler: () => {
      let manager = Private.activeWidget.manager;
      if (manager) manager.runAndAdvance();
    }
  },
  {
    id: cmdIds['run'],
    handler: () => {
      let manager = Private.activeWidget.manager;
      if (manager) manager.run();
    }
  },
  {
    id: cmdIds['runAndInsert'],
    handler: () => {
      let manager = Private.activeWidget.manager;
      if (manager) manager.runAndInsert();
    }
  },
  {
    id: cmdIds['restart'],
    handler: () => {
      let manager = Private.activeWidget.manager;
      if (manager) manager.restart();
    }
  },
  {
    id: cmdIds['interrupt'],
    handler: () => {
      let manager = Private.activeWidget.manager;
      if (manager) manager.interrupt();
    }
  },
  {
    id: cmdIds['toCode'],
    handler: () => {
      let manager = Private.activeWidget.manager;
      if (manager) manager.changeCellType('code'); }
  },
  {
    id: cmdIds['toMarkdown'],
    handler: () => {
      let manager = Private.activeWidget.manager;
      if (manager) manager.changeCellType('markdown'); }
  },
  {
    id: cmdIds['toRaw'],
    handler: () => {
      let manager = Private.activeWidget.manager;
      if (manager) manager.changeCellType('raw');
    }
  },
  {
    id: cmdIds['cut'],
    handler: () => {
      let manager = Private.activeWidget.manager;
      if (manager) manager.cut();
    }
  },
  {
    id: cmdIds['copy'],
    handler: () => {
      let manager = Private.activeWidget.manager;
      if (manager) manager.copy();
//.........這裏部分代碼省略.........
開發者ID:SimonBiggs,項目名稱:jupyter-js-plugins,代碼行數:101,代碼來源:plugin.ts

示例4: ImageHandler

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

示例5:

 fileCreator.createNew('').then(contents => {
   registry.open(contents.path);
 });
開發者ID:SimonBiggs,項目名稱:jupyter-js-plugins,代碼行數:3,代碼來源:plugin.ts


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