Explorar el Código

Merge pull request #1025 from R-Brain/at/focustracker_for_console_1014

Provide FocusTracker for console plugin
Steven Silvester hace 8 años
padre
commit
40fd136e9e
Se han modificado 5 ficheros con 41 adiciones y 8 borrados
  1. 1 1
      examples/lab/index.js
  2. 1 1
      jupyterlab/extensions.js
  3. 1 0
      src/console/index.ts
  4. 8 6
      src/console/plugin.ts
  5. 30 0
      src/console/tracker.ts

+ 1 - 1
examples/lab/index.js

@@ -16,7 +16,7 @@ lab.registerPlugins([
   require('jupyterlab/lib/about/plugin').aboutExtension,
   require('jupyterlab/lib/clipboard/plugin').clipboardProvider,
   require('jupyterlab/lib/commandpalette/plugin').commandPaletteProvider,
-  require('jupyterlab/lib/console/plugin').consoleExtension,
+  require('jupyterlab/lib/console/plugin').consoleTrackerProvider,
   require('jupyterlab/lib/console/codemirror/plugin').rendererProvider,
   require('jupyterlab/lib/docregistry/plugin').docRegistryProvider,
   require('jupyterlab/lib/editorwidget/plugin').editorHandlerProvider,

+ 1 - 1
jupyterlab/extensions.js

@@ -5,7 +5,7 @@ module.exports = [
   require('jupyterlab/lib/about/plugin').aboutExtension,
   require('jupyterlab/lib/clipboard/plugin').clipboardProvider,
   require('jupyterlab/lib/commandpalette/plugin').commandPaletteProvider,
-  require('jupyterlab/lib/console/plugin').consoleExtension,
+  require('jupyterlab/lib/console/plugin').consoleTrackerProvider,
   require('jupyterlab/lib/console/codemirror/plugin').rendererProvider,
   require('jupyterlab/lib/csvwidget/plugin').csvHandlerExtension,
   require('jupyterlab/lib/docregistry/plugin').docRegistryProvider,

+ 1 - 0
src/console/index.ts

@@ -1,5 +1,6 @@
 // Copyright (c) Jupyter Development Team.
 // Distributed under the terms of the Modified BSD License.
 
+export * from './tracker';
 export * from './content';
 export * from './panel';

+ 8 - 6
src/console/plugin.ts

@@ -54,16 +54,17 @@ import {
 } from '../services';
 
 import {
-  ConsolePanel, ConsoleContent
-} from './';
+  IConsoleTracker, ConsolePanel, ConsoleContent
+} from './index';
 
 
 /**
- * The console extension.
+ * The console widget tracker provider.
  */
 export
-const consoleExtension: JupyterLabPlugin<void> = {
-  id: 'jupyter.extensions.console',
+const consoleTrackerProvider: JupyterLabPlugin<IConsoleTracker> = {
+  id: 'jupyter.services.console-tracker',
+  provides: IConsoleTracker,
   requires: [
     IServiceManager,
     IRenderMime,
@@ -103,7 +104,7 @@ interface ICreateConsoleArgs extends JSONObject {
 /**
  * Activate the console extension.
  */
-function activateConsole(app: JupyterLab, services: IServiceManager, rendermime: IRenderMime, mainMenu: IMainMenu, inspector: IInspector, palette: ICommandPalette, pathTracker: IPathTracker, renderer: ConsoleContent.IRenderer): void {
+function activateConsole(app: JupyterLab, services: IServiceManager, rendermime: IRenderMime, mainMenu: IMainMenu, inspector: IInspector, palette: ICommandPalette, pathTracker: IPathTracker, renderer: ConsoleContent.IRenderer): IConsoleTracker {
   let tracker = new FocusTracker<ConsolePanel>();
   let manager = services.sessions;
   let { commands, keymap } = app;
@@ -380,6 +381,7 @@ function activateConsole(app: JupyterLab, services: IServiceManager, rendermime:
   menu.addItem({ command });
 
   mainMenu.addMenu(menu, {rank: 50});
+  return tracker;
 }
 
 

+ 30 - 0
src/console/tracker.ts

@@ -0,0 +1,30 @@
+// Copyright (c) Jupyter Development Team.
+// Distributed under the terms of the Modified BSD License.
+
+import {
+  Token
+} from 'phosphor/lib/core/token';
+
+import {
+  FocusTracker
+} from 'phosphor/lib/ui/focustracker';
+
+import {
+  ConsolePanel
+} from './';
+
+
+/* tslint:disable */
+/**
+ * The console tracker token.
+ */
+export
+const IConsoleTracker = new Token<IConsoleTracker>('jupyter.services.console-handler');
+/* tslint:enable */
+
+
+/**
+ * A class that tracks console widgets.
+ */
+export
+interface IConsoleTracker extends FocusTracker<ConsolePanel> {}