You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
86 lines
2.6 KiB
86 lines
2.6 KiB
define(["dojo/_base/declare", |
|
"dojo/_base/lang", |
|
"./CalendarBase", |
|
"./ColumnView", |
|
"./ColumnViewSecondarySheet", |
|
"./VerticalRenderer", |
|
"./DecorationRenderer", |
|
"./MatrixView", |
|
"./HorizontalRenderer", |
|
"./LabelRenderer", |
|
"./ExpandRenderer", |
|
"./Keyboard", |
|
"./Mouse", |
|
"dojo/text!./templates/Calendar.html", |
|
"dijit/form/Button", "dijit/Toolbar", "dijit/ToolbarSeparator"], |
|
|
|
function( |
|
declare, |
|
lang, |
|
CalendarBase, |
|
ColumnView, |
|
ColumnViewSecondarySheet, |
|
VerticalRenderer, |
|
DecorationRenderer, |
|
MatrixView, |
|
HorizontalRenderer, |
|
LabelRenderer, |
|
ExpandRenderer, |
|
Keyboard, |
|
Mouse, |
|
template){ |
|
|
|
return declare("dojox.calendar.Calendar", CalendarBase, { |
|
|
|
templateString: template, |
|
|
|
// summary: |
|
// This class defines a calendar widget that display events in time. |
|
|
|
_createDefaultViews: function(){ |
|
// summary: |
|
// Creates the default views: |
|
// - A dojox.calendar.ColumnView instance used to display one day to seven days time intervals, |
|
// - A dojox.calendar.MatrixView instance used to display the other time intervals. |
|
// The views are mixed with Mouse and Keyboard to allow editing items using mouse and keyboard. |
|
|
|
var secondarySheetClass = declare([ColumnViewSecondarySheet, Keyboard, Mouse]); |
|
|
|
var colView = declare([ColumnView, Keyboard, Mouse])(lang.mixin({ |
|
secondarySheetClass: secondarySheetClass, |
|
verticalRenderer: VerticalRenderer, |
|
horizontalRenderer: HorizontalRenderer, |
|
expandRenderer: ExpandRenderer, |
|
horizontalDecorationRenderer: DecorationRenderer, |
|
verticalDecorationRenderer: DecorationRenderer |
|
}, this.columnViewProps)); |
|
|
|
var matrixView = declare([MatrixView, Keyboard, Mouse])(lang.mixin({ |
|
horizontalRenderer: HorizontalRenderer, |
|
horizontalDecorationRenderer: DecorationRenderer, |
|
labelRenderer: LabelRenderer, |
|
expandRenderer: ExpandRenderer |
|
}, this.matrixViewProps)); |
|
|
|
this.columnView = colView; |
|
this.matrixView = matrixView; |
|
|
|
var views = [colView, matrixView]; |
|
|
|
this.installDefaultViewsActions(views); |
|
|
|
return views; |
|
}, |
|
|
|
installDefaultViewsActions: function(views){ |
|
// summary: |
|
// Installs the default actions on newly created default views. |
|
// By default this action is registering: |
|
// - the matrixViewRowHeaderClick method on the rowHeaderClick event of the matrix view. |
|
// - the columnViewColumnHeaderClick method on the columnHeaderClick event of the column view. |
|
this.matrixView.on("rowHeaderClick", lang.hitch(this, this.matrixViewRowHeaderClick)); |
|
this.columnView.on("columnHeaderClick", lang.hitch(this, this.columnViewColumnHeaderClick)); |
|
} |
|
|
|
}); |
|
});
|
|
|