From 7e94d5786df400b599df3233b3086bfe9eff2bde Mon Sep 17 00:00:00 2001
From: Eric Guzman
Date: Wed, 16 May 2012 22:58:24 -0700
Subject: Objects Panel - Add Objects controller and montage/application hack
to expose template
---
js/controllers/objects-controller.js | 59 ++++++++++++++++++++++++++++++++++++
1 file changed, 59 insertions(+)
create mode 100644 js/controllers/objects-controller.js
(limited to 'js/controllers')
diff --git a/js/controllers/objects-controller.js b/js/controllers/objects-controller.js
new file mode 100644
index 00000000..70a3974c
--- /dev/null
+++ b/js/controllers/objects-controller.js
@@ -0,0 +1,59 @@
+/*
+ This file contains proprietary software owned by Motorola Mobility, Inc.
+ No rights, expressed or implied, whatsoever to this software are provided by Motorola Mobility, Inc. hereunder.
+ (c) Copyright 2011 Motorola Mobility, Inc. All Rights Reserved.
+ */
+
+var Montage = require("montage/core/core").Montage,
+ Component = require("montage/ui/component").Component;
+
+var objectsController = exports.ObjectsController = Montage.create(Component, {
+ objects : {
+ value: []
+ },
+
+ handleAppLoaded : {
+ value: function() {
+ ///// Bind app's activeDocument property to
+ ///// objects controller's _activeDocument property
+
+ Object.defineBinding(this, "activeDocument", {
+ boundObject: this.application.ninja,
+ boundObjectPropertyPath: "currentDocument",
+ oneway: true
+ });
+ }
+ },
+
+ deserializedFromTemplate : {
+ value: function() {
+ this.eventManager.addEventListener( "appLoaded", this, false);
+ },
+ enumerable : false
+ },
+
+ _activeDocument : {
+ value : null,
+ enumerable : false
+ },
+
+ activeDocument : {
+ get : function() {
+ return this._activeDocument;
+ },
+ set : function(document) {
+ ///// If the document is null set default stylesheets to null
+ if(!document) { return false; }
+
+ setTimeout(function() {
+ this.objects = document._document.application._template._deserializer.getObjectsFromLastDeserialization();
+ }.bind(this), 1000);
+
+
+ ///// setting document via binding
+ this._activeDocument = document;
+ },
+ enumerable : false
+ }
+
+});
\ No newline at end of file
--
cgit v1.2.3
From 95bef3bbd77c6c3bd01b5222986f2dd35a7218b4 Mon Sep 17 00:00:00 2001
From: Armen Kesablyan
Date: Sat, 19 May 2012 14:48:35 -0700
Subject: Changes to binding view
Signed-off-by: Armen Kesablyan
---
js/controllers/objects-controller.js | 6 ------
1 file changed, 6 deletions(-)
(limited to 'js/controllers')
diff --git a/js/controllers/objects-controller.js b/js/controllers/objects-controller.js
index 70a3974c..543aa96f 100644
--- a/js/controllers/objects-controller.js
+++ b/js/controllers/objects-controller.js
@@ -16,12 +16,6 @@ var objectsController = exports.ObjectsController = Montage.create(Component, {
value: function() {
///// Bind app's activeDocument property to
///// objects controller's _activeDocument property
-
- Object.defineBinding(this, "activeDocument", {
- boundObject: this.application.ninja,
- boundObjectPropertyPath: "currentDocument",
- oneway: true
- });
}
},
--
cgit v1.2.3
From 1f7c17d688c3340b31d2e1c2b7205b10bd806968 Mon Sep 17 00:00:00 2001
From: Eric Guzman
Date: Fri, 25 May 2012 16:37:24 -0700
Subject: Objects Controller - Now keeps track of document's object instances,
including added components
---
js/controllers/objects-controller.js | 83 +++++++++++++++++++++++++-----------
1 file changed, 58 insertions(+), 25 deletions(-)
(limited to 'js/controllers')
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,
Component = require("montage/ui/component").Component;
var objectsController = exports.ObjectsController = Montage.create(Component, {
- objects : {
- value: []
- },
-
- handleAppLoaded : {
- value: function() {
- ///// Bind app's activeDocument property to
- ///// objects controller's _activeDocument property
- }
- },
-
- deserializedFromTemplate : {
- value: function() {
- this.eventManager.addEventListener( "appLoaded", this, false);
- },
- enumerable : false
- },
_activeDocument : {
value : null,
enumerable : false
},
-
activeDocument : {
get : function() {
return this._activeDocument;
},
- set : function(document) {
- ///// If the document is null set default stylesheets to null
- if(!document) { return false; }
+ set : function(doc) {
+ if(!doc) { return false; }
+ // TODO: remove setTimeout when timing of montage initialization is done
setTimeout(function() {
- this.objects = document._document.application._template._deserializer.getObjectsFromLastDeserialization();
+ this.bindToModelObjects();
}.bind(this), 1000);
-
- ///// setting document via binding
- this._activeDocument = document;
+ this._activeDocument = doc;
},
enumerable : false
+ },
+
+ objects : {
+ value: []
+ },
+
+ _isBoundToModelObjects : {
+ value: null
+ },
+ bindToModelObjects : {
+ value: function() {
+ //// Remove any previous bindings if previously bound
+ if(!this._isBoundToModelObjects) {
+ Object.deleteBinding(this, 'objects');
+ this._isBoundToModelObjects = true;
+ }
+
+ Object.defineBinding(this, 'objects', {
+ boundObject: this.activeDocument.model,
+ boundObjectPropertyPath: 'objects',
+ oneway: false
+ });
+ }
+ },
+
+ /* --------------------------
+ Binding Methods
+ ----------------------------- */
+
+ addBinding : {
+ value: function(bindingDescriptor) {
+ if(!bindingDescriptor.sourceObject || !bindingDescriptor.sourceObjectPropertyPath || !bindingDescriptor) { return; }
+
+ Object.defineBinding(bindingDescriptor.sourceObject, bindingDescriptor.sourceObjectPropertyPath, bindingDescriptor);
+ }
+ },
+
+ removeBinding : {
+ value: function(bindingDescriptor) {
+ if(!bindingDescriptor) { return; }
+
+ Object.deleteBinding(bindingDescriptor.sourceObject, bindingDescriptor.sourceObjectPropertyBindingPath);
+ }
+ },
+
+ editBindingPropertyPath : {
+ value: function(bindingDescriptor, newPropertyPath) {
+ this.removeBinding(bindingDescriptor);
+
+ //this.addBinding()
+
+
+ }
}
});
\ No newline at end of file
--
cgit v1.2.3
From e09efe3212e86ac794de3fc8ecfc6cdef7b15181 Mon Sep 17 00:00:00 2001
From: Eric Guzman
Date: Wed, 30 May 2012 15:02:23 -0700
Subject: Objects Controller - Add bindable controller properties, and bindings
getter
---
js/controllers/objects-controller.js | 75 +++++++++++++++++++++++++++++-------
1 file changed, 61 insertions(+), 14 deletions(-)
(limited to 'js/controllers')
diff --git a/js/controllers/objects-controller.js b/js/controllers/objects-controller.js
index 5bab9eab..cd0139a0 100644
--- a/js/controllers/objects-controller.js
+++ b/js/controllers/objects-controller.js
@@ -9,13 +9,13 @@ var Montage = require("montage/core/core").Montage,
var objectsController = exports.ObjectsController = Montage.create(Component, {
- _activeDocument : {
+ _currentDocument : {
value : null,
enumerable : false
},
- activeDocument : {
+ currentDocument : {
get : function() {
- return this._activeDocument;
+ return this._currentDocument;
},
set : function(doc) {
if(!doc) { return false; }
@@ -25,7 +25,7 @@ var objectsController = exports.ObjectsController = Montage.create(Component, {
this.bindToModelObjects();
}.bind(this), 1000);
- this._activeDocument = doc;
+ this._currentDocument = doc;
},
enumerable : false
},
@@ -46,7 +46,7 @@ var objectsController = exports.ObjectsController = Montage.create(Component, {
}
Object.defineBinding(this, 'objects', {
- boundObject: this.activeDocument.model,
+ boundObject: this.currentDocument.model,
boundObjectPropertyPath: 'objects',
oneway: false
});
@@ -58,28 +58,75 @@ var objectsController = exports.ObjectsController = Montage.create(Component, {
----------------------------- */
addBinding : {
- value: function(bindingDescriptor) {
- if(!bindingDescriptor.sourceObject || !bindingDescriptor.sourceObjectPropertyPath || !bindingDescriptor) { return; }
+ value: function(bindingArgs) {
+ if(!bindingArgs.sourceObject || !bindingArgs.sourceObjectPropertyPath || !bindingArgs) { return; }
- Object.defineBinding(bindingDescriptor.sourceObject, bindingDescriptor.sourceObjectPropertyPath, bindingDescriptor);
+ Object.defineBinding(bindingArgs.sourceObject, bindingArgs.sourceObjectPropertyPath, bindingArgs);
}
},
removeBinding : {
- value: function(bindingDescriptor) {
- if(!bindingDescriptor) { return; }
+ value: function(bindingArgs) {
+ if(!bindingArgs) { return; }
- Object.deleteBinding(bindingDescriptor.sourceObject, bindingDescriptor.sourceObjectPropertyBindingPath);
+ Object.deleteBinding(bindingArgs.sourceObject, bindingArgs.sourceObjectPropertyPath);
}
},
editBindingPropertyPath : {
- value: function(bindingDescriptor, newPropertyPath) {
- this.removeBinding(bindingDescriptor);
+ value: function(bindingArgs, newPropertyPath) {
+ this.removeBinding(bindingArgs);
- //this.addBinding()
+ bindingArgs.boundObjectPropertyPath = 'newPropertyPath';
+ this.addBinding(bindingArgs);
+ }
+ },
+
+ getObjectBindings : {
+ value: function(object) {
+ var descriptors = object._bindingDescriptors,
+ bindingsArray = [],
+ property, descriptor, bindingArgsObject;
+
+ for(property in descriptors) {
+ if(descriptors.hasOwnProperty(property)) {
+ descriptor = descriptors[property];
+
+ bindingArgsObject = {
+ sourceObject : object,
+ sourceObjectPropertyPath : property,
+ boundObject : descriptor.boundObject,
+ boundObjectPropertyPath : descriptor.boundObjectPropertyPath,
+ onweway : descriptor.oneway
+ };
+
+ bindingsArray.push(bindingArgsObject);
+ }
+ }
+
+ return bindingsArray;
+ }
+ },
+
+ /* ---- Bindable controller properties ---- */
+
+ currentObjectBindings : {
+ value: null
+ },
+ _currentObject : {
+ value: null
+ },
+ currentObject : {
+ get: function() {
+ return this._currentObject;
+ },
+ set: function(value) {
+ if(value === this._currentObject) { return; }
+
+ this.currentObjectBindings = this.getObjectBindings(value);
+ this._currentObject = value;
}
}
--
cgit v1.2.3
From 0f59ef2a4b78fbcee402255857e8355a67fa7e66 Mon Sep 17 00:00:00 2001
From: Eric Guzman
Date: Fri, 1 Jun 2012 12:53:24 -0700
Subject: Bindings Panel - Update binding panel components
---
js/controllers/objects-controller.js | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
(limited to 'js/controllers')
diff --git a/js/controllers/objects-controller.js b/js/controllers/objects-controller.js
index cd0139a0..a02c3045 100644
--- a/js/controllers/objects-controller.js
+++ b/js/controllers/objects-controller.js
@@ -109,6 +109,26 @@ var objectsController = exports.ObjectsController = Montage.create(Component, {
}
},
+ /* ---- Bindable Properties ---- */
+
+ getEnumerableProperties : {
+ value: function(object, excludeUnderscoreProperties) {
+ var properties = [];
+
+ for(var key in object) {
+ properties.push(key);
+ }
+
+ if(excludeUnderscoreProperties) {
+ properties = properties.filter(function(property) {
+ return property[0] !== '_';
+ }, this);
+ }
+
+ return properties.sort();
+ }
+ },
+
/* ---- Bindable controller properties ---- */
currentObjectBindings : {
--
cgit v1.2.3
From 9b238646d7c9d8ed1fde010cde5597f8787a8806 Mon Sep 17 00:00:00 2001
From: Eric Guzman
Date: Fri, 1 Jun 2012 19:04:38 -0700
Subject: Binding Panel - Item css and toggle button action handler
---
js/controllers/objects-controller.js | 28 +++++++++++++++-------------
1 file changed, 15 insertions(+), 13 deletions(-)
(limited to 'js/controllers')
diff --git a/js/controllers/objects-controller.js b/js/controllers/objects-controller.js
index a02c3045..59646083 100644
--- a/js/controllers/objects-controller.js
+++ b/js/controllers/objects-controller.js
@@ -89,19 +89,21 @@ var objectsController = exports.ObjectsController = Montage.create(Component, {
bindingsArray = [],
property, descriptor, bindingArgsObject;
- for(property in descriptors) {
- if(descriptors.hasOwnProperty(property)) {
- descriptor = descriptors[property];
-
- bindingArgsObject = {
- sourceObject : object,
- sourceObjectPropertyPath : property,
- boundObject : descriptor.boundObject,
- boundObjectPropertyPath : descriptor.boundObjectPropertyPath,
- onweway : descriptor.oneway
- };
-
- bindingsArray.push(bindingArgsObject);
+ if(descriptors) {
+ for(property in descriptors) {
+ if(descriptors.hasOwnProperty(property)) {
+ descriptor = descriptors[property];
+
+ bindingArgsObject = {
+ sourceObject : object,
+ sourceObjectPropertyPath : property,
+ boundObject : descriptor.boundObject,
+ boundObjectPropertyPath : descriptor.boundObjectPropertyPath,
+ oneway : (descriptor.oneway || descriptor.oneway === null) ? true : false
+ };
+
+ bindingsArray.push(bindingArgsObject);
+ }
}
}
--
cgit v1.2.3
From 62d3628e1a00d56a055bfe23a5b21bac1afdf2b8 Mon Sep 17 00:00:00 2001
From: Eric Guzman
Date: Fri, 1 Jun 2012 19:17:31 -0700
Subject: Objects Controller - Fix access to the oneway property
---
js/controllers/objects-controller.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
(limited to 'js/controllers')
diff --git a/js/controllers/objects-controller.js b/js/controllers/objects-controller.js
index 59646083..2c9f2d66 100644
--- a/js/controllers/objects-controller.js
+++ b/js/controllers/objects-controller.js
@@ -99,7 +99,7 @@ var objectsController = exports.ObjectsController = Montage.create(Component, {
sourceObjectPropertyPath : property,
boundObject : descriptor.boundObject,
boundObjectPropertyPath : descriptor.boundObjectPropertyPath,
- oneway : (descriptor.oneway || descriptor.oneway === null) ? true : false
+ oneway : descriptor.oneway
};
bindingsArray.push(bindingArgsObject);
--
cgit v1.2.3
From 9274b3959384d21809c992f6f2e7860eb1682e06 Mon Sep 17 00:00:00 2001
From: Eric Guzman
Date: Tue, 5 Jun 2012 12:08:32 -0700
Subject: Binding Panel - Add getPropertyList and fix null currentObject
---
js/controllers/objects-controller.js | 37 +++++++++++++++++++++++++++++++++---
1 file changed, 34 insertions(+), 3 deletions(-)
(limited to 'js/controllers')
diff --git a/js/controllers/objects-controller.js b/js/controllers/objects-controller.js
index 2c9f2d66..32f24d5c 100644
--- a/js/controllers/objects-controller.js
+++ b/js/controllers/objects-controller.js
@@ -113,12 +113,38 @@ var objectsController = exports.ObjectsController = Montage.create(Component, {
/* ---- Bindable Properties ---- */
- getEnumerableProperties : {
+ getPropertyList : {
value: function(object, excludeUnderscoreProperties) {
+ var object_i = object,
+ prototypes = [object_i];
+
+ ///// Collect prototypes
+ while(Object.getPrototypeOf(object_i)) {
+ object_i = Object.getPrototypeOf(object_i);
+ prototypes.push(object_i);
+ }
+
+ return prototypes.map(function(proto) {
+ var metadata = proto._montage_metadata,
+ objectName = (metadata) ? metadata.objectName : "Object";
+
+ return {
+ category : objectName,
+ properties : this.getPropertiesFromObject(proto)
+ };
+ }, this);
+
+ }
+ },
+
+ getPropertiesFromObject : {
+ value: function (object, excludeUnderscoreProperties) {
var properties = [];
for(var key in object) {
- properties.push(key);
+ if(object.hasOwnProperty(key)) {
+ properties.push(key);
+ }
}
if(excludeUnderscoreProperties) {
@@ -146,7 +172,12 @@ var objectsController = exports.ObjectsController = Montage.create(Component, {
set: function(value) {
if(value === this._currentObject) { return; }
- this.currentObjectBindings = this.getObjectBindings(value);
+ if(value) {
+ this.currentObjectBindings = this.getObjectBindings(value);
+ console.log("Property list", this.getPropertyList(value, true));
+ } else {
+ this.currentObjectBindings = [];
+ }
this._currentObject = value;
}
--
cgit v1.2.3
From 557473639c1854d2e545f542d5f8656a040d575c Mon Sep 17 00:00:00 2001
From: Armen Kesablyan
Date: Wed, 6 Jun 2012 14:42:12 -0700
Subject: Object Controller
Signed-off-by: Armen Kesablyan
---
js/controllers/objects-controller.js | 24 ++++++++++++++----------
1 file changed, 14 insertions(+), 10 deletions(-)
(limited to 'js/controllers')
diff --git a/js/controllers/objects-controller.js b/js/controllers/objects-controller.js
index 32f24d5c..6da53b0f 100644
--- a/js/controllers/objects-controller.js
+++ b/js/controllers/objects-controller.js
@@ -94,15 +94,15 @@ var objectsController = exports.ObjectsController = Montage.create(Component, {
if(descriptors.hasOwnProperty(property)) {
descriptor = descriptors[property];
- bindingArgsObject = {
- sourceObject : object,
- sourceObjectPropertyPath : property,
- boundObject : descriptor.boundObject,
- boundObjectPropertyPath : descriptor.boundObjectPropertyPath,
- oneway : descriptor.oneway
- };
-
- bindingsArray.push(bindingArgsObject);
+ bindingArgsObject = {
+ sourceObject : object,
+ sourceObjectPropertyPath : property,
+ boundObject : descriptor.boundObject,
+ boundObjectPropertyPath : descriptor.boundObjectPropertyPath,
+ oneway : descriptor.oneway
+ };
+
+ bindingsArray.push(bindingArgsObject);
}
}
}
@@ -125,6 +125,7 @@ var objectsController = exports.ObjectsController = Montage.create(Component, {
}
return prototypes.map(function(proto) {
+
var metadata = proto._montage_metadata,
objectName = (metadata) ? metadata.objectName : "Object";
@@ -142,8 +143,11 @@ var objectsController = exports.ObjectsController = Montage.create(Component, {
var properties = [];
for(var key in object) {
+ debugger;
if(object.hasOwnProperty(key)) {
- properties.push(key);
+ if(key.serializable) {
+ properties.push(key);
+ }
}
}
--
cgit v1.2.3
From 85847ff047850808ba2bcfb43a6aa83913376b5b Mon Sep 17 00:00:00 2001
From: Armen Kesablyan
Date: Thu, 7 Jun 2012 10:22:03 -0700
Subject: Changes to Binding View
Signed-off-by: Armen Kesablyan
---
js/controllers/objects-controller.js | 3 ---
1 file changed, 3 deletions(-)
(limited to 'js/controllers')
diff --git a/js/controllers/objects-controller.js b/js/controllers/objects-controller.js
index 6da53b0f..ee203336 100644
--- a/js/controllers/objects-controller.js
+++ b/js/controllers/objects-controller.js
@@ -143,11 +143,8 @@ var objectsController = exports.ObjectsController = Montage.create(Component, {
var properties = [];
for(var key in object) {
- debugger;
if(object.hasOwnProperty(key)) {
- if(key.serializable) {
properties.push(key);
- }
}
}
--
cgit v1.2.3
From 9fe73eaccdd7e3d82bb4cd5326f126ee683a2d25 Mon Sep 17 00:00:00 2001
From: Eric Guzman
Date: Sun, 10 Jun 2012 17:22:01 -0700
Subject: Binding Panel - Direction toggle changes are savable.
---
js/controllers/objects-controller.js | 12 +++++++++---
1 file changed, 9 insertions(+), 3 deletions(-)
(limited to 'js/controllers')
diff --git a/js/controllers/objects-controller.js b/js/controllers/objects-controller.js
index ee203336..651cf356 100644
--- a/js/controllers/objects-controller.js
+++ b/js/controllers/objects-controller.js
@@ -73,11 +73,17 @@ var objectsController = exports.ObjectsController = Montage.create(Component, {
}
},
- editBindingPropertyPath : {
- value: function(bindingArgs, newPropertyPath) {
+ editBinding : {
+ value: function(bindingArgs, newProperties) {
+ var property;
+
this.removeBinding(bindingArgs);
- bindingArgs.boundObjectPropertyPath = 'newPropertyPath';
+ if(newProperties) {
+ for(property in newProperties) {
+ bindingArgs[property] = newProperties[property];
+ }
+ }
this.addBinding(bindingArgs);
}
--
cgit v1.2.3
From 85c8a01d19d4c4931d5395a9e8ccc14fcfc48041 Mon Sep 17 00:00:00 2001
From: Eric Guzman
Date: Mon, 11 Jun 2012 07:15:40 -0700
Subject: Controller - Allow currentBindings to update by resetting
currentObject
---
js/controllers/objects-controller.js | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
(limited to 'js/controllers')
diff --git a/js/controllers/objects-controller.js b/js/controllers/objects-controller.js
index 651cf356..2ce10e82 100644
--- a/js/controllers/objects-controller.js
+++ b/js/controllers/objects-controller.js
@@ -69,6 +69,8 @@ var objectsController = exports.ObjectsController = Montage.create(Component, {
value: function(bindingArgs) {
if(!bindingArgs) { return; }
+
+
Object.deleteBinding(bindingArgs.sourceObject, bindingArgs.sourceObjectPropertyPath);
}
},
@@ -177,7 +179,7 @@ var objectsController = exports.ObjectsController = Montage.create(Component, {
return this._currentObject;
},
set: function(value) {
- if(value === this._currentObject) { return; }
+ //if(value === this._currentObject) { return; }
if(value) {
this.currentObjectBindings = this.getObjectBindings(value);
--
cgit v1.2.3
From a9a6d479e4f00134b32f7c3e657de3ce5cfb0c48 Mon Sep 17 00:00:00 2001
From: Eric Guzman
Date: Mon, 11 Jun 2012 10:27:49 -0700
Subject: Objects Panel - Add component icon and icons by type
---
js/controllers/objects-controller.js | 28 +++++++++++++++++-----------
1 file changed, 17 insertions(+), 11 deletions(-)
(limited to 'js/controllers')
diff --git a/js/controllers/objects-controller.js b/js/controllers/objects-controller.js
index 2ce10e82..93f78efc 100644
--- a/js/controllers/objects-controller.js
+++ b/js/controllers/objects-controller.js
@@ -119,20 +119,11 @@ var objectsController = exports.ObjectsController = Montage.create(Component, {
}
},
- /* ---- Bindable Properties ---- */
+ /* ---- Get Bindable Properties ---- */
getPropertyList : {
value: function(object, excludeUnderscoreProperties) {
- var object_i = object,
- prototypes = [object_i];
-
- ///// Collect prototypes
- while(Object.getPrototypeOf(object_i)) {
- object_i = Object.getPrototypeOf(object_i);
- prototypes.push(object_i);
- }
-
- return prototypes.map(function(proto) {
+ return this.getPrototypes(object).map(function(proto) {
var metadata = proto._montage_metadata,
objectName = (metadata) ? metadata.objectName : "Object";
@@ -166,6 +157,21 @@ var objectsController = exports.ObjectsController = Montage.create(Component, {
}
},
+ getPrototypes : {
+ value: function(object) {
+ var object_i = object,
+ prototypes = [object_i];
+
+ ///// Collect prototypes
+ while(Object.getPrototypeOf(object_i)) {
+ object_i = Object.getPrototypeOf(object_i);
+ prototypes.push(object_i);
+ }
+
+ return prototypes;
+ }
+ },
+
/* ---- Bindable controller properties ---- */
currentObjectBindings : {
--
cgit v1.2.3
From 337efc667372326ae2f9984d89a47bb151016774 Mon Sep 17 00:00:00 2001
From: Armen Kesablyan
Date: Mon, 11 Jun 2012 13:25:13 -0700
Subject: Changes Made to Object Listing of iFrame
Signed-off-by: Armen Kesablyan
---
js/controllers/objects-controller.js | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
(limited to 'js/controllers')
diff --git a/js/controllers/objects-controller.js b/js/controllers/objects-controller.js
index 2ce10e82..fd9b12f4 100644
--- a/js/controllers/objects-controller.js
+++ b/js/controllers/objects-controller.js
@@ -45,11 +45,11 @@ var objectsController = exports.ObjectsController = Montage.create(Component, {
this._isBoundToModelObjects = true;
}
- Object.defineBinding(this, 'objects', {
- boundObject: this.currentDocument.model,
- boundObjectPropertyPath: 'objects',
- oneway: false
- });
+// Object.defineBinding(this, 'objects', {
+// boundObject: this.currentDocument.model,
+// boundObjectPropertyPath: 'mObjects',
+// oneway: false
+// });
}
},
--
cgit v1.2.3
From 1f855ae600c9f796bb8c6abe01fd7f9ffd15a1ac Mon Sep 17 00:00:00 2001
From: Eric Guzman
Date: Tue, 12 Jun 2012 12:57:58 -0700
Subject: Objects Controller - Add concept of categories
---
js/controllers/objects-controller.js | 27 +++++++++++++++++++++++++++
1 file changed, 27 insertions(+)
(limited to 'js/controllers')
diff --git a/js/controllers/objects-controller.js b/js/controllers/objects-controller.js
index f700c03c..7da70520 100644
--- a/js/controllers/objects-controller.js
+++ b/js/controllers/objects-controller.js
@@ -7,6 +7,10 @@
var Montage = require("montage/core/core").Montage,
Component = require("montage/ui/component").Component;
+var CATEGORIES = {
+
+};
+
var objectsController = exports.ObjectsController = Montage.create(Component, {
_currentDocument : {
@@ -172,6 +176,29 @@ var objectsController = exports.ObjectsController = Montage.create(Component, {
}
},
+ /* ----- Category properties ----- */
+
+ getObjectCategory : {
+ value: function(object) {
+ if(this._hasPrototype(object, 'Component')) {
+ return 'Component';
+ }
+
+ return null;
+ }
+ },
+
+ _hasPrototype : {
+ value: function(object, prototypeName) {
+ var prototypes = this.getPrototypes(object).map(function(proto) {
+ var metadata = proto._montage_metadata;
+ return (metadata) ? metadata.objectName : "Object";
+ });
+
+ return prototypes.indexOf(prototypeName) !== -1;
+ }
+ },
+
/* ---- Bindable controller properties ---- */
currentObjectBindings : {
--
cgit v1.2.3
From 1c32ba9a460bbb737206ce10d1ea75f035f543b7 Mon Sep 17 00:00:00 2001
From: Eric Guzman
Date: Wed, 13 Jun 2012 11:29:53 -0700
Subject: Objects Controller - Update current object bindings when
adding/removing bindings
---
js/controllers/objects-controller.js | 3 +++
1 file changed, 3 insertions(+)
(limited to 'js/controllers')
diff --git a/js/controllers/objects-controller.js b/js/controllers/objects-controller.js
index 7da70520..386ef683 100644
--- a/js/controllers/objects-controller.js
+++ b/js/controllers/objects-controller.js
@@ -66,6 +66,7 @@ var objectsController = exports.ObjectsController = Montage.create(Component, {
if(!bindingArgs.sourceObject || !bindingArgs.sourceObjectPropertyPath || !bindingArgs) { return; }
Object.defineBinding(bindingArgs.sourceObject, bindingArgs.sourceObjectPropertyPath, bindingArgs);
+ this.currentObjectBindings = this.getObjectBindings(value);
}
},
@@ -76,6 +77,7 @@ var objectsController = exports.ObjectsController = Montage.create(Component, {
Object.deleteBinding(bindingArgs.sourceObject, bindingArgs.sourceObjectPropertyPath);
+ this.currentObjectBindings = this.getObjectBindings(value);
}
},
@@ -92,6 +94,7 @@ var objectsController = exports.ObjectsController = Montage.create(Component, {
}
this.addBinding(bindingArgs);
+
}
},
--
cgit v1.2.3
From 98c6f4c449587addbeebb805ae0d15c4fe956f4f Mon Sep 17 00:00:00 2001
From: Eric Guzman
Date: Wed, 13 Jun 2012 19:06:35 -0700
Subject: Objects Controller - Fix call to get current object bindings after
add/removing binding
---
js/controllers/objects-controller.js | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
(limited to 'js/controllers')
diff --git a/js/controllers/objects-controller.js b/js/controllers/objects-controller.js
index 386ef683..877f7f9f 100644
--- a/js/controllers/objects-controller.js
+++ b/js/controllers/objects-controller.js
@@ -66,7 +66,7 @@ var objectsController = exports.ObjectsController = Montage.create(Component, {
if(!bindingArgs.sourceObject || !bindingArgs.sourceObjectPropertyPath || !bindingArgs) { return; }
Object.defineBinding(bindingArgs.sourceObject, bindingArgs.sourceObjectPropertyPath, bindingArgs);
- this.currentObjectBindings = this.getObjectBindings(value);
+ this.currentObjectBindings = this.getObjectBindings(bindingArgs.sourceObject);
}
},
@@ -77,7 +77,7 @@ var objectsController = exports.ObjectsController = Montage.create(Component, {
Object.deleteBinding(bindingArgs.sourceObject, bindingArgs.sourceObjectPropertyPath);
- this.currentObjectBindings = this.getObjectBindings(value);
+ this.currentObjectBindings = this.getObjectBindings(bindingArgs.sourceObject);
}
},
--
cgit v1.2.3
From 72efb92273d20757097b18326fb31d070a6d693d Mon Sep 17 00:00:00 2001
From: Eric Guzman
Date: Tue, 19 Jun 2012 15:55:17 -0700
Subject: Objects Tray - Show only "off stage" objects
---
js/controllers/objects-controller.js | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
(limited to 'js/controllers')
diff --git a/js/controllers/objects-controller.js b/js/controllers/objects-controller.js
index 877f7f9f..3a6f6e97 100644
--- a/js/controllers/objects-controller.js
+++ b/js/controllers/objects-controller.js
@@ -4,14 +4,13 @@
(c) Copyright 2011 Motorola Mobility, Inc. All Rights Reserved.
*/
-var Montage = require("montage/core/core").Montage,
- Component = require("montage/ui/component").Component;
+var Montage = require("montage/core/core").Montage;
var CATEGORIES = {
};
-var objectsController = exports.ObjectsController = Montage.create(Component, {
+var objectsController = exports.ObjectsController = Montage.create(Montage, {
_currentDocument : {
value : null,
--
cgit v1.2.3
From 20ea3997661b068fc6628ffa573e1b2d47e3a800 Mon Sep 17 00:00:00 2001
From: Armen Kesablyan
Date: Tue, 19 Jun 2012 22:51:04 -0700
Subject: Binding View - Mouse Over Element Pop up Hud
Signed-off-by: Armen Kesablyan
---
js/controllers/objects-controller.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
(limited to 'js/controllers')
diff --git a/js/controllers/objects-controller.js b/js/controllers/objects-controller.js
index 877f7f9f..b75d2126 100644
--- a/js/controllers/objects-controller.js
+++ b/js/controllers/objects-controller.js
@@ -219,7 +219,7 @@ var objectsController = exports.ObjectsController = Montage.create(Component, {
if(value) {
this.currentObjectBindings = this.getObjectBindings(value);
- console.log("Property list", this.getPropertyList(value, true));
+ //console.log("Property list", this.getPropertyList(value, true));
} else {
this.currentObjectBindings = [];
}
--
cgit v1.2.3
From 5b303f858ab78877f26f61e87230b010460ee03b Mon Sep 17 00:00:00 2001
From: Eric Guzman
Date: Wed, 20 Jun 2012 11:28:32 -0700
Subject: Objects Tray - Filter list of components for those without visual
representation
---
js/controllers/objects-controller.js | 14 ++++++++++++++
1 file changed, 14 insertions(+)
(limited to 'js/controllers')
diff --git a/js/controllers/objects-controller.js b/js/controllers/objects-controller.js
index b8efd432..54ff14ba 100644
--- a/js/controllers/objects-controller.js
+++ b/js/controllers/objects-controller.js
@@ -190,6 +190,8 @@ var objectsController = exports.ObjectsController = Montage.create(Montage, {
}
},
+ /* ----- Utils ----- */
+
_hasPrototype : {
value: function(object, prototypeName) {
var prototypes = this.getPrototypes(object).map(function(proto) {
@@ -201,6 +203,18 @@ var objectsController = exports.ObjectsController = Montage.create(Montage, {
}
},
+ ///// Returns true if the element is "non-visual", i.e. is not a component,
+ ///// and has not element property
+
+ isOffStageObject : {
+ value: function(object) {
+ var isComponent = this._hasPrototype(object, "Component"),
+ hasValidElement = object.element && object.element.parentNode;
+
+ return !isComponent || !hasValidElement;
+ }
+ },
+
/* ---- Bindable controller properties ---- */
currentObjectBindings : {
--
cgit v1.2.3
From 4565558afff6fb07db3b5165042e028f467ac41b Mon Sep 17 00:00:00 2001
From: Armen Kesablyan
Date: Thu, 21 Jun 2012 15:46:26 -0700
Subject: Binding View :Requested Changes for Pull Request
Signed-off-by: Armen Kesablyan
---
js/controllers/objects-controller.js | 6 ------
1 file changed, 6 deletions(-)
(limited to 'js/controllers')
diff --git a/js/controllers/objects-controller.js b/js/controllers/objects-controller.js
index 54ff14ba..3e35ef5f 100644
--- a/js/controllers/objects-controller.js
+++ b/js/controllers/objects-controller.js
@@ -47,12 +47,6 @@ var objectsController = exports.ObjectsController = Montage.create(Montage, {
Object.deleteBinding(this, 'objects');
this._isBoundToModelObjects = true;
}
-
-// Object.defineBinding(this, 'objects', {
-// boundObject: this.currentDocument.model,
-// boundObjectPropertyPath: 'mObjects',
-// oneway: false
-// });
}
},
--
cgit v1.2.3
From 199dd0149b5b328b52cafd5ecb07a120aa1473a7 Mon Sep 17 00:00:00 2001
From: Armen Kesablyan
Date: Mon, 25 Jun 2012 16:56:06 -0700
Subject: Binding View - Objects Replace existing source Object if it exists
Signed-off-by: Armen Kesablyan
---
js/controllers/objects-controller.js | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
(limited to 'js/controllers')
diff --git a/js/controllers/objects-controller.js b/js/controllers/objects-controller.js
index 3e35ef5f..6557c14e 100644
--- a/js/controllers/objects-controller.js
+++ b/js/controllers/objects-controller.js
@@ -58,7 +58,15 @@ var objectsController = exports.ObjectsController = Montage.create(Montage, {
value: function(bindingArgs) {
if(!bindingArgs.sourceObject || !bindingArgs.sourceObjectPropertyPath || !bindingArgs) { return; }
- Object.defineBinding(bindingArgs.sourceObject, bindingArgs.sourceObjectPropertyPath, bindingArgs);
+ var sourceObject = bindingArgs.sourceObject,
+ sourcePath = bindingArgs.sourceObjectPropertyPath,
+ sourceDescriptor = sourceObject._bindingDescriptors;
+
+ if(sourceDescriptor && sourceDescriptor[sourcePath]) {
+ this.removeBinding(bindingArgs);
+ }
+
+ Object.defineBinding(sourceObject, sourcePath, bindingArgs);
this.currentObjectBindings = this.getObjectBindings(bindingArgs.sourceObject);
}
},
--
cgit v1.2.3
From 2be81997e1ecd14ae43cf7fb243ef7ced2696bd2 Mon Sep 17 00:00:00 2001
From: Eric Guzman
Date: Tue, 26 Jun 2012 19:19:31 -0700
Subject: Styles Controller - Chrome 20 Fix
---
js/controllers/styles-controller.js | 81 ++++++++++++++++++++++++-------------
1 file changed, 53 insertions(+), 28 deletions(-)
(limited to 'js/controllers')
diff --git a/js/controllers/styles-controller.js b/js/controllers/styles-controller.js
index 1c1e75ed..1eb7bc7f 100755
--- a/js/controllers/styles-controller.js
+++ b/js/controllers/styles-controller.js
@@ -604,51 +604,76 @@ var stylesController = exports.StylesController = Montage.create(Component, {
getRuleIndex : {
value : function(rule) {
- var rules = nj.toArray(rule.parentStyleSheet.rules),
- i;
+ var rules = nj.toArray(rule.parentStyleSheet.rules);
return rules.indexOf(rule);
}
},
-
+
+ _getRuleWithCSSText : {
+ value: function(cssText, doc) {
+ var _doc = doc || this.currentDocument.model.views.design._document,
+ ruleIndex, rule;
+
+ for(var i = 0; i < _doc.styleSheets.length; i++) {
+ ruleIndex = nj.toArray(_doc.styleSheets[i].rules).map(function(rule) {
+ return rule.cssText;
+ }).indexOf(cssText);
+
+ if(ruleIndex !== -1) {
+ rule = _doc.styleSheets[i].rules[ruleIndex];
+ break;
+ }
+ }
+
+ if(!rule) {
+ ///// This should never be hit if providing cssText from existing rule (like those
+ ///// returned from getMatchedCSSRules()
+ console.warn('StylesController::_getRuleWithCSSText - No rule found with given cssText.');
+ }
+
+ return rule;
+ }
+ },
+
///// Get All Matching Rules
///// Returns an array of css rules for an element
///// Optionally sorted by specificity, and can omit pseudo elements
- getMatchingRules : {
+ getMatchingRules : { //TODO: Remove omitPseudos from here and usages
value: function(element, omitPseudos, useStageStyleSheet) {
- var pseudos = [null],
- rules = [],
- win = element.ownerDocument.defaultView,
- self = this;
-
- if(!omitPseudos) {
- pseudos.concat(['link', 'visited', 'active', 'hover', 'focus', 'first-letter',
- 'first-line', 'first-child', 'before', 'after', 'lang', 'target']);
- }
+ var rules,
+ mappedRules,
+ doc = element.ownerDocument,
+ win = doc.defaultView;
try {
- pseudos.forEach(function(pseudo) {
- rules = rules.concat(nj.toArray(win.getMatchedCSSRules(element, pseudo)).filter(function(rule) {
- //// useStageStyleSheet flag indicates whether to only return rules from the stylesheet,
- //// or only use rules for other stylesheets
+ debugger;
+
+ mappedRules = nj.toArray(win.getMatchedCSSRules(element)).map(function(rule) {
+ return this._getRuleWithCSSText(rule.cssText, doc);
+ }, this);
- var sheetId = (rule.parentStyleSheet) ? rule.parentStyleSheet.ownerNode.id : null,
- isStageStyleSheet = sheetId === this.CONST.STAGE_SHEET_ID;
+ rules = mappedRules.filter(function(rule) {
+ //// useStageStyleSheet flag indicates whether to only return rules from the stylesheet,
+ //// or only use rules for other stylesheets
- ///// filter out (return false) depending on flag
- if(useStageStyleSheet && !isStageStyleSheet) { return false; }
- if(!useStageStyleSheet && isStageStyleSheet) { return false; }
+ var sheetId = (rule.parentStyleSheet) ? rule.parentStyleSheet.ownerNode.id : null,
+ isStageStyleSheet = sheetId === this.CONST.STAGE_SHEET_ID;
- ///// Non-filter code - just assigning specificity to the rule
- if(!rule[this.CONST.SPECIFICITY_KEY]) {
- rule[this.CONST.SPECIFICITY_KEY] = this.getSpecificity(rule.selectorText);
- }
+ ///// filter out (return false) depending on flag
+ if(useStageStyleSheet && !isStageStyleSheet) { return false; }
+ if(!useStageStyleSheet && isStageStyleSheet) { return false; }
- return true;
+ ///// Non-filter code - just assigning specificity to the rule
+ if(!rule[this.CONST.SPECIFICITY_KEY]) {
+ rule[this.CONST.SPECIFICITY_KEY] = this.getSpecificity(rule.selectorText);
+ }
+
+ return true;
- }, this));
}, this);
+
} catch(ERROR) {
console.warn('StylesController::getMatchingRules - Un-attached element queried.');
}
--
cgit v1.2.3
From 31a164700e95fb9bf37169eccdb009895452b8bf Mon Sep 17 00:00:00 2001
From: Eric Guzman
Date: Tue, 26 Jun 2012 20:19:32 -0700
Subject: Styles Controller - Remove debugger
---
js/controllers/styles-controller.js | 2 --
1 file changed, 2 deletions(-)
(limited to 'js/controllers')
diff --git a/js/controllers/styles-controller.js b/js/controllers/styles-controller.js
index 1eb7bc7f..0f847653 100755
--- a/js/controllers/styles-controller.js
+++ b/js/controllers/styles-controller.js
@@ -648,8 +648,6 @@ var stylesController = exports.StylesController = Montage.create(Component, {
win = doc.defaultView;
try {
- debugger;
-
mappedRules = nj.toArray(win.getMatchedCSSRules(element)).map(function(rule) {
return this._getRuleWithCSSText(rule.cssText, doc);
}, this);
--
cgit v1.2.3