@wcardinal/wcardinal-geditor
Version:
WebGL-based graphic editor, tester and viewer for supervisory systems
82 lines • 2.72 kB
JavaScript
import { EShapeActionExtensions } from "../extension/e-shape-action-extensions";
import { EDialogActionExtension } from "./e-dialog-action-extension";
var EDialogActionExtensionContainer = /** @class */ (function () {
function EDialogActionExtensionContainer(dialog, condition, layout) {
this._data = new Map();
this._dialog = dialog;
this._condition = condition;
this._layout = layout;
}
Object.defineProperty(EDialogActionExtensionContainer.prototype, "value", {
get: function () {
var selected = this._selected;
if (selected) {
return selected.value;
}
return null;
},
set: function (value) {
if (value != null) {
var datum = this._data.get(value.type);
if (datum != null) {
datum.value = value;
}
}
},
enumerable: false,
configurable: true
});
EDialogActionExtensionContainer.prototype.get = function (type) {
var data = this._data;
var result = data.get(type);
if (result != null) {
return result;
}
var e = EShapeActionExtensions.get(type);
if (e == null) {
return null;
}
result = new EDialogActionExtension(e, this._dialog, this._condition, this._layout);
data.set(type, result);
return result;
};
EDialogActionExtensionContainer.prototype.show = function (type) {
if (type != null) {
var datum = this.get(type);
if (datum != null) {
var selected = this._selected;
if (selected !== datum) {
if (selected != null) {
selected.hide();
}
this._selected = datum;
datum.show();
}
}
else {
this.hide();
}
}
else {
this.hide();
}
};
EDialogActionExtensionContainer.prototype.hide = function () {
var selected = this._selected;
if (selected != null) {
selected.hide();
this._selected = null;
}
};
EDialogActionExtensionContainer.prototype.reset = function () {
this._data.forEach(function (datum) {
datum.reset();
});
};
EDialogActionExtensionContainer.prototype.onChange = function (type) {
this.show(type);
};
return EDialogActionExtensionContainer;
}());
export { EDialogActionExtensionContainer };
//# sourceMappingURL=e-dialog-action-extension-container.js.map