-
-
Notifications
You must be signed in to change notification settings - Fork 428
/
Copy patharduino-toolbar-contribution.ts
67 lines (61 loc) · 1.87 KB
/
arduino-toolbar-contribution.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
import {
FrontendApplicationContribution,
FrontendApplication,
Widget,
Message,
} from '@theia/core/lib/browser';
import { injectable, inject } from '@theia/core/shared/inversify';
import { ArduinoToolbar } from './arduino-toolbar';
import { TabBarToolbarRegistry } from '@theia/core/lib/browser/shell/tab-bar-toolbar';
import { CommandRegistry } from '@theia/core';
import { LabelParser } from '@theia/core/lib/browser/label-parser';
export class ArduinoToolbarContainer extends Widget {
protected toolbars: ArduinoToolbar[];
constructor(...toolbars: ArduinoToolbar[]) {
super();
this.id = 'arduino-toolbar-container';
this.toolbars = toolbars;
}
override onAfterAttach(msg: Message): void {
super.onAfterAttach(msg);
for (const toolbar of this.toolbars) {
Widget.attach(toolbar, this.node);
}
}
}
@injectable()
export class ArduinoToolbarContribution
implements FrontendApplicationContribution
{
protected arduinoToolbarContainer: ArduinoToolbarContainer;
constructor(
@inject(TabBarToolbarRegistry)
protected tabBarToolBarRegistry: TabBarToolbarRegistry,
@inject(CommandRegistry) protected commandRegistry: CommandRegistry,
@inject(LabelParser) protected labelParser: LabelParser
) {
const leftToolbarWidget = new ArduinoToolbar(
tabBarToolBarRegistry,
commandRegistry,
labelParser,
'left'
);
const rightToolbarWidget = new ArduinoToolbar(
tabBarToolBarRegistry,
commandRegistry,
labelParser,
'right'
);
this.arduinoToolbarContainer = new ArduinoToolbarContainer(
leftToolbarWidget,
rightToolbarWidget
);
}
onStart(app: FrontendApplication): void {
// eslint-disable-next-line @typescript-eslint/no-explicit-any
const options = <any>{
area: 'toolbar',
};
app.shell.addWidget(this.arduinoToolbarContainer, options);
}
}