e6f3c264b192b8b28b67b2a464f7d43217770c19
[fnpeditor.git] / modules / rng.js
1 rng.modules.rng = function(sandbox) {\r
2 \r
3     function addTab(title, slug, view) {\r
4         sandbox.getModule('tabsManager').addTab(title, slug, view);\r
5     }\r
6     \r
7     /* Events handling */\r
8     \r
9     eventHandlers = {};\r
10     \r
11     eventHandlers.skelton = {\r
12         ready: function() {\r
13             sandbox.getModule('tabsManager').start();\r
14         }\r
15     };\r
16     \r
17     eventHandlers.tabsManager = {\r
18         ready: function() {\r
19             sandbox.getModule('skelton').setMainView(sandbox.getModule('tabsManager').getView());\r
20             _.each(['visualEditor', 'sourceEditor'], function(moduleName) {\r
21                 sandbox.getModule(moduleName).start();\r
22             });\r
23         }\r
24     };\r
25     \r
26     eventHandlers.sourceEditor = {\r
27         ready: function() {\r
28             addTab('Source', 'source',  sandbox.getModule('sourceEditor').getView());\r
29         }\r
30     };\r
31     \r
32     eventHandlers.visualEditor = {\r
33         ready: function() {\r
34             addTab('Visual', 'visual', sandbox.getModule('visualEditor').getView());\r
35         }\r
36     };\r
37     \r
38     \r
39     /* api */\r
40     \r
41     return {\r
42         start: function() {\r
43             sandbox.getModule('skelton').start();\r
44         },\r
45         handleEvent: function(moduleName, eventName, args) {\r
46             if(eventHandlers[moduleName] && eventHandlers[moduleName][eventName]) {\r
47                 eventHandlers[moduleName][eventName].apply(eventHandlers, args);\r
48             }\r
49         }\r
50     }\r
51 };