diff options
author | Pushkar Joshi | 2012-04-19 14:12:45 -0700 |
---|---|---|
committer | Pushkar Joshi | 2012-04-19 14:12:45 -0700 |
commit | 9f32d7e5454db3189209fc68a286a7fdb0c31fe8 (patch) | |
tree | a51c2bf67839a25158c30752b44fdea0eac28b9d /node_modules/montage/core/event | |
parent | dc1e8dde18c40cf740bd2fe09165784e0d415fab (diff) | |
parent | 6d33345a9e609e36539d2efa25569f5eeb04a2af (diff) | |
download | ninja-9f32d7e5454db3189209fc68a286a7fdb0c31fe8.tar.gz |
Merge branch 'master' into pentool
Conflicts:
js/helper-classes/3D/view-utils.js
Diffstat (limited to 'node_modules/montage/core/event')
-rwxr-xr-x | node_modules/montage/core/event/action-event-listener.js | 4 | ||||
-rwxr-xr-x | node_modules/montage/core/event/binding.js | 48 | ||||
-rwxr-xr-x | node_modules/montage/core/event/event-manager.js | 14 |
3 files changed, 47 insertions, 19 deletions
diff --git a/node_modules/montage/core/event/action-event-listener.js b/node_modules/montage/core/event/action-event-listener.js index bbe5baad..4fc75f64 100755 --- a/node_modules/montage/core/event/action-event-listener.js +++ b/node_modules/montage/core/event/action-event-listener.js | |||
@@ -66,9 +66,9 @@ var ActionEventListener = exports.ActionEventListener = Montage.create(Montage, | |||
66 | /** | 66 | /** |
67 | @private | 67 | @private |
68 | */ | 68 | */ |
69 | serializeSelf: { | 69 | serializeProperties: { |
70 | value: function(serializer) { | 70 | value: function(serializer) { |
71 | serializer.setReference("handler", this.handler); | 71 | serializer.set("handler", this.handler, "reference"); |
72 | serializer.set("action", this.action); | 72 | serializer.set("action", this.action); |
73 | } | 73 | } |
74 | } | 74 | } |
diff --git a/node_modules/montage/core/event/binding.js b/node_modules/montage/core/event/binding.js index 21b40609..709a5d85 100755 --- a/node_modules/montage/core/event/binding.js +++ b/node_modules/montage/core/event/binding.js | |||
@@ -18,6 +18,7 @@ var Montage = require("montage").Montage, | |||
18 | ChangeTypes = require("core/event/mutable-event").ChangeTypes, | 18 | ChangeTypes = require("core/event/mutable-event").ChangeTypes, |
19 | Serializer = require("core/serializer").Serializer, | 19 | Serializer = require("core/serializer").Serializer, |
20 | Deserializer = require("core/deserializer").Deserializer, | 20 | Deserializer = require("core/deserializer").Deserializer, |
21 | logger = require("core/logger").logger("binding"); | ||
21 | defaultEventManager = require("core/event/event-manager").defaultEventManager, | 22 | defaultEventManager = require("core/event/event-manager").defaultEventManager, |
22 | AT_TARGET = 2, | 23 | AT_TARGET = 2, |
23 | UNDERSCORE = "_"; | 24 | UNDERSCORE = "_"; |
@@ -1184,11 +1185,14 @@ var BindingDescriptor = exports.BindingDescriptor = Montage.create(Montage, /** | |||
1184 | }, | 1185 | }, |
1185 | 1186 | ||
1186 | serializeSelf: {value: function(serializer) { | 1187 | serializeSelf: {value: function(serializer) { |
1187 | serializer.setReference("boundObject", this.boundObject); | 1188 | var serialization = {}; |
1188 | serializer.set("boundObjectPropertyPath", this.boundObjectPropertyPath); | 1189 | |
1189 | serializer.set("oneway", this.oneway); | 1190 | serializer.addObjectReference(this.boundObject); |
1190 | serializer.set("deferred", this.deferred); | 1191 | serialization[this.oneway ? "<-" : "<<->"] = "@" + serializer.getObjectLabel(this.boundObject) + "." + this.boundObjectPropertyPath; |
1191 | serializer.set("converter", this.converter); | 1192 | serialization.deferred = this.deferred; |
1193 | serialization.converter = this.converter; | ||
1194 | |||
1195 | return serialization; | ||
1192 | }} | 1196 | }} |
1193 | }); | 1197 | }); |
1194 | 1198 | ||
@@ -1200,10 +1204,36 @@ Serializer.defineSerializationUnit("bindings", function(object) { | |||
1200 | } | 1204 | } |
1201 | }); | 1205 | }); |
1202 | 1206 | ||
1203 | Deserializer.defineDeserializationUnit("bindings", function(object, bindings) { | 1207 | Deserializer.defineDeserializationUnit("bindings", function(object, bindings, deserializer) { |
1204 | var sourcePath; | 1208 | for (var sourcePath in bindings) { |
1205 | for (sourcePath in bindings) { | 1209 | var binding = bindings[sourcePath], |
1206 | Object.defineBinding(object, sourcePath, bindings[sourcePath]); | 1210 | dotIndex; |
1211 | |||
1212 | if (!("boundObject" in binding)) { | ||
1213 | var targetPath = binding["<-"] || binding["->"] || binding["<->>"] || binding["<<->"]; | ||
1214 | |||
1215 | if (targetPath[0] !== "@") { | ||
1216 | logger.error("Invalid binding syntax '" + targetPath + "', should be in the form of '@label.path'."); | ||
1217 | throw "Invalid binding syntax '" + targetPath + "'"; | ||
1218 | } | ||
1219 | if ("->" in binding || "<->>" in binding) { | ||
1220 | binding.boundObject = object; | ||
1221 | binding.boundObjectPropertyPath = sourcePath; | ||
1222 | |||
1223 | dotIndex = targetPath.indexOf("."); | ||
1224 | object = deserializer.getObjectByLabel(targetPath.slice(1, dotIndex)); | ||
1225 | sourcePath = targetPath.slice(dotIndex+1); | ||
1226 | } else { | ||
1227 | dotIndex = targetPath.indexOf("."); | ||
1228 | binding.boundObject = deserializer.getObjectByLabel(targetPath.slice(1, dotIndex)); | ||
1229 | binding.boundObjectPropertyPath = targetPath.slice(dotIndex+1); | ||
1230 | } | ||
1231 | |||
1232 | if ("<-" in binding || "->" in binding) { | ||
1233 | binding.oneway = true; | ||
1234 | } | ||
1235 | } | ||
1236 | Object.defineBinding(object, sourcePath, binding); | ||
1207 | } | 1237 | } |
1208 | }); | 1238 | }); |
1209 | 1239 | ||
diff --git a/node_modules/montage/core/event/event-manager.js b/node_modules/montage/core/event/event-manager.js index bef8a67c..75272f85 100755 --- a/node_modules/montage/core/event/event-manager.js +++ b/node_modules/montage/core/event/event-manager.js | |||
@@ -103,13 +103,12 @@ var EventListenerDescriptor = Montage.create(Montage, { | |||
103 | } | 103 | } |
104 | }); | 104 | }); |
105 | 105 | ||
106 | Serializer.defineSerializationUnit("listeners", function(object) { | 106 | Serializer.defineSerializationUnit("listeners", function(object, serializer) { |
107 | var eventManager = defaultEventManager, | 107 | var eventManager = defaultEventManager, |
108 | uuid = object.uuid, | 108 | uuid = object.uuid, |
109 | eventListenerDescriptors = [], | 109 | eventListenerDescriptors = [], |
110 | descriptors, | 110 | descriptors, |
111 | descriptor, | 111 | descriptor, |
112 | listenerDescriptor, | ||
113 | listener; | 112 | listener; |
114 | 113 | ||
115 | for (var type in eventManager.registeredEventListeners) { | 114 | for (var type in eventManager.registeredEventListeners) { |
@@ -119,12 +118,11 @@ Serializer.defineSerializationUnit("listeners", function(object) { | |||
119 | for (var listenerUuid in descriptor.listeners) { | 118 | for (var listenerUuid in descriptor.listeners) { |
120 | listener = descriptor.listeners[listenerUuid]; | 119 | listener = descriptor.listeners[listenerUuid]; |
121 | 120 | ||
122 | eventListenerDescriptor = EventListenerDescriptor.create(); | 121 | eventListenerDescriptors.push({ |
123 | eventListenerDescriptor.type = type; | 122 | type: type, |
124 | eventListenerDescriptor.listener = listener.listener; | 123 | listener: serializer.addObjectReference(listener.listener), |
125 | eventListenerDescriptor.capture = listener.capture; | 124 | capture: listener.capture |
126 | 125 | }); | |
127 | eventListenerDescriptors.push(eventListenerDescriptor); | ||
128 | } | 126 | } |
129 | } | 127 | } |
130 | } | 128 | } |