UNPKG

theia-sprotty

Version:

Glue code for sprotty diagrams in a Theia IDE

168 lines 7.85 kB
"use strict"; /* * Copyright (C) 2017 TypeFox and others. * * Licensed under the Apache License, Version 2.0 (the "License") you may not use this file except in compliance with the License. * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 */ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; var __param = (this && this.__param) || function (paramIndex, decorator) { return function (target, key) { decorator(target, key, paramIndex); } }; Object.defineProperty(exports, "__esModule", { value: true }); var lib_1 = require("sprotty/lib"); var diagram_widget_1 = require("./diagram-widget"); var diagram_manager_1 = require("./diagram-manager"); var inversify_1 = require("inversify"); var common_1 = require("@theia/core/lib/common"); var browser_1 = require("@theia/core/lib/browser"); var browser_2 = require("@theia/editor/lib/browser"); var DiagramCommands; (function (DiagramCommands) { DiagramCommands.CENTER = 'diagram:center'; DiagramCommands.FIT = 'diagram:fit'; DiagramCommands.EXPORT = 'diagram:export'; DiagramCommands.SELECT_ALL = 'diagram.selectAll'; DiagramCommands.OPEN_IN_DIAGRAM = 'diagram.open'; DiagramCommands.DELETE = 'diagram.delete'; })(DiagramCommands = exports.DiagramCommands || (exports.DiagramCommands = {})); var DiagramMenus; (function (DiagramMenus) { DiagramMenus.DIAGRAM = common_1.MAIN_MENU_BAR.concat("3_diagram"); })(DiagramMenus = exports.DiagramMenus || (exports.DiagramMenus = {})); var DiagramMenuContribution = /** @class */ (function () { function DiagramMenuContribution() { } DiagramMenuContribution.prototype.registerMenus = function (registry) { registry.registerSubmenu(DiagramMenus.DIAGRAM, "Diagram"); registry.registerMenuAction(DiagramMenus.DIAGRAM, { commandId: DiagramCommands.CENTER }); registry.registerMenuAction(DiagramMenus.DIAGRAM, { commandId: DiagramCommands.FIT }); registry.registerMenuAction(DiagramMenus.DIAGRAM, { commandId: DiagramCommands.EXPORT }); registry.registerMenuAction(browser_2.EDITOR_CONTEXT_MENU, { commandId: DiagramCommands.OPEN_IN_DIAGRAM }); }; DiagramMenuContribution = __decorate([ inversify_1.injectable() ], DiagramMenuContribution); return DiagramMenuContribution; }()); exports.DiagramMenuContribution = DiagramMenuContribution; var DiagramCommandHandler = /** @class */ (function () { function DiagramCommandHandler(shell, doExecute) { this.shell = shell; this.doExecute = doExecute; } DiagramCommandHandler.prototype.execute = function () { var args = []; for (var _i = 0; _i < arguments.length; _i++) { args[_i] = arguments[_i]; } return this.isEnabled() ? this.doExecute(this.shell.currentWidget) : undefined; }; DiagramCommandHandler.prototype.isEnabled = function () { return this.shell.currentWidget instanceof diagram_widget_1.DiagramWidget; }; return DiagramCommandHandler; }()); exports.DiagramCommandHandler = DiagramCommandHandler; var OpenInDiagramHandler = /** @class */ (function () { function OpenInDiagramHandler(editorManager, openerService) { this.editorManager = editorManager; this.openerService = openerService; } OpenInDiagramHandler.prototype.execute = function () { var args = []; for (var _i = 0; _i < arguments.length; _i++) { args[_i] = arguments[_i]; } var editor = this.editorManager.currentEditor; if (editor !== undefined) { var uri_1 = editor.editor.uri; var openers = this.openerService.getOpeners(uri_1); openers.then(function (openers) { var opener = openers.find(function (opener) { return opener instanceof diagram_manager_1.DiagramManagerImpl; }); if (opener !== undefined) opener.open(uri_1); }); } }; return OpenInDiagramHandler; }()); exports.OpenInDiagramHandler = OpenInDiagramHandler; var DiagramCommandContribution = /** @class */ (function () { function DiagramCommandContribution(shell, editorManager, openerService) { this.shell = shell; this.editorManager = editorManager; this.openerService = openerService; } DiagramCommandContribution.prototype.registerCommands = function (registry) { registry.registerCommand({ id: DiagramCommands.CENTER, label: 'Center' }); registry.registerCommand({ id: DiagramCommands.FIT, label: 'Fit to screen' }); registry.registerCommand({ id: DiagramCommands.EXPORT, label: 'Export' }); registry.registerCommand({ id: DiagramCommands.SELECT_ALL, label: 'Select all' }); registry.registerCommand({ id: DiagramCommands.OPEN_IN_DIAGRAM, label: 'Open in diagram' }); registry.registerHandler(DiagramCommands.CENTER, new DiagramCommandHandler(this.shell, function (widget) { return widget.actionDispatcher.dispatch(new lib_1.CenterAction([])); })); registry.registerHandler(DiagramCommands.FIT, new DiagramCommandHandler(this.shell, function (widget) { return widget.actionDispatcher.dispatch(new lib_1.FitToScreenAction([])); })); registry.registerHandler(DiagramCommands.EXPORT, new DiagramCommandHandler(this.shell, function (widget) { return widget.actionDispatcher.dispatch(new lib_1.RequestExportSvgAction()); })); registry.registerHandler(DiagramCommands.SELECT_ALL, new DiagramCommandHandler(this.shell, function (widget) { var action = new lib_1.SelectAllAction(true); widget.actionDispatcher.dispatch(action); })); registry.registerHandler(DiagramCommands.OPEN_IN_DIAGRAM, new OpenInDiagramHandler(this.editorManager, this.openerService)); registry.registerHandler(browser_1.CommonCommands.UNDO.id, new DiagramCommandHandler(this.shell, function (widget) { return widget.actionDispatcher.dispatch(new lib_1.UndoAction()); })); registry.registerHandler(browser_1.CommonCommands.REDO.id, new DiagramCommandHandler(this.shell, function (widget) { return widget.actionDispatcher.dispatch(new lib_1.RedoAction()); })); }; DiagramCommandContribution = __decorate([ inversify_1.injectable(), __param(0, inversify_1.inject(browser_1.ApplicationShell)), __param(1, inversify_1.inject(browser_2.EditorManager)), __param(2, inversify_1.inject(browser_1.OpenerService)), __metadata("design:paramtypes", [browser_1.ApplicationShell, browser_2.EditorManager, Object]) ], DiagramCommandContribution); return DiagramCommandContribution; }()); exports.DiagramCommandContribution = DiagramCommandContribution; //# sourceMappingURL=diagram-commands.js.map