Editor: Introducing requirejs
[fnpeditor.git] / modules / sourceEditor.js
1 define(function() {\r
2 \r
3 return function(sandbox) {\r
4 \r
5     var view = $(sandbox.getTemplate('main')());\r
6     var isDirty = false;\r
7     \r
8     var editor = ace.edit(view.find('#rng-sourceEditor-editor')[0]);\r
9     editor.setTheme("ace/theme/chrome");\r
10     editor.getSession().setMode("ace/mode/xml");\r
11     $('textarea', view).on('keyup', function() {\r
12         isDirty = true;\r
13     });\r
14     \r
15     editor.getSession().on('change', function() {\r
16         isDirty = true;\r
17     })\r
18     return {\r
19         start: function() {\r
20             sandbox.publish('ready');\r
21         },\r
22         getView: function() {\r
23             return view;\r
24         },\r
25         setDocument: function(document) {\r
26             editor.setValue(document);\r
27             editor.gotoLine(0)\r
28             isDirty = false;\r
29         },\r
30         getDocument: function() {\r
31             return editor.getValue();\r
32         },\r
33         isDirty: function() {\r
34             return isDirty;\r
35         },\r
36         setDirty: function(dirty) {\r
37             isDirty = dirty;\r
38         }\r
39     \r
40     }\r
41 };\r
42 \r
43 });