|
@@ -9,7 +9,6 @@ import { JupyterFrontEnd } from '@jupyterlab/application';
|
|
|
import { TagWidget } from './widget';
|
|
|
|
|
|
import { AddWidget } from './addwidget';
|
|
|
-import { IThemeManager } from '@jupyterlab/apputils';
|
|
|
|
|
|
/**
|
|
|
* A Tool for tag operations.
|
|
@@ -20,22 +19,17 @@ export class TagTool extends NotebookTools.Tool {
|
|
|
*
|
|
|
* @param tracker - The notebook tracker.
|
|
|
*/
|
|
|
- constructor(
|
|
|
- tracker: INotebookTracker,
|
|
|
- app: JupyterFrontEnd,
|
|
|
- manager: IThemeManager
|
|
|
- ) {
|
|
|
+ constructor(tracker: INotebookTracker, app: JupyterFrontEnd) {
|
|
|
super();
|
|
|
app;
|
|
|
this.tracker = tracker;
|
|
|
- this.manager = manager;
|
|
|
this.layout = new PanelLayout();
|
|
|
this.createTagInput();
|
|
|
}
|
|
|
|
|
|
createTagInput() {
|
|
|
let layout = this.layout as PanelLayout;
|
|
|
- let input = new AddWidget(this.getTheme());
|
|
|
+ let input = new AddWidget();
|
|
|
input.id = 'add-tag';
|
|
|
layout.insertWidget(0, input);
|
|
|
}
|
|
@@ -73,9 +67,9 @@ export class TagTool extends NotebookTools.Tool {
|
|
|
}
|
|
|
}
|
|
|
cell.model.metadata.set('tags', tags);
|
|
|
- console.log(this.tracker.activeCell.model.metadata.get('tags'));
|
|
|
this.refreshTags();
|
|
|
this.loadActiveTags();
|
|
|
+ console.log(this.tracker.activeCell.model.metadata.get('tags'));
|
|
|
}
|
|
|
|
|
|
removeTag(name: string) {
|
|
@@ -141,7 +135,7 @@ export class TagTool extends NotebookTools.Tool {
|
|
|
}
|
|
|
}
|
|
|
for (let i = 0; i < tags.length; i++) {
|
|
|
- let widget = new TagWidget(tags[i], this.getTheme());
|
|
|
+ let widget = new TagWidget(tags[i]);
|
|
|
let idx = layout.widgets.length - 1;
|
|
|
layout.insertWidget(idx, widget);
|
|
|
}
|
|
@@ -196,10 +190,13 @@ export class TagTool extends NotebookTools.Tool {
|
|
|
* Get all tags once available.
|
|
|
*/
|
|
|
protected onAfterAttach() {
|
|
|
- const header = document.createElement('header');
|
|
|
- header.textContent = 'Tags in Notebook';
|
|
|
- header.className = 'tag-header';
|
|
|
- this.parent.node.insertBefore(header, this.node);
|
|
|
+ if (!this.header) {
|
|
|
+ const header = document.createElement('header');
|
|
|
+ header.textContent = 'Tags in Notebook';
|
|
|
+ header.className = 'tag-header';
|
|
|
+ this.parent.node.insertBefore(header, this.node);
|
|
|
+ this.header = true;
|
|
|
+ }
|
|
|
this.tracker.currentWidget.context.ready.then(() => {
|
|
|
this.refreshTags();
|
|
|
this.loadActiveTags();
|
|
@@ -223,23 +220,7 @@ export class TagTool extends NotebookTools.Tool {
|
|
|
this.loadActiveTags();
|
|
|
}
|
|
|
|
|
|
- getTheme() {
|
|
|
- if (this.manager.theme == 'JupyterLab Dark') {
|
|
|
- return true;
|
|
|
- }
|
|
|
- return false;
|
|
|
- }
|
|
|
-
|
|
|
- updateTheme() {
|
|
|
- let layout = this.layout as PanelLayout;
|
|
|
- let nWidgets = layout.widgets.length;
|
|
|
- for (let i = 0; i < nWidgets - 1; i++) {
|
|
|
- (layout.widgets[i] as TagWidget).updateTheme();
|
|
|
- }
|
|
|
- (layout.widgets[nWidgets - 1] as AddWidget).updateTheme();
|
|
|
- }
|
|
|
-
|
|
|
private tagList: string[] = [];
|
|
|
- private manager: IThemeManager;
|
|
|
+ private header: boolean = false;
|
|
|
public tracker: INotebookTracker = null;
|
|
|
}
|