@theia/core 1.61.0 → 1.62.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -7
- package/i18n/nls.cs.json +158 -13
- package/i18n/nls.de.json +158 -13
- package/i18n/nls.es.json +158 -13
- package/i18n/nls.fr.json +158 -13
- package/i18n/nls.hu.json +158 -13
- package/i18n/nls.it.json +158 -13
- package/i18n/nls.ja.json +158 -13
- package/i18n/nls.json +159 -14
- package/i18n/nls.ko.json +158 -13
- package/i18n/nls.pl.json +158 -13
- package/i18n/nls.pt-br.json +158 -13
- package/i18n/nls.ru.json +158 -13
- package/i18n/nls.tr.json +158 -13
- package/i18n/nls.zh-cn.json +158 -13
- package/i18n/nls.zh-tw.json +158 -13
- package/lib/browser/catalog.json +197 -33
- package/lib/browser/common-frontend-contribution.d.ts +1 -1
- package/lib/browser/common-frontend-contribution.d.ts.map +1 -1
- package/lib/browser/common-frontend-contribution.js +13 -11
- package/lib/browser/common-frontend-contribution.js.map +1 -1
- package/lib/browser/context-menu-renderer.d.ts +14 -3
- package/lib/browser/context-menu-renderer.d.ts.map +1 -1
- package/lib/browser/context-menu-renderer.js +23 -1
- package/lib/browser/context-menu-renderer.js.map +1 -1
- package/lib/browser/frontend-application-module.d.ts.map +1 -1
- package/lib/browser/frontend-application-module.js +1 -3
- package/lib/browser/frontend-application-module.js.map +1 -1
- package/lib/browser/hover-service.d.ts.map +1 -1
- package/lib/browser/hover-service.js +7 -0
- package/lib/browser/hover-service.js.map +1 -1
- package/lib/browser/menu/action-menu-node.d.ts +36 -0
- package/lib/browser/menu/action-menu-node.d.ts.map +1 -0
- package/lib/browser/menu/action-menu-node.js +113 -0
- package/lib/browser/menu/action-menu-node.js.map +1 -0
- package/lib/browser/menu/browser-context-menu-renderer.d.ts +12 -4
- package/lib/browser/menu/browser-context-menu-renderer.d.ts.map +1 -1
- package/lib/browser/menu/browser-context-menu-renderer.js +12 -13
- package/lib/browser/menu/browser-context-menu-renderer.js.map +1 -1
- package/lib/browser/menu/browser-menu-module.d.ts.map +1 -1
- package/lib/browser/menu/browser-menu-module.js +4 -0
- package/lib/browser/menu/browser-menu-module.js.map +1 -1
- package/lib/browser/menu/browser-menu-node-factory.d.ts +13 -0
- package/lib/browser/menu/browser-menu-node-factory.d.ts.map +1 -0
- package/lib/browser/menu/browser-menu-node-factory.js +54 -0
- package/lib/browser/menu/browser-menu-node-factory.js.map +1 -0
- package/lib/browser/menu/browser-menu-plugin.d.ts +12 -30
- package/lib/browser/menu/browser-menu-plugin.d.ts.map +1 -1
- package/lib/browser/menu/browser-menu-plugin.js +78 -159
- package/lib/browser/menu/browser-menu-plugin.js.map +1 -1
- package/lib/browser/menu/composite-menu-node.d.ts +49 -0
- package/lib/browser/menu/composite-menu-node.d.ts.map +1 -0
- package/lib/browser/menu/composite-menu-node.js +127 -0
- package/lib/browser/menu/composite-menu-node.js.map +1 -0
- package/lib/browser/menu/menu.spec.d.ts.map +1 -0
- package/lib/{common → browser}/menu/menu.spec.js +38 -13
- package/lib/browser/menu/menu.spec.js.map +1 -0
- package/lib/browser/open-with-service.d.ts +1 -1
- package/lib/browser/saveable-service.d.ts.map +1 -1
- package/lib/browser/saveable-service.js +6 -1
- package/lib/browser/saveable-service.js.map +1 -1
- package/lib/browser/shell/application-shell.d.ts +7 -5
- package/lib/browser/shell/application-shell.d.ts.map +1 -1
- package/lib/browser/shell/application-shell.js +82 -28
- package/lib/browser/shell/application-shell.js.map +1 -1
- package/lib/browser/shell/index.d.ts +1 -0
- package/lib/browser/shell/index.d.ts.map +1 -1
- package/lib/browser/shell/index.js +1 -0
- package/lib/browser/shell/index.js.map +1 -1
- package/lib/browser/shell/sidebar-bottom-menu-widget.d.ts.map +1 -1
- package/lib/browser/shell/sidebar-bottom-menu-widget.js +2 -1
- package/lib/browser/shell/sidebar-bottom-menu-widget.js.map +1 -1
- package/lib/browser/shell/sidebar-menu-widget.d.ts +4 -1
- package/lib/browser/shell/sidebar-menu-widget.d.ts.map +1 -1
- package/lib/browser/shell/sidebar-menu-widget.js +14 -1
- package/lib/browser/shell/sidebar-menu-widget.js.map +1 -1
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-menu-adapters.d.ts +66 -8
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-menu-adapters.d.ts.map +1 -1
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-menu-adapters.js +161 -8
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-menu-adapters.js.map +1 -1
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-registry.d.ts +18 -32
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-registry.d.ts.map +1 -1
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-registry.js +52 -88
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-registry.js.map +1 -1
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-types.d.ts +17 -21
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-types.d.ts.map +1 -1
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-types.js +9 -9
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-types.js.map +1 -1
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar.d.ts +7 -39
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar.d.ts.map +1 -1
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar.js +30 -238
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar.js.map +1 -1
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar.spec.js +13 -13
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar.spec.js.map +1 -1
- package/lib/browser/shell/tab-bar-toolbar/tab-toolbar-item.d.ts +56 -0
- package/lib/browser/shell/tab-bar-toolbar/tab-toolbar-item.d.ts.map +1 -0
- package/lib/browser/shell/tab-bar-toolbar/tab-toolbar-item.js +208 -0
- package/lib/browser/shell/tab-bar-toolbar/tab-toolbar-item.js.map +1 -0
- package/lib/browser/shell/tab-bars.d.ts.map +1 -1
- package/lib/browser/shell/tab-bars.js +2 -1
- package/lib/browser/shell/tab-bars.js.map +1 -1
- package/lib/browser/shell/theia-dock-panel.d.ts +4 -10
- package/lib/browser/shell/theia-dock-panel.d.ts.map +1 -1
- package/lib/browser/shell/theia-dock-panel.js +7 -84
- package/lib/browser/shell/theia-dock-panel.js.map +1 -1
- package/lib/browser/shell/theia-split-panel.d.ts +6 -0
- package/lib/browser/shell/theia-split-panel.d.ts.map +1 -0
- package/lib/browser/shell/theia-split-panel.js +56 -0
- package/lib/browser/shell/theia-split-panel.js.map +1 -0
- package/lib/browser/tree/tree-widget.d.ts +1 -0
- package/lib/browser/tree/tree-widget.d.ts.map +1 -1
- package/lib/browser/tree/tree-widget.js +6 -0
- package/lib/browser/tree/tree-widget.js.map +1 -1
- package/lib/browser/view-container.d.ts +6 -3
- package/lib/browser/view-container.d.ts.map +1 -1
- package/lib/browser/view-container.js +36 -26
- package/lib/browser/view-container.js.map +1 -1
- package/lib/browser/window/default-secondary-window-service.d.ts +1 -0
- package/lib/browser/window/default-secondary-window-service.d.ts.map +1 -1
- package/lib/browser/window/default-secondary-window-service.js +3 -0
- package/lib/browser/window/default-secondary-window-service.js.map +1 -1
- package/lib/common/listener.d.ts +21 -0
- package/lib/common/listener.d.ts.map +1 -0
- package/lib/common/listener.js +81 -0
- package/lib/common/listener.js.map +1 -0
- package/lib/common/listener.spec.d.ts +2 -0
- package/lib/common/listener.spec.d.ts.map +1 -0
- package/lib/common/listener.spec.js +255 -0
- package/lib/common/listener.spec.js.map +1 -0
- package/lib/common/menu/index.d.ts +2 -3
- package/lib/common/menu/index.d.ts.map +1 -1
- package/lib/common/menu/index.js +2 -3
- package/lib/common/menu/index.js.map +1 -1
- package/lib/common/menu/menu-model-registry.d.ts +37 -50
- package/lib/common/menu/menu-model-registry.d.ts.map +1 -1
- package/lib/common/menu/menu-model-registry.js +176 -225
- package/lib/common/menu/menu-model-registry.js.map +1 -1
- package/lib/common/menu/menu-types.d.ts +58 -96
- package/lib/common/menu/menu-types.d.ts.map +1 -1
- package/lib/common/menu/menu-types.js +43 -39
- package/lib/common/menu/menu-types.js.map +1 -1
- package/lib/common/messaging/proxy-factory.d.ts.map +1 -1
- package/lib/common/messaging/proxy-factory.js +4 -0
- package/lib/common/messaging/proxy-factory.js.map +1 -1
- package/lib/electron-browser/menu/electron-context-menu-renderer.d.ts +15 -5
- package/lib/electron-browser/menu/electron-context-menu-renderer.d.ts.map +1 -1
- package/lib/electron-browser/menu/electron-context-menu-renderer.js +21 -14
- package/lib/electron-browser/menu/electron-context-menu-renderer.js.map +1 -1
- package/lib/electron-browser/menu/electron-main-menu-factory.d.ts +4 -16
- package/lib/electron-browser/menu/electron-main-menu-factory.d.ts.map +1 -1
- package/lib/electron-browser/menu/electron-main-menu-factory.js +84 -104
- package/lib/electron-browser/menu/electron-main-menu-factory.js.map +1 -1
- package/lib/electron-browser/menu/electron-menu-contribution.d.ts.map +1 -1
- package/lib/electron-browser/menu/electron-menu-contribution.js +1 -4
- package/lib/electron-browser/menu/electron-menu-contribution.js.map +1 -1
- package/lib/electron-browser/menu/electron-menu-module.d.ts.map +1 -1
- package/lib/electron-browser/menu/electron-menu-module.js +5 -0
- package/lib/electron-browser/menu/electron-menu-module.js.map +1 -1
- package/lib/electron-browser/window/electron-secondary-window-service.d.ts +1 -0
- package/lib/electron-browser/window/electron-secondary-window-service.d.ts.map +1 -1
- package/lib/electron-browser/window/electron-secondary-window-service.js +20 -0
- package/lib/electron-browser/window/electron-secondary-window-service.js.map +1 -1
- package/lib/electron-browser/window/electron-window-service.d.ts +3 -0
- package/lib/electron-browser/window/electron-window-service.d.ts.map +1 -1
- package/lib/electron-browser/window/electron-window-service.js +10 -1
- package/lib/electron-browser/window/electron-window-service.js.map +1 -1
- package/lib/electron-main/theia-electron-window.d.ts.map +1 -1
- package/lib/electron-main/theia-electron-window.js +2 -0
- package/lib/electron-main/theia-electron-window.js.map +1 -1
- package/package.json +7 -8
- package/src/browser/common-frontend-contribution.ts +14 -14
- package/src/browser/context-menu-renderer.ts +33 -5
- package/src/browser/frontend-application-module.ts +1 -7
- package/src/browser/hover-service.ts +7 -0
- package/src/browser/menu/action-menu-node.ts +128 -0
- package/src/browser/menu/browser-context-menu-renderer.ts +18 -11
- package/src/browser/menu/browser-menu-module.ts +4 -0
- package/src/browser/menu/browser-menu-node-factory.ts +48 -0
- package/src/browser/menu/browser-menu-plugin.ts +80 -168
- package/src/browser/menu/composite-menu-node.ts +140 -0
- package/src/{common → browser}/menu/menu.spec.ts +47 -15
- package/src/browser/open-with-service.ts +1 -1
- package/src/browser/saveable-service.ts +6 -1
- package/src/browser/shell/application-shell.ts +91 -29
- package/src/browser/shell/index.ts +1 -0
- package/src/browser/shell/sidebar-bottom-menu-widget.tsx +2 -1
- package/src/browser/shell/sidebar-menu-widget.tsx +12 -2
- package/src/browser/shell/tab-bar-toolbar/tab-bar-toolbar-menu-adapters.tsx +239 -0
- package/src/browser/shell/tab-bar-toolbar/tab-bar-toolbar-registry.ts +59 -102
- package/src/browser/shell/tab-bar-toolbar/tab-bar-toolbar-types.ts +14 -23
- package/src/browser/shell/tab-bar-toolbar/tab-bar-toolbar.spec.ts +14 -14
- package/src/browser/shell/tab-bar-toolbar/tab-bar-toolbar.tsx +34 -261
- package/src/browser/shell/tab-bar-toolbar/tab-toolbar-item.tsx +251 -0
- package/src/browser/shell/tab-bars.ts +2 -1
- package/src/browser/shell/theia-dock-panel.ts +10 -91
- package/src/browser/shell/theia-split-panel.ts +56 -0
- package/src/browser/style/hover-service.css +6 -1
- package/src/browser/style/index.css +3 -11
- package/src/browser/style/view-container.css +17 -31
- package/src/browser/tree/tree-widget.tsx +7 -0
- package/src/browser/view-container.ts +51 -30
- package/src/browser/window/default-secondary-window-service.ts +4 -0
- package/src/common/listener.spec.ts +315 -0
- package/src/common/listener.ts +88 -0
- package/src/common/menu/index.ts +2 -3
- package/src/common/menu/menu-model-registry.ts +187 -230
- package/src/common/menu/menu-types.ts +82 -128
- package/src/common/messaging/proxy-factory.ts +4 -1
- package/src/electron-browser/menu/electron-context-menu-renderer.ts +29 -13
- package/src/electron-browser/menu/electron-main-menu-factory.ts +92 -116
- package/src/electron-browser/menu/electron-menu-contribution.ts +1 -4
- package/src/electron-browser/menu/electron-menu-module.ts +6 -1
- package/src/electron-browser/window/electron-secondary-window-service.ts +22 -0
- package/src/electron-browser/window/electron-window-service.ts +11 -1
- package/src/electron-main/theia-electron-window.ts +2 -0
- package/lib/common/menu/action-menu-node.d.ts +0 -20
- package/lib/common/menu/action-menu-node.d.ts.map +0 -1
- package/lib/common/menu/action-menu-node.js +0 -57
- package/lib/common/menu/action-menu-node.js.map +0 -1
- package/lib/common/menu/composite-menu-node.d.ts +0 -47
- package/lib/common/menu/composite-menu-node.d.ts.map +0 -1
- package/lib/common/menu/composite-menu-node.js +0 -96
- package/lib/common/menu/composite-menu-node.js.map +0 -1
- package/lib/common/menu/composite-menu-node.spec.d.ts +0 -2
- package/lib/common/menu/composite-menu-node.spec.d.ts.map +0 -1
- package/lib/common/menu/composite-menu-node.spec.js +0 -68
- package/lib/common/menu/composite-menu-node.spec.js.map +0 -1
- package/lib/common/menu/menu-adapter.d.ts +0 -36
- package/lib/common/menu/menu-adapter.d.ts.map +0 -1
- package/lib/common/menu/menu-adapter.js +0 -93
- package/lib/common/menu/menu-adapter.js.map +0 -1
- package/lib/common/menu/menu.spec.d.ts.map +0 -1
- package/lib/common/menu/menu.spec.js.map +0 -1
- package/lib/common/test/mock-menu.d.ts +0 -8
- package/lib/common/test/mock-menu.d.ts.map +0 -1
- package/lib/common/test/mock-menu.js +0 -35
- package/lib/common/test/mock-menu.js.map +0 -1
- package/src/browser/shell/tab-bar-toolbar/tab-bar-toolbar-menu-adapters.ts +0 -31
- package/src/common/menu/action-menu-node.ts +0 -65
- package/src/common/menu/composite-menu-node.spec.ts +0 -67
- package/src/common/menu/composite-menu-node.ts +0 -116
- package/src/common/menu/menu-adapter.ts +0 -103
- package/src/common/test/mock-menu.ts +0 -35
- /package/lib/{common → browser}/menu/menu.spec.d.ts +0 -0
|
@@ -14,17 +14,16 @@
|
|
|
14
14
|
//
|
|
15
15
|
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
16
16
|
// *****************************************************************************
|
|
17
|
+
var MenuModelRegistry_1;
|
|
17
18
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
-
exports.MenuModelRegistry = exports.StructuralMenuChange = exports.ChangeKind = exports.MenuContribution = void 0;
|
|
19
|
+
exports.MenuModelRegistry = exports.MenuNodeFactory = exports.StructuralMenuChange = exports.ChangeKind = exports.MenuContribution = void 0;
|
|
19
20
|
const tslib_1 = require("tslib");
|
|
20
21
|
const inversify_1 = require("inversify");
|
|
21
|
-
const
|
|
22
|
+
const menu_types_1 = require("./menu-types");
|
|
22
23
|
const contribution_provider_1 = require("../contribution-provider");
|
|
23
|
-
const
|
|
24
|
+
const command_1 = require("../command");
|
|
24
25
|
const event_1 = require("../event");
|
|
25
|
-
const
|
|
26
|
-
const composite_menu_node_1 = require("./composite-menu-node");
|
|
27
|
-
const menu_types_1 = require("./menu-types");
|
|
26
|
+
const disposable_1 = require("../disposable");
|
|
28
27
|
exports.MenuContribution = Symbol('MenuContribution');
|
|
29
28
|
var ChangeKind;
|
|
30
29
|
(function (ChangeKind) {
|
|
@@ -40,22 +39,24 @@ var StructuralMenuChange;
|
|
|
40
39
|
}
|
|
41
40
|
StructuralMenuChange.is = is;
|
|
42
41
|
})(StructuralMenuChange || (exports.StructuralMenuChange = StructuralMenuChange = {}));
|
|
42
|
+
exports.MenuNodeFactory = Symbol('MenuNodeFactory');
|
|
43
43
|
/**
|
|
44
44
|
* The MenuModelRegistry allows to register and unregister menus, submenus and actions
|
|
45
45
|
* via strings and {@link MenuAction}s without the need to access the underlying UI
|
|
46
46
|
* representation.
|
|
47
47
|
*/
|
|
48
|
-
let MenuModelRegistry = class MenuModelRegistry {
|
|
49
|
-
|
|
50
|
-
return this.onDidChangeEmitter.event;
|
|
51
|
-
}
|
|
52
|
-
constructor(contributions, commands) {
|
|
48
|
+
let MenuModelRegistry = MenuModelRegistry_1 = class MenuModelRegistry {
|
|
49
|
+
constructor(contributions, commands, menuNodeFactory) {
|
|
53
50
|
this.contributions = contributions;
|
|
54
51
|
this.commands = commands;
|
|
55
|
-
this.
|
|
56
|
-
this.independentSubmenus = new Map();
|
|
52
|
+
this.menuNodeFactory = menuNodeFactory;
|
|
57
53
|
this.onDidChangeEmitter = new event_1.Emitter();
|
|
58
54
|
this.isReady = false;
|
|
55
|
+
this.root = this.menuNodeFactory.createGroup('root', 'root');
|
|
56
|
+
this.root.addNode(this.menuNodeFactory.createGroup(menu_types_1.MAIN_MENU_BAR[0]));
|
|
57
|
+
}
|
|
58
|
+
get onDidChange() {
|
|
59
|
+
return this.onDidChangeEmitter.event;
|
|
59
60
|
}
|
|
60
61
|
onStart() {
|
|
61
62
|
for (const contrib of this.contributions.getContributions()) {
|
|
@@ -68,47 +69,46 @@ let MenuModelRegistry = class MenuModelRegistry {
|
|
|
68
69
|
*
|
|
69
70
|
* @returns a disposable which, when called, will remove the menu action again.
|
|
70
71
|
*/
|
|
71
|
-
|
|
72
|
-
const
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
* Adds the given menu node to the menu denoted by the given path.
|
|
77
|
-
*
|
|
78
|
-
* @returns a disposable which, when called, will remove the menu node again.
|
|
79
|
-
*/
|
|
80
|
-
registerMenuNode(menuPath, menuNode, group) {
|
|
81
|
-
const parent = this.getMenuNode(menuPath, group);
|
|
82
|
-
const disposable = parent.addNode(menuNode);
|
|
83
|
-
const parentPath = this.getParentPath(menuPath, group);
|
|
84
|
-
this.fireChangeEvent({
|
|
85
|
-
kind: ChangeKind.ADDED,
|
|
86
|
-
path: parentPath,
|
|
87
|
-
affectedChildId: menuNode.id
|
|
88
|
-
});
|
|
89
|
-
return this.changeEventOnDispose(parentPath, menuNode.id, disposable);
|
|
90
|
-
}
|
|
91
|
-
getParentPath(menuPath, group) {
|
|
92
|
-
if (typeof menuPath === 'string') {
|
|
93
|
-
return group ? [menuPath, group] : [menuPath];
|
|
72
|
+
registerCommandMenu(menuPath, item) {
|
|
73
|
+
const parent = this.root.getOrCreate(menuPath, 0, menuPath.length);
|
|
74
|
+
const existing = parent.children.find(node => node.id === menuPath[menuPath.length - 1]);
|
|
75
|
+
if (existing) {
|
|
76
|
+
throw new Error(`A menu node with path ${JSON.stringify(menuPath)} already exists`);
|
|
94
77
|
}
|
|
95
78
|
else {
|
|
96
|
-
|
|
79
|
+
parent.addNode(item);
|
|
80
|
+
return disposable_1.Disposable.create(() => {
|
|
81
|
+
parent.removeNode(item);
|
|
82
|
+
this.fireChangeEvent({
|
|
83
|
+
kind: ChangeKind.REMOVED,
|
|
84
|
+
path: menuPath.slice(0, menuPath.length - 1),
|
|
85
|
+
affectedChildId: item.id
|
|
86
|
+
});
|
|
87
|
+
});
|
|
97
88
|
}
|
|
98
89
|
}
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
90
|
+
/**
|
|
91
|
+
* Adds the given menu action to the menu denoted by the given path.
|
|
92
|
+
*
|
|
93
|
+
* @returns a disposable which, when called, will remove the menu action again.
|
|
94
|
+
*/
|
|
95
|
+
registerMenuAction(menuPath, item) {
|
|
96
|
+
const parent = this.root.getOrCreate(menuPath, 0, menuPath.length);
|
|
97
|
+
const existing = parent.children.find(node => node.id === item.commandId);
|
|
98
|
+
if (existing) {
|
|
99
|
+
throw new Error(`A menu node with id ${item.commandId} in path ${JSON.stringify(menuPath)} already exists`);
|
|
109
100
|
}
|
|
110
101
|
else {
|
|
111
|
-
|
|
102
|
+
const node = this.menuNodeFactory.createCommandMenu(item);
|
|
103
|
+
parent.addNode(node);
|
|
104
|
+
return disposable_1.Disposable.create(() => {
|
|
105
|
+
parent.removeNode(node);
|
|
106
|
+
this.fireChangeEvent({
|
|
107
|
+
kind: ChangeKind.REMOVED,
|
|
108
|
+
path: menuPath.slice(0, menuPath.length - 1),
|
|
109
|
+
affectedChildId: node.id
|
|
110
|
+
});
|
|
111
|
+
});
|
|
112
112
|
}
|
|
113
113
|
}
|
|
114
114
|
/**
|
|
@@ -126,147 +126,128 @@ let MenuModelRegistry = class MenuModelRegistry {
|
|
|
126
126
|
* Note that if the menu already existed and was registered with a different label an error
|
|
127
127
|
* will be thrown.
|
|
128
128
|
*/
|
|
129
|
-
registerSubmenu(menuPath, label, options) {
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
let disposable = disposable_1.Disposable.NULL;
|
|
139
|
-
if (!groupNode) {
|
|
140
|
-
groupNode = new composite_menu_node_1.CompositeMenuNode(menuId, label, options, parent);
|
|
141
|
-
disposable = this.changeEventOnDispose(groupPath, menuId, parent.addNode(groupNode));
|
|
129
|
+
registerSubmenu(menuPath, label, options = {}) {
|
|
130
|
+
const { contextKeyOverlay, sortString, icon, when } = options;
|
|
131
|
+
const parent = this.root.getOrCreate(menuPath, 0, menuPath.length - 1);
|
|
132
|
+
const existing = parent.children.find(node => node.id === menuPath[menuPath.length - 1]);
|
|
133
|
+
if (menu_types_1.Group.is(existing)) {
|
|
134
|
+
parent.removeNode(existing);
|
|
135
|
+
const newMenu = this.menuNodeFactory.createSubmenu(menuPath[menuPath.length - 1], label, contextKeyOverlay, sortString, icon, when);
|
|
136
|
+
newMenu.addNode(...existing.children);
|
|
137
|
+
parent.addNode(newMenu);
|
|
142
138
|
this.fireChangeEvent({
|
|
143
|
-
kind: ChangeKind.
|
|
144
|
-
path:
|
|
145
|
-
|
|
139
|
+
kind: ChangeKind.CHANGED,
|
|
140
|
+
path: menuPath
|
|
141
|
+
});
|
|
142
|
+
return disposable_1.Disposable.create(() => {
|
|
143
|
+
parent.removeNode(newMenu);
|
|
144
|
+
this.fireChangeEvent({
|
|
145
|
+
kind: ChangeKind.REMOVED,
|
|
146
|
+
path: menuPath.slice(0, menuPath.length - 1),
|
|
147
|
+
affectedChildId: newMenu.id
|
|
148
|
+
});
|
|
146
149
|
});
|
|
147
150
|
}
|
|
148
151
|
else {
|
|
152
|
+
const newMenu = this.menuNodeFactory.createSubmenu(menuPath[menuPath.length - 1], label, contextKeyOverlay, sortString, icon, when);
|
|
153
|
+
parent.addNode(newMenu);
|
|
149
154
|
this.fireChangeEvent({
|
|
150
|
-
kind: ChangeKind.
|
|
151
|
-
path:
|
|
155
|
+
kind: ChangeKind.ADDED,
|
|
156
|
+
path: menuPath.slice(0, menuPath.length - 1),
|
|
157
|
+
affectedChildId: newMenu.id
|
|
158
|
+
});
|
|
159
|
+
return disposable_1.Disposable.create(() => {
|
|
160
|
+
parent.removeNode(newMenu);
|
|
161
|
+
this.fireChangeEvent({
|
|
162
|
+
kind: ChangeKind.REMOVED,
|
|
163
|
+
path: menuPath.slice(0, menuPath.length - 1),
|
|
164
|
+
affectedChildId: newMenu.id
|
|
165
|
+
});
|
|
152
166
|
});
|
|
153
|
-
groupNode.updateOptions({ ...options, label });
|
|
154
167
|
}
|
|
155
|
-
return disposable;
|
|
156
168
|
}
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
169
|
+
linkCompoundMenuNode(params) {
|
|
170
|
+
const { newParentPath, submenuPath, order, when } = params;
|
|
171
|
+
// add a wrapper here
|
|
172
|
+
let i = 0;
|
|
173
|
+
while (i < newParentPath.length && i < submenuPath.length && newParentPath[i] === submenuPath[i]) {
|
|
174
|
+
i++;
|
|
160
175
|
}
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
}
|
|
164
|
-
linkSubmenu(parentPath, childId, options, group) {
|
|
165
|
-
const child = this.getMenuNode(childId);
|
|
166
|
-
const parent = this.getMenuNode(parentPath, group);
|
|
167
|
-
const affectedPath = this.getParentPath(parentPath, group);
|
|
168
|
-
const isRecursive = (node, childNode) => {
|
|
169
|
-
if (node.id === childNode.id) {
|
|
170
|
-
return true;
|
|
171
|
-
}
|
|
172
|
-
if (node.parent) {
|
|
173
|
-
return isRecursive(node.parent, childNode);
|
|
174
|
-
}
|
|
175
|
-
return false;
|
|
176
|
-
};
|
|
177
|
-
// check for menu contribution recursion
|
|
178
|
-
if (isRecursive(parent, child)) {
|
|
179
|
-
console.warn(`Recursive menu contribution detected: ${child.id} is already in hierarchy of ${parent.id}.`);
|
|
180
|
-
return disposable_1.Disposable.NULL;
|
|
176
|
+
if (i === newParentPath.length || i === submenuPath.length) {
|
|
177
|
+
throw new Error(`trying to recursively link ${JSON.stringify(submenuPath)} into ${JSON.stringify(newParentPath)}`);
|
|
181
178
|
}
|
|
182
|
-
const
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
}
|
|
191
|
-
unregisterMenuAction(itemOrCommandOrId, menuPath) {
|
|
192
|
-
const id = menu_types_1.MenuAction.is(itemOrCommandOrId) ? itemOrCommandOrId.commandId
|
|
193
|
-
: command_1.Command.is(itemOrCommandOrId) ? itemOrCommandOrId.id
|
|
194
|
-
: itemOrCommandOrId;
|
|
195
|
-
if (menuPath) {
|
|
196
|
-
const parent = this.findGroup(menuPath);
|
|
197
|
-
parent.removeNode(id);
|
|
179
|
+
const child = this.getMenu(submenuPath);
|
|
180
|
+
if (!child) {
|
|
181
|
+
throw new Error(`Not a menu node: ${JSON.stringify(submenuPath)}`);
|
|
182
|
+
}
|
|
183
|
+
const newParent = this.root.getOrCreate(newParentPath, 0, newParentPath.length);
|
|
184
|
+
if (menu_types_1.MutableCompoundMenuNode.is(newParent)) {
|
|
185
|
+
const link = this.menuNodeFactory.createSubmenuLink(child, order, when);
|
|
186
|
+
newParent.addNode(link);
|
|
198
187
|
this.fireChangeEvent({
|
|
199
|
-
kind: ChangeKind.
|
|
200
|
-
path:
|
|
201
|
-
affectedChildId: id
|
|
188
|
+
kind: ChangeKind.LINKED,
|
|
189
|
+
path: newParentPath,
|
|
190
|
+
affectedChildId: child.id
|
|
191
|
+
});
|
|
192
|
+
return disposable_1.Disposable.create(() => {
|
|
193
|
+
newParent.removeNode(link);
|
|
194
|
+
this.fireChangeEvent({
|
|
195
|
+
kind: ChangeKind.REMOVED,
|
|
196
|
+
path: newParentPath,
|
|
197
|
+
affectedChildId: child.id
|
|
198
|
+
});
|
|
202
199
|
});
|
|
203
200
|
}
|
|
204
201
|
else {
|
|
205
|
-
|
|
202
|
+
throw new Error(`Not a compound menu node: ${JSON.stringify(newParentPath)}`);
|
|
206
203
|
}
|
|
207
204
|
}
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
root.children.forEach(node => {
|
|
217
|
-
if (menu_types_1.CompoundMenuNode.isMutable(node)) {
|
|
218
|
-
if (node.removeNode(id)) {
|
|
219
|
-
this.fireChangeEvent({
|
|
220
|
-
kind: ChangeKind.REMOVED,
|
|
221
|
-
path: parentPath,
|
|
222
|
-
affectedChildId: id
|
|
223
|
-
});
|
|
224
|
-
}
|
|
225
|
-
parentPath.push(node.id);
|
|
226
|
-
recurse(node);
|
|
227
|
-
parentPath.pop();
|
|
228
|
-
}
|
|
229
|
-
});
|
|
230
|
-
};
|
|
231
|
-
recurse(this.root);
|
|
205
|
+
unregisterMenuAction(itemOrCommandOrId, menuPath = []) {
|
|
206
|
+
const id = menu_types_1.MenuAction.is(itemOrCommandOrId) ? itemOrCommandOrId.commandId
|
|
207
|
+
: command_1.Command.is(itemOrCommandOrId) ? itemOrCommandOrId.id
|
|
208
|
+
: itemOrCommandOrId;
|
|
209
|
+
const parent = this.findInNode(this.root, menuPath, 0);
|
|
210
|
+
if (parent) {
|
|
211
|
+
this.removeActionInSubtree(parent, id);
|
|
212
|
+
}
|
|
232
213
|
}
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
currentMenu = this.findSubMenu(currentMenu, segment, options);
|
|
214
|
+
removeActionInSubtree(parent, id) {
|
|
215
|
+
if (menu_types_1.MutableCompoundMenuNode.is(parent) && menu_types_1.CompoundMenuNode.is(parent)) {
|
|
216
|
+
const action = parent.children.find(child => child.id === id);
|
|
217
|
+
if (action) {
|
|
218
|
+
parent.removeNode(action);
|
|
219
|
+
}
|
|
220
|
+
parent.children.forEach(child => this.removeActionInSubtree(child, id));
|
|
241
221
|
}
|
|
242
|
-
return currentMenu;
|
|
243
222
|
}
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
*/
|
|
248
|
-
findSubMenu(current, menuId, options) {
|
|
249
|
-
const sub = current.children.find(e => e.id === menuId);
|
|
250
|
-
if (menu_types_1.CompoundMenuNode.isMutable(sub)) {
|
|
251
|
-
return sub;
|
|
223
|
+
findInNode(root, menuPath, pathIndex) {
|
|
224
|
+
if (pathIndex === menuPath.length) {
|
|
225
|
+
return root;
|
|
252
226
|
}
|
|
253
|
-
|
|
254
|
-
|
|
227
|
+
const child = root.children.find(c => c.id === menuPath[pathIndex]);
|
|
228
|
+
if (menu_types_1.CompoundMenuNode.is(child)) {
|
|
229
|
+
return this.findInNode(child, menuPath, pathIndex + 1);
|
|
255
230
|
}
|
|
256
|
-
|
|
257
|
-
current.addNode(newSub);
|
|
258
|
-
return newSub;
|
|
231
|
+
return undefined;
|
|
259
232
|
}
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
233
|
+
getMenuNode(menuPath) {
|
|
234
|
+
return this.findInNode(this.root, menuPath, 0);
|
|
235
|
+
}
|
|
236
|
+
getMenu(menuPath) {
|
|
237
|
+
const node = this.getMenuNode(menuPath);
|
|
238
|
+
if (!menu_types_1.CompoundMenuNode.is(node)) {
|
|
239
|
+
throw new Error(`not a compound menu node: ${JSON.stringify(menuPath)}`);
|
|
240
|
+
}
|
|
241
|
+
return node;
|
|
242
|
+
}
|
|
243
|
+
static removeSingleRootNodes(fullMenuModel) {
|
|
244
|
+
let current = fullMenuModel;
|
|
245
|
+
let previous = undefined;
|
|
246
|
+
while (current !== previous) {
|
|
247
|
+
previous = current;
|
|
248
|
+
current = this.removeSingleRootNode(current);
|
|
249
|
+
}
|
|
250
|
+
return current;
|
|
270
251
|
}
|
|
271
252
|
/**
|
|
272
253
|
* Checks the given menu model whether it will show a menu with a single submenu.
|
|
@@ -276,84 +257,54 @@ let MenuModelRegistry = class MenuModelRegistry {
|
|
|
276
257
|
* @returns if the menu will show a single submenu this returns a menu that will show the child elements of the submenu,
|
|
277
258
|
* otherwise the given `fullMenuModel` is return
|
|
278
259
|
*/
|
|
279
|
-
removeSingleRootNode(fullMenuModel
|
|
280
|
-
|
|
281
|
-
if (!this.allChildrenCompound(fullMenuModel.children)) {
|
|
282
|
-
return fullMenuModel;
|
|
283
|
-
}
|
|
284
|
-
let nonEmptyNode = undefined;
|
|
260
|
+
static removeSingleRootNode(fullMenuModel) {
|
|
261
|
+
let singleChild = undefined;
|
|
285
262
|
for (const child of fullMenuModel.children) {
|
|
286
|
-
if (
|
|
287
|
-
if (
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
263
|
+
if (menu_types_1.CompoundMenuNode.is(child)) {
|
|
264
|
+
if (!MenuModelRegistry_1.isEmpty(child)) {
|
|
265
|
+
if (singleChild) {
|
|
266
|
+
return fullMenuModel;
|
|
267
|
+
}
|
|
268
|
+
else {
|
|
269
|
+
singleChild = child;
|
|
270
|
+
}
|
|
292
271
|
}
|
|
293
272
|
}
|
|
273
|
+
else {
|
|
274
|
+
return fullMenuModel;
|
|
275
|
+
}
|
|
294
276
|
}
|
|
295
|
-
|
|
296
|
-
nonEmptyNode = nonEmptyNode.children[0];
|
|
297
|
-
}
|
|
298
|
-
return menu_types_1.CompoundMenuNode.is(nonEmptyNode) ? nonEmptyNode : fullMenuModel;
|
|
277
|
+
return singleChild || fullMenuModel;
|
|
299
278
|
}
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
279
|
+
static isEmpty(node) {
|
|
280
|
+
if (menu_types_1.CompoundMenuNode.is(node)) {
|
|
281
|
+
if (node.children.length === 0) {
|
|
282
|
+
return true;
|
|
283
|
+
}
|
|
284
|
+
for (const child of node.children) {
|
|
285
|
+
if (!MenuModelRegistry_1.isEmpty(child)) {
|
|
286
|
+
return false;
|
|
287
|
+
}
|
|
288
|
+
}
|
|
306
289
|
}
|
|
307
|
-
|
|
290
|
+
else {
|
|
308
291
|
return false;
|
|
309
292
|
}
|
|
310
|
-
for (const child of children) {
|
|
311
|
-
if (!this.isEmpty(child.children || [])) {
|
|
312
|
-
return false;
|
|
313
|
-
}
|
|
314
|
-
}
|
|
315
293
|
return true;
|
|
316
294
|
}
|
|
317
|
-
changeEventOnDispose(path, id, disposable) {
|
|
318
|
-
return disposable_1.Disposable.create(() => {
|
|
319
|
-
disposable.dispose();
|
|
320
|
-
this.fireChangeEvent({
|
|
321
|
-
path,
|
|
322
|
-
affectedChildId: id,
|
|
323
|
-
kind: ChangeKind.REMOVED
|
|
324
|
-
});
|
|
325
|
-
});
|
|
326
|
-
}
|
|
327
295
|
fireChangeEvent(evt) {
|
|
328
296
|
if (this.isReady) {
|
|
329
297
|
this.onDidChangeEmitter.fire(evt);
|
|
330
298
|
}
|
|
331
299
|
}
|
|
332
|
-
/**
|
|
333
|
-
* Returns the {@link MenuPath path} at which a given menu node can be accessed from this registry, if it can be determined.
|
|
334
|
-
* Returns `undefined` if the `parent` of any node in the chain is unknown.
|
|
335
|
-
*/
|
|
336
|
-
getPath(node) {
|
|
337
|
-
const identifiers = [];
|
|
338
|
-
const visited = [];
|
|
339
|
-
let next = node;
|
|
340
|
-
while (next && !visited.includes(next)) {
|
|
341
|
-
if (next === this.root) {
|
|
342
|
-
return identifiers.reverse();
|
|
343
|
-
}
|
|
344
|
-
visited.push(next);
|
|
345
|
-
identifiers.push(next.id);
|
|
346
|
-
next = next.parent;
|
|
347
|
-
}
|
|
348
|
-
return undefined;
|
|
349
|
-
}
|
|
350
300
|
};
|
|
351
301
|
exports.MenuModelRegistry = MenuModelRegistry;
|
|
352
|
-
exports.MenuModelRegistry = MenuModelRegistry = tslib_1.__decorate([
|
|
302
|
+
exports.MenuModelRegistry = MenuModelRegistry = MenuModelRegistry_1 = tslib_1.__decorate([
|
|
353
303
|
(0, inversify_1.injectable)(),
|
|
354
304
|
tslib_1.__param(0, (0, inversify_1.inject)(contribution_provider_1.ContributionProvider)),
|
|
355
305
|
tslib_1.__param(0, (0, inversify_1.named)(exports.MenuContribution)),
|
|
356
306
|
tslib_1.__param(1, (0, inversify_1.inject)(command_1.CommandRegistry)),
|
|
357
|
-
tslib_1.
|
|
307
|
+
tslib_1.__param(2, (0, inversify_1.inject)(exports.MenuNodeFactory)),
|
|
308
|
+
tslib_1.__metadata("design:paramtypes", [Object, command_1.CommandRegistry, Object])
|
|
358
309
|
], MenuModelRegistry);
|
|
359
310
|
//# sourceMappingURL=menu-model-registry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"menu-model-registry.js","sourceRoot":"","sources":["../../../src/common/menu/menu-model-registry.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF
|
|
1
|
+
{"version":3,"file":"menu-model-registry.js","sourceRoot":"","sources":["../../../src/common/menu/menu-model-registry.ts"],"names":[],"mappings":"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"}
|