1 | define([ |
---|
2 | "dojo/_base/declare", |
---|
3 | "dojo/_base/lang", |
---|
4 | "dojo/_base/event", |
---|
5 | "dojo/_base/window", |
---|
6 | "dojo/on", |
---|
7 | "dojo/dom-class", |
---|
8 | "dojo/dom-style", |
---|
9 | "dijit/_WidgetBase", |
---|
10 | "dijit/_TemplatedMixin", |
---|
11 | "dojo/text!./templates/ExpandRenderer.html"], |
---|
12 | |
---|
13 | function( |
---|
14 | declare, |
---|
15 | lang, |
---|
16 | event, |
---|
17 | win, |
---|
18 | on, |
---|
19 | domClass, |
---|
20 | domStyle, |
---|
21 | _WidgetBase, |
---|
22 | _TemplatedMixin, |
---|
23 | template){ |
---|
24 | |
---|
25 | return declare("dojox.calendar.ExpandRenderer", [_WidgetBase, _TemplatedMixin], { |
---|
26 | |
---|
27 | // summary: |
---|
28 | // The default renderer display in MatrixView cells where some item renderers cannot be displayed because of size constraints. |
---|
29 | |
---|
30 | templateString: template, |
---|
31 | |
---|
32 | baseClass: "dojoxCalendarExpand", |
---|
33 | |
---|
34 | // owner: dojox/calendar/_ViewBase |
---|
35 | // The view that contains this renderer. |
---|
36 | owner: null, |
---|
37 | |
---|
38 | // focused: Boolean |
---|
39 | // Indicates that the renderer is focused. |
---|
40 | focused: false, |
---|
41 | |
---|
42 | // up: Boolean |
---|
43 | // Indicates that the mouse cursor is over renderer. |
---|
44 | up: false, |
---|
45 | |
---|
46 | // down: Boolean |
---|
47 | // Indicates that the renderer is pressed. |
---|
48 | down: false, |
---|
49 | |
---|
50 | // date: Date |
---|
51 | // The date displayed by the cell where this renderer is used. |
---|
52 | date: null, |
---|
53 | |
---|
54 | // items: Object[] |
---|
55 | // List of items that are not displayed in the cell because of the size constraints. |
---|
56 | items: null, |
---|
57 | |
---|
58 | // rowIndex: Integer |
---|
59 | // Row index where this renderer is used. |
---|
60 | rowIndex: -1, |
---|
61 | |
---|
62 | // columnIndex: Integer |
---|
63 | // Column index where this renderer is used. |
---|
64 | columnIndex: -1, |
---|
65 | |
---|
66 | _setExpandedAttr: function(value){ |
---|
67 | domStyle.set(this.expand, "display", value ? "none" : "inline-block"); |
---|
68 | domStyle.set(this.collapse, "display", value ? "inline-block" : "none"); |
---|
69 | this._set("expanded", value); |
---|
70 | }, |
---|
71 | |
---|
72 | _setDownAttr: function(value){ |
---|
73 | this._setState("down", value, "Down"); |
---|
74 | }, |
---|
75 | |
---|
76 | _setUpAttr: function(value){ |
---|
77 | this._setState("up", value, "Up"); |
---|
78 | }, |
---|
79 | |
---|
80 | _setFocusedAttr: function(value){ |
---|
81 | this._setState("focused", value, "Focused"); |
---|
82 | }, |
---|
83 | |
---|
84 | _setState: function(prop, value, cssClass){ |
---|
85 | if (this[prop] != value){ |
---|
86 | var tn = this.stateNode || this.domNode; |
---|
87 | domClass[value ? "add" : "remove"](tn, cssClass); |
---|
88 | this._set(prop, value); |
---|
89 | } |
---|
90 | }, |
---|
91 | |
---|
92 | _onClick: function(e){ |
---|
93 | // tags: |
---|
94 | // private |
---|
95 | |
---|
96 | if(this.owner && this.owner.expandRendererClickHandler){ |
---|
97 | this.owner.expandRendererClickHandler(e, this); |
---|
98 | } |
---|
99 | }, |
---|
100 | |
---|
101 | _onMouseDown: function(e){ |
---|
102 | // tags: |
---|
103 | // private |
---|
104 | |
---|
105 | event.stop(e); |
---|
106 | this.set("down", true); |
---|
107 | }, |
---|
108 | |
---|
109 | _onMouseUp: function(e){ |
---|
110 | // tags: |
---|
111 | // private |
---|
112 | |
---|
113 | this.set("down", false); |
---|
114 | }, |
---|
115 | |
---|
116 | _onMouseOver: function(e){ |
---|
117 | // tags: |
---|
118 | // private |
---|
119 | |
---|
120 | if(!this.up){ |
---|
121 | var buttonDown = e.button == 1; |
---|
122 | this.set("up", !buttonDown); |
---|
123 | this.set("down", buttonDown); |
---|
124 | } |
---|
125 | }, |
---|
126 | |
---|
127 | _onMouseOut: function(e){ |
---|
128 | // tags: |
---|
129 | // private |
---|
130 | |
---|
131 | var node = e.relatedTarget; |
---|
132 | while(node != e.currentTarget && node != win.doc.body && node != null){ |
---|
133 | node = node.parentNode; |
---|
134 | } |
---|
135 | if(node == e.currentTarget){ |
---|
136 | return; |
---|
137 | } |
---|
138 | this.set("up", false); |
---|
139 | this.set("down", false); |
---|
140 | } |
---|
141 | |
---|
142 | }); |
---|
143 | |
---|
144 | }); |
---|