UNPKG

five-bells-visualization

Version:
91 lines (66 loc) 2.2 kB
/** * dat-gui JavaScript Controller Library * http://code.google.com/p/dat-gui * * Copyright 2011 Data Arts Team, Google Creative Lab * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 */ define([ 'dat/controllers/Controller', 'dat/dom/dom', 'dat/utils/common' ], function(Controller, dom, common) { /** * @class Provides a checkbox input to alter the boolean property of an object. * @extends dat.controllers.Controller * * @param {Object} object The object to be manipulated * @param {string} property The name of the property to be manipulated * * @member dat.controllers */ var BooleanController = function(object, property) { BooleanController.superclass.call(this, object, property); var _this = this; this.__prev = this.getValue(); this.__checkbox = document.createElement('input'); this.__checkbox.setAttribute('type', 'checkbox'); dom.bind(this.__checkbox, 'change', onChange, false); this.domElement.appendChild(this.__checkbox); // Match original value this.updateDisplay(); function onChange() { _this.setValue(!_this.__prev); } }; BooleanController.superclass = Controller; common.extend( BooleanController.prototype, Controller.prototype, { setValue: function(v) { var toReturn = BooleanController.superclass.prototype.setValue.call(this, v); if (this.__onFinishChange) { this.__onFinishChange.call(this, this.getValue()); } this.__prev = this.getValue(); return toReturn; }, updateDisplay: function() { if (this.getValue() === true) { this.__checkbox.setAttribute('checked', 'checked'); this.__checkbox.checked = true; } else { this.__checkbox.checked = false; } return BooleanController.superclass.prototype.updateDisplay.call(this); } } ); return BooleanController; });