source: Dev/trunk/src/client/dojox/calendar/ExpandRenderer.js @ 532

Last change on this file since 532 was 483, checked in by hendrikvanantwerpen, 11 years ago

Added Dojo 1.9.3 release.

File size: 2.9 KB
Line 
1define([
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         
13function(
14declare,
15lang,
16event,
17win,
18on,
19domClass,
20domStyle,
21_WidgetBase,
22_TemplatedMixin,
23template){
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});
Note: See TracBrowser for help on using the repository browser.