diff options
Diffstat (limited to 'js')
-rw-r--r-- | js/document/templates/montage-html/main.reel/main.js | 43 | ||||
-rwxr-xr-x | js/helper-classes/3D/snap-manager.js | 21 | ||||
-rwxr-xr-x | js/panels/Components/ComponentsPanelBase.reel/ComponentsPanelBase.js | 54 |
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"; |