1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
/* <copyright>
This file contains proprietary software owned by Motorola Mobility, Inc.<br/>
No rights, expressed or implied, whatsoever to this software are provided by Motorola Mobility, Inc. hereunder.<br/>
(c) Copyright 2011 Motorola Mobility, Inc. All Rights Reserved.
</copyright> */
/**
@module montage/core/event/action-event-listener
@requires montage/core/core
*/
var Montage = require("montage").Montage;
/**
@class module:montage/core/event/action-event-listener.ActionEventListener
@extends module:montage/core/core.Montage
*/
var ActionEventListener = exports.ActionEventListener = Montage.create(Montage, /** @lends module:montage/core/event/action-event-listener.ActionEventListener# */ {
/**
The object to handle the event.
@type {Property}
@default {Event handler} null
*/
handler: {
value: null
},
/**
The action (function) to invoke on the handler object.
@type {Property}
@default {Event handler} null
*/
action: {
value: null
},
/**
Returns a new ActionEventListener instance with the specified handler and action.
@function
@param {Event} handler The event handler.
@param {Event} action The event handler action.
@returns itself
*/
initWithHandler_action_: {
value: function(handler, action) {
this.handler = handler;
this.action = action;
return this;
}
},
/**
@private
*/
handleEvent: {
value: function(event) {
if (typeof this.action === "function") {
// TODO call this in what context?
this.action(event);
} else {
this.handler[this.action](event);
}
}
},
/**
@private
*/
serializeSelf: {
value: function(serializer) {
serializer.setReference("handler", this.handler);
serializer.set("action", this.action);
}
}
});
|