/*global $,FC*/ 'use strict'; let LogicCondition = function (enabled, operation, operandAType, operandAValue, operandBType, operandBValue, flags) { let self = {}; let $row; self.getEnabled = function () { return !!enabled; }; self.setEnabled = function (data) { enabled = !!data; }; self.getOperation = function () { return operation; }; self.setOperation = function (data) { operation = data; }; self.getOperandAType = function () { return operandAType; }; self.setOperandAType = function (data) { operandAType = data; }; self.getOperandAValue = function () { return operandAValue; }; self.setOperandAValue = function (data) { operandAValue = data; }; self.getOperandBType = function () { return operandBType; }; self.setOperandBType = function (data) { operandBType = data; }; self.getOperandBValue = function () { return operandBValue; }; self.setOperandBValue = function (data) { operandBValue = data; }; self.getFlags = function () { return flags; }; self.setFlags = function (data) { flags = data; }; self.onEnabledChange = function (event) { let $cT = $(event.currentTarget); console.log($cT); }; self.getOperatorMetadata = function () { return FC.getLogicOperators()[self.getOperation()]; }; self.hasOperand = function (val) { return self.getOperatorMetadata().hasOperand[val]; }; self.onOperatorChange = function (event) { let $cT = $(event.currentTarget); self.setOperation($cT.val()); self.setOperandAType(0); self.setOperandBType(0); self.setOperandAValue(0); self.setOperandBValue(0); self.renderOperand(0); self.renderOperand(1); }; self.renderOperandType = function ($container, type, value) { }; self.renderOperand = function (operand) { let type, value, $container; if (operand == 0) { type = operandAType; value = operandAValue; $container = $row.find('.logic_cell__operandA'); } else { type = operandBType; value = operandBValue; $container = $row.find('.logic_cell__operandB'); } $container.html(''); if (self.hasOperand(operand)) { $container.append(''); let $t = $container.find('.logic_element__operand--type'); for (let k in FC.getOperandTypes()) { if (FC.getOperandTypes().hasOwnProperty(k)) { let op = FC.getOperandTypes()[k]; if (type == k) { $t.append(''); } else { $t.append(''); } //TODO bind to event /* * Render value element depending on type */ } } } } self.render = function (index, $container) { $container.find('tbody').append('\ \ \ \ \ \ \ \ '); $row = $container.find('tr:last'); $row.find('.logic_cell__index').html(index); $row.find('.logic_cell__enabled').html(""); $row.find('.logic_element__enabled'). prop('checked', self.getEnabled()). change(self.onEnabledChange); /* * Operator select */ $row.find('.logic_cell__operation').html(""); let $t = $row.find('.logic_element__operation'); for (let k in FC.getLogicOperators()) { if (FC.getLogicOperators().hasOwnProperty(k)) { let o = FC.getLogicOperators()[k]; if (self.getOperation() == parseInt(k, 10)) { $t.append(''); } else { $t.append(''); } } } $t.change(self.onOperatorChange); self.renderOperand(0); self.renderOperand(1); console.log($row); } return self; };