/** * The default implementation for a calendar model. All fields are * accessed via the getter/setter API to allow for custom model * implementations. * * ## Fields ## * * The following fields are provided: * * - title : {String} - Maps to {@link #getTitle} and {@link #setTitle}. * - description : {String} - Maps to {@link #getDescription} and {@link #setDescription}. * - color : {String} - Maps to {@link #getColor} and {@link #setColor}. * - hidden : {Boolean} - Maps to {@link #getHidden} and {@link #setHidden}. * - editable : {Boolean} - Maps to {@link #getEditable} and {@link #setEditable}. * - eventStore : {Object} - Allow per-instance configuration for the {@link #events} store. * This configuration is merged with the {@link #eventStoreDefaults}. */Ext.define('Ext.calendar.model.Calendar', { extend: 'Ext.data.Model', mixins: ['Ext.calendar.model.CalendarBase'], requires: [ 'Ext.data.field.String', 'Ext.data.field.Boolean' ], fields: [{ name: 'title', type: 'string' }, { name: 'description', type: 'string' }, { name: 'color', type: 'string' }, { name: 'assignedColor', type: 'string', persist: false }, { name: 'hidden', type: 'bool' }, { name: 'editable', type: 'bool', defaultValue: true }, { name: 'eventStore', type: 'auto', persist: false }], constructor: function(data, session) { this.callParent([data, session]); // Force base color to be assigned this.getBaseColor(); }, getAssignedColor: function() { return this.data.assignedColor; }, getColor: function() { return this.data.color; }, getDescription: function() { return this.data.description; }, getEditable: function() { return this.data.editable; }, getEventStoreConfig: function(cfg) { return Ext.merge(cfg, this.data.eventStore); }, getHidden: function() { return this.data.hidden; }, getTitle: function() { return this.data.title; }, setAssignedColor: function(color) { this.set('assignedColor', color); }, setColor: function(color) { this.set('color', color); }, setDescription: function(description) { this.set('description', description); }, setEditable: function(editable) { this.set('editable', editable); }, setHidden: function(hidden) { this.set('hidden', hidden); }, setTitle: function(title) { this.set('title', title); }});