Как расширить DocumentManager из JupyterLab - PullRequest
0 голосов
/ 10 октября 2018

Я хотел бы добавить свое собственное пользовательское поведение (на стороне сервера) к операции закрывающей вкладки, поэтому я думаю, что я должен расширить этот метод closeFile() из DocumentManager https://github.com/jupyterlab/jupyterlab/blob/master/packages/docmanager/src/manager.ts#L177.

У меня есть пользовательский плагин для файлового браузера (расширение), который хорошо работает, если я использую его с основным IDocumentManager JupyterLab, но нет, если я использую его с расширенным / перезаписанным IMyDocumentManager, как здесь:

const browserPlugin: JupyterLabPlugin<void> = {
  id: "my:fs",
  requires: [IMyDocumentManager, ISettingRegistry, IMainMenu],
  activate: activateMyBrowser,
  autoStart: true
};

My IMyDocumentManagerвыглядит так:

import { IDocumentManager, DocumentManager } from '@jupyterlab/docmanager';
import { Token } from '@phosphor/coreutils';

export interface IMyDocumentManager extends IDocumentManager {}

export const IMyDocumentManager = new Token<IMyDocumentManager ('@jupyterlab/docmanager:IDocumentManager'); 

export class MyDocumentManager extends DocumentManager implements IMyDocumentManager {
   closeFile(path: string): Promise<void> {
    console.log("Test override a method for closing: " + path);
    return super.closeFile(path);
  }
 }

Когда я загружаю JupyterLab в браузер, я получаю сообщение об ошибке:

enter image description here

Это, вероятно, потому что яТокен должен быть определен по-другому.Вместо new Token<IMyDocumentManager ('@jupyterlab/docmanager:IDocumentManager') я должен использовать какую-то другую строку, чем '@jupyterlab/docmanager:IDocumentManager', но я не знаю, что именно.Трудно сделать вывод из кода PhosphorJS.

...