Skip to content

Commit

Permalink
make ISettingRegistry, IMainMenu, ICommandPalette optional
Browse files Browse the repository at this point in the history
  • Loading branch information
mbektas committed Feb 15, 2019
1 parent 3e79429 commit e56129b
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 26 deletions.
2 changes: 1 addition & 1 deletion packages/statusbar-extension/schema/plugin.json
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
"visible": {
"type": "boolean",
"title": "Status Bar Visibility",
"description": "Whether to show status bar at launch",
"description": "Whether to show status bar or not",
"default": true
}
},
Expand Down
57 changes: 32 additions & 25 deletions packages/statusbar-extension/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -50,14 +50,13 @@ export const STATUSBAR_PLUGIN_ID = '@jupyterlab/statusbar-extension:plugin';
const statusBar: JupyterFrontEndPlugin<IStatusBar> = {
id: STATUSBAR_PLUGIN_ID,
provides: IStatusBar,
requires: [ISettingRegistry, IMainMenu, ICommandPalette],
autoStart: true,
activate: (
app: JupyterFrontEnd,
settingRegistry: ISettingRegistry,
mainMenu: IMainMenu,
palette: ICommandPalette,
labShell: ILabShell | null
labShell: ILabShell | null,
settingRegistry: ISettingRegistry | null,
mainMenu: IMainMenu | null,
palette: ICommandPalette | null
) => {
const statusBar = new StatusBar();
statusBar.id = 'jp-main-statusbar';
Expand All @@ -77,37 +76,45 @@ const statusBar: JupyterFrontEndPlugin<IStatusBar> = {
label: 'Show Status Bar',
execute: (args: any) => {
statusBar.setHidden(statusBar.isVisible);
settingRegistry.set(
STATUSBAR_PLUGIN_ID,
'visible',
statusBar.isVisible
);
if (settingRegistry) {
settingRegistry.set(
STATUSBAR_PLUGIN_ID,
'visible',
statusBar.isVisible
);
}
},
isToggled: () => statusBar.isVisible
});

palette.addItem({ command, category });
mainMenu.viewMenu.addGroup([{ command }], 1);
if (palette) {
palette.addItem({ command, category });
}
if (mainMenu) {
mainMenu.viewMenu.addGroup([{ command }], 1);
}

const updateSettings = (settings: ISettingRegistry.ISettings): void => {
const visible = settings.get('visible').composite as boolean;
statusBar.setHidden(!visible);
};
if (settingRegistry) {
const updateSettings = (settings: ISettingRegistry.ISettings): void => {
const visible = settings.get('visible').composite as boolean;
statusBar.setHidden(!visible);
};

Promise.all([settingRegistry.load(STATUSBAR_PLUGIN_ID), app.restored])
.then(([settings]) => {
updateSettings(settings);
settings.changed.connect(settings => {
Promise.all([settingRegistry.load(STATUSBAR_PLUGIN_ID), app.restored])
.then(([settings]) => {
updateSettings(settings);
settings.changed.connect(settings => {
updateSettings(settings);
});
})
.catch((reason: Error) => {
console.error(reason.message);
});
})
.catch((reason: Error) => {
console.error(reason.message);
});
}

return statusBar;
},
optional: [ILabShell]
optional: [ILabShell, ISettingRegistry, IMainMenu, ICommandPalette]
};

/**
Expand Down

0 comments on commit e56129b

Please sign in to comment.