Skip to content

Commit 87ed954

Browse files
author
Akos Kitta
committed
moved selected board tracker to its module.
Signed-off-by: Akos Kitta <[email protected]>
1 parent bd993c0 commit 87ed954

File tree

3 files changed

+57
-36
lines changed

3 files changed

+57
-36
lines changed

Diff for: arduino-ide-extension/src/browser/arduino-frontend-contribution.tsx

+1-36
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,6 @@ import {
2020
LocalStorageService,
2121
OnWillStopAction,
2222
SaveableWidget,
23-
StatusBar,
24-
StatusBarAlignment,
2523
} from '@theia/core/lib/browser';
2624
import { ColorContribution } from '@theia/core/lib/browser/color-application-contribution';
2725
import { ColorRegistry } from '@theia/core/lib/browser/color-registry';
@@ -52,7 +50,6 @@ import {
5250
} from '../common/protocol/sketches-service-client-impl';
5351
import { ArduinoCommands } from './arduino-commands';
5452
import { ArduinoPreferences } from './arduino-preferences';
55-
import { BoardsConfig } from './boards/boards-config';
5653
import { BoardsConfigDialog } from './boards/boards-config-dialog';
5754
import { BoardsServiceProvider } from './boards/boards-service-provider';
5855
import { BoardsToolBarItem } from './boards/boards-toolbar-item';
@@ -92,9 +89,6 @@ export class ArduinoFrontendContribution
9289
@inject(CommandRegistry)
9390
private readonly commandRegistry: CommandRegistry;
9491

95-
@inject(StatusBar)
96-
private readonly statusBar: StatusBar;
97-
9892
@inject(ArduinoPreferences)
9993
private readonly arduinoPreferences: ArduinoPreferences;
10094

@@ -129,36 +123,6 @@ export class ArduinoFrontendContribution
129123
)
130124
);
131125
}
132-
const updateStatusBar = ({
133-
selectedBoard,
134-
selectedPort,
135-
}: BoardsConfig.Config) => {
136-
this.statusBar.setElement('arduino-selected-board', {
137-
alignment: StatusBarAlignment.RIGHT,
138-
text: selectedBoard
139-
? `$(microchip) ${selectedBoard.name}`
140-
: `$(close) ${nls.localize(
141-
'arduino/common/noBoardSelected',
142-
'No board selected'
143-
)}`,
144-
className: 'arduino-selected-board',
145-
});
146-
if (selectedBoard) {
147-
this.statusBar.setElement('arduino-selected-port', {
148-
alignment: StatusBarAlignment.RIGHT,
149-
text: selectedPort
150-
? nls.localize(
151-
'arduino/common/selectedOn',
152-
'on {0}',
153-
selectedPort.address
154-
)
155-
: nls.localize('arduino/common/notConnected', '[not connected]'),
156-
className: 'arduino-selected-port',
157-
});
158-
}
159-
};
160-
this.boardsServiceClientImpl.onBoardsConfigChanged(updateStatusBar);
161-
updateStatusBar(this.boardsServiceClientImpl.boardsConfig);
162126
this.appStateService.reachedState('ready').then(async () => {
163127
const sketch = await this.sketchServiceClient.currentSketch();
164128
if (
@@ -249,6 +213,7 @@ export class ArduinoFrontendContribution
249213
webContents.setZoomLevel(zoomLevel);
250214
});
251215

216+
// Removes the _Settings_ (cog) icon from the left sidebar
252217
app.shell.leftPanelHandler.removeBottomMenu('settings-menu');
253218

254219
this.fileSystemFrontendContribution.onDidChangeEditorFile(

Diff for: arduino-ide-extension/src/browser/arduino-ide-frontend-module.ts

+2
Original file line numberDiff line numberDiff line change
@@ -307,6 +307,7 @@ import { FirstStartupInstaller } from './contributions/first-startup-installer';
307307
import { Notifications } from './contributions/notifications';
308308
import { OpenSketchFiles } from './contributions/open-sketch-files';
309309
import { InoLanguage } from './contributions/ino-language';
310+
import { SelectedBoard } from './contributions/selected-board';
310311

311312
MonacoThemingService.register({
312313
id: 'arduino-theme',
@@ -703,6 +704,7 @@ export default new ContainerModule((bind, unbind, isBound, rebind) => {
703704
Contribution.configure(bind, Notifications);
704705
Contribution.configure(bind, OpenSketchFiles);
705706
Contribution.configure(bind, InoLanguage);
707+
Contribution.configure(bind, SelectedBoard);
706708

707709
// Disabled the quick-pick customization from Theia when multiple formatters are available.
708710
// Use the default VS Code behavior, and pick the first one. In the IDE2, clang-format has `exclusive` selectors.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
import {
2+
StatusBar,
3+
StatusBarAlignment,
4+
} from '@theia/core/lib/browser/status-bar/status-bar';
5+
import { nls } from '@theia/core/lib/common/nls';
6+
import { inject, injectable } from '@theia/core/shared/inversify';
7+
import { BoardsConfig } from '../boards/boards-config';
8+
import { BoardsServiceProvider } from '../boards/boards-service-provider';
9+
import { Contribution } from './contribution';
10+
11+
@injectable()
12+
export class SelectedBoard extends Contribution {
13+
@inject(StatusBar)
14+
private readonly statusBar: StatusBar;
15+
16+
@inject(BoardsServiceProvider)
17+
private readonly boardsServiceProvider: BoardsServiceProvider;
18+
19+
override onStart(): void {
20+
this.boardsServiceProvider.onBoardsConfigChanged((config) =>
21+
this.update(config)
22+
);
23+
}
24+
25+
override onReady(): void {
26+
this.update(this.boardsServiceProvider.boardsConfig);
27+
}
28+
29+
private update({ selectedBoard, selectedPort }: BoardsConfig.Config): void {
30+
this.statusBar.setElement('arduino-selected-board', {
31+
alignment: StatusBarAlignment.RIGHT,
32+
text: selectedBoard
33+
? `$(microchip) ${selectedBoard.name}`
34+
: `$(close) ${nls.localize(
35+
'arduino/common/noBoardSelected',
36+
'No board selected'
37+
)}`,
38+
className: 'arduino-selected-board',
39+
});
40+
if (selectedBoard) {
41+
this.statusBar.setElement('arduino-selected-port', {
42+
alignment: StatusBarAlignment.RIGHT,
43+
text: selectedPort
44+
? nls.localize(
45+
'arduino/common/selectedOn',
46+
'on {0}',
47+
selectedPort.address
48+
)
49+
: nls.localize('arduino/common/notConnected', '[not connected]'),
50+
className: 'arduino-selected-port',
51+
});
52+
}
53+
}
54+
}

0 commit comments

Comments
 (0)