Skip to content

Commit 35ac731

Browse files
author
Akos Kitta
committed
Enabled New Folder in classic mode.
- Made sure the `Explorer` is visible before raising the input dialog. - Removed unused module. Fixes arduino/arduino-pro-ide#84 Signed-off-by: Akos Kitta <kittaakos@typefox.io>
1 parent 840cde8 commit 35ac731

File tree

2 files changed

+38
-16
lines changed

2 files changed

+38
-16
lines changed

arduino-ide-extension/src/browser/arduino-frontend-contribution.tsx

+38-5
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { injectable, inject, postConstruct } from 'inversify';
33
import URI from '@theia/core/lib/common/uri';
44
import { EditorWidget } from '@theia/editor/lib/browser/editor-widget';
55
import { MessageService } from '@theia/core/lib/common/message-service';
6-
import { CommandContribution, CommandRegistry, Command } from '@theia/core/lib/common/command';
6+
import { CommandContribution, CommandRegistry, Command, CommandHandler } from '@theia/core/lib/common/command';
77
import { TabBarToolbarContribution, TabBarToolbarRegistry } from '@theia/core/lib/browser/shell/tab-bar-toolbar';
88
import { BoardsService } from '../common/protocol/boards-service';
99
import { ArduinoCommands } from './arduino-commands';
@@ -257,6 +257,42 @@ export class ArduinoFrontendContribution implements FrontendApplicationContribut
257257
}
258258

259259
registerCommands(registry: CommandRegistry): void {
260+
// TODO: use proper API https://github.com/eclipse-theia/theia/pull/6599
261+
const allHandlers: { [id: string]: CommandHandler[] } = (registry as any)._handlers;
262+
// Make sure to reveal the `Explorer` before executing `New File` and `New Folder`.
263+
for (const command of [WorkspaceCommands.NEW_FILE, WorkspaceCommands.NEW_FOLDER]) {
264+
const { id } = command;
265+
const handlers = allHandlers[id].slice();
266+
registry.unregisterCommand(id);
267+
registry.registerCommand(command);
268+
for (const handler of handlers) {
269+
const wrapper: CommandHandler = {
270+
execute: (...args: any[]) => {
271+
this.fileNavigatorContributions.openView({ reveal: true }).then(() => handler.execute(args));
272+
},
273+
isVisible: (...args: any[]) => {
274+
return handler.isVisible!(args);
275+
},
276+
isEnabled: (args: any[]) => {
277+
return handler.isEnabled!(args);
278+
},
279+
isToggled: (args: any[]) => {
280+
return handler.isToggled!(args);
281+
}
282+
};
283+
if (!handler.isEnabled) {
284+
delete wrapper.isEnabled;
285+
}
286+
if (!handler.isToggled) {
287+
delete wrapper.isToggled;
288+
}
289+
if (!handler.isVisible) {
290+
delete wrapper.isVisible;
291+
}
292+
registry.registerHandler(id, wrapper);
293+
}
294+
}
295+
260296
registry.registerCommand(ArduinoCommands.VERIFY, {
261297
isVisible: widget => ArduinoToolbar.is(widget) && widget.side === 'left',
262298
isEnabled: widget => true,
@@ -398,16 +434,13 @@ export class ArduinoFrontendContribution implements FrontendApplicationContribut
398434
CommonCommands.COLLAPSE_PANEL,
399435
CommonCommands.TOGGLE_MAXIMIZED,
400436
FileNavigatorCommands.REVEAL_IN_NAVIGATOR
401-
402437
]) {
403438
registry.unregisterMenuAction(command);
404439
}
405440

406441
registry.unregisterMenuAction(FileSystemCommands.UPLOAD);
407442
registry.unregisterMenuAction(FileDownloadCommands.DOWNLOAD);
408443

409-
registry.unregisterMenuAction(WorkspaceCommands.NEW_FOLDER);
410-
411444
registry.unregisterMenuAction(WorkspaceCommands.OPEN_FOLDER);
412445
registry.unregisterMenuAction(WorkspaceCommands.OPEN_WORKSPACE);
413446
registry.unregisterMenuAction(WorkspaceCommands.OPEN_RECENT_WORKSPACE);
@@ -502,7 +535,7 @@ export class ArduinoFrontendContribution implements FrontendApplicationContribut
502535
if (destinationFile && !destinationFile.isDirectory) {
503536
const message = await this.validate(destinationFile);
504537
if (!message) {
505-
await this.workspaceService.open(destinationFileUri);
538+
this.workspaceService.open(destinationFileUri);
506539
return destinationFileUri;
507540
} else {
508541
this.messageService.warn(message);

arduino-ide-extension/src/browser/customization/arduino-file-menu-contribution.ts

-11
This file was deleted.

0 commit comments

Comments
 (0)