UNPKG

@wcardinal/wcardinal-geditor

Version:

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

149 lines 5.27 kB
import { EShapeButtonLayerButtonValue } from "./e-shape-button-layer-button-value"; var EShapeButtonLayerButtonValueContainer = /** @class */ (function () { function EShapeButtonLayerButtonValueContainer(onChange) { this._values = []; this._sizeX = 1; this._margin = 2; this._onChange = onChange; } Object.defineProperty(EShapeButtonLayerButtonValueContainer.prototype, "values", { get: function () { return this._values; }, enumerable: false, configurable: true }); Object.defineProperty(EShapeButtonLayerButtonValueContainer.prototype, "margin", { get: function () { return this._margin; }, set: function (margin) { if (this._margin !== margin) { this._margin = margin; this._onChange(); } }, enumerable: false, configurable: true }); EShapeButtonLayerButtonValueContainer.prototype.add = function (value, at) { if (at != null) { this._values.splice(at, 0, value); } else { this._values.push(value); } this._onChange(); }; EShapeButtonLayerButtonValueContainer.prototype.remove = function (index) { var values = this._values; if (0 <= index && index < values.length) { var result = values.splice(index, 1)[0]; this._onChange(); return result; } return null; }; EShapeButtonLayerButtonValueContainer.prototype.indexOf = function (target) { var values = this._values; // Instance-based matching for (var i = 0, imax = values.length; i < imax; ++i) { var value = values[i]; if (value === target) { return i; } } // Data-based matching for (var i = 0, imax = values.length; i < imax; ++i) { var value = values[i]; if (value.isEquals(target)) { return i; } } return -1; }; EShapeButtonLayerButtonValueContainer.prototype.get = function (index) { var result = this._values[index]; if (result != null) { return result; } return null; }; EShapeButtonLayerButtonValueContainer.prototype.set = function (index, value) { this._values[index] = value; this._onChange(); }; EShapeButtonLayerButtonValueContainer.prototype.swap = function (indexA, indexB) { var values = this._values; var tmp = values[indexB]; values[indexB] = values[indexA]; values[indexA] = tmp; this._onChange(); }; EShapeButtonLayerButtonValueContainer.prototype.size = function () { return this._values.length; }; EShapeButtonLayerButtonValueContainer.prototype.copy = function (source) { // Values var values = this._values; var sourceValues = source._values; var sourceValuesLength = sourceValues.length; for (var i = 0; i < sourceValuesLength; ++i) { values[i] = sourceValues[i]; } if (values.length !== sourceValuesLength) { values.length = sourceValuesLength; } // this._sizeX = source._sizeX; this._onChange(); return this; }; EShapeButtonLayerButtonValueContainer.prototype.serialize = function (manager) { var serialized = ""; var delimiter = "["; var values = this._values; for (var i = 0, imax = values.length; i < imax; ++i) { serialized += delimiter + values[i].serizlize(manager); delimiter = ","; } serialized += delimiter + this._margin + "]"; return manager.addResource(serialized); }; EShapeButtonLayerButtonValueContainer.prototype.deserialize = function (target, manager) { var resources = manager.resources; if (0 <= target && target < resources.length) { var parsed = manager.getExtension(target); if (parsed == null) { parsed = JSON.parse(resources[target]); manager.setExtension(target, parsed); } var isChanged = false; var values = this._values; if (0 < values.length) { values.length = 0; isChanged = true; } for (var i = 0, imax = parsed.length - 1; i < imax; ++i) { var value = EShapeButtonLayerButtonValue.deserialize(parsed[i], manager); if (value != null) { values.push(value); } } var margin = parsed[parsed.length - 1]; if (this._margin !== margin) { this._margin = margin; isChanged = true; } if (0 < values.length) { isChanged = true; } if (isChanged) { this._onChange(); } } }; return EShapeButtonLayerButtonValueContainer; }()); export { EShapeButtonLayerButtonValueContainer }; //# sourceMappingURL=e-shape-button-layer-button-value-container.js.map