@wcardinal/wcardinal-geditor
Version:
WebGL-based graphic editor, tester and viewer for supervisory systems
162 lines • 5.86 kB
JavaScript
import { __extends } from "tslib";
import { DBoard, DButtonAmbient, DControllers, DCornerMask, DInputText, DLayoutHorizontal } from "@wcardinal/wcardinal-ui";
import { ECommandDocumentName } from "../command/e-command-document-name";
import { EDialogCanvas } from "./e-dialog-canvas";
import { ECommandDocumentAll } from "../command/e-command-document-all";
var toOptions = function (options) {
var _a, _b, _c, _d, _e;
(_a = options.width) !== null && _a !== void 0 ? _a : (options.width = 200);
(_b = options.height) !== null && _b !== void 0 ? _b : (options.height = 30);
(_c = options.padding) !== null && _c !== void 0 ? _c : (options.padding = 0);
(_d = options.corner) !== null && _d !== void 0 ? _d : (options.corner = { mask: "BOTTOM" });
(_e = options.shadow) !== null && _e !== void 0 ? _e : (options.shadow = "WEAK");
return options;
};
var EEditorCanvas = /** @class */ (function (_super) {
__extends(EEditorCanvas, _super);
function EEditorCanvas(options) {
var _this = _super.call(this, toOptions(options)) || this;
_this._icons = options.icons;
var diagram = options.diagram;
_this._diagram = diagram;
diagram.on("change", function () {
var canvas = diagram.canvas;
if (canvas != null) {
_this.inputName.value = canvas.name;
}
});
diagram.on("set", function (canvas) {
_this.inputName.value = canvas.name;
_this.show();
});
diagram.on("unset", function (canvas) {
_this.hide();
});
_this._canvas = options.canvas;
_this.addChild(new DLayoutHorizontal({
x: "padding",
y: "padding",
width: "padding",
height: "padding",
margin: 0,
children: [_this.inputName, _this.buttonEditor]
}));
_this.hide();
return _this;
}
Object.defineProperty(EEditorCanvas.prototype, "inputName", {
get: function () {
var result = this._inputName;
if (result == null) {
result = this.newInputName();
this._inputName = result;
}
return result;
},
enumerable: false,
configurable: true
});
EEditorCanvas.prototype.newInputName = function () {
var _this = this;
return new DInputText({
weight: 1,
background: {
color: null
},
border: {
color: null
},
corner: {
mask: DCornerMask.ALL & ~DCornerMask.TOP_LEFT
},
on: {
change: function (value) {
_this.onInputNameChange(value);
}
}
});
};
EEditorCanvas.prototype.onInputNameChange = function (value) {
var diagram = this._diagram;
var canvas = diagram.canvas;
if (canvas != null && canvas.name !== value) {
DControllers.getCommandController().push(new ECommandDocumentName(diagram, canvas, value));
}
};
Object.defineProperty(EEditorCanvas.prototype, "buttonEditor", {
get: function () {
var result = this._buttonEditor;
if (result == null) {
result = this.newButtonEditor();
this._buttonEditor = result;
}
return result;
},
enumerable: false,
configurable: true
});
EEditorCanvas.prototype.newButtonEditor = function () {
var _this = this;
return new DButtonAmbient({
width: 30,
image: {
source: this._icons.editor_canvas
},
on: {
active: function (emitter) {
_this.onButtonEditorActive(emitter);
}
}
});
};
EEditorCanvas.prototype.onButtonEditorActive = function (opener) {
var _this = this;
this.dialogEditor.then(function (dialogEditor) {
var diagram = _this._diagram;
dialogEditor
.reset(diagram)
.open(opener)
.then(function (value) {
var canvas = diagram.canvas;
if (canvas != null) {
DControllers.getCommandController().push(new ECommandDocumentAll(diagram, canvas, value.name, value.label, value.width, value.height, value.category, value.summary, value.description, value.background.color, value.background.alpha));
}
});
});
};
Object.defineProperty(EEditorCanvas.prototype, "dialogEditor", {
get: function () {
var result = this._dialogEditor;
if (result == null) {
result = this.newDialogEditor();
this._dialogEditor = result;
}
return result;
},
enumerable: false,
configurable: true
});
EEditorCanvas.prototype.newDialogEditor = function () {
return this._canvas.get().then(function (canvas) {
return new EDialogCanvas({
canvas: canvas
});
});
};
EEditorCanvas.prototype.render = function (renderer) {
var diagram = this._diagram;
var canvas = diagram.canvas;
if (canvas != null) {
var position = canvas.position;
this.position.set(position.x, position.y - this.height);
this.updateTransform();
}
_super.prototype.render.call(this, renderer);
};
EEditorCanvas.prototype.getType = function () {
return "EEditorCanvas";
};
return EEditorCanvas;
}(DBoard));
export { EEditorCanvas };
//# sourceMappingURL=e-editor-canvas.js.map