Skip to content
Snippets Groups Projects
Select Git revision
  • master default
  • dev
2 results

EStaticMenuView.js

Blame
  • EStaticMenuView.js 1.99 KiB
    /**
     * Created by aghassaei on 6/30/15.
     */
    
    
    define(['jquery', 'underscore', 'menuParent', 'eSimPlist', 'text!eStaticMenuTemplate', 'eSim', 'latticeESim'],
        function($, _, MenuParentView, eSimPlist, template, eSim, lattice){
    
        return MenuParentView.extend({
    
            events: {
                "click #calcCapacitance":                               "_calcCapacitance",
                "click #calcInductance":                                "_calcInductance",
                "click #calcEField":                                    "_calcEField"
            },
    
            _initialize: function(){
                this.listenTo(eSim, "change", this.render);
            },
    
            getPropertyOwner: function($target){
                if ($target.hasClass("eSim")) return eSim;
                if ($target.hasClass("eSimGroup")) return eSim.get("conductorGroups")[$target.data("id")];
                return null;
            },
    
            _calcEField: function(e){
                e.preventDefault();
                console.log("here");
                lattice.calcEField(eSim.get("conductorGroups"), eSim.get("simulationRes"), eSim.get("numRelaxationSteps"));
            },
    
            _calcCapacitance: function(e){
                e.preventDefault();
                if (this._checkGroupData("voltage") && !isNaN(parseFloat(eSim.get("dielectricConst")))) lattice.calcCapacitance();
                else console.warn("voltage data missing");
            },
    
            _calcInductance: function(e){
                e.preventDefault();
                if (this._checkGroupData("current")) lattice.calcInductance();
                else console.warn("current data missing");
            },
    
            _checkGroupData: function(property){
                var missingGroups = _.filter(eSim.get("conductorGroups"), function(group){
                    return group[property] === null;
                });
                return missingGroups.length == 0;
            },
    
            _makeTemplateJSON: function(){
                return _.extend(this.model.toJSON(), eSim.toJSON(), eSimPlist);
            },
    
            template: _.template(template)
        });
    });