refactor(core): expose settings menu token

CB-103
This commit is contained in:
Wroud
2020-05-07 18:15:46 +03:00
parent 964c877e64
commit b3c5a7e83d
@@ -14,7 +14,7 @@ import { ThemeService } from '@dbeaver/core/theming';
@injectable()
export class SettingsMenuService {
settingsMenuToken = 'settingsMenu';
static settingsMenuToken = 'settingsMenu';
private menu = new StaticMenu();
private langMenuToken = 'langMenu';
@@ -23,21 +23,21 @@ export class SettingsMenuService {
constructor(private localizationService: LocalizationService,
private themeService: ThemeService) {
this.menu.addRootPanel(this.settingsMenuToken);
this.menu.addRootPanel(SettingsMenuService.settingsMenuToken);
this.addThemes();
this.addLocales();
}
getMenu() {
return this.menu.getMenu(this.settingsMenuToken);
return this.menu.getMenu(SettingsMenuService.settingsMenuToken);
}
addMenuItem(panelId: string, options: IComputedMenuItemOptions) {
addMenuItem(options: IComputedMenuItemOptions, panelId: string = SettingsMenuService.settingsMenuToken) {
this.menu.addMenuItem(panelId, options);
}
private addThemes() {
this.addMenuItem(this.settingsMenuToken, {
this.addMenuItem({
id: this.themeMenuToken,
order: 1,
title: 'app_shared_settingsMenu_theme',
@@ -46,19 +46,19 @@ export class SettingsMenuService {
this.themeService.themes.forEach((theme) => {
this.addMenuItem(
this.themeMenuToken,
{
id: theme.id,
title: theme.name,
isDisabled: () => theme.id === this.themeService.currentThemeId,
onClick: () => this.themeService.changeThemeAsync(theme.id),
}
},
this.themeMenuToken
);
});
}
private addLocales() {
this.addMenuItem(this.settingsMenuToken, {
this.addMenuItem({
id: this.langMenuToken,
order: 2,
title: 'app_shared_settingsMenu_lang',
@@ -67,13 +67,13 @@ export class SettingsMenuService {
this.localizationService.getSupportedLanguages().forEach((lang) => {
this.addMenuItem(
this.langMenuToken,
{
id: lang.isoCode,
title: lang.nativeName,
isDisabled: () => lang.isoCode === this.localizationService.getCurrentLanguage(),
onClick: () => this.localizationService.changeLocaleAsync(lang.isoCode),
}
},
this.langMenuToken
);
});
}