| /*jslint vars: true, plusplus: true, devel: true, nomen: true, regexp: true, indent: 4, maxerr: 50 */ |
| /*global $, window, location, CSInterface, SystemPath, themeManager, compSelectionController, compRenderController, messageController, infoController, snapshotController, require*/ |
| |
| var mainController = (function () { |
| 'use strict'; |
| var ob = {}; |
| |
| var csInterface = new CSInterface(); |
| var mainViews = []; |
| |
| |
| var gulp = require('gulp'); |
| var gzip = require('gulp-gzip'); |
| |
| function showView(view) { |
| var i, len = mainViews.length; |
| for (i = 0; i < len; i += 1) { |
| if (mainViews[i].id === view) { |
| mainViews[i].controller.show(); |
| } else { |
| mainViews[i].controller.hide(); |
| } |
| } |
| } |
| |
| csInterface.addEventListener('bm:render:start', function (ev) { |
| showView('render'); |
| }); |
| |
| csInterface.addEventListener('bm:render:cancel', function (ev) { |
| showView('selection'); |
| }); |
| |
| csInterface.addEventListener('bm:zip:data', function (ev) { |
| var jsonString = ev.data.jsonString; |
| var zippingStr = jsonString.substr(1); |
| var outStr; |
| gulp.src('tmp', { read: false }) |
| .pipe(gzip({ append: false })) |
| .pipe(gulp.dest('outStr')); |
| //csInterface.evalScript('bm_dataManager.writeZippedData(' + outStr + ')'); |
| console.log(outStr); |
| }); |
| |
| csInterface.addEventListener('console:log', function (ev) { |
| console.log(JSON.stringify(ev.data)); |
| }); |
| |
| function loadJSX(fileName, cb) { |
| var extensionRoot = csInterface.getSystemPath(SystemPath.EXTENSION) + "/jsx/"; |
| csInterface.evalScript('$.evalFile("' + extensionRoot + fileName + '")', cb); |
| } |
| |
| function init() { |
| themeManager.init(); |
| compSelectionController.init(csInterface); |
| mainViews.push({id: 'selection', controller: compSelectionController}); |
| compRenderController.init(csInterface); |
| mainViews.push({id: 'render', controller: compRenderController}); |
| messageController.init(csInterface); |
| mainViews.push({id: 'settings', controller: infoController}); |
| infoController.init(csInterface); |
| mainViews.push({id: 'snapshot', controller: snapshotController}); |
| snapshotController.init(csInterface); |
| loadJSX('initializer.jsx'); |
| |
| showView('selection'); |
| |
| } |
| |
| ob.showView = showView; |
| ob.init = init; |
| |
| return ob; |
| |
| }()); |
| |
| mainController.init(); |