const DynObject = require("../dynObject")
const PhSim = require("../index");
/**
*
* Call ObjLink functions
*
* @function
* @param {PhSim.DynObject} dynObject
*/
PhSim.prototype.callObjLinkFunctions = function(dynObject) {
for(var i = 0; i < dynObject.objLinkFunctions.length; i++) {
dynObject.objLinkFunctions[i]();
}
}
/**
*
* The `objLink` widget executes all functions in the {@link PhSim.DynObject#objLinkFunctions}
* array of `widget.target`.
*
* @function
* @param {PhSim.DynObject} dyn_object - Reciever Object
* @param {WFunctionOptions} widget - Widget options
* @param {LOAddress|PhSim.DynObject} widget.target - Target object
*/
PhSim.Widgets.objLink = function(dyn_object,widget) {
var self = this;
var targetObj;
var widgetO = widget;
this.on("load",function(){
if(typeof widget.target.L === "number" && typeof widget.target.O === "number") {
targetObj = self.LO(widgetO.target.L,widgetO.target.O);
}
else if(widget.target instanceof DynObject) {
targetObj = widget.target;
}
var eventFunc = function(){
self.callObjLinkFunctions(targetObj);
}
self.createWFunction(dyn_object,eventFunc,widget);
},{
slEvent: true
});
}