@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
JavaScript
;
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