UNPKG

@wcardinal/wcardinal-geditor

Version:

WebGL-based graphic editor, tester and viewer for supervisory systems

248 lines 8.43 kB
import { DInputLabel, DInputText, DLayoutHorizontal, DLayoutSpace, DSelect } from "@wcardinal/wcardinal-ui"; import { EShapeActionExtensionInputType } from "../extension/e-shape-action-extension-input"; var EDialogActionExtension = /** @class */ (function () { function EDialogActionExtension(extension, dialog, condition, layout) { this._extension = extension; this._dialog = dialog; this._condition = condition; this._layout = layout; } Object.defineProperty(EDialogActionExtension.prototype, "select", { get: function () { var result = this._select; if (result === undefined) { result = this.newSelect(); this._select = result; } return result; }, enumerable: false, configurable: true }); EDialogActionExtension.prototype.newSelect = function () { var extensionItems = this._extension.items; if (extensionItems != null && 0 < extensionItems.length) { var result = new DSelect({ weight: 1, value: extensionItems[0].type, menu: { items: this.newSelectMenuItems(extensionItems) } }); return result; } return null; }; EDialogActionExtension.prototype.newSelectMenuItems = function (items) { var result = []; for (var i = 0, imax = items.length; i < imax; ++i) { var item = items[i]; result.push({ value: item.type, text: { value: item.label } }); } return result; }; Object.defineProperty(EDialogActionExtension.prototype, "selectLayout", { get: function () { var result = this._selectLayout; if (result === undefined) { result = this.newSelectLayout(); if (result != null) { var layout = this._layout; var conditionIndex = layout.getChildIndex(this._condition); if (0 <= conditionIndex) { layout.addChildAt(result, conditionIndex); } else { layout.addChild(result); } } this._selectLayout = result; } return result; }, enumerable: false, configurable: true }); EDialogActionExtension.prototype.newSelectLayout = function () { var select = this.select; if (select != null) { return this.newLabeled("", select); } return null; }; Object.defineProperty(EDialogActionExtension.prototype, "inputs", { get: function () { var result = this._inputs; if (result === undefined) { result = this.newInputs(); this._inputs = result; } return result; }, enumerable: false, configurable: true }); EDialogActionExtension.prototype.newInputs = function () { var result = []; var extensionInputs = this._extension.inputs; if (extensionInputs != null) { for (var i = 0, imax = extensionInputs.length; i < imax; ++i) { var input = extensionInputs[i]; switch (input.type) { case EShapeActionExtensionInputType.TEXT: var inputText = this.newInputText(); result.push(inputText); break; } } } return result; }; EDialogActionExtension.prototype.newInputText = function () { var _this = this; return new DInputText({ weight: 1, on: { enter: function () { _this.ok(); } } }); }; EDialogActionExtension.prototype.newLabel = function (label) { return new DInputLabel({ width: 60, text: { value: label } }); }; EDialogActionExtension.prototype.newSpace = function () { return new DLayoutSpace({ width: 60 }); }; EDialogActionExtension.prototype.newLabeled = function (label, input) { return new DLayoutHorizontal({ width: "padding", height: "auto", children: [ label != null ? this.newLabel(label) : this.newSpace(), input, this.newSpace() ] }); }; Object.defineProperty(EDialogActionExtension.prototype, "inputLayouts", { get: function () { var result = this._inputLayouts; if (result === undefined) { result = this.newInputLayouts(); this._inputLayouts = result; } return result; }, enumerable: false, configurable: true }); EDialogActionExtension.prototype.newInputLayouts = function () { var result = []; var inputs = this.inputs; var layout = this._layout; var extensionInputs = this._extension.inputs; if (extensionInputs != null) { var conditionIndex = layout.getChildIndex(this._condition); for (var i = 0, imax = inputs.length; i < imax; ++i) { var labeled = this.newLabeled(extensionInputs[i].label, inputs[i]); result.push(labeled); if (0 <= conditionIndex) { layout.addChildAt(labeled, conditionIndex + 1 + i); } else { layout.addChild(labeled); } } } return result; }; Object.defineProperty(EDialogActionExtension.prototype, "value", { get: function () { return this._extension.toValue(this.select, this._condition.input, this.inputs); }, set: function (value) { if (value != null) { this._extension.fromValue(value, this.select, this._condition.input, this.inputs); } }, enumerable: false, configurable: true }); EDialogActionExtension.prototype.show = function () { // Select var selectLayout = this.selectLayout; if (selectLayout != null) { selectLayout.show(); } // Inputs var inputLayouts = this.inputLayouts; if (0 < inputLayouts.length) { var extension = this._extension; if (extension.onShow != null) { extension.onShow(inputLayouts); } else { for (var i = 0, imax = inputLayouts.length; i < imax; ++i) { inputLayouts[i].show(); } } } }; EDialogActionExtension.prototype.hide = function () { // Select var selectLayout = this._selectLayout; if (selectLayout != null) { selectLayout.hide(); } // Inputs var inputLayouts = this._inputLayouts; if (inputLayouts != null) { for (var i = 0, imax = inputLayouts.length; i < imax; ++i) { inputLayouts[i].hide(); } } }; EDialogActionExtension.prototype.reset = function () { // Select var select = this._select; if (select) { var items = this._extension.items; if (items != null && 0 < items.length) { select.value = items[0].type; } else { select.value = null; } } // Inputs var inputs = this._inputs; if (inputs) { var extensionInputs = this._extension.inputs; if (extensionInputs != null) { for (var i = 0, imax = inputs.length; i < imax; ++i) { inputs[i].value = extensionInputs[i].initial || ""; } } } }; EDialogActionExtension.prototype.ok = function () { this._dialog.ok(); }; return EDialogActionExtension; }()); export { EDialogActionExtension }; //# sourceMappingURL=e-dialog-action-extension.js.map