@wcardinal/wcardinal-geditor
Version:
WebGL-based graphic editor, tester and viewer for supervisory systems
98 lines • 3.35 kB
JavaScript
import { __extends } from "tslib";
import { DCommandBase } from "@wcardinal/wcardinal-ui";
var ECommandLayerDelete = /** @class */ (function (_super) {
__extends(ECommandLayerDelete, _super);
function ECommandLayerDelete(layer, layerContainer, selection) {
var _this = _super.call(this) || this;
_this._layerContainer = layerContainer;
_this._layerActive = layerContainer.active;
_this._layer = layer;
layer.reference += 1;
_this._layerIndex = -1;
_this._selection = selection;
_this._selectionStored = null;
return _this;
}
Object.defineProperty(ECommandLayerDelete.prototype, "layerContainer", {
get: function () {
return this._layerContainer;
},
enumerable: false,
configurable: true
});
Object.defineProperty(ECommandLayerDelete.prototype, "layerActive", {
get: function () {
return this._layerActive;
},
enumerable: false,
configurable: true
});
Object.defineProperty(ECommandLayerDelete.prototype, "layer", {
get: function () {
return this._layer;
},
enumerable: false,
configurable: true
});
Object.defineProperty(ECommandLayerDelete.prototype, "layerIndex", {
get: function () {
return this._layerIndex;
},
enumerable: false,
configurable: true
});
Object.defineProperty(ECommandLayerDelete.prototype, "selection", {
get: function () {
return this._selection;
},
enumerable: false,
configurable: true
});
Object.defineProperty(ECommandLayerDelete.prototype, "selectionStored", {
get: function () {
return this._selectionStored;
},
enumerable: false,
configurable: true
});
ECommandLayerDelete.prototype.execute = function () {
var layer = this._layer;
var layerContainer = this._layerContainer;
var selection = this._selection;
if (layer === layerContainer.active && !selection.isEmpty()) {
this._selectionStored = selection.store();
selection.clear();
}
else {
this._selectionStored = null;
}
this._layerIndex = layerContainer.delete(layer, true);
return true;
};
ECommandLayerDelete.prototype.redo = function () {
if (this._selectionStored != null) {
this._selection.clear();
}
this._layerContainer.delete(this._layer, true);
return true;
};
ECommandLayerDelete.prototype.undo = function () {
this._layerContainer.attachAt(this._layer, this._layerIndex, this._layer === this._layerActive);
if (this._selectionStored != null) {
this._selection.restore(this._selectionStored);
}
return true;
};
ECommandLayerDelete.prototype.destroy = function () {
var layer = this._layer;
layer.reference -= 1;
if (layer.parent == null && layer.reference <= 0) {
layer.destroy();
}
this._layerActive = null;
this._selectionStored = null;
};
return ECommandLayerDelete;
}(DCommandBase));
export { ECommandLayerDelete };
//# sourceMappingURL=e-command-layer-delete.js.map