Browse Source

[notebook] parametrize the panel renderer

akosyakov 8 years ago
parent
commit
7f299b2f61
1 changed files with 37 additions and 2 deletions
  1. 37 2
      src/notebook/notebook/panel.ts

+ 37 - 2
src/notebook/notebook/panel.ts

@@ -419,11 +419,29 @@ export namespace NotebookPanel {
    * The default implementation of an `IRenderer`.
    */
   export
-  abstract class Renderer implements IRenderer {
+  class Renderer implements IRenderer {
+
+    /**
+     * The notebook renderer.
+     */
+    readonly notebookRenderer: Notebook.Renderer;
+
+    /**
+     * Creates a new renderer.
+     */
+    constructor(options: Renderer.IOptions) {
+      this.notebookRenderer = options.notebookRenderer;
+    }
+
     /**
      * Create a new content area for the panel.
      */
-    abstract createContent(rendermime: RenderMime): Notebook;
+    createContent(rendermime: RenderMime): Notebook {
+      return new Notebook({
+        rendermime,
+        renderer: this.notebookRenderer
+      });
+    }
 
     /**
      * Create a new toolbar for the panel.
@@ -440,6 +458,23 @@ export namespace NotebookPanel {
     }
   }
 
+  /**
+   * The namespace for `Renderer`.
+   */
+  export
+  namespace Renderer {
+    /**
+     * An initialization options for a notebook panel renderer.
+     */
+    export
+    interface IOptions {
+      /**
+       * The notebook renderer.
+       */
+      readonly notebookRenderer: Notebook.Renderer;
+    }
+  }
+
   /* tslint:disable */
   /**
    * The notebook renderer token.