aboutsummaryrefslogtreecommitdiff
path: root/js
diff options
context:
space:
mode:
Diffstat (limited to 'js')
-rw-r--r--js/document/templates/montage-html/main.reel/main.js43
-rwxr-xr-xjs/helper-classes/3D/snap-manager.js21
-rwxr-xr-xjs/panels/Components/ComponentsPanelBase.reel/ComponentsPanelBase.js54
3 files changed, 87 insertions, 31 deletions
diff --git a/js/document/templates/montage-html/main.reel/main.js b/js/document/templates/montage-html/main.reel/main.js
index 567f481c..6c141108 100644
--- a/js/document/templates/montage-html/main.reel/main.js
+++ b/js/document/templates/montage-html/main.reel/main.js
@@ -17,7 +17,25 @@ exports.Main = Montage.create(Component, {
17 */ 17 */
18 templateDidLoad: { 18 templateDidLoad: {
19 value: function(){ 19 value: function(){
20 window.addComponent = this.addComponentToUserDocument; 20 var self = this;
21 window.addComponent = function(element, data, callback) {
22 var component;
23
24 component = require.async(data.path)
25 .then(function(component) {
26 var componentRequire = component[data.name];
27 var componentInstance = componentRequire.create();
28
29 componentInstance.element = element;
30 //componentInstance.deserializedFromTemplate();
31 componentInstance.needsDraw = true;
32 componentInstance.ownerComponent = self;
33
34 callback(componentInstance, element);
35 })
36 .end();
37
38 };
21// window.addBinding = this.addBindingToUserDocument; 39// window.addBinding = this.addBindingToUserDocument;
22 40
23 // Dispatch event when this template has loaded. 41 // Dispatch event when this template has loaded.
@@ -27,28 +45,5 @@ exports.Main = Montage.create(Component, {
27 document.body.dispatchEvent( newEvent ); 45 document.body.dispatchEvent( newEvent );
28 46
29 } 47 }
30 },
31
32 // Adding components to the user document by using a async require.
33 addComponentToUserDocument:{
34 value:function(element, data, callback){
35
36 var component;
37
38 component = require.async(data.path)
39 .then(function(component) {
40 var componentRequire = component[data.name];
41 var componentInstance = componentRequire.create();
42
43 componentInstance.element = element;
44 //componentInstance.deserializedFromTemplate();
45 componentInstance.needsDraw = true;
46
47 callback(componentInstance, element);
48 })
49 .end();
50
51 }
52 } 48 }
53
54}); \ No newline at end of file 49}); \ No newline at end of file
diff --git a/js/helper-classes/3D/snap-manager.js b/js/helper-classes/3D/snap-manager.js
index 1caacd00..a755e9e2 100755
--- a/js/helper-classes/3D/snap-manager.js
+++ b/js/helper-classes/3D/snap-manager.js
@@ -471,7 +471,8 @@ var SnapManager = exports.SnapManager = Montage.create(Component, {
471 value: function( plane ) { 471 value: function( plane ) {
472 this._elementCache = new Array; 472 this._elementCache = new Array;
473 473
474 var stage = this.getStage(); 474// var stage = this.getStage();
475 var stage = this.application.ninja.currentSelectedContainer || this.getStage();
475 this.hLoadElementCache( stage, plane, 0 ); 476 this.hLoadElementCache( stage, plane, 0 );
476 this._isCacheInvalid = false; 477 this._isCacheInvalid = false;
477 478
@@ -570,6 +571,11 @@ var SnapManager = exports.SnapManager = Montage.create(Component, {
570 571
571 hLoadElementCache : { 572 hLoadElementCache : {
572 value: function( elt, plane, depth ) { 573 value: function( elt, plane, depth ) {
574 if(depth > 1)
575 {
576 return;
577 }
578
573 if (depth > 0) 579 if (depth > 0)
574 { 580 {
575 // check if the element is on the specified plane 581 // check if the element is on the specified plane
@@ -590,8 +596,7 @@ var SnapManager = exports.SnapManager = Montage.create(Component, {
590 elt.elementModel.isIn2DSnapCache = false; 596 elt.elementModel.isIn2DSnapCache = false;
591 } 597 }
592 598
593 // TODO - Don't traverse components' children 599 // TODO - Don't traverse svg and components' children
594// if(elt.elementModel && elt.elementModel.isComponent)
595 if(elt.nodeName.toLowerCase() === "svg" || (elt.elementModel && (elt.elementModel.isComponent || (elt.elementModel.selection === "SVG")))) 600 if(elt.nodeName.toLowerCase() === "svg" || (elt.elementModel && (elt.elementModel.isComponent || (elt.elementModel.selection === "SVG"))))
596 { 601 {
597 return; 602 return;
@@ -964,7 +969,8 @@ var SnapManager = exports.SnapManager = Montage.create(Component, {
964 snapToElements : { 969 snapToElements : {
965 value: function( screenPt, hitRecs ) { 970 value: function( screenPt, hitRecs ) {
966 // start at the stage. 971 // start at the stage.
967 var stage = this.getStage(); 972// var stage = this.getStage();
973 var stage = this.application.ninja.currentSelectedContainer || this.getStage();
968 974
969 // the root should be the 'view' canvas, so the first matrix is the camera 975 // the root should be the 'view' canvas, so the first matrix is the camera
970 viewUtils.setViewportObj( stage ); 976 viewUtils.setViewportObj( stage );
@@ -980,6 +986,10 @@ var SnapManager = exports.SnapManager = Montage.create(Component, {
980 { 986 {
981 value: function( elt, hitRecs, depth, globalScrPt ) 987 value: function( elt, hitRecs, depth, globalScrPt )
982 { 988 {
989 if(depth > 1)
990 {
991 return;
992 }
983 // hit test the current object 993 // hit test the current object
984 var hit; 994 var hit;
985 if (depth > 0) // don't snap to the root 995 if (depth > 0) // don't snap to the root
@@ -1001,8 +1011,7 @@ var SnapManager = exports.SnapManager = Montage.create(Component, {
1001 } 1011 }
1002 } 1012 }
1003 1013
1004 // TODO - Don't traverse components' children 1014 // TODO - Don't traverse svg and components' children
1005// if(elt.elementModel && elt.elementModel.isComponent)
1006 if(elt.nodeName.toLowerCase() === "svg" || (elt.elementModel && (elt.elementModel.isComponent || (elt.elementModel.selection === "SVG")))) 1015 if(elt.nodeName.toLowerCase() === "svg" || (elt.elementModel && (elt.elementModel.isComponent || (elt.elementModel.selection === "SVG"))))
1007 { 1016 {
1008 return; 1017 return;
diff --git a/js/panels/Components/ComponentsPanelBase.reel/ComponentsPanelBase.js b/js/panels/Components/ComponentsPanelBase.reel/ComponentsPanelBase.js
index b4eec771..dcb69255 100755
--- a/js/panels/Components/ComponentsPanelBase.reel/ComponentsPanelBase.js
+++ b/js/panels/Components/ComponentsPanelBase.reel/ComponentsPanelBase.js
@@ -23,6 +23,36 @@ var ComponentsPanelBase = exports.ComponentsPanelBase = Montage.create(Component
23 "text": "styles", 23 "text": "styles",
24 "children": [ 24 "children": [
25 { 25 {
26 "text": "Widgets",
27 "children": [
28 {
29 "text": "Feed Reader",
30 "dataFile" : "node_modules/components-data/feed-reader.json",
31 "component": "feedreader"
32 },
33 {
34 "text": "Map",
35 "dataFile" : "node_modules/components-data/map.json",
36 "component": "map"
37 },
38 {
39 "text": "Picasa Carousel",
40 "dataFile" : "node_modules/components-data/picasa-carousel.json",
41 "component": "picasa-carousel"
42 },
43 {
44 "text": "Search Bar",
45 "dataFile" : "node_modules/components-data/searchfield.json",
46 "component": "searchfield"
47 },
48 {
49 "text": "Youtube Channel",
50 "dataFile" : "node_modules/components-data/youtube-channel.json",
51 "component": "youtube-channel"
52 }
53 ]
54 },
55 {
26 "text": "Montage Components", 56 "text": "Montage Components",
27 "children": [ 57 "children": [
28 { 58 {
@@ -50,7 +80,7 @@ var ComponentsPanelBase = exports.ComponentsPanelBase = Montage.create(Component
50 "dataFile" : "node_modules/components-data/number-input.json", 80 "dataFile" : "node_modules/components-data/number-input.json",
51 "component": "numberInput" 81 "component": "numberInput"
52 }, 82 },
53 { 83 {
54 "text": "Select Input", 84 "text": "Select Input",
55 "dataFile" : "node_modules/components-data/select.json", 85 "dataFile" : "node_modules/components-data/select.json",
56 "component": "select" 86 "component": "select"
@@ -313,6 +343,7 @@ var ComponentsPanelBase = exports.ComponentsPanelBase = Montage.create(Component
313 el.setAttribute("type", "range"); 343 el.setAttribute("type", "range");
314 break; 344 break;
315 case "textfield": 345 case "textfield":
346 case "searchfield":
316 el = NJUtils.makeNJElement("input", "Textfield", "component"); 347 el = NJUtils.makeNJElement("input", "Textfield", "component");
317 el.elementModel.pi = "TextfieldPi"; 348 el.elementModel.pi = "TextfieldPi";
318 el.setAttribute("type", "text"); 349 el.setAttribute("type", "text");
@@ -326,6 +357,27 @@ var ComponentsPanelBase = exports.ComponentsPanelBase = Montage.create(Component
326 el.elementModel.pi = "ToggleButtonPi"; 357 el.elementModel.pi = "ToggleButtonPi";
327 el.innerHTML = "Off"; 358 el.innerHTML = "Off";