// ========================================================================== // Project: SproutCore
- JavaScript Application Framework // Copyright: ©2006-2011 Strobe Inc. and contributors. // ©2008-2011 Apple Inc. All rights reserved. // License: Licensed under MIT license (see license.js) // ==========================================================================
sc_require('views/template');
/** @class */
SC
.Checkbox = SC
.TemplateView.extend(
/** @scope SC.Checkbox.prototype */ { title: null, value: null, displayTitle: function() { var title = this.get('title'); return title ? SC.String.loc(title) : null; }.property('title').cacheable(), classNames: ['sc-checkbox'], template: SC.Handlebars.compile('<label><input type="checkbox">{{displayTitle}}</label>'), didCreateLayer: function() { var self = this; this.$('input').bind('change', function() { self.domValueDidChange(this); }); }, domValueDidChange: function(node) { this.set('value', $(node).prop('checked')); }, value: function(key, value) { if (value !== undefined) { this.$('input').prop('checked', value); } else { value = this.$('input').prop('checked'); } return value; }.property()
});
SC
.CheckboxSupport = /** @scope SC
.CheckboxSupport */{
didCreateLayer: function() { this.$('input').change(jQuery.proxy(function() { SC.RunLoop.begin(); this.notifyPropertyChange('value'); SC.RunLoop.end(); }, this)); }, value: function(key, value) { if (value !== undefined) { this.$('input').prop('checked', value); } else { value = this.$('input').prop('checked'); } return value; }.property().idempotent()
};