diff options
author | Eric Guzman | 2012-05-25 16:37:24 -0700 |
---|---|---|
committer | Eric Guzman | 2012-05-25 16:37:24 -0700 |
commit | 1f7c17d688c3340b31d2e1c2b7205b10bd806968 (patch) | |
tree | c37508ed332fea9121948c887e7f844f327b2ff3 /js/controllers | |
parent | 1be5495b77c1dd426be3a6be05555254856de6ba (diff) | |
download | ninja-1f7c17d688c3340b31d2e1c2b7205b10bd806968.tar.gz |
Objects Controller - Now keeps track of document's object instances, including added components
Diffstat (limited to 'js/controllers')
-rw-r--r-- | js/controllers/objects-controller.js | 83 |
1 files changed, 58 insertions, 25 deletions
diff --git a/js/controllers/objects-controller.js b/js/controllers/objects-controller.js index 543aa96f..5bab9eab 100644 --- a/js/controllers/objects-controller.js +++ b/js/controllers/objects-controller.js | |||
@@ -8,46 +8,79 @@ var Montage = require("montage/core/core").Montage, | |||
8 | Component = require("montage/ui/component").Component; | 8 | Component = require("montage/ui/component").Component; |
9 | 9 | ||
10 | var objectsController = exports.ObjectsController = Montage.create(Component, { | 10 | var objectsController = exports.ObjectsController = Montage.create(Component, { |
11 | objects : { | ||
12 | value: [] | ||
13 | }, | ||
14 | |||
15 | handleAppLoaded : { | ||
16 | value: function() { | ||
17 | ///// Bind app's activeDocument property to | ||
18 | ///// objects controller's _activeDocument property | ||
19 | } | ||
20 | }, | ||
21 | |||
22 | deserializedFromTemplate : { | ||
23 | value: function() { | ||
24 | this.eventManager.addEventListener( "appLoaded", this, false); | ||
25 | }, | ||
26 | enumerable : false | ||
27 | }, | ||
28 | 11 | ||
29 | _activeDocument : { | 12 | _activeDocument : { |
30 | value : null, | 13 | value : null, |
31 | enumerable : false | 14 | enumerable : false |
32 | }, | 15 | }, |
33 | |||
34 | activeDocument : { | 16 | activeDocument : { |
35 | get : function() { | 17 | get : function() { |
36 | return this._activeDocument; | 18 | return this._activeDocument; |
37 | }, | 19 | }, |
38 | set : function(document) { | 20 | set : function(doc) { |
39 | ///// If the document is null set default stylesheets to null | 21 | if(!doc) { return false; } |
40 | if(!document) { return false; } | ||
41 | 22 | ||
23 | // TODO: remove setTimeout when timing of montage initialization is done | ||
42 | setTimeout(function() { | 24 | setTimeout(function() { |
43 | this.objects = document._document.application._template._deserializer.getObjectsFromLastDeserialization(); | 25 | this.bindToModelObjects(); |
44 | }.bind(this), 1000); | 26 | }.bind(this), 1000); |
45 | 27 | ||
46 | 28 | this._activeDocument = doc; | |
47 | ///// setting document via binding | ||
48 | this._activeDocument = document; | ||
49 | }, | 29 | }, |
50 | enumerable : false | 30 | enumerable : false |
31 | }, | ||
32 | |||
33 | objects : { | ||
34 | value: [] | ||
35 | }, | ||
36 | |||
37 | _isBoundToModelObjects : { | ||
38 | value: null | ||
39 | }, | ||
40 | bindToModelObjects : { | ||
41 | value: function() { | ||
42 | //// Remove any previous bindings if previously bound | ||
43 | if(!this._isBoundToModelObjects) { | ||
44 | Object.deleteBinding(this, 'objects'); | ||
45 | this._isBoundToModelObjects = true; | ||
46 | } | ||
47 | |||
48 | Object.defineBinding(this, 'objects', { | ||
49 | boundObject: this.activeDocument.model, | ||
50 | boundObjectPropertyPath: 'objects', | ||
51 | oneway: false | ||
52 | }); | ||
53 | } | ||
54 | }, | ||
55 | |||
56 | /* -------------------------- | ||
57 | Binding Methods | ||
58 | ----------------------------- */ | ||
59 | |||
60 | addBinding : { | ||
61 | value: function(bindingDescriptor) { | ||
62 | if(!bindingDescriptor.sourceObject || !bindingDescriptor.sourceObjectPropertyPath || !bindingDescriptor) { return; } | ||
63 | |||
64 | Object.defineBinding(bindingDescriptor.sourceObject, bindingDescriptor.sourceObjectPropertyPath, bindingDescriptor); | ||
65 | } | ||
66 | }, | ||
67 | |||
68 | removeBinding : { | ||
69 | value: function(bindingDescriptor) { | ||
70 | if(!bindingDescriptor) { return; } | ||
71 | |||
72 | Object.deleteBinding(bindingDescriptor.sourceObject, bindingDescriptor.sourceObjectPropertyBindingPath); | ||
73 | } | ||
74 | }, | ||
75 | |||
76 | editBindingPropertyPath : { | ||
77 | value: function(bindingDescriptor, newPropertyPath) { | ||
78 | this.removeBinding(bindingDescriptor); | ||
79 | |||
80 | //this.addBinding() | ||
81 | |||
82 | |||
83 | } | ||
51 | } | 84 | } |
52 | 85 | ||
53 | }); \ No newline at end of file | 86 | }); \ No newline at end of file |