UNPKG

@tobejacob/myextension

Version:

The example extension demonstrates how to contribute a custom widget (i.e. a view or editor) to Eclipse Theia. Furthermore, the template contains an example unit test.

65 lines 3.29 kB
"use strict"; 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 MyextensionWidget_1; Object.defineProperty(exports, "__esModule", { value: true }); exports.MyextensionWidget = void 0; const React = require("react"); const inversify_1 = require("@theia/core/shared/inversify"); const alert_message_1 = require("@theia/core/lib/browser/widgets/alert-message"); const react_widget_1 = require("@theia/core/lib/browser/widgets/react-widget"); const core_1 = require("@theia/core"); let MyextensionWidget = MyextensionWidget_1 = class MyextensionWidget extends react_widget_1.ReactWidget { init() { this.doInit(); } async doInit() { this.id = MyextensionWidget_1.ID; this.title.label = MyextensionWidget_1.LABEL; this.title.caption = MyextensionWidget_1.LABEL; this.title.closable = true; this.title.iconClass = 'fa fa-window-maximize'; // example widget icon. this.update(); } render() { const header = `This is a sample widget which simply calls the messageService in order to display an info message to end users.`; return React.createElement("div", { id: 'widget-container' }, React.createElement(alert_message_1.AlertMessage, { type: 'INFO', header: header }), React.createElement("button", { id: 'displayMessageButton', className: 'theia-button secondary', title: 'Display Message', onClick: _a => this.displayMessage() }, "Display Message")); } displayMessage() { this.messageService.info('Congratulations: Myextension Widget Successfully Created!'); } onActivateRequest(msg) { super.onActivateRequest(msg); const htmlElement = document.getElementById('displayMessageButton'); if (htmlElement) { htmlElement.focus(); } } }; MyextensionWidget.ID = 'myextension:widget'; MyextensionWidget.LABEL = 'Myextension Widget'; __decorate([ (0, inversify_1.inject)(core_1.MessageService), __metadata("design:type", core_1.MessageService) ], MyextensionWidget.prototype, "messageService", void 0); __decorate([ (0, inversify_1.postConstruct)(), __metadata("design:type", Function), __metadata("design:paramtypes", []), __metadata("design:returntype", void 0) ], MyextensionWidget.prototype, "init", null); MyextensionWidget = MyextensionWidget_1 = __decorate([ (0, inversify_1.injectable)() ], MyextensionWidget); exports.MyextensionWidget = MyextensionWidget; //# sourceMappingURL=myextension-widget.js.map