--- /dev/null
+/*
+ * - LGPL
+ *
+ * based on jquery fullcalendar
+ *
+ */
+
+
+/**
+ * @class Roo.Calendar
+ * @extends Roo.Component
+ * Bootstrap Calendar class
+
+ * @constructor
+ * Create a new Container
+ * @param {Object} config The config object
+ */
+
+Roo.panel.Calendar = function(config){
+
+ Roo.log("cal panel ctr");
+
+ this.wrapper = Roo.DomHelper.append(document.body, // wrapper for IE7 strict & safari scroll issue
+ {tag: "div", cls: "x-layout-grid-wrapper x-layout-inactive-content"}, true);
+
+ //this.wrapper.dom.appendChild(grid.getGridEl().dom);
+
+ Roo.panel.Calendar.superclass.constructor.call(this, this.wrapper, config);
+
+ Roo.log(this.el);
+
+ if(this.toolbar){
+ this.toolbar.el.insertBefore(this.wrapper.dom.firstChild);
+ }
+ // xtype created footer. - not sure if will work as we normally have to render first..
+ if (this.footer && !this.footer.el && this.footer.xtype) {
+
+ //this.footer.container = this.grid.getView().getFooterPanel(true);
+ //this.footer.dataSource = this.grid.dataSource;
+ //this.footer = Roo.factory(this.footer, Roo);
+
+ }
+ this.view = new Roo.calendar.View(Roo.apply({
+ skipNavHeader : true,
+ skipMonthHeader : false
+
+ },config));
+
+
+ this.on('activate', function()
+ {
+ Roo.log('activate');
+
+ //console.log('render tree');
+ this.render();
+ },this);
+
+ this.addEvents({
+ /**
+ * @event select
+ * Fires when a date is selected
+ * @param {DatePicker} this
+ * @param {Date} date The selected date
+ */
+ 'select': true,
+ /**
+ * @event monthchange
+ * Fires when the displayed month changes
+ * @param {DatePicker} this
+ * @param {Date} date The selected month
+ */
+ 'monthchange': true,
+ /**
+ * @event evententer
+ * Fires when mouse over an event
+ * @param {Calendar} this
+ * @param {event} Event
+ */
+ 'evententer': true,
+ /**
+ * @event eventleave
+ * Fires when the mouse leaves an
+ * @param {Calendar} this
+ * @param {event}
+ */
+ 'eventleave': true,
+ /**
+ * @event eventclick
+ * Fires when the mouse click an
+ * @param {Calendar} this
+ * @param {event}
+ */
+ 'eventclick': true,
+ /**
+ * @event rendered
+ * Fires when the grid is rendered
+ * @param {Calendar} this
+
+ */
+ 'rendered': true
+
+
+ });
+ this.relayEvents(this.view, ["select","monthchange","evententer","eventleave","rendered"]);
+
+ //this.grid = grid;
+ //this.grid.getGridEl().replaceClass("x-layout-inactive-content", "x-layout-component-panel");
+};
+
+
+Roo.extend(Roo.panel.Calendar, Roo.panel.Content, {
+
+
+ render : function()
+ {
+ var ct = this.el.appendChild(document.createElement("div"));
+ this.onRender(this.el, false)
+ },
+
+ onRender : function(ct, position)
+ {
+ if (this.rendered) {
+ return;
+ }
+ this.rendered = true;
+
+ Roo.log("render calendar");
+
+
+ //Roo.bootstrap.Component.superclass.onRender.call(this, ct, position);
+
+
+ var cfg = Roo.apply({}, this.view.getAutoCreate());
+ cfg.id = Roo.id();
+
+ // fill in the extra attributes
+ if (this.xattr && typeof(this.xattr) =='object') {
+ for (var i in this.xattr) {
+ cfg[i] = this.xattr[i];
+ }
+ }
+
+ if(this.dataId){
+ cfg.dataId = this.dataId;
+ }
+
+ if (this.cls) {
+ cfg.cls = (typeof(cfg.cls) == 'undefined') ? this.cls : cfg.cls + ' ' + this.cls;
+ }
+
+ if (this.style) { // fixme needs to support more complex style data.
+ cfg.style = this.style;
+ }
+
+ if(this.name){
+ cfg.name = this.name;
+ }
+
+ this.view.el = ct.createChild(cfg, position);
+
+ //if(this.tabIndex !== undefined){
+ // this.el.dom.setAttribute('tabIndex', this.tabIndex);
+ //}
+
+
+ this.view.initEvents();
+ this.fireEvent('rendered');
+ }
+
+
+
+
+});
+
+