Browse Source

Update to latest phosphide and cleanup

wip update commands

Update to latest phosphide and cleanup

0.2.1
Steven Silvester 9 years ago
parent
commit
dfeff153d6

BIN
examples/lab/Gakuseisean-Radium-Bmp-file.ico


File diff suppressed because it is too large
+ 3 - 0
examples/lab/Heckert_GNU_white.svg


BIN
examples/lab/c41078a1.tif


BIN
examples/lab/multipage_rgb.tif


BIN
examples/lab/noice2.png


BIN
examples/lab/sample.bmp


+ 1 - 5
examples/lab/src/plugin.ts

@@ -14,10 +14,6 @@ import {
   CodeMirrorWidget
 } from 'phosphor-codemirror';
 
-import {
-  ICommand, DelegateCommand
-} from 'phosphor-command';
-
 import {
   Container, Token
 } from 'phosphor-di';
@@ -43,7 +39,7 @@ export
 function resolve(container: Container): Promise<void> {
   return container.resolve({
     requires: [IAppShell, ICommandPalette, IFileBrowserWidget],
-    create: (shell, palette, browser) => {
+    create: (shell: IAppShell, palette: ICommandPalette, browser: IFileBrowserWidget) => {
       palette.title.text = 'Commands';
       shell.addToLeftArea(palette, { rank: 40 });
       shell.attach(document.body);

BIN
examples/lab/sw_small.tif


BIN
examples/lab/t1.09155.AV_MI.143.250m (1).tif


BIN
examples/lab/t1.09155.AV_MI.143.250m.tif


+ 0 - 0
examples/lab/untitled.txt


+ 15 - 16
package.json

@@ -1,19 +1,18 @@
 {
   "name": "jupyter-js-plugins",
-  "version": "0.2.0",
+  "version": "0.2.1",
   "description": "Plugins for JupyterLab",
   "main": "lib/index.js",
   "typings": "lib/index.d.ts",
   "dependencies": {
     "codemirror": "^5.10.0",
-    "jupyter-js-filebrowser": "^0.4.1",
-    "jupyter-js-notebook": "^0.3.0",
-    "jupyter-js-services": "^0.3.3",
+    "jupyter-js-filebrowser": "^0.4.3",
+    "jupyter-js-notebook": "^0.3.2",
+    "jupyter-js-services": "^0.4.1",
     "jupyter-js-terminal": "^0.1.12",
-    "jupyter-js-utils": "^0.2.6",
-    "phosphide": "^0.1.0",
+    "jupyter-js-utils": "^0.2.7",
+    "phosphide": "^0.2.0",
     "phosphor-codemirror": "^0.0.1",
-    "phosphor-command": "^0.5.0",
     "phosphor-di": "^0.9.0",
     "phosphor-properties": "^2.0.0",
     "phosphor-tabs": "^1.0.0-rc.2"
@@ -21,22 +20,22 @@
   "devDependencies": {
     "css-loader": "^0.23.1",
     "expect.js": "^0.3.1",
-    "fs-extra": "^0.26.3",
+    "fs-extra": "^0.26.4",
     "istanbul-instrumenter-loader": "^0.1.3",
     "json-loader": "^0.5.4",
-    "karma": "^0.13.9",
-    "karma-chrome-launcher": "^0.2.0",
+    "karma": "^0.13.19",
+    "karma-chrome-launcher": "^0.2.2",
     "karma-coverage": "^0.5.3",
-    "karma-firefox-launcher": "^0.1.6",
+    "karma-firefox-launcher": "^0.1.7",
     "karma-ie-launcher": "^0.2.0",
-    "karma-mocha": "^0.2.0",
-    "karma-mocha-reporter": "^1.1.1",
-    "mocha": "^2.2.5",
-    "rimraf": "^2.4.2",
+    "karma-mocha": "^0.2.1",
+    "karma-mocha-reporter": "^1.1.5",
+    "mocha": "^2.3.4",
+    "rimraf": "^2.5.0",
     "style-loader": "^0.13.0",
     "typedoc": "^0.3.12",
     "typescript": "^1.7.5",
-    "webpack": "^1.12.9"
+    "webpack": "^1.12.11"
   },
   "scripts": {
     "clean": "rimraf docs && rimraf lib && rimraf test/build",

+ 1 - 1
src/filebrowser/plugin.ts

@@ -33,7 +33,7 @@ export
 function register(container: Container): void {
   container.register(IFileBrowserWidget, {
     requires: [IServicesProvider],
-    create: (provider) => {
+    create: (provider: IServicesProvider) => {
       let contents = provider.contentsManager;
       let sessions = provider.notebookSessionManager;
       let model = new FileBrowserModel(contents, sessions);

+ 1 - 1
src/filehandler/plugin.ts

@@ -31,7 +31,7 @@ export
 function resolve(container: Container): Promise<IFileHandler> {
   return container.resolve({
     requires: [IServicesProvider, IFileOpener],
-    create: (services, opener) => {
+    create: (services: IServicesProvider, opener: IFileOpener) => {
       let handler = new FileHandler(services.contentsManager);
       opener.registerDefault(handler);
       return handler;

+ 57 - 5
src/fileopener/plugin.ts

@@ -14,10 +14,6 @@ import {
   IAppShell, ICommandPalette, ICommandRegistry
 } from 'phosphide';
 
-import {
-  DelegateCommand
-} from 'phosphor-command';
-
 import {
   Container, Token
 } from 'phosphor-di';
@@ -84,6 +80,63 @@ function resolve(container: Container): Promise<void> {
         items: paletteItems
       }
       palette.add([section]);
+  return container.resolve(FileOpenerProvider).then(provider => provider.run());
+}
+
+export
+function register(container: Container): void {
+  container.register(IFileOpener, FileOpener);
+}
+
+
+class FileOpenerProvider {
+  /**
+   * The dependencies required by the file opener.
+   */
+  static requires: Token<any>[] = [IAppShell, IFileOpener, IFileBrowserWidget, ICommandPalette, ICommandRegistry];
+
+  static create(appShell: IAppShell, opener: IFileOpener, browserProvider: IFileBrowserWidget, palette: ICommandPalette, registry: ICommandRegistry): FileOpenerProvider {
+    return new FileOpenerProvider(appShell, opener, browserProvider, palette, registry);
+  }
+
+  /**
+   * Construct a new file opener.
+   */
+  constructor(appShell: IAppShell, opener: IFileOpener, browser: IFileBrowserWidget, palette: ICommandPalette, registry: ICommandRegistry) {
+    this._browser = browser;
+    this._registry = registry;
+    this._palette = palette;
+    this._appShell = appShell;
+    this._opener = opener;
+  }
+
+
+  run() {
+    this._registry.add('jupyter-plugins:new:textfile', () => {
+      this._browser.newUntitled('file', '.txt').then(
+          contents => this._opener.open(contents.path)
+      );
+    });
+
+    this._registry.add('jupyter-plugins:new:notebook', () => {
+      this._browser.newUntitled('notebook').then(
+          contents => this._opener.open(contents.path)
+      );
+    });
+    let paletteItems = [{
+      id: 'jupyter-plugins:new:text-file',
+      title: 'Text File',
+      caption: ''
+    }, {
+      id: 'jupyter-plugins:new:notebook',
+      title: 'Notebook',
+      caption: ''
+    }];
+    let section = {
+      text: 'New...',
+      items: paletteItems
+    }
+    this._palette.add([section]);
 
       FileBrowserWidget.widgetFactory = () => {
         let model = browser.model;
@@ -106,7 +159,6 @@ function register(container: Container): void {
 }
 
 
-
 /**
  * An implementation on an IFileOpener.
  */

+ 1 - 1
src/imagehandler/plugin.ts

@@ -35,7 +35,7 @@ export
 function resolve(container: Container): Promise<IFileHandler> {
   return container.resolve({
     requires: [IServicesProvider, IFileOpener],
-    create: (services, opener) => {
+    create: (services: IServicesProvider, opener: IFileOpener) => {
       let handler = new ImageHandler(services.contentsManager);
       opener.register(handler);
       return handler;

+ 1 - 1
src/services/plugin.ts

@@ -32,7 +32,7 @@ export
 function register(container: Container): void {
   container.register(IServicesProvider, {
     requires: [],
-    create: () => { return new ServicesProvider() }
+    create: () => { return new ServicesProvider(); }
   });
 }
 

+ 9 - 18
src/terminal/plugin.ts

@@ -6,10 +6,6 @@ import {
   TerminalWidget, ITerminalOptions
 } from 'jupyter-js-terminal';
 
-import {
-  DelegateCommand
-} from 'phosphor-command';
-
 import {
   Container, Token
 } from 'phosphor-di';
@@ -25,21 +21,16 @@ export
 function resolve(container: Container): Promise<void> {
   return container.resolve({
     requires: [IAppShell, ICommandPalette, ICommandRegistry],
-    create: (shell, palette, registry) => {
-      let termCommandItem = {
-        // Move this to the terminal.
-        id: 'jupyter-plugins:new-terminal',
-        command: new DelegateCommand(() => {
-          let term = new TerminalWidget();
-          term.color = 'black';
-          term.background = 'white';
-          term.title.closable = true;
-          shell.addToMainArea(term);
-        })
-      }
-      registry.add([termCommandItem]);
+    create: (shell: IAppShell, palette: ICommandPalette, registry: ICommandRegistry) => {
+      registry.add('jupyter-plugins:new:terminal', () => {
+        let term = new TerminalWidget();
+        term.color = 'black';
+        term.background = 'white';
+        term.title.closable = true;
+        shell.addToMainArea(term);
+      });
       let paletteItem = {
-        id: 'jupyter-plugins:new-terminal',
+        id: 'jupyter-plugins:new:terminal',
         title: 'Terminal',
         caption: ''
       };

Some files were not shown because too many files changed in this diff