/** * A base panel class for panels with a header a single view. * * @private */Ext.define('Ext.calendar.panel.AbstractBase', { extend: 'Ext.panel.Panel', requires: [ 'Ext.layout.container.Fit' ], layout: 'fit', // Appliers/Updaters updateDayHeader: function(dayHeader) { if (dayHeader) { this.addItem(dayHeader, 'dockedItems', 'addDocked'); } }, updateView: function(view) { this.addItem(view, 'items', 'add'); }, // Overrides afterComponentLayout: function(width, height, oldWidth, oldHeight) { this.callParent([width, height, oldWidth, oldHeight]); this.syncHeaders(); }, privates: { addItem: function(item, existing, addMethod) { var me = this, items = me[existing]; if (items) { if (items.isMixedCollection) { me[addMethod](item); } else { if (!Ext.isArray(items)) { items = [items]; } me[existing] = items.concat(item); } } else { me[existing] = item; } }, syncHeaders: function() { var me = this, header; if (me.syncHeaderSize) { header = me.getDayHeader(); if (header && header.setOverflowWidth) { header.setOverflowWidth(me.getView().scrollable.getScrollbarSize().width); } } } }});