aboutsummaryrefslogtreecommitdiff
path: root/js
diff options
context:
space:
mode:
authorJose Antonio Marquez2012-05-17 16:55:19 -0700
committerJose Antonio Marquez2012-05-17 16:55:19 -0700
commit792c83a0fe8f7f22d139684ed6d711a2c334c098 (patch)
tree1da84ec11a7e6c514dfe2bd74ea97b5cd4aee1d5 /js
parent495a56081219c0c77814cb72f2d787195ef58285 (diff)
downloadninja-792c83a0fe8f7f22d139684ed6d711a2c334c098.tar.gz
Adding component initialization on open
This is for opening components, selection is still not reflecting component data.
Diffstat (limited to 'js')
-rwxr-xr-xjs/document/views/design.js29
-rw-r--r--js/mediators/io-mediator.js78
2 files changed, 59 insertions, 48 deletions
diff --git a/js/document/views/design.js b/js/document/views/design.js
index 2ccb82d1..bd8c25ec 100755
--- a/js/document/views/design.js
+++ b/js/document/views/design.js
@@ -184,8 +184,7 @@ exports.DesignDocumentView = Montage.create(BaseDocumentView, {
184 this._bodyFragment = null; 184 this._bodyFragment = null;
185 //Calling standard method to finish opening document 185 //Calling standard method to finish opening document
186 this.bodyContentLoaded(null); 186 this.bodyContentLoaded(null);
187 187 //TODO: Move this to be set via the controller
188 // TODO: Clean up this code
189 this.application.ninja.stage.documentOffsetLeft = parseInt((this.document.body.scrollWidth - this._template.size.width)/2); 188 this.application.ninja.stage.documentOffsetLeft = parseInt((this.document.body.scrollWidth - this._template.size.width)/2);
190 this.application.ninja.stage.documentOffsetTop = parseInt((this.document.body.scrollHeight - this._template.size.height)/2); 189 this.application.ninja.stage.documentOffsetTop = parseInt((this.document.body.scrollHeight - this._template.size.height)/2);
191 } 190 }
@@ -243,17 +242,15 @@ exports.DesignDocumentView = Montage.create(BaseDocumentView, {
243 } 242 }
244 } 243 }
245 } 244 }
246 //Checking and initializing webGL 245 //Checking for script tags then parsing check for montage and webgl
247 if (scripttags.length > 0) { 246 if (scripttags.length > 0) {
247 //Checking and initializing webGL
248 this.initWebGl(scripttags); 248 this.initWebGl(scripttags);
249 } //Else there is not data to parse 249 //Checking and initializing Montage
250 250 this.initMontage(scripttags);
251 251 } else {
252 252 //Else there is not data to parse
253 //TODO: Load Montage Components (blocking) 253 }
254 //this.initMontage();
255
256
257 //Makign callback if specified 254 //Makign callback if specified
258 if (this._callback) this._callback(); 255 if (this._callback) this._callback();
259 } 256 }
@@ -350,8 +347,14 @@ exports.DesignDocumentView = Montage.create(BaseDocumentView, {
350 //////////////////////////////////////////////////////////////////// 347 ////////////////////////////////////////////////////////////////////
351 // 348 //
352 initMontage: { 349 initMontage: {
353 value: function () { 350 value: function (scripttags) {
354 //initWithDocument(window.document) instantiateWithOwnerAndDocument(null, window.document) 351 //
352 this.iframe.contentWindow.document.body.addEventListener('mjsTemplateReady', function () {
353 //Initializing template with user's seriliazation
354 var template = this.iframe.contentWindow.mjsTemplate.create();
355 template.initWithDocument(this.iframe.contentWindow.document);
356 template.instantiateWithOwnerAndDocument(null, this.iframe.contentWindow.document, function (e){/*Nothing just a required extra parameter*/});
357 }.bind(this), false);
355 } 358 }
356 }, 359 },
357 //////////////////////////////////////////////////////////////////// 360 ////////////////////////////////////////////////////////////////////
diff --git a/js/mediators/io-mediator.js b/js/mediators/io-mediator.js
index b1916446..c506e186 100644
--- a/js/mediators/io-mediator.js
+++ b/js/mediators/io-mediator.js
@@ -225,7 +225,7 @@ exports.IoMediator = Montage.create(Component, {
225 mjsCreator = template.mjsTemplateCreator.create(), 225 mjsCreator = template.mjsTemplateCreator.create(),
226 mJsSerialization, 226 mJsSerialization,
227 montageTemplate; 227 montageTemplate;
228 // 228 //Creating instance of template creator
229 montageTemplate = mjsCreator.initWithDocument(template.document); 229 montageTemplate = mjsCreator.initWithDocument(template.document);
230 //Setting up expression for parsing URLs 230 //Setting up expression for parsing URLs
231 regexRootUrl = new RegExp(rootUrl.replace(/\//gi, '\\\/'), 'gi'); 231 regexRootUrl = new RegExp(rootUrl.replace(/\//gi, '\\\/'), 'gi');
@@ -239,7 +239,6 @@ exports.IoMediator = Montage.create(Component, {
239 template.file.content.document.head.innerHTML = template.head.innerHTML.replace(regexRootUrl, ''); 239 template.file.content.document.head.innerHTML = template.head.innerHTML.replace(regexRootUrl, '');
240 template.file.content.document.body.innerHTML = template.body.innerHTML.replace(regexRootUrl, ''); 240 template.file.content.document.body.innerHTML = template.body.innerHTML.replace(regexRootUrl, '');
241 } 241 }
242
243 //Copying attributes to maintain same properties as the <body> 242 //Copying attributes to maintain same properties as the <body>
244 for (var n in template.body.attributes) { 243 for (var n in template.body.attributes) {
245 if (template.body.attributes[n].value) { 244 if (template.body.attributes[n].value) {
@@ -250,6 +249,7 @@ exports.IoMediator = Montage.create(Component, {
250 //TODO: Add attribute copying for <HEAD> and <HTML> 249 //TODO: Add attribute copying for <HEAD> and <HTML>
251 250
252 251
252 //console.log(template.file.content.document.getElementsByTagName('html')[0].innerHTML);
253 253
254 254
255 //Getting all CSS (style or link) tags 255 //Getting all CSS (style or link) tags
@@ -266,7 +266,7 @@ exports.IoMediator = Montage.create(Component, {
266 } 266 }
267 ////////////////////////////////////////////////// 267 //////////////////////////////////////////////////
268 268
269 // 269 //Adding to tags to be removed form template
270 for (var f in njtemplatetags) { 270 for (var f in njtemplatetags) {
271 if (njtemplatetags[f].getAttribute) toremovetags.push(njtemplatetags[f]); 271 if (njtemplatetags[f].getAttribute) toremovetags.push(njtemplatetags[f]);
272 } 272 }
@@ -405,6 +405,31 @@ exports.IoMediator = Montage.create(Component, {
405 } 405 }
406 } 406 }
407 } 407 }
408 //
409 var matchingtags = [], scripts = template.file.content.document.getElementsByTagName('script'), webgltag, webgljstag, webgllibtag, webglrdgetag, mjstag, mjslibtag;
410 //
411 for (var i in scripts) {
412 if (scripts[i].getAttribute) {
413 if (scripts[i].getAttribute('data-ninja-webgl') !== null) {//TODO: Use querySelectorAll
414 matchingtags.push(scripts[i]);
415 }
416 if (scripts[i].getAttribute('data-ninja-webgl-js') !== null) {
417 webgljstag = scripts[i]; // TODO: Add logic to delete unneccesary tags
418 }
419 if (scripts[i].getAttribute('data-ninja-webgl-lib') !== null) {
420 webgllibtag = scripts[i]; // TODO: Add logic to delete unneccesary tags
421 }
422 if (scripts[i].getAttribute('data-ninja-webgl-rdge') !== null) {
423 webglrdgetag = scripts[i]; // TODO: Add logic to delete unneccesary tags
424 }
425 if (scripts[i].getAttribute('type') === 'text/montage-serialization') {
426 mjstag = scripts[i]; // TODO: Add logic to delete unneccesary tags
427 }
428 if (scripts[i].getAttribute('data-mjs-lib') !== null) {
429 mjslibtag = scripts[i]; // TODO: Add logic to delete unneccesary tags
430 }
431 }
432 }
408 //Checking for webGL elements in document 433 //Checking for webGL elements in document
409 if (template.webgl && template.webgl.length > 1) {//TODO: Should be length 0, hack for a temp fix 434 if (template.webgl && template.webgl.length > 1) {//TODO: Should be length 0, hack for a temp fix
410 var rdgeDirName, rdgeVersion; 435 var rdgeDirName, rdgeVersion;
@@ -420,31 +445,6 @@ exports.IoMediator = Montage.create(Component, {
420 } 445 }
421 } 446 }
422 // 447 //
423 var json, matchingtags = [], webgltag, scripts = template.file.content.document.getElementsByTagName('script'), webgljstag, webgllibtag, webglrdgetag, mjstag, mjslibtag;
424 //
425 for (var i in scripts) {
426 if (scripts[i].getAttribute) {
427 if (scripts[i].getAttribute('data-ninja-webgl') !== null) {//TODO: Use querySelectorAll
428 matchingtags.push(scripts[i]);
429 }
430 if (scripts[i].getAttribute('data-ninja-webgl-js') !== null) {
431 webgljstag = scripts[i]; // TODO: Add logic to delete unneccesary tags
432 }
433 if (scripts[i].getAttribute('data-ninja-webgl-lib') !== null) {
434 webgllibtag = scripts[i]; // TODO: Add logic to delete unneccesary tags
435 }
436 if (scripts[i].getAttribute('data-ninja-webgl-rdge') !== null) {
437 webglrdgetag = scripts[i]; // TODO: Add logic to delete unneccesary tags
438 }
439 if (scripts[i].getAttribute('type') === 'text/montage-serialization') {
440 mjstag = scripts[i]; // TODO: Add logic to delete unneccesary tags
441 }
442 if (scripts[i].getAttribute('data-mjs-lib') !== null) {
443 mjslibtag = scripts[i]; // TODO: Add logic to delete unneccesary tags
444 }
445 }
446 }
447 //
448 if (matchingtags.length) { 448 if (matchingtags.length) {
449 if (matchingtags.length === 1) { 449 if (matchingtags.length === 1) {
450 webgltag = matchingtags[0]; 450 webgltag = matchingtags[0];
@@ -510,7 +510,7 @@ function loadWebGL (e) {\n\
510}\ 510}\
511 "; 511 ";
512 //TODO: This data should be saved to a JSON file eventually 512 //TODO: This data should be saved to a JSON file eventually
513 json = '\n({\n\t"version": "' + rdgeVersion + '",\n\t"directory": "' + rdgeDirName + '/",\n\t"data": ['; 513 var json = '\n({\n\t"version": "' + rdgeVersion + '",\n\t"directory": "' + rdgeDirName + '/",\n\t"data": [';
514 //Looping through data to create escaped array 514 //Looping through data to create escaped array
515 for (var j = 0; template.webgl[j]; j++) { 515 for (var j = 0; template.webgl[j]; j++) {
516 if (j === 0) { 516 if (j === 0) {
@@ -524,11 +524,6 @@ function loadWebGL (e) {\n\
524 //Setting string in tag 524 //Setting string in tag
525 webgltag.innerHTML = json; 525 webgltag.innerHTML = json;
526 } 526 }
527
528
529
530
531
532 //Checking for Montage 527 //Checking for Montage
533 if (mJsSerialization) { 528 if (mJsSerialization) {
534 //Copy Montage library if needed 529 //Copy Montage library if needed
@@ -538,8 +533,21 @@ function loadWebGL (e) {\n\
538 mjsDirName = (this.application.ninja.coreIoApi.ninjaLibrary.libs[i].name + this.application.ninja.coreIoApi.ninjaLibrary.libs[i].version).toLowerCase(); 533 mjsDirName = (this.application.ninja.coreIoApi.ninjaLibrary.libs[i].name + this.application.ninja.coreIoApi.ninjaLibrary.libs[i].version).toLowerCase();
539 mjsVersion = this.application.ninja.coreIoApi.ninjaLibrary.libs[i].version; 534 mjsVersion = this.application.ninja.coreIoApi.ninjaLibrary.libs[i].version;
540 this.application.ninja.coreIoApi.ninjaLibrary.copyLibToCloud(template.file.root, mjsDirName); 535 this.application.ninja.coreIoApi.ninjaLibrary.copyLibToCloud(template.file.root, mjsDirName);
536
537
538
541 //TODO: Fix to allow no overwrite and nested locations 539 //TODO: Fix to allow no overwrite and nested locations
542 var packjson = this.application.ninja.coreIoApi.createFile({ uri: template.file.root + 'package.json', contents: '{"mappings": {"montage": "' + mjsDirName + '/montage/"}}' }); 540 var mjsCheck, mjsPath = template.file.root + 'package.json';
541 mjsCheck = this.application.ninja.coreIoApi.fileExists({uri: mjsPath});
542 //
543 if (!mjsCheck || mjsCheck.status !== 204) {
544 var packjson = this.application.ninja.coreIoApi.createFile({ uri: mjsPath, contents: '{"mappings": {"montage": "' + mjsDirName + '/montage/"}}' });
545 } else {
546 //Already exists