1+ define ( [
2+ 'crafty' ,
3+ 'app/collection/action/messages' ,
4+ 'app/model/action/message' ,
5+ 'app/view/widget/action/messages'
6+ ] , function ( Crafty , ActionMessagesCollection , ActionMessageModel , ActionMessagesView ) {
7+ var component = Crafty . c ( 'Announcer' , {
8+ ActionMessageModel : ActionMessageModel ,
9+ ActionMessagesCollection : null ,
10+ ActionMessagesView : null ,
11+ ActionMessagesEntity : null , // The Crafty DOM Entity holding messages
12+ init : function ( ) {
13+ // Initialize the collection
14+ this . ActionMessagesCollection = new ActionMessagesCollection ( ) ;
15+ // Initialize the View
16+ this . ActionMessagesView = new ActionMessagesView ( {
17+ ActionMessagesCollection : this . ActionMessagesCollection
18+ } ) ;
19+
20+ this . ActionMessagesEntity = Crafty . e ( '2D, DOM' )
21+ . attr ( {
22+ z : 1000 // Place on top
23+ } ) ;
24+
25+ this . y += 20 ;
26+
27+ this . attach ( this . ActionMessagesEntity ) ;
28+
29+ $ ( '#' + this . ActionMessagesEntity . getDomId ( ) )
30+ . append ( this . ActionMessagesView . $el ) ;
31+ } ,
32+ announceAction : function ( text , type ) {
33+ type = type || 'positive' ; // Simple default
34+ this . ActionMessagesCollection . add ( {
35+ type : type ,
36+ text : text
37+ } ) ;
38+ }
39+ } ) ;
40+
41+ /**
42+ * The return value isn't all that useful here. Crafty.c keeps track of all
43+ * the components we defined so we never have to use the component variable.
44+ * We simply define this module as a dependency when we need to be sure that
45+ * the component has been added to Crafty.
46+ */
47+ return {
48+ component : component
49+ } ;
50+ } ) ;
0 commit comments